新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > H.264在ADSP-BF561上的實現與優化

        H.264在ADSP-BF561上的實現與優化

        作者: 時間:2009-05-25 來源:網絡 收藏
        目前,音視頻技術日新月異,其中,視頻實時編碼傳輸極具代表性。在視頻壓縮算法領域,新一代視頻壓縮標準以其優異的壓縮性能和圖像質量使視頻實時編碼傳輸技術的成為可能。但該標準的計算復雜度高,用一般的圖像處理芯片難以達到實時編解碼的要求,它需要快速、穩定的處理器作為硬件平臺。是ADI公司推出的高性能多媒體處理器。其主要特點是具有兩個ADSP-BF533處理器核心(以下簡稱核心A和核心B),最高時鐘頻率達到600MHz,其內部采用哈佛總線結構,存儲模型層次化。其典型應用模式是A核運行嵌入式操作系統,B核運行多媒體處理算法,如。本文提出了一套采用芯片視頻壓縮算法的設計方案,結合該DSP平臺對算法進行了針對性的,充分發揮了強大的處理能力。
        1 算法介紹
        1.1 H.264編碼模型框架
          H.264以其高壓縮比、高圖像質量和良好的網絡親和性廣受業界歡迎。在同等質量條件下,H.264的數據壓縮比比MPEG-2高2~3倍,比MPEG-4高1.5~2倍。其需要的帶寬只有MPEG-4的50%, MPEG-2的12.5%。
          H.264標準采用分層體系結構,系統分為:視頻編碼層VCL(Video Coding Layer),負責高效的數字視頻壓縮;網絡抽象層NAL(Network Abstraction Layer),負責對數據進行打包和傳送。H.264編碼圖像通常分為三種類型:I幀、P幀、B幀。I幀為幀內編碼幀,其編碼不依賴于已編碼的圖像數據。P幀為前向預測幀,B幀為雙向預測幀,編碼時都需要根據參考幀進行運動估計。同時,H.264在提高圖像傳輸容錯性方面做了大量工作,重新定義了適于圖像的結構劃分。在編碼時,圖像幀各部分被劃分到多個Slice結構中,每個Slice都可以被獨立編碼,不受其他部分影響。Slice由圖像最基本的結構――宏塊組成,每個宏塊包含一個16×16的亮度塊和兩個8×8的色度塊。H.264標準的整體編碼框圖如圖1所示。編碼過程中,原始數據進入編碼器后,當采用幀內編碼時,首先選擇相應的幀內預測模式進行幀內預測,隨后對實際值和預測值之間的差值進行變換、量化和嫡編碼,同時編碼后的碼流經過反量化和反變換之后重構預測殘差圖像,再與預測值相加得出重構幀,得出的結果經過去塊濾波器平滑后送入幀存儲器。采用幀間編碼時,輸入的圖像塊首先在參考幀中進行運動估計,得到運動矢量。運動估計后的殘差圖像經整數變換、量化和嫡編碼后與運動矢量一起送入信道傳輸。同時另一路碼流以相同的方式重構后,經去塊濾波后送入幀存儲器作為下一幀編碼的參考圖像。

        本文引用地址:http://www.104case.com/article/166951.htm

        1.2 H.264關鍵技術
        1.2.1 幀內預測

          H.264引入了幀內預測以提高壓縮效率。幀內預測編碼就是利用周圍鄰近的像素值來預測當前的像素值,然后對預測誤差進行編碼。這種預測是基于塊的。對于亮度分量,塊的大小可以在16×16和4×4之間選擇,16×16有4種預測模式,4×4有9種預測模式;對于色度分量,預測是對整個8×8塊進行的,有4種預測模式。
        1.2.2 幀間預測
          幀間預測時所用塊的大小可變。假設基于塊的運動模型,其塊內的所有像素都做了相同的平移,在運動比較劇烈或者運動物體的邊緣外,這一假設會與實際出入較大,從而導致較大的預測誤差,這時減小塊的大小可以使假設在小塊中依然成立。另外小塊所造成的塊效應相對也小,因此,小塊可以提高預測的效果。H.264一共采用了7種方式對一個宏塊進行分割,每種方式下塊的大小和形狀都不相同,編碼器可以根據圖像的內容選擇最好的預測模式。與僅使用16x16塊進行預測相比,使用不同大小和形狀的塊可以使碼率節約15%以上。
          同時,幀內預測采用了更精細的預測精度,H.264中亮度分量的運動矢量使用1/4像素精度。色度分量的運動矢量使用1/8像素精度。
        1.2.3 多幀參考
          H.264支持多幀參考預測,最多可以有5個在當前幀之前的解碼幀作為參考幀產生對當前幀的預測,提高H.264解碼器的錯誤恢復能力。
        1.2.4 整數變換
          H.264對殘差圖像的4×4整數變換技術,采用定點運算來代替以往DCT變換中的浮點運算。以降低編碼時間,同時也更適合硬件平臺的移植。
        1.2.5 熵編碼
          H.264支持兩種熵編碼方法,即CAVLC(基于上下文的自適應可變長編碼)和CABAC(基于上下文的自適應算術編碼)。其中CAVLC的抗差錯能力比較高,但編碼效率比CABAC低;而CABAC的編碼效率強,但需要的計算量和存儲容量更大。
        1.2.6 去方塊濾波
          去方塊濾波的作用是消除經反量化和反變換后重建圖像中由于預測誤差產生的塊效應,從而改善圖像的主觀質量和預測誤差。經過濾波后的圖像將根據需要放在緩存中用于幀間預測,而不是僅僅用來改善主觀質量,因此該濾波器位于解碼環中。對于幀內預測,使用的是未經過濾波的重建圖像。
        2 算法
        2.1 平臺選擇
        2.1.1 ADSP-BF561芯片介紹

          ADSP-BF561是Blackfin系列中的一款高性能定點DSP視頻處理芯片。其主頻最高可達750 MHz,內核包含2個16位乘法器MAC、2個40位累加器ALU、4個8位視頻ALU,以及1個40位移位器。該芯片中的兩套數據地址產生器(DAG)可為同時從存儲器存取雙操作數提供地址,每秒可處理1 200兆次乘加運算。芯片帶有專用的視頻信號處理指令以及100KB的片內L1存儲器(16 KB的指令Cache,16 KB的指令SRAM,64 KB的數據Cache/SRAM,4 KB的臨時數據SRAM)、128 KB的片內L2存儲器SRAM,同時具有動態電源管理功能。此外,Blackfin處理器還包括豐富的外設接口,包括EBIU接口(4個128 MB SDRAM接口,4個1 MB異步存儲器接口)、3個定時/計數器、1個UART、1個SPI接口、2個同步串行接口和1路并行外設接口(支持ITU-656數據格式)等。Blackfin處理器在結構上充分體現了對媒體應用(特別是視頻應用)算法的支持。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 囊谦县| 桦川县| 嵊泗县| 宿迁市| 东乡县| 甘南县| 灌阳县| 天长市| 沭阳县| 济阳县| 柳江县| 喀什市| 富裕县| 连江县| 衡阳市| 余江县| 当涂县| 莆田市| 额济纳旗| 大连市| 巴彦淖尔市| 来凤县| 梁山县| 屯门区| 娄底市| 柳林县| 丹寨县| 曲阜市| 台南市| 通江县| 友谊县| 资兴市| 读书| 罗山县| 墨玉县| 金秀| 凉城县| 额济纳旗| 营山县| 江孜县| 偏关县|