HM软件学习日记(第2天)

—>>今天的任务
  • 学习HM16.20的Encode部分的一部分代码及原理
  • 试着修改参数,实际操作几个视频的编码过程
  • 总结近几天学过的英语单词
  • CTC

每天学一点linux的知识

—>>走进 shell

用于设置前景色和背景色的setterm选项

选 项 参 数 描 述
-background black 、 red 、 green 、 yellow 、 blue 、magenta、cyan或 white 将终端的背景色改为指定颜色
-foreground black 、 red 、 green 、 yellow 、 blue 、magenta、cyan或 white 将终端的前景色改为指定颜色
-inversescreen on或off 交换背景色和前景色
-reset 将终端外观恢复成默认设置并清屏
-store 将终端当前的前景色和背景色设置成 -reset选项的值

在这里插入图片描述

—>>捋代码

HM16.20文件目录

源代码的文件

  • 全部文件 13 directories, 166 files
.
├── App
│   ├── TAppDecoder
│   │   ├── decmain.cpp
│   │   ├── TAppDecCfg.cpp
│   │   ├── TAppDecCfg.h
│   │   ├── TAppDecTop.cpp
│   │   └── TAppDecTop.h
│   ├── TAppEncoder
│   │   ├── encmain.cpp
│   │   ├── TAppEncCfg.cpp
│   │   ├── TAppEncCfg.h
│   │   ├── TAppEncTop.cpp
│   │   └── TAppEncTop.h
│   ├── TAppMCTSExtractor
│   │   ├── mctsExtmain.cpp
│   │   ├── TAppMctsExtCfg.cpp
│   │   ├── TAppMctsExtCfg.h
│   │   ├── TAppMctsExtTop.cpp
│   │   └── TAppMctsExtTop.h
│   └── utils
│       ├── annexBbytecount.cpp
│       ├── BitrateTargeting
│       │   ├── encodeCommand.sh
│       │   ├── encode.shl
│       │   ├── ExtractBitrates.cpp
│       │   ├── ExtractBitrates.h
│       │   ├── ExtractBitratesMain.cpp
│       │   ├── GuessLambdaModifiers.cpp
│       │   ├── GuessLambdaModifiers.h
│       │   ├── GuessLambdaModifiersMain.cpp
│       │   ├── makefile
│       │   ├── QuickStartGuide.pdf
│       │   ├── RuntimeError.h
│       │   └── targetBitrates.sh
│       └── convert_NtoMbit_YCbCr.cpp
└── Lib
    ├── libmd5
    │   ├── libmd5.c
    │   ├── libmd5.h
    │   └── MD5.h
    ├── TAppCommon
    │   ├── program_options_lite.cpp
    │   └── program_options_lite.h
    ├── TLibCommon
    │   ├── AccessUnit.h
    │   ├── CommonDef.h
    │   ├── ContextModel3DBuffer.cpp
    │   ├── ContextModel3DBuffer.h
    │   ├── ContextModel.cpp
    │   ├── ContextModel.h
    │   ├── ContextTables.h
    │   ├── Debug.cpp
    │   ├── Debug.h
    │   ├── NAL.h
    │   ├── SEI.cpp
    │   ├── SEI.h
    │   ├── TComBitCounter.h
    │   ├── TComBitStream.cpp
    │   ├── TComBitStream.h
    │   ├── TComCABACTables.cpp
    │   ├── TComCABACTables.h
    │   ├── TComChromaFormat.cpp
    │   ├── TComChromaFormat.h
    │   ├── TComCodingStatistics.h
    │   ├── TComDataCU.cpp
    │   ├── TComDataCU.h
    │   ├── TComInterpolationFilter.cpp
    │   ├── TComInterpolationFilter.h
    │   ├── TComList.h
    │   ├── TComLoopFilter.cpp
    │   ├── TComLoopFilter.h
    │   ├── TComMotionInfo.cpp
    │   ├── TComMotionInfo.h
    │   ├── TComMv.h
    │   ├── TComPattern.cpp
    │   ├── TComPattern.h
    │   ├── TComPic.cpp
    │   ├── TComPic.h
    │   ├── TComPicSym.cpp
    │   ├── TComPicSym.h
    │   ├── TComPicYuv.cpp
    │   ├── TComPicYuv.h
    │   ├── TComPicYuvMD5.cpp
    │   ├── TComPrediction.cpp
    │   ├── TComPrediction.h
    │   ├── TComRdCost.cpp
    │   ├── TComRdCost.h
    │   ├── TComRdCostWeightPrediction.cpp
    │   ├── TComRdCostWeightPrediction.h
    │   ├── TComRectangle.h
    │   ├── TComRom.cpp
    │   ├── TComRom.h
    │   ├── TComSampleAdaptiveOffset.cpp
    │   ├── TComSampleAdaptiveOffset.h
    │   ├── TComSlice.cpp
    │   ├── TComSlice.h
    │   ├── TComTrQuant.cpp
    │   ├── TComTrQuant.h
    │   ├── TComTU.cpp
    │   ├── TComTU.h
    │   ├── TComWeightPrediction.cpp
    │   ├── TComWeightPrediction.h
    │   ├── TComYuv.cpp
    │   ├── TComYuv.h
    │   └── TypeDef.h
    ├── TLibDecoder
    │   ├── AnnexBread.cpp
    │   ├── AnnexBread.h
    │   ├── NALread.cpp
    │   ├── NALread.h
    │   ├── SEIread.cpp
    │   ├── SEIread.h
    │   ├── SyntaxElementParser.cpp
    │   ├── SyntaxElementParser.h
    │   ├── TDecBinCoderCABAC.cpp
    │   ├── TDecBinCoderCABAC.h
    │   ├── TDecBinCoder.h
    │   ├── TDecCAVLC.cpp
    │   ├── TDecCAVLC.h
    │   ├── TDecConformance.cpp
    │   ├── TDecConformance.h
    │   ├── TDecCu.cpp
    │   ├── TDecCu.h
    │   ├── TDecEntropy.cpp
    │   ├── TDecEntropy.h
    │   ├── TDecGop.cpp
    │   ├── TDecGop.h
    │   ├── TDecSbac.cpp
    │   ├── TDecSbac.h
    │   ├── TDecSlice.cpp
    │   ├── TDecSlice.h
    │   ├── TDecTop.cpp
    │   └── TDecTop.h
    ├── TLibEncoder
    │   ├── AnnexBwrite.h
    │   ├── NALwrite.cpp
    │   ├── NALwrite.h
    │   ├── SEIEncoder.cpp
    │   ├── SEIEncoder.h
    │   ├── SEIwrite.cpp
    │   ├── SEIwrite.h
    │   ├── SyntaxElementWriter.cpp
    │   ├── SyntaxElementWriter.h
    │   ├── TEncAnalyze.h
    │   ├── TEncBinCoderCABACCounter.cpp
    │   ├── TEncBinCoderCABACCounter.h
    │   ├── TEncBinCoderCABAC.cpp
    │   ├── TEncBinCoderCABAC.h
    │   ├── TEncBinCoder.h
    │   ├── TEncCavlc.cpp
    │   ├── TEncCavlc.h
    │   ├── TEncCfg.h
    │   ├── TEncCu.cpp
    │   ├── TEncCu.h
    │   ├── TEncEntropy.cpp
    │   ├── TEncEntropy.h
    │   ├── TEncGOP.cpp
    │   ├── TEncGOP.h
    │   ├── TEncPic.cpp
    │   ├── TEncPic.h
    │   ├── TEncPreanalyzer.cpp
    │   ├── TEncPreanalyzer.h
    │   ├── TEncRateCtrl.cpp
    │   ├── TEncRateCtrl.h
    │   ├── TEncSampleAdaptiveOffset.cpp
    │   ├── TEncSampleAdaptiveOffset.h
    │   ├── TEncSbac.cpp
    │   ├── TEncSbac.h
    │   ├── TEncSearch.cpp
    │   ├── TEncSearch.h
    │   ├── TEncSlice.cpp
    │   ├── TEncSlice.h
    │   ├── TEncTop.cpp
    │   ├── TEncTop.h
    │   ├── WeightPredAnalysis.cpp
    │   └── WeightPredAnalysis.h
    └── TLibVideoIO
        ├── TVideoIOYuv.cpp
        └── TVideoIOYuv.h

13 directories, 166 files

—>>SCM

何为“SCM”?

Software configuration management ,软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。 (Software configuration management (SCM, or just plain CM) is an organizational framework — that is, a discipline — for managing the evolution of computer systems throughout all stages of systems development.)

—>>CTC???

何为“CTC”?

“HEVC common test condition”“HEVC公用测试序列”(简称CTC)
今天我跟老师提到我的HM代码学习进度过慢,李帅老师建议我先进行一“CTC”,我的理解是“ Code To Code“,即”YUV code —> (Encode)编码 —> HEVC —>(Decode) 解码 —>YUV code

—>>makefile

何为“makefile”?

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。

—>>cfg

何为“cfg”?

cfg大多为软件的配置文件,bai其格式还是文du本文件,和txt不同的zhi是,格用cfg后缀来区分,而很多软件需要dao配置文件。如我们经常看到的迅雷下载文件时,当没有下载完成就会生成一个cfg格式文件。一些软件也用cfg文件来配置。

—>>每日一试

尝试用16.9版本的HM进行一次CTC

解决“-Werror”问题

同组的小伙伴都是用的16.9版本的HM,所以我又额外安装了16.9版本的HM,并尝试对参考文件(YUV)进行CTC。
在这里插入图片描述
又遇到了与第一天遇到的一样的问题,通过回顾第一天学到的知识,顺利解决了!
并学到了linux下make操作符的作用。

尝试进行一次“CTC”

详细情况看下一篇日志!

—>>意外收获

在ubuntu系统下可以看到这台电脑的所有文件,包括windows10之下的所有文件!!!!

如图所示:
在这里插入图片描述
也就是说,只要在这台电脑上存储一份文件,就可以在两个系统中都可以看到!!!

translate-shell的使用

参考:https://blog.csdn.net/u014268482/article/details/86302443

猜你喜欢

转载自blog.csdn.net/Master_Yu_Daye/article/details/107352701