1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 針對硬件實(shí)現(xiàn)的H.264視頻編碼算法改進(jìn)

        時(shí)間:2024-09-29 22:23:48 理工畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        針對硬件實(shí)現(xiàn)的H.264視頻編碼算法改進(jìn)

        摘要:從硬件實(shí)現(xiàn)的角度分析了H.264算法,重點(diǎn)研究了占用最多運(yùn)算時(shí)間的預(yù)測部分的優(yōu)化,給出了對幀內(nèi)預(yù)測、哈達(dá)馬變換以及運(yùn)動估計(jì)算法的改進(jìn),通過簡化運(yùn)算復(fù)雜、效率不高的模塊以及減少模塊間數(shù)據(jù)相關(guān)性等,對硬件進(jìn)行優(yōu)化。通過對各種測試序列的仿真,證明改進(jìn)是有效的。

        H.264[1]最初是由ITU-T起草的,在未來將成為ITU-T和MPEG的聯(lián)合標(biāo)準(zhǔn)。H.264因?yàn)樘峁┝撕芨叩木幋a壓縮效率、友好的面向網(wǎng)絡(luò)的接口,將成為下一代新的視頻編碼標(biāo)準(zhǔn)。但是編碼效率很高的同時(shí),其算法的復(fù)雜度也提高了四倍,這在很大程序上限制了它的實(shí)現(xiàn)。因此,必須針對硬件的實(shí)現(xiàn)做改進(jìn)和優(yōu)化。

        H.264的最初測試模型(JM)[2]是為了取得高的編碼效果而設(shè)計(jì)的。在這個(gè)測試模型中,有很多的算法需要很大的運(yùn)算量,但是編碼效率的提高卻不多,并且很多模擬之間是數(shù)據(jù)相關(guān)的,這一點(diǎn)限制了用并行處理加速硬件的實(shí)現(xiàn)。

        以前有文章分析過這種新的視頻編碼的復(fù)雜度[3~5]。但是這些研究都是通過軟件的分析得到H.264算法的復(fù)雜度的。這些結(jié)果對在軟件中的應(yīng)用是精確的,但是當(dāng)涉及硬件設(shè)計(jì)的并行處理時(shí),就不再適用了。

        經(jīng)過試驗(yàn)比較可以得出,在H.264硬件實(shí)現(xiàn)上的關(guān)鍵點(diǎn)是預(yù)測部分,因?yàn)榇四K所占的計(jì)算時(shí)間幾乎是總時(shí)間的90%。所以改進(jìn)的重點(diǎn)在預(yù)測部分。

        1 H.264算法

        圖1是關(guān)于一幀圖像的幀內(nèi)預(yù)測間預(yù)測的算法框圖。如果采用幀內(nèi)預(yù)測,幀間預(yù)測部分將不進(jìn)行判斷。在進(jìn)行幀間預(yù)測時(shí),會使用多幀預(yù)測和可變塊大小的運(yùn)動估計(jì)。編碼模式選擇部分在所有的預(yù)測模式中選擇一個(gè)最佳的預(yù)測模式。預(yù)測之后用原始的輸入幀和預(yù)測幀相減,得到殘差數(shù)據(jù)塊。對于亮度殘差塊做4×4整數(shù)DCT變換,對于色度殘差塊的DC系數(shù)則進(jìn)行2×2的整數(shù)DCT變換。對變換后的系數(shù)做掃描和量化處理后,再對量化后的系數(shù)進(jìn)行熵編碼,最終成為輸出的碼流。編碼模式通過模式表,也會輸入到熵編碼器中。重建的循環(huán)過程包括反量化、反DCT變換和反塊濾波。最后,將重建幀寫入到幀緩沖器中,準(zhǔn)備在以后運(yùn)動估計(jì)中使用。

        因?yàn)樵诳臻g預(yù)測和時(shí)間預(yù)測上幾乎花費(fèi)了所有的計(jì)算能力,所以在JM 4.0上的算法改進(jìn)主要是在這兩部分上。在實(shí)現(xiàn)過程中,這兩部分通過硬件實(shí)現(xiàn),所以要針對硬件進(jìn)行優(yōu)化。

        實(shí)現(xiàn)編碼器所用的硬件系統(tǒng)是基于宏塊,也就是說編碼器是對一個(gè)個(gè)連續(xù)的宏塊進(jìn)行操作。整個(gè)編碼系統(tǒng)可以看作一個(gè)宏塊的流水線,所以有可能在開始編碼下一個(gè)宏塊時(shí),上一個(gè)宏塊重建過程不定期沒有完成,這就影響了流水線的進(jìn)行。很多基于宏塊的商業(yè)編碼器正是采用這種硬件實(shí)現(xiàn)模式,所以處理好這個(gè)問題至關(guān)重要。

        2 幀內(nèi)預(yù)測

        圖1中的編碼方框圖與H.261、H.263和MPEG-4中的相似。H.264中包含了4×4和16×16兩種幀內(nèi)預(yù)測部分。幀內(nèi)預(yù)測需要圖像重建的像素值才能實(shí)現(xiàn)。在一個(gè)典型的基于宏塊的系統(tǒng)中,只有在完成整個(gè)編碼程序后,重建的像素值才能得到。這種數(shù)據(jù)之間的相關(guān)性,會給硬件的實(shí)現(xiàn)帶來很大的困難。

        2.1 4×4幀內(nèi)預(yù)測

        圖2描述了4×4塊幀內(nèi)預(yù)測中數(shù)據(jù)的相關(guān)性。從a到p的像素值是從A到N及Q的像素值預(yù)測出來的。用大寫字母表示重建的像素值。因?yàn)橐粋(gè)宏塊由16個(gè)4×4的塊組成,所以當(dāng)前塊沒有完成編碼之前是不能得到重建的像素值的。在JM中用了雙通道算法實(shí)現(xiàn)這些塊的編碼。為了做一個(gè)4×4塊的預(yù)測,在JM中需要進(jìn)行變換、量化、反變換到反量化的過程。這對于一個(gè)硬件來說太復(fù)雜了。在現(xiàn)有的硬件水平上是不可能實(shí)現(xiàn)的。

        對這一點(diǎn),需要對算法做如下改進(jìn):所有預(yù)測中所有的重建幀像素值用輸入幀的原始值代替。通過這樣的改進(jìn),4×4的幀內(nèi)預(yù)測和變換可以在宏塊的流水線上順利地實(shí)現(xiàn)。

        2.2 16×16幀內(nèi)預(yù)測

        圖3給出了16×16幀內(nèi)預(yù)測的數(shù)據(jù)相關(guān)性。當(dāng)前宏塊的預(yù)測是基于重建幀中位于當(dāng)前宏塊位置上方的17個(gè)像素和左側(cè)的16個(gè)像素的。因?yàn)閷Ξ?dāng)前宏塊進(jìn)行預(yù)測時(shí)左邊宏塊的重建可能并未完全完成,當(dāng)用到當(dāng)前宏塊位置左側(cè)的那些像素時(shí)就用原始像素代替。

        2.3 編碼模式選擇

        按照前面所給出的改進(jìn)算法,如果只是簡單地用原始像素代替重建像素的話會造成編碼模式選擇的誤差。圖4給出了幀內(nèi)編碼的率失真改進(jìn)的曲線,仿真的序列是“Claire”、10fps。從圖4中可以看出,由編碼模式選擇的誤差引起的PSNR下降是很明顯的。原始像素是屬于同一幀的,而重建像素經(jīng)過幀間或幀內(nèi)編碼去除了冗余度,所以與重建像素相比原始像素有更高的相關(guān)性。因而用改進(jìn)后的幀內(nèi)預(yù)測算法產(chǎn)生的誤差要比用原算法大得多。為了減少編碼模式選擇的誤差,還需要對誤差代價(jià)函數(shù)(error cost function)進(jìn)行修改,F(xiàn)在的做法是增加一個(gè)誤差項(xiàng)。這個(gè)誤差項(xiàng)體現(xiàn)原始像素和重建像素之間的差值。因?yàn)榱炕瘏?shù)(QP)能夠影響原始像素和重建像素之間的不匹配,所以誤差項(xiàng)的確定與量化參數(shù)值有關(guān)。在H.264中,隨著量化參數(shù)的線性增加,量化對編碼的影響是呈指數(shù)增加的。為了符合這種影響的增長趨勢,誤差項(xiàng)的基本形式確定了a/b(51-Qp),其中a和b是待定系數(shù)。如何確定a和b是影響誤差消除的關(guān)鍵。

        在H.264中,每級Qp的增量是12%,所以理論上與之相匹配的參數(shù)b應(yīng)該設(shè)置為1.12。但是誤差代價(jià)函數(shù)的計(jì)算是在哈達(dá)碼變換

        【針對硬件實(shí)現(xiàn)的H.264視頻編碼算法改進(jìn)】相關(guān)文章:

        基于塊分類的H.264視頻水印算法03-07

        DM642上H.264編碼器的優(yōu)化與實(shí)現(xiàn)11-22

        Tunstall編碼與自適應(yīng)編碼算法03-07

        基于嵌入式Linux的終端AVI視頻編碼器的實(shí)現(xiàn)03-07

        H.264碼率控制算法研究03-07

        動態(tài)哈夫曼編碼的改進(jìn)03-18

        圖像拼接算法及實(shí)現(xiàn)03-03

        自適應(yīng)算術(shù)編碼的FPGA實(shí)現(xiàn)03-18

        關(guān)于LZW算法的改進(jìn)研究03-25

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>