色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于嵌入式平臺(tái)的視頻編碼器的實(shí)現(xiàn)

          基于嵌入式平臺(tái)的視頻編碼器的實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

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

            4.1 C語言優(yōu)化

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

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

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

            4.2 Itrm匯編優(yōu)化

            用C語言編程結(jié)構(gòu)化程度高,易于編寫,但執(zhí)行速度相對(duì)較慢:與之相反,匯編程序速度快,但很難有較好的結(jié)構(gòu),而且編寫起來耗時(shí),不易調(diào)試。C和匯編混合編程結(jié)合了各自的優(yōu)勢,往往能構(gòu)造出結(jié)構(gòu)好且執(zhí)行速度快的程序。利用匯編語言優(yōu)化C語言代碼,優(yōu)化后的匯編程序可以被C語言程序調(diào)用,并且在匯編程序中也可以調(diào)用C語言程序。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉