日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 電源 > 數(shù)字電源
[導(dǎo)讀]本文概述了H.264視頻壓縮編碼標(biāo)準(zhǔn)的主要特性,簡(jiǎn)要介紹了當(dāng)前H.264的幾種開(kāi)源軟件,詳細(xì)分析了其中X264參考程序的具體結(jié)構(gòu),并針對(duì)TMS320DM642平臺(tái)建議了可能的優(yōu)化方向。

摘要:本文概述了H.264視頻壓縮編碼標(biāo)準(zhǔn)的主要特性,簡(jiǎn)要介紹了當(dāng)前H.264的幾種開(kāi)源軟件,詳細(xì)分析了其中X264參考程序的具體結(jié)構(gòu),并針對(duì)TMS320DM642平臺(tái)建議了可能的優(yōu)化方向。
關(guān)鍵字:H.264;開(kāi)源軟件;X264;TMS320DM642;優(yōu)化

引言

H.264/AVC是ISO/IEC和ITU-T兩大國(guó)際標(biāo)準(zhǔn)化組織聯(lián)合制定的新一代視頻編碼標(biāo)準(zhǔn)。它引入多種宏塊劃分、多模式的幀內(nèi)和幀間預(yù)測(cè)編碼、高精度亞像素運(yùn)動(dòng)估計(jì)、多參考幀運(yùn)動(dòng)補(bǔ)償?shù)燃夹g(shù),提高了壓縮比;采用整數(shù)DCT變換,避免了精度的損失。在碼流結(jié)構(gòu)上,提出VCL層和NAL層的概念,其中增加的NAL層負(fù)責(zé)將編碼器的輸出碼流適配到各種類型的網(wǎng)絡(luò)中,提供了友好的網(wǎng)絡(luò)接口。同時(shí),標(biāo)準(zhǔn)提供的許多工具如參數(shù)集、靈活的宏塊排列次序、冗余片等,使得H.264的碼流在網(wǎng)絡(luò)中傳輸時(shí)具有更強(qiáng)的抗誤碼性能?;贖.264的實(shí)時(shí)編解碼器設(shè)計(jì)與實(shí)現(xiàn)已經(jīng)成為當(dāng)前視頻通信領(lǐng)域的熱點(diǎn)問(wèn)題。

1、H.264開(kāi)源代碼簡(jiǎn)介

       H.264所具有的獨(dú)特優(yōu)勢(shì)促進(jìn)了與之對(duì)應(yīng)的開(kāi)源軟件的開(kāi)發(fā)與應(yīng)用。目前常見(jiàn)的H.264開(kāi)源軟件編解碼器有以下三種 :

       1)JM

       H.264的官方測(cè)試源碼,由德國(guó)HHI研究所負(fù)責(zé)開(kāi)發(fā)。該代碼旨在實(shí)現(xiàn)H.264的所有特性,因而結(jié)構(gòu)冗長(zhǎng),編碼復(fù)雜度極高,多用于學(xué)術(shù)研究,不適于實(shí)際應(yīng)用。

       2)X264

       X264是由法國(guó)巴黎中心學(xué)校的中心研究所于2004年6月發(fā)起,并由許多視頻編碼愛(ài)好者共同完成的項(xiàng)目。其目標(biāo)是實(shí)現(xiàn)實(shí)用的264編碼器,所以它引入MMX、SSE等匯編指令來(lái)提高編碼速度,同時(shí)摒棄了一些耗時(shí)但對(duì)編碼性能提高微小的模塊,如多參考幀等。

       3)T264

       由中國(guó)視頻編碼自由組織聯(lián)合開(kāi)發(fā)的H.264編解碼器。它和X264一樣注重實(shí)用,吸收了JM、X264、XVID的優(yōu)點(diǎn)。但其解碼器只能解T264編碼器生成的碼流。

 

2、X264代碼分析

       本文所介紹的X264為060418版,下文所提到的程序結(jié)構(gòu)和運(yùn)行結(jié)果如不作特殊說(shuō)明均針對(duì)該版本。

       代碼的實(shí)現(xiàn)流程如圖1所示。

圖1  X264編碼流程圖

       整個(gè)代碼的執(zhí)行可以分為以下三個(gè)部分:

    1)數(shù)據(jù)的讀入與存放

       X264開(kāi)辟了unused、next、current、reference等區(qū)域分別保存未處理原始圖片序列、即將編碼幀序列、當(dāng)前編碼幀和參考幀序列,同時(shí)還開(kāi)辟了fenc和fdec區(qū)域用于存放已編碼幀和重構(gòu)幀。

       程序按以下順序讀入數(shù)據(jù):首先,從YUV數(shù)據(jù)文件中讀取數(shù)據(jù)存到臨時(shí)變量pic_in,同時(shí)為unused開(kāi)辟存儲(chǔ)空間,并用fenc指針指向這個(gè)空間。接著,將pic_in中的圖片數(shù)據(jù)拷貝到fenc所指向的區(qū)域,并在拷貝完成后對(duì)圖片大小進(jìn)行判斷,如果長(zhǎng)寬不為16的整數(shù)倍則進(jìn)行像素?cái)U(kuò)展;將處理后的fenc區(qū)域數(shù)據(jù)放入next區(qū)域。之后,如果存在B幀,則從next區(qū)域取出B幀以后的P幀放到current區(qū)域中,也就是說(shuō)先編碼I、P幀再編碼之間的B幀;否則,直接從next區(qū)域取出一幀存入current區(qū)域。此時(shí)current區(qū)域中存放的就是已經(jīng)過(guò)預(yù)處理的即將要編碼的幀數(shù)據(jù)了。最后,由于fenc區(qū)域是編碼的直接對(duì)象,再將current區(qū)域中的內(nèi)容拷貝到fenc中正式開(kāi)始編碼。

    2)數(shù)據(jù)的壓縮編碼

    ①判斷幀類型,初始化相關(guān)參數(shù)

如果是IDR幀,意味著是一個(gè)新切片的開(kāi)始。在H.264中為了防止編碼錯(cuò)誤擴(kuò)散規(guī)定當(dāng)前切片不以本切片以外的其它幀為參考,因而遇到IDR幀需要重置參考幀區(qū)域。同時(shí),將SEI(Sequence Enhancement Information)、SPS(Sequence Parameter Set)和PPS(Picture Parameter Set)分別單獨(dú)寫入NAL單元。這三個(gè)參數(shù)集集合了編解碼的核心參數(shù),直接關(guān)系解碼端能否正常解碼。如果不是IDR幀,依據(jù)幀類型設(shè)定當(dāng)前NAL單元的類型和切片類型。

接著進(jìn)行一系列初始化參數(shù)的操作,包括建立關(guān)于參考幀的list0和list1,初始化量化參數(shù)QP、MV、參考幀等相關(guān)變量,初始化比特流的起始位置和大小等。

    ②以宏塊為單位對(duì)視頻數(shù)據(jù)進(jìn)行編碼

    在進(jìn)行預(yù)測(cè)編碼之前必須得到周圍塊的相關(guān)信息。在X264中開(kāi)辟了intra4x4_pred_mode和non_zero_count區(qū)域用來(lái)存放當(dāng)前宏塊左側(cè)和上側(cè)相鄰宏塊的預(yù)測(cè)模式和非零值個(gè)數(shù)。在編碼開(kāi)始之前通過(guò)x264_macroblock_cache_load()函數(shù)將相關(guān)數(shù)據(jù)載入緩存。然后,利用x264_macroblock_analyse()函數(shù)分析參數(shù),確定最佳編碼模式。I片從9種4x4模式和4種16x16模式中選擇模式; P片選擇幀間預(yù)測(cè)模式下的宏塊分割方式或幀內(nèi)預(yù)測(cè)模式下的4x4模式和16x16模式。接著,用x264_macroblock_encode()函數(shù)對(duì)宏塊進(jìn)行編碼。編碼過(guò)程嚴(yán)格按照編碼框架中規(guī)定的DCT變換、zigzag掃描和熵編碼的過(guò)程以先亮度塊再色度塊的順序進(jìn)行。需要聲明的是編碼過(guò)程對(duì)DC參數(shù)和AC參數(shù)的處理是分開(kāi)進(jìn)行的:首先對(duì)整個(gè)宏塊進(jìn)行DCT變換,然后將亮度塊和色度塊的DC參數(shù)抽出分別組成4×4和2×2的子塊并對(duì)剩余AC參數(shù)進(jìn)行量化掃描,接著對(duì)DC子塊再進(jìn)行Hadmard變換、量化、zigzag掃描、反變換、反量化,再對(duì)剩下的AC參數(shù)進(jìn)行反量化,最后將處理后的DC子塊和AC子塊重新組合并對(duì)組合后的宏塊進(jìn)行IDCT變換。

    以上過(guò)程完畢以后,統(tǒng)計(jì)CBP(Coded Block Pattern)信息。CBP一共6bit,用于表示當(dāng)前宏塊是否存在非零值,主要用于決定熵編碼時(shí)采用的碼表。其中,高2bit表示2個(gè)8×8色度塊的CBP (2:Cb、Cr中至少一個(gè)4×4塊的AC系數(shù)不全為0;1:Cb、Cr中至少一個(gè)2×2的DC系數(shù)不全為0;0:所有色度系數(shù)全0)。低4bit分別對(duì)應(yīng)4個(gè)8×8亮度塊,第i位(i= 0、1、2、3)表示一個(gè)MB中第i行的4個(gè)4×4子塊是否有非零參數(shù)。若存在非零值,則將相應(yīng)位置1。將各子塊的非零值個(gè)數(shù)保存到non_zero_count區(qū)域。使用先前得到的CBP查相應(yīng)碼表進(jìn)行熵編碼,將編碼參數(shù)和編碼數(shù)據(jù)寫入比特流。

    ③保存編碼信息

    利用x264_macroblock_cache_save()函數(shù)將當(dāng)前MB最下一行和最右一列的子塊的編碼模式保存到intra4x4_pred_mode,將子塊非零參數(shù)的個(gè)數(shù)保存到non_zero_count中,以備下一次預(yù)測(cè)編碼采用。最后,統(tǒng)計(jì)MB信息,更新參考幀列表,并從unused區(qū)域取出新的幀放入fenc區(qū)域以備下次編碼。

    3)數(shù)據(jù)的輸出

    對(duì)NAL編碼數(shù)據(jù)加上NAL頭信息組成完整的NAL單元,輸出到本地文件。

 

3、X264在TMS320DM642平臺(tái)上的移植與優(yōu)化

       原始的X264代碼是基于PC平臺(tái)的,程序通過(guò)采用MMX和SSE語(yǔ)言編寫SAD、DCT等函數(shù)使X264具有很高的編碼速度。而在實(shí)際應(yīng)用中,要想實(shí)時(shí)實(shí)現(xiàn)H.264的復(fù)雜算法,必須借助DSP這樣具有超強(qiáng)運(yùn)算能力的嵌入式平臺(tái)。本文采用TMS320DM642開(kāi)發(fā)板作為實(shí)現(xiàn)和開(kāi)發(fā)的平臺(tái),并在其上進(jìn)行代碼的移植和優(yōu)化。

       1)TMS320DM642硬件平臺(tái)簡(jiǎn)介

       TMS320DM642是一款基于TI 的第二代高性能超長(zhǎng)指令字(VLIW) 架構(gòu)VelociTI.2(tm)的高性能DSP,該器件是目前計(jì)算密集型視頻/圖像應(yīng)用領(lǐng)域的理想選擇,其主要特點(diǎn)如下 :

    ① 增強(qiáng)功能單元:DM642 的8 個(gè)功能單元中的VelociTI.2 擴(kuò)展包括加速視頻與影像應(yīng)用性能的新指令。

    ② L1/L2 分級(jí)存儲(chǔ)器結(jié)構(gòu):16 KB 直接映射的L1P 程序高速緩存,16 KB 雙路關(guān)聯(lián)L1D 數(shù)據(jù)高速緩存,256 KB L2 統(tǒng)一映射RAM/高速緩存(靈活的RAM/緩存分配)。

    ③ 64 位外部存儲(chǔ)器接口(EMIF):可實(shí)現(xiàn)與異步存儲(chǔ)器和同步存儲(chǔ)器無(wú)縫連接。

    ④ 增強(qiáng)型直接存儲(chǔ)器存取(EDMA)控制器(64個(gè)獨(dú)立通道)。

       以DM642為硬件平臺(tái)開(kāi)發(fā)視頻編碼器,開(kāi)發(fā)者可以充分利用其硬件特性,提高視頻編解碼算法的運(yùn)算速度。

       2)X264的移植

       由于適用于PC機(jī)通過(guò)MMX和SSE編寫的代碼在DSP上無(wú)法運(yùn)行,想要使X264代碼在DM642上運(yùn)行,必須將原來(lái)的代碼加以修改使其變成純C語(yǔ)言的代碼。具體做法是:在X264代碼中將HAVE_MMX編譯選項(xiàng)屏蔽,同時(shí)將代碼中與該編譯選項(xiàng)相關(guān)的代碼注釋掉。當(dāng)程序成為純C代碼時(shí),就可以開(kāi)始往DM642上移植了。

    然而,DSP開(kāi)發(fā)工具CCS有自己的ANSI C編譯器和優(yōu)化器,并有自己的語(yǔ)法規(guī)則和定義。所以需要將代碼作相應(yīng)修改,使其完全符合DSP中C的規(guī)則,同時(shí)要配置CCS的編譯選項(xiàng),才能使X264在CCS和VC下運(yùn)行產(chǎn)生的結(jié)果一致。這個(gè)過(guò)程稱為代碼的DSP化。

       由于純C語(yǔ)言編寫的程序無(wú)法利用DSP的并行處理機(jī)制,此時(shí)代碼的運(yùn)行速度非常慢。在DM642平臺(tái)上,對(duì)相同的YUV數(shù)據(jù)(此處采用container.qcif)進(jìn)行編碼,若采用帶X86匯編的X264代碼(DCT和SAD部分采用匯編代碼)在VC環(huán)境下運(yùn)行,編碼速度能達(dá)到QCIF 60fps;若將代碼改為純C語(yǔ)言仍然在VC下運(yùn)行,則編碼速度馬上降到QCIF 10fps ;將該代碼稍作修改移植到DM642的硬件平臺(tái),用CCS編譯,編碼速度僅能達(dá)到1幀/6秒。這樣的速度離實(shí)時(shí)處理的目標(biāo)還非常遙遠(yuǎn)。

       所以,必須結(jié)合DSP本身的特點(diǎn),對(duì)代碼進(jìn)行優(yōu)化,才能在DM642平臺(tái)上實(shí)現(xiàn)X264對(duì)視頻圖像的實(shí)時(shí)處理。

3)X264的優(yōu)化

       X264代碼的優(yōu)化分為三個(gè)層次:項(xiàng)目級(jí)優(yōu)化,算法級(jí)優(yōu)化和指令級(jí)優(yōu)化。

    ①項(xiàng)目級(jí)優(yōu)化:主要通過(guò)設(shè)置CCS編譯器的選項(xiàng),調(diào)整代碼結(jié)構(gòu)和合理分配內(nèi)存來(lái)實(shí)現(xiàn)。如設(shè)置-o3選項(xiàng),將常用數(shù)據(jù)分配到訪問(wèn)速度高的片內(nèi)內(nèi)存等。

    ②算法級(jí)優(yōu)化:提出快速高效算法,從算法上挖掘潛力,提高運(yùn)行速度,達(dá)到優(yōu)化目的。用X264支持的4種運(yùn)動(dòng)估計(jì)算法(菱形搜索算法、六邊形搜索算法、非對(duì)稱十字型多層次六邊形格點(diǎn)搜索算法和連續(xù)消除法)處理同樣的YUV數(shù)據(jù)(此處仍為container.qcif),編碼速度分別為13fps、11fps、9fps和4fps,可見(jiàn)不同的運(yùn)動(dòng)估計(jì)算法引起的編碼速度的差別非常明顯。

    ③指令級(jí)優(yōu)化:這部分又可以分為C語(yǔ)言級(jí)的優(yōu)化和匯編級(jí)的優(yōu)化。前者主要包括消除冗余代碼、調(diào)整數(shù)據(jù)類型、優(yōu)化程序結(jié)構(gòu)、打開(kāi)for循環(huán)和充分利用內(nèi)聯(lián)函數(shù)等操作。后者主要是將耗時(shí)函數(shù)抽取出來(lái),用線性匯編改寫,充分利用豐富的媒體處理指令,最大限度的利用DSP的并行性,加快編碼速度。匯編級(jí)優(yōu)化涉及到的主要部分有SAD計(jì)算、DCT變換、反DCT變換、量化等過(guò)程比較規(guī)范,重復(fù)性比較高的計(jì)算過(guò)程。

 

4、結(jié)束語(yǔ)

    目前,H.264視頻編碼技術(shù)以其獨(dú)有的優(yōu)勢(shì),受到業(yè)界幾乎所有主流視頻相關(guān)設(shè)備、產(chǎn)品廠商的支持。由于完全獨(dú)立開(kāi)發(fā)編解碼器所需要的人力和物力都很大,許多公司和團(tuán)體都采用直接修改移植開(kāi)源代碼的方式以求縮短開(kāi)發(fā)周期。在目前可選的幾種開(kāi)源代碼中, X264以其結(jié)構(gòu)精簡(jiǎn)適于應(yīng)用的特點(diǎn),成為眾多團(tuán)體選擇的對(duì)象。熟悉X264代碼,以此為基礎(chǔ)將其移植到DSP平臺(tái)并進(jìn)行優(yōu)化,對(duì)構(gòu)建高效的多媒體平臺(tái)具有一定的實(shí)際意義。

 

參考文獻(xiàn)

[1] 畢厚杰.新一代視頻壓縮編碼標(biāo)準(zhǔn)-H.264/AVC.人民郵電出版社,2005.

[2] 李世平.2005年全球H.264編解碼器薈萃. http://blog.csdn.net/sunshine1314

[3] 李方慧,王 飛,何佩琨.TMS320C6000 DSPs 原理與應(yīng)用(第二版) [M].電子工業(yè)出版社,2003.

[4] 張旭東,魏振宇,史鵾.H.264編解碼器在C6416 DSP上的實(shí)現(xiàn)與優(yōu)化.電子產(chǎn)品世界,2005,5:71-74.

[5] 安向陽(yáng),沈庭芝.基于TMS320DM642的H.264編碼的實(shí)現(xiàn)和優(yōu)化.微計(jì)算機(jī)信息,2005,7-2:128-130.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過(guò)藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實(shí)黨中央、國(guó)務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來(lái)&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營(yíng)管理平臺(tái)提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺(tái)對(duì)百余家企業(yè)客戶的運(yùn)營(yíng)管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會(huì)、上海市發(fā)展和改革委員會(huì)、上海市商務(wù)委員會(huì)、上海市教育委員會(huì)、上海市科學(xué)技術(shù)委員會(huì)指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會(huì)展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動(dòng)駕駛

推進(jìn)卓越制造,擴(kuò)大產(chǎn)能并優(yōu)化布局 蘇州2025年9月5日 /美通社/ --?耐世特汽車系統(tǒng)與蘇州工業(yè)園區(qū)管委會(huì)正式簽署備忘錄,以設(shè)立耐世特亞太總部蘇州智能制造項(xiàng)目。...

關(guān)鍵字: 智能制造 BSP 汽車系統(tǒng) 線控

北京2025年9月5日 /美通社/ -- 9月4日,在北京市人民政府新聞辦公室舉行的"一把手發(fā)布?京華巡禮"系列主題新聞發(fā)布會(huì)上,北京經(jīng)開(kāi)區(qū)對(duì)外發(fā)布,北京經(jīng)濟(jì)技術(shù)開(kāi)發(fā)區(qū)(簡(jiǎn)稱"北京經(jīng)開(kāi)區(qū)&q...

關(guān)鍵字: 人工智能 模型 開(kāi)源 AI

慕尼黑和北京2025年9月4日 /美通社/ -- 寶馬集團(tuán)宣布,新世代首款量產(chǎn)車型BMW iX3將于9月5日全球首發(fā),9月8日震撼亮相慕尼黑車展。中國(guó)專屬版車型也將在年內(nèi)與大家見(jiàn)面,2026年在國(guó)內(nèi)投產(chǎn)。 寶馬集團(tuán)董事...

關(guān)鍵字: 寶馬 慕尼黑 BSP 數(shù)字化

北京2025年9月4日 /美通社/ --?在全球新一輪科技革命與產(chǎn)業(yè)變革的澎湃浪潮中,人工智能作為引領(lǐng)創(chuàng)新的核心驅(qū)動(dòng)力,正以前所未有的深度與廣度重塑各行業(yè)發(fā)展格局。體育領(lǐng)域深度融入科技變革浪潮,駛?cè)霐?shù)字化、智能化轉(zhuǎn)型快車...

關(guān)鍵字: 人工智能 智能體 AI BSP
關(guān)閉