閱讀320 返回首頁    go 人物


HEVC Study One(基於HM14.0平台)

HM14.0下載地址:https://download.csdn.net/detail/frd2009041510/7707363

一、程序從TAppEncoder中的encmain.cpp開始,在主程序中按順序做了以下幾件事情:

①、創建類cTAppEncTop,為TAppEncTop.cpp做準備,同時在TAppEncTop.cpp中初始化m_iFrameRcvd(number of received frames)、m_totalBytes和m_essentialBytes(其實,利用Step Into調試可以發現裏麵涉及眾多的初始化工作,不詳)。

②、打印相關信息,如軟件版本等,見下圖。


③、解析配置文件


④、調用編碼函數cTAppEncTop.encode()(這裏有個小插曲,即編碼時間從此刻開始計時)。

TAppEncoderencmain.cpp中剩餘部分都無關緊要,也就是結束編碼時間和破壞類等瑣事。


二、接著程序進入TAppEncTop.cpp中的TAppEncTop::encode(),主要按順序完成了以下幾件事情:

①、利用fstream構造命名文件並指定模式(這裏涉及一坨C文件,不詳)。

②、圖像YUV緩衝區類創建: 

TComPicYuv*       pcPicYuvOrg = new TComPicYuv;

TComPicYuv*       pcPicYuvRec = NULL;

具體細節在TComPicYuv.cppTComPicYuv.h中,very important.

③、初始化內部類和成員變量: 

xInitLibCfg();( initialize internal variables 

xCreateLib();( create files & encoder class 

xInitLib(m_isField);( initialize encoder class 

 

④、初始化編碼循環變量iNumEncoded和bEos;

⑤、分配原始YUV緩衝區;

、進入編碼循環,利用bEos控製(最關鍵部分);

⑦、釋放原始YUV緩衝區;

⑧、釋放在編碼類中使用的緩衝區;

⑨、釋放緩衝區和類;

⑩、打印總結信息(Bitrate、PSNR、編碼時間等)。


待續。。。。。。


最後更新:2017-04-03 05:40:13

  上一篇:go Oracle性能優化學習筆記之共享Sql語句
  下一篇:go DDMS查看Threads情況