<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è) > 嵌入式系統 > 設計應用 > 基于嵌入式平臺的視頻編碼器的實(shí)現

基于嵌入式平臺的視頻編碼器的實(shí)現

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

 ?。?)1/4像素精度的運動(dòng)估值。在h.264中通過(guò)6階FIR濾波器的內插獲得l/2像素位置的預測值。當l/2像素值獲得后,通過(guò)取整數像素位置和l/2像素位置像素值均值的方式獲得l/4像素位置的值,這樣迸一步減小幀間預測誤差,減少了經(jīng)變換和量化后的非零比特數,提高了編碼效率。

 ?。?)多參考幀運動(dòng)估值。以往的編碼技術(shù)在對P幀(場(chǎng))圖像進(jìn)行幀間預測時(shí),只允許以前一個(gè)I幀(場(chǎng))圖像或P幀(場(chǎng))圖像為參考幀。對B圖像進(jìn)行預測時(shí)只允許以前后兩個(gè)I幀(場(chǎng))圖像或P幀(場(chǎng))圖像為參考圖像。h.264則允許在ReferenceBuffer中的多個(gè)圖像中選取一個(gè)(P預測方式)或兩個(gè)(B預測方式,圖像作為參考圖像。參考圖像甚至可以是采用雙向預測編碼方式的圖像。

 ?。?)參考圖像的選取與其編碼方式無(wú)關(guān)。允許選取與當前圖像更加匹配的圖像為參考圖像進(jìn)行預測,減小了預測誤差,提高編碼效率。

 ?。?)更精確的幀內預測。在h.264中,每個(gè)4*4塊中的每個(gè)像素都可用17個(gè)最接近先前已編碼的像素的不同加權和來(lái)進(jìn)行幀內預測。

 ?。?)環(huán)路去方塊濾波器。h.264/AVC把去方塊濾波引入運動(dòng)估計預測環(huán)路中,既可去除方塊效應,又能保護圖像細節邊緣,同時(shí)亦改善了圖像的主、客觀(guān)評定質(zhì)量。而且經(jīng)過(guò)濾波后的圖像根據需要放在緩存中用于幀間預測,進(jìn)一步提高預測精度。

 ?。?)h.264使用統一的可交長(cháng)度編碼國Ⅵz)碼表。以往標準的熵編碼通常采用變長(cháng)度的哈夫曼編碼,其碼表不統一,不能適應變化多端的內容,從而影響編碼效率的提高。在此,即對h.263不同系數采用不同碼表進(jìn)行VLC作了改進(jìn),采用了一個(gè)統一碼表的IrvIC,同時(shí),又對h.26L中的VCL方法進(jìn)行了改進(jìn),使量化后的DCT變換系數使用內容的自適應可變長(cháng)度編碼(CAⅥC),此外還定義了一種上下文內容的自適應二進(jìn)制算術(shù)編碼(CABAC),其性能比CAVLC更好。從而,借助UVLC,CAVLC及CABAC較好地提高了壓縮編碼效率。

  4 PXA255上的h.264編碼算法的

  ITU-T(國際電信標準化部門(mén))提供了h.264的核心算法,本文使用的是開(kāi)源編碼軟件x264。將其通過(guò)交叉編譯后移植到PXA255開(kāi)發(fā)上。由于h.264編碼算法復雜度高、運算量大等特點(diǎn)導致h.264編碼效率不高,經(jīng)初步測試編碼速率為QCIF格式圖像10幀/秒,不能達到實(shí)時(shí)編碼的要求。

  因此需要對編碼程序進(jìn)行相應的優(yōu)化。

  4.1 C語(yǔ)言?xún)?yōu)化

  編碼軟件包含了解碼和傳輸部分的程序,而本文只對進(jìn)行編碼,并不需要解碼和傳輸。所以對代碼進(jìn)行調整,刪除解碼和傳輸部分的代碼,再重新改寫(xiě)makefile文件。這樣可以縮小程序的空間大小,減少程序的運行時(shí)間,提高編碼效率。

  使用盡量小的數據類(lèi)型。能夠使用字符型(char)定義的變量,就不要使用整型(int)變量來(lái)定義;能夠使用整型變量定義的變量就不要用長(cháng)整型(10ng in0,能不使用浮點(diǎn)型(float)變量就不要使用雙精度浮點(diǎn)型(doubles)變量。

  程序中被多次調用的、函數體代碼不是很大的函數使用內聯(lián)函數。使用內聯(lián)函數可以避免由于保護現場(chǎng)和記憶執行的地址所帶來(lái)的時(shí)間和空間方面的開(kāi)銷(xiāo),以提高程序的執行效率。

  4.2 Itrm匯編優(yōu)化

  用C語(yǔ)言編程結構化程度高,易于編寫(xiě),但執行速度相對較慢:與之相反,匯編程序速度快,但很難有較好的結構,而且編寫(xiě)起來(lái)耗時(shí),不易調試。C和匯編混合編程結合了各自的優(yōu)勢,往往能構造出結構好且執行速度快的程序。利用匯編語(yǔ)言?xún)?yōu)化C語(yǔ)言代碼,優(yōu)化后的匯編程序可以被C語(yǔ)言程序調用,并且在匯編程序中也可以調用C語(yǔ)言程序。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(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>