<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于H.264視頻編碼傳輸?shù)腝oS特性分析

          關(guān)于H.264視頻編碼傳輸?shù)腝oS特性分析

          作者: 時(shí)間:2013-04-17 來源:網(wǎng)絡(luò) 收藏
          一、前言

            在過去的20年里,Internet、移動(dòng)通信和多媒體通信獲得了前所未有的發(fā)展,并獲得了巨大的商業(yè)成功。移動(dòng)通信和多媒體技術(shù)的融合正在加速進(jìn)行,諸如網(wǎng)絡(luò)架構(gòu)、低功耗的集成電路、功能強(qiáng)大的數(shù)字信號處理芯片、高效的壓縮算法等方面的研究成果不斷涌現(xiàn)。面向無線網(wǎng)絡(luò)和因特網(wǎng)的視頻圖像編碼與傳輸技術(shù)已成為當(dāng)今信息科學(xué)與技術(shù)的前沿課題。


            2003年,ISO/IEC的運(yùn)動(dòng)圖像專家組(MPEG)與ITU-T的視頻編碼專家組(VCEG)聯(lián)手制定了最新的第三代視頻編碼標(biāo)準(zhǔn)/AVC[1]。其主要目的就是為了提供更高的編碼效率和更好的網(wǎng)絡(luò)適應(yīng)性。在相同重構(gòu)圖像質(zhì)量下,與H.263+和MPEG-4 ASP標(biāo)準(zhǔn)相比,能節(jié)約50%的碼流;采用分層模式,定義了視頻編碼層(VCL)和網(wǎng)絡(luò)提取層(NAL),后者專為網(wǎng)絡(luò)傳輸設(shè)計(jì),能適應(yīng)不同網(wǎng)絡(luò)中的視頻傳輸,進(jìn)一步提高網(wǎng)絡(luò)的“親和性”。引入了面向IP包的編碼機(jī)制,有利于網(wǎng)絡(luò)中的分組傳輸,支持網(wǎng)絡(luò)中視頻的流媒體傳輸;具有較強(qiáng)的抗誤碼特性,特別適應(yīng)丟包率高、干擾嚴(yán)重的無線視頻傳輸?shù)囊蟆?


            二、視頻通信容錯(cuò)算法的回顧


            目前視頻編碼壓縮標(biāo)準(zhǔn)主要有MPEG-x和H.26x兩大系列,這些壓縮算法都是基于宏塊的[2],分別從三個(gè)方面改善編碼效率:


           ?。?)運(yùn)動(dòng)估計(jì)/運(yùn)動(dòng)補(bǔ)償(MP/MC)消除視頻時(shí)間冗余;


           ?。?)圖像差值的離散余弦變換(DCT)消除空間冗余;


           ?。?)量化系數(shù)的可變長編碼(VLC)消除統(tǒng)計(jì)冗余。


            實(shí)踐表明,通過上述方法,視頻編碼標(biāo)準(zhǔn)獲得了極高的壓縮效率。但壓縮后的碼流在Internet,特別是無線信道上的傳輸仍然存在著一些棘手的問題,其中比較突出的一點(diǎn)是:一方面,這些壓縮后的碼流對信道比特誤碼非常敏感;而另一方面,無線信道由于多徑反射和衰落引入了大量的隨機(jī)誤碼和突發(fā)誤碼,影響了碼流的正常傳輸。尤其是當(dāng)采用了VLC方案后,碼流更加容易受到誤碼的影響,結(jié)果在解碼端將失去與編碼端的同步,導(dǎo)致在遇到下一個(gè)同步碼字之前無法對VLC 碼字進(jìn)行正確的解碼;同時(shí)預(yù)測編碼技術(shù)會(huì)將錯(cuò)誤擴(kuò)散到整個(gè)視頻序列中,極大地降低重建圖像的質(zhì)量。因此,為了實(shí)現(xiàn)良好質(zhì)量的視頻傳輸,必須結(jié)合實(shí)際應(yīng)用信道的傳輸特性,采取一定的容錯(cuò)措施。


            根據(jù)在視頻傳輸系統(tǒng)中位置的不同,容錯(cuò)算法[3]主要可分為基于編碼器的容錯(cuò)算法,基于解碼器的容錯(cuò)算法和基于反饋信道的容錯(cuò)算法。其中:


           ?。?)基于編碼器的容錯(cuò)算法,通過再編碼比特流中添加冗余信息,這些冗余信息被添加在信源或信道編碼器中,降低了編碼的效率,增加了實(shí)現(xiàn)的復(fù)雜度,以換取編碼的容錯(cuò)性能,大致包括:分層編碼、多描述編碼、獨(dú)立分段編碼、再同步編碼和前向糾錯(cuò)編碼(FEC)等。


           ?。?)基于解碼器的容錯(cuò)算法,是指利用被損壞的宏塊與其相鄰的宏塊之間的相關(guān)性來完成恢復(fù)工作的,這部分工作包括錯(cuò)誤檢測和錯(cuò)誤恢復(fù)。對于錯(cuò)誤的檢測,一般采用針對語法的檢錯(cuò)和嵌入數(shù)據(jù)的檢錯(cuò);對于錯(cuò)誤恢復(fù),可采用時(shí)域和空域的錯(cuò)誤隱藏方法。

           ?。?)基于反饋信道的容錯(cuò)算法,指利用解碼器獲得誤碼信息,并通過反饋信道,傳送給編碼器進(jìn)行誤碼處理的一種方式。主要包括:誤碼跟蹤,有條件的ARQ,幀內(nèi)/幀間編碼模式選擇和參考圖像選擇模式等。
          與此同時(shí),在信源編碼器中,從視頻碼流結(jié)構(gòu)上研究其抗誤碼性能,成為近兩年來研究的一個(gè)熱點(diǎn)。/AVC作為最新的視頻編碼標(biāo)準(zhǔn),采取了一系列切合實(shí)際的技術(shù)措施,提高了網(wǎng)絡(luò)適應(yīng)性,增強(qiáng)了數(shù)據(jù)抗誤碼的頑健性,從而保證了視頻傳輸后的壓縮視頻的QoS。與以往的視頻編碼標(biāo)準(zhǔn)不同的是,H.264/AVC標(biāo)準(zhǔn)從系統(tǒng)層面定義了視頻編碼層(VCL,Video Coding Layer)和網(wǎng)絡(luò)提取層(NAL,Network Abstraction Layer)。其中,視頻編碼層獨(dú)立于網(wǎng)絡(luò),主要包括核心壓縮引擎和塊、宏塊和片的語法句法定義。通過引入一系列新特性,不但使H.264的編碼壓縮效率提升了近1倍,而且多種錯(cuò)誤恢復(fù)工具又增強(qiáng)了視頻流的頑健性。網(wǎng)絡(luò)提取層的主要功能是定義數(shù)據(jù)的封裝格式,把VCL產(chǎn)生的比特字符串適配到各種各樣的網(wǎng)絡(luò)和多元環(huán)境中。涉及片級別以上的語法定義,包括獨(dú)立片解碼所要求的數(shù)據(jù)表示,類似以往視頻壓縮標(biāo)準(zhǔn)中的圖像和頭部順序數(shù)據(jù);防止競爭的編碼;附加的增強(qiáng)信息以及編碼片的比特字符串。


            H.264從框架結(jié)構(gòu)上將NAL與VCL分離,主要有兩個(gè)目的:首先,可以定義VCL視頻壓縮處理與NAL網(wǎng)絡(luò)傳輸機(jī)制的接口,這樣允許視頻編碼層VCL的設(shè)計(jì)可以在不同的處理器平臺(tái)進(jìn)行移植,而與NAL層的數(shù)據(jù)封裝格式無關(guān);其二,VCL和NAL都被設(shè)計(jì)成工作于不同的傳輸環(huán)境,異構(gòu)的網(wǎng)絡(luò)環(huán)境并不需要對VCL比特流進(jìn)行重構(gòu)和重編碼。下面分別就VCL和NAL對于視頻傳輸?shù)腝oS進(jìn)行分析。


            三、H.264的視頻編碼層的錯(cuò)誤恢復(fù)[1,4]


            在H.261、H.263、MPEG-1、MPEG-2、MPEG-4中,許多錯(cuò)誤恢復(fù)工具已經(jīng)得到了很好的應(yīng)用:圖像分割的不同形式(片、塊組),I模式宏塊,片和圖像的內(nèi)插,參考圖像選擇(帶有和不帶反饋、圖像級別、GOB/SLICE或MB級別),數(shù)據(jù)分割等。

          上一頁 1 2 3 4 下一頁

          關(guān)鍵詞: H.264 視頻編碼傳輸 QoS特性

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();