HM編碼架構

2021-08-19 06:39:21 字數 1440 閱讀 6677

首先進入編碼encmain.cpp裡的int main 函式,主函式的入口,裡面包含的重要函式是時間計數函式和encode()函式。

在encode函式中開始編碼。encode函式中,首先輸入yuv序列,初始化內部類和成員變數,轉換色彩空間,建立原始的yuv緩衝區,讀取yuv檔案,然後開始編碼每一幀。最後刪除原始yuv緩衝區及使用的類,列印總的位元速率。裡面包含的重要函式是tenctop::encode()。

在encode函式中,重要函式是compressgop()。

compressgop 中重要函式是predcompressslice()和compressslice().

compressslice()中重要函式是compressctu()。

compressctu()中重要函式是xcompresscu().

xcompresscu()包含的重要函式是xcomputeqp()、xcheckrdcostinter(),xcheckrdcostmerge2nx2n()、xcheckrdcostintra()、xcheckintrapcm()、 xcheckbestmode()。

在xcheckrdcostinter()中重要函式是xcheckbestmode()用於檢驗是否是cu最優深度,以及predintersearch()主要進行me和mc。

predintersearch()中重要函式是xestimatemvpredamvp()、 xmotionestimation ()、xcheckbestmvp()、motioncompensation()、xmergeestimation()、setwpscalingdistparam()。

xmotionestimation ()中重要函式 xpatternsearch ()全搜尋、xpatternsearchfast()快速搜尋、xsetsearchrange()。

xpatternsearchfast()中重要函式 xtzsearch()、xtzsearchselective()。

xtzsearch()中重要函式是xtzsearchhelp()、xtz8pointdiamondsearch() 、 xtz8pointsquaresearch()。

xestimatemvpredamvp()中重要函式是fillmvpcand()。

在xcheckrdcostmerge2nx2n重要函式是motioncompensation()和encoderesandcalcrdintercu(),以及最重要的函式getintermergecandidates(),xcheckbestmode()。

xcheckrdcostintra()中重要函式是estintrapredlumaqt()、estintrapredchromaqt()、xcheckbestmode()。

estintrapredlumaqt()中重要函式是 predintraang()。

predintraang()中重要函式xpredintraplanar()、xpredintraang()。

HEVC函式入門(1) HM編碼器的基本結構

首先說明這篇主要是記錄用 意思是裡面很多是我自己的理解,我也是剛入門的新手,肯定有許多不正確的地方,還請輕噴 使用的是hm 16.3 vs2015 當然如果有新手不太懂的話也可以看看。本文主要參照 int main int argc,char argv catch df program option...

HM除錯成功 二

第三步 在vs2013中開啟檔案 c users vip desktop hm14.0 hm 14.0 build hm vc10 per sequence中的檔案根據你所要測試的序列的畫素數來選擇,在配置檔案中還可以根據你所想要的效果來改引數。具體的含義還不太清楚。第五步 將配置檔案中的input...

HM配置引數介紹(2)

今天再看了hevc的幾個引數 對於之前不太明白的東西,再整理了下。進展很慢,要加速。第乙個是cfg檔案中的 decodingrefreshtype這個引數,它一共有3種取值 0 1 2.它代表可以隨機訪問點。0 none,即不存在隨機訪問點 1 cdr 在10.0中稱為cra clean rando...