HM10.0使用

在正式討論HEVC的技術細節之前,有必要先建立好符合標準的實驗平臺,這對理解編解碼的技術具有很大幫助。最方便,最有效,認可程度也最高的自然是JCT-VC工作組公佈的參考代碼HM系列了。這裏,我們用最新版的參考代碼HM10.0爲例,詳細闡述如何用參考軟件成功編碼一個視頻碼流。
參考代碼的下載請到我的網盤: http://pan.baidu.com/s/1kT3l78b 下載。
(1)下載完成後解壓,文件夾中包含下圖所示的內容:
【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用
不同的開發平臺要選擇不同的工程文件,蘋果的xcode工程文件在HM.xcodeproj中,windows和linux的工程文件在build文件夾中。我所使用的是visual studio 2010,因此選擇build文件夾中的HM_vc10.sln,從VS中找到目錄文件,打開。
(2)在visual studio 2010中打開後,發現整個solution包含七個工程(TAppCommon,TAppEncoder,TAppDecoder,TLibCommon,TLibEncoder,TLibDecoder,TLibVideoIO,下圖所示)。這些工程分別的功能在以後討論。今天的目的僅僅是能成功將YUV文件編碼成HEVC格式的碼流,因此將TAppEncoder設爲活動工程(在該工程上由右鍵->Set as StartUp Project)。
【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用

(3)編譯整個Solution(F7),等待7個工程編譯完成後,根目錄下新生成了一個文件夾,路徑爲:(根目錄位置\HM-10.0rc1\bin\vc10\Win32\Debug),其中有成功編譯完成的兩個可執行文件TAppDecoder.exe和TAppEncoder.exe,以及其他一些副產品。
【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用
(4)工程目錄中的cfg文件夾中有多個預先設定好的配置文件,分別代表了不同的編碼模式。該目錄中的pre-sequence文件夾中指定了多個輸入測試序列的配置信息。我們在這裏選擇encoder_intra_main.cfg作爲編碼的配置文件,另外用akiyo_qcif.yuv作爲測試序列。新建一個cfg文件命名爲akiyo.cfg,內容如下:
#======== File I/O ===============
InputFile                     : E:\TestSquence\176x144\akiyo_qcif.yuv
InputBitDepth                 : 8           # Input bitdepth
FrameRate                     : 30          # Frame Rate per second
FrameSkip                     : 0           # Number of frames to be skipped in input
SourceWidth                   : 176        # Input  frame width
SourceHeight                  : 144         # Input  frame height
FramesToBeEncoded             : 50         # Number of frames to be coded
將兩個cfg文件拷貝到(3)中的目錄下,待編碼序列要依據cfg的路徑存放,否則會出現找不到文件的錯誤。
(5)配置工程屬性。
在TAppEncoder工程上右鍵單擊->Properties->Configuration Properties->Debugging。將命令行參數和工作目錄改成下圖所示:
【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用

這一步也可以用命令行完成,效果是一樣的。
(6)編譯運行。Debug->Start Without Debuging->是,命令行窗口中會顯示編碼的信息和結果,如下圖所示。
【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用

【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用

【HEVC學習與研究】7.HEVC參考代碼HM10.0的使用
發佈了20 篇原創文章 · 獲贊 21 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章