• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            elva

            IPB幀編碼順序(解碼順序)與顯示順序


            僅僅使用前一個顯示的基準(zhǔn)幀來編碼的幀被稱為“P幀”,同時(shí)使用前一個顯示幀和未來幀作為基準(zhǔn)幀進(jìn)行編碼的幀稱為“B幀”。在通常的場景中,編解碼器編碼一個I幀,然后向前跳過幾個幀,用編碼I幀作為基準(zhǔn)幀對一個未來P幀進(jìn)行編碼,然后跳回到I幀之后的下一個幀。編碼的I幀和P幀之間的幀被編碼為B幀。之后,編碼器會再次跳過幾個幀,使用第一個P幀作為基準(zhǔn)幀編碼另外一個P幀,然后再次跳回,用B幀填充顯示序列中的空隙。這個過程不斷繼續(xù),每12到15個P幀和B幀內(nèi)插入一個新的I幀。例如,圖1種給出了一個典型的視頻幀序列。

            通常,更換場景后的第一幀就是I幀,I幀應(yīng)當(dāng)全幀傳送。從壓縮的程度來看,I畫面的壓縮量最少;P畫面次之,它是以I畫面為基礎(chǔ);B畫面壓縮最多。為了加大壓縮比,通常在I幀后面相隔2幀(最多3幀)設(shè)置1個P幀,在I、P幀之間都是B幀,在兩個P幀之間也是設(shè)置2~3幀B幀。B幀傳送它與I幀或P幀之間的差值信息,或者P幀與后面P幀或I幀之間的差值信息,或者它與前后I、P幀或P、P幀平均值之間的差值信息。當(dāng)主體內(nèi)容變化愈大時(shí),兩個I畫面之間的幀數(shù)值越小;當(dāng)主體內(nèi)容變化小時(shí),I面畫的間隔可以適當(dāng)大一些。或者說,B幀、P幀所占比例越大,圖像壓縮比越高。一般兩個I畫面相隔13~15幀,相隔幀數(shù)不宜再多。

            下面以15幀為例,說明VCD圖像幀的排列順序。I、P、B三種畫面的典型設(shè)置方式,對NTSC制共約需半秒時(shí)間。節(jié)目輸入順序是按實(shí)際出現(xiàn)順序排列的,即I、B、B、P、B、B、P、B、B……I、B、B、P……;但為了解碼時(shí)便于從I、P畫面插補(bǔ)得到B畫面,在編碼錄制節(jié)目時(shí),將順序改變了,即按照I、P、B、B……順序,即改為按原來0、3、1、2、6、4、5、9、7、8…的畫面順序。解碼時(shí)先解出0幀、3幀,再由其插補(bǔ)預(yù)測計(jì)算得出1幀、2幀等等。為此,須在解碼器內(nèi)設(shè)置動態(tài)存儲器,將I、P幀先解碼并存儲,再計(jì)算出各個B幀。不過最后輸出時(shí),還是應(yīng)當(dāng)按照實(shí)際播放順序重組讀出,按正確順序輸出。


            音視頻編碼卡的視頻編碼算法從JPEG 發(fā)展到MPEG-1、MPEG-2、MPEG-4和H.264。JPEG是一種著名的圖像壓縮方法,最初由Joint Photographic Experts Group在1986年提出并于1992年正式成為ISO標(biāo)準(zhǔn)(ISO/IEC 10918),主要應(yīng)用于靜態(tài)圖像壓縮,如果把它用在運(yùn)動圖像壓縮的時(shí)候,就是我們通常所說的Motion-JPEG,由于JPEG相當(dāng)于MPEG的幀內(nèi)壓縮,因而沒有去除時(shí)域上的冗余,所以在保證一定圖像質(zhì)量的時(shí)候,壓縮比不高,通常只有10-30倍,但是它有一個固定的優(yōu)點(diǎn),就是延遲在40ms,實(shí)時(shí)性很好,所以在某些特殊應(yīng)用的場合仍然可以看到它的蹤影。MPEG運(yùn)動圖像編碼技術(shù)標(biāo)準(zhǔn)是由Motion Picture Experts Group在1988年提出,并于1992年11月通過,1993年8月作為ISO/IEC 11172標(biāo)準(zhǔn)公布,這就是通常所說的MPEG-1。MPEG-1為了追求更高的壓縮效率,更注重去除圖像系列的時(shí)間冗余度。因此引入了I幀(幀內(nèi)編碼)、P幀(前向預(yù)測編碼)、B幀(雙向預(yù)測編碼)。P幀由前一個I幀或P幀圖像來預(yù)測,而B幀由前后的兩個P幀或一個I幀和一個P幀來預(yù)測,因而編解碼和幀的顯示順序有所不同,如圖1所示

            I B B P B B P…B B I    I P B B P B B … I B B
            1 2 3 4 5 6 7 …        1 4 2 3 7 5 6 …
              (a) 顯示順序          (b) 編解碼順序
                              圖 1
                    在此有兩個問題需要說明:首先是插多少B 幀最合適?理論上說I、P之間插入的B幀越多,壓縮比越高,但是編解碼器所需的幀存儲器也越大,因此實(shí)際應(yīng)用中一般最多兩個。其次,B幀的引入會增加編解碼端的延遲,如果追求網(wǎng)絡(luò)監(jiān)視的時(shí)延,最好是不使用B幀。
                    MPEG-1標(biāo)準(zhǔn)的一個成功應(yīng)用范例是小型激光視盤(VCD)。由于它的壓縮比相對于M- JPEG大為提高,因而在數(shù)字監(jiān)控系統(tǒng)中得到廣泛的應(yīng)用。但是并不是最適合數(shù)字監(jiān)控系統(tǒng)的應(yīng)用,主要表現(xiàn)在碼率固定,代價(jià)是引起圖像質(zhì)量的抖動,而數(shù)字監(jiān)控系統(tǒng)最需要的不是恒定碼率,而是恒定質(zhì)量。同時(shí)MPEG-1本身的技術(shù)限制,其壓縮比也沒有達(dá)到用戶滿意的程度。而2000年提出的MPEG-4不僅是一個非常開放的標(biāo)準(zhǔn),而且增加了許多新的工具,以達(dá)到降低某些應(yīng)用或圖像場景中要求的圖像質(zhì)量所需的比特率。值得注意的是雖然大部分用來降低比特率的工具是為非實(shí)時(shí)應(yīng)用開發(fā)的,無法使用到數(shù)字監(jiān)控系統(tǒng)中,但是相對MPEG-1,由于使用半像素和1/4像素圖像匹配、幀內(nèi)預(yù)測、高級運(yùn)動矢量預(yù)測等新的技術(shù),因而采用MPEG-4的壓縮標(biāo)準(zhǔn)之后,在PAL CIF 25fps情況下,大部分情況下碼率在300k-500k的MPEG-4壓縮圖像質(zhì)量超過1.25Mbit的MPEG-1圖像,因而在數(shù)字監(jiān)控系統(tǒng)中得到最廣泛和成功的應(yīng)用。

            posted on 2010-06-21 13:05 葉子 閱讀(8575) 評論(4)  編輯 收藏 引用 所屬分類: MPEG

            Feedback

            # re: IPB幀編碼順序(解碼順序)與顯示順序 2012-09-11 11:30 操權(quán)力

            您好,今天看了您的這篇博客,有個疑問想請教下您。

            顯示順序是 I B B P
            編碼順序是 I P B B
            解碼順序是 I P B B

            那么,在MP4封裝格式中的存儲順序又是怎么樣的呢?
            是按照編碼順序還是按照解碼順序呢?  回復(fù)  更多評論   

            # re: IPB幀編碼順序(解碼順序)與顯示順序 2012-09-13 10:18 elva

            @操權(quán)力

            無論以任何容器封裝,在文件中存儲時(shí)是以編解碼順序存的  回復(fù)  更多評論   

            # re: IPB幀編碼順序(解碼順序)與顯示順序 2012-09-14 11:27 操權(quán)力

            @elva
            編解碼順序?
            應(yīng)該是解碼順序吧?

            一下是我對解碼時(shí)間和現(xiàn)實(shí)時(shí)間的理解:
            在容器中存儲的是解碼時(shí)間,在獲取到一個解碼包的時(shí)候,默認(rèn)的打上DTS和PTS。這個時(shí)候,不知道這個解碼包的幀類型。這個過程應(yīng)該屬于parser過程吧。

            將獲取的包按照順序給解碼器。解碼器會判斷這個包中的數(shù)據(jù)幀的類型,是I,或者P,或者B。如果是非B幀,那么DTS和PTS是相等的;如果是B幀的話,就重新計(jì)算PTS.

            負(fù)責(zé)顯示的task會對解碼之后的幀的pts進(jìn)行重新排序,然后進(jìn)行顯示。

            我的理解正確嗎?  回復(fù)  更多評論   

            # re: IPB幀編碼順序(解碼順序)與顯示順序 2012-09-14 11:32 elva

            打時(shí)間戳的時(shí)候知道幀類型,時(shí)間戳并不是隨著文件順序一幀一幀累加的,有些幀會提前顯示   回復(fù)  更多評論   

            久久99热这里只有精品国产| 久久精品国产清高在天天线| 国产农村妇女毛片精品久久| 69久久夜色精品国产69| 久久精品国产精品国产精品污| 久久免费小视频| 亚洲欧美久久久久9999| 国内精品久久久久影院优 | 亚洲国产精品久久久久婷婷老年| 久久国产精品成人免费| 久久久久人妻一区精品| 99精品国产99久久久久久97 | 人妻少妇久久中文字幕一区二区| 久久精品中文闷骚内射| 国产精品久久久久久久午夜片| 精品久久久中文字幕人妻| 亚洲国产精品久久久久网站| 日韩欧美亚洲综合久久| 久久成人影院精品777| 久久午夜无码鲁丝片秋霞| 亚洲狠狠综合久久| AV无码久久久久不卡网站下载 | 国产精品一区二区久久精品| 日韩欧美亚洲综合久久| 天天做夜夜做久久做狠狠| 66精品综合久久久久久久| 久久九九精品99国产精品| 中文字幕精品久久| 久久久综合香蕉尹人综合网| 国产精品亚洲美女久久久| 久久精品国产亚洲AV香蕉| 久久久久久伊人高潮影院| 久久亚洲精品国产亚洲老地址| 久久久WWW免费人成精品| 久久精品国产一区二区| 国产精品九九久久免费视频 | 99久久国产综合精品五月天喷水| 精品乱码久久久久久久| av无码久久久久不卡免费网站| 人妻久久久一区二区三区| 亚洲伊人久久精品影院|