AVS編碼---lencod.c中函數流程以及各函數作用

剛開始學習AVS,先瀏覽了一遍lencod.c函數,下面是我在看程序時記錄的一個大概過程,由於本人是新手,從沒接觸過視頻編解碼方面的知識,肯定有一些解釋不對的地方,歡迎指正。

首先看lencod.c函數

進入main函數的第一個函數式Configure(argc, argv);

該函數的作用:解析命令行參數和讀取配置文件。

---》》CheckToolsInProfile()函數,

作用:??

---》》init_img()

       作用:用合適的參數初始化圖像結構體

---》》frame_pic = malloc_picture()

       作用:爲圖片結構體分配空間

---》》

if(input->InterlaceCodingOption !=FRAME_CODING)

  {

    top_pic= malloc_picture();

   bot_pic = malloc_picture();

  }

       作用:??頂場和底場分配單元

--》》init_rdopt ();

作用:創建最優RD 模式選擇結構體

---》》init_frame_buffers(input,img);

       作用:爲幀緩衝區分配內存

--》》init_global_buffers();

       作用:按幀大小動態分配內存空間,分配的內存需要在free_global_buffers()函數中釋放

 

--》》Init_Motion_Search_Module ()

作用:初始化運動搜索

--》》information_init();

       作用:打印協議頭信息

--》》if(input->RCEnable)

      rc_init_seq();

       作用:在碼率控制可行的情況下初始化碼率控制參數

--》》DefineThreshold()

       作用:在啓用快速運動估計的前提下定義門限值

--》》start_sequence()

       作用:打開輸出文件併產生合適的序列頭

--》》SetImgType()

       作用:設置圖像類型

--》》encode_one_frame ()

    作用:encode one I- or P-frame

--》》encode_one_frame ()

    作用:encode one B-frame

--》》terminate_sequence()

  作用:結束序列並關閉輸出文件

--》》Clear_Motion_Search_Module ();

    作用:釋放運動搜索用到的內存

--》》clear_rdopt ()

    作用:清除最優RD 模式選擇結構體

--》》report()

        作用:報告收集的信息並輸出

--》》free_picture (frame_pic)

        作用:釋放一副圖像

--》》free_global_buffers()

        作用:釋放init_global_buffers()中分配的內存

--》》free_img ()

        作用:釋放圖像的結構

以上就是一個大概的過程吧,還是有很多沒搞明白,接下來就要一個一個的研究學習了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章