<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 基于NiosII的低碼率實(shí)時(shí)H.264視頻編碼器

基于NiosII的低碼率實(shí)時(shí)H.264視頻編碼器

作者: 時(shí)間:2009-02-20 來(lái)源:網(wǎng)絡(luò ) 收藏

引 言

  H.264標準作為新一代視頻編碼標準,是面向多比特率的視頻編碼標準,也稱(chēng)JVT/AVC標準,既可用于高碼率的HDTV和數字存儲系統,也可用于的實(shí)時(shí)通信系統。在相同的圖像質(zhì)量情況下,H.264比H.263和MPEG一4可以節省20%~50%的碼率。就其基本檔次而言,編碼器的復雜度是H.263的10倍左右。H.264良好的網(wǎng)絡(luò )親和性和優(yōu)異的壓縮性能使其成為視頻應用的首選,但其巨大的運算量成為許多應用的瓶頸。筆者基于設計了一種實(shí)時(shí)應用的編碼系統。該系統充分利用FPGA的并行設計結構,對視頻數據采用高壓縮比的H.264標準編碼,能很好地滿(mǎn)足實(shí)時(shí)編碼的要求。

  1 H.264編碼系統結構設計

  根據H.264/AVC編碼器原理及結構,同時(shí)考慮到現有硬件資源的限制以及該設計的應用需求,設計了圖1所示的H.264/AVC編碼系統結構。


攝像頭攝入的視頻圖像首先經(jīng)過(guò)視頻采集模塊處理,并將當前幀的圖像數據存入SRAM。然后,以宏塊MB(macroblock)為單元,從SRAM中讀取原始圖像,并根據MB所在圖像幀內的位置,讀取重建幀中的參考像素進(jìn)行幀內預測,并將預測宏塊與當前宏塊像素做差即可得到預測殘差。接下來(lái),對殘差圖像進(jìn)行整數DCT變換或Had—amard變換,并對變換輸出進(jìn)行量化。量化輸出的殘差圖像一方面通過(guò)反變換和反量化處理生成重建圖像供幀內預測作為參考,另一方面經(jīng)過(guò)重排序、熵編碼處理得到最終的圖像壓縮碼流輸出。

  根據H.264/AVC標準,將所設計的整個(gè)編碼系統從結構上劃分為圖像采集、幀內預測、變換量化、熵編碼等幾個(gè)主要部分。各個(gè)模塊之間通過(guò)流水線(xiàn)的方式進(jìn)行處理,可以有效地提高硬件的執行效率。

  2 基于Cyclone II FPGA的H.264編碼器的實(shí)現

  系統采用SOPC的設計方式,主要由視頻采集模塊、處理器系統組成。采用Altera公司的DE2開(kāi)發(fā)板為開(kāi)發(fā)平臺,將視頻采集、處理器集成到一個(gè)SOPC系統中。其中NiosII處理器系統要承擔圖像采集控制、圖像的H.264壓縮編碼工作。為了保證實(shí)時(shí)性,在充分分析H.264軟件算法運行時(shí)間后,采用自定義模塊對H.264編碼器關(guān)鍵算法進(jìn)行硬件加速。

  2.1 視頻采集模塊

  視頻采集是視頻圖像處理、傳輸的前提,采集到的數字視頻圖像好壞將直接影響到視頻處理的結果。圖2給出了圖像處理系統的視頻采集結構。

 ADI公司的多制式視頻解碼芯片ADV7181B對采集的視頻圖像進(jìn)行模數轉換。ADV7181B可以自動(dòng)檢測諸如NTSC、PAL和SEC0M制式的基帶視頻信號,并將其轉換為基于4:2:2取樣的16/8位兼容的CCIR601/CCIR656格式的數字視頻信號;具有6路模擬視頻輸入端口,且采用單一的27 MHz晶振時(shí)鐘輸入;用戶(hù)可以通過(guò)兩線(xiàn)的I2C接口對ADV7181B的工作模式進(jìn)行配置。

  系統上電時(shí),首先使用I2C模塊對ADV7181B的內部寄存器進(jìn)行配置。由于攝像頭輸出的是PAL制式的模擬視頻信號,因此需要相應地將ADV7181B配置為PAL制式的模擬視頻信號輸入,并將其轉換為CCIR656格式的數字視頻信號。ADV7181B將轉換得到的實(shí)時(shí)數字視頻圖像的亮度信號、色度信號(TD_DAT)以及行、場(chǎng)同步信號(TD_HS/VS)同時(shí)輸入到FPGA芯片中,通過(guò)圖像采集模塊提取需要的數字圖像信息,并將其轉存至AlteraDE2開(kāi)發(fā)板提供的具有512 KB存儲容量的SRAM中,用于緩存待處理圖像幀。

  下面介紹圖像采集模塊的設計與實(shí)現方法。

  根據上面對視頻采集部分硬件結構的分析,設計了圖3所示的視頻采集模塊結構框圖??梢钥闯?,圖像采集模塊主要包含圖像提取、色度取樣率變換、Y/Cb/Cr圖像分量分離以及圖像緩存SRAM讀寫(xiě)控制等單元。

其中圖像提取子模塊在H.264/AVC編碼模塊的視頻采集控制信息的控制下,從ADV7181B轉換輸出的PAL制數字視頻圖像中提取需要的圖像數據。攝像頭采集的實(shí)際圖像大小為768×576像素的隔行掃描視頻輸入信號,其中基數場(chǎng)和偶數場(chǎng)在時(shí)間上先后輸入。由于系統處理的圖像大小為320×240像素,因此需要對輸入的數字視頻進(jìn)行截取,以滿(mǎn)足系統的處理要求。

  考慮到在一幀圖像中的頂場(chǎng)與底場(chǎng)數據差異不大,因此在對圖像進(jìn)行截取時(shí),僅對底場(chǎng)中間240行的連續320個(gè)相鄰像素點(diǎn)進(jìn)行提取,以輸出320×240像素的視頻圖像數據。其具體提取流程如圖4所示。

 H.264/AVC支持對色度取樣為4:2:O格式的逐行或隔行掃描數字圖像進(jìn)行處理,因此需要對提取的數字圖像進(jìn)行色度取樣率變換。通過(guò)對相鄰奇數行和偶數行的色度圖像分量進(jìn)行簡(jiǎn)單的平均,可實(shí)現由4:4:4向4:2:O的色度取樣率變換,如圖5所示。

經(jīng)過(guò)取樣率變換后的圖像數據需要根據Y/Cb/Cr圖像類(lèi)型在SRAM中分片區緩存,以方便后續的的編碼處理。圖6給出了實(shí)際圖像的色度分量在取樣率變換前后的效果。



關(guān)鍵詞: NiosII H.264 視頻編碼器 低碼率

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>