天天看點

【H.264/AVC視訊編解碼技術詳解】四. 常見H.264視訊編解碼器(X264和JM)及參考軟體JM的下載下傳與編解碼常見H.264視訊編解碼器(X264和JM)及參考軟體JM的下載下傳與編解碼

我們已經知道,H.264是一種視訊壓縮标準,其隻規定了符合标準的碼流的格式,以及碼流中各個文法元素的解析方法。H.264标準并未規定編碼器的實作或流程,這給了不同的廠商或組織在編碼實作方面極大的自由度,并産生了一些比較著名的開源H.264編解碼器工程。其中H.264編碼器中最著名的兩個當屬JM和X264,這二者都屬于H.264編碼标準的一種實作形式。

JM:JM通常被認為是H.264标準制定團隊所認可的官方參考軟體,基本實作了H.264标準的全部特征。JM在運作時的運算過程較為複雜,而且沒有采用彙編優化等加速方法,是以運作速度較慢,很難達到實時編解碼。通常主要用于編解碼技術的科學研究領域,目前(2016.7)最新版本為JM 19。

X264:X264是另一個著名的H.264開源視訊編碼器,由開源組織VideoLan開發制定。X264是目前企業界應用最為廣泛的開源編碼器,主要因為X264相對于JM進行了大量的優化與簡化,使其運作效率大幅提高,主要有對編碼代價計算方法的簡化以及添加了MMX、SSE彙編優化等部分。雖然編碼的品質在某些情況下相對于JM略有下降,但是已無法掩蓋其在可應用性,尤其是實時編碼方面無可比拟的優勢。

在目錄中,可以選擇最新版的jm19.0,也可從old_jm中選擇曆史版本,如選擇jm8.6版本。下載下傳後解壓,可見其中包含lencod、ldecod等工程:

在工程目錄的bin檔案夾中包含了多個字尾名為.cfg的配置檔案:

encoder_baseline.cfg:用于實作H.264基準檔次的編碼的配置檔案;

encoder_main.cfg:用于實作H.264主要檔次的編碼的配置檔案;

encoder_extended.cfg:用于實作H.264擴充檔次的編碼的配置檔案;

将encoder_baseline.cfg複制一份并重命名為encoder.cfg,如此編碼器便自動将該配置檔案作為編碼器的預設配置。修改配置檔案為:

将待編碼的YUV序列與encoder.cfg檔案置于lencod.exe生成的目錄下,執行編碼程式,即可生成符合H.264标準的碼流:

繼續閱讀