欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置的制作方法

文檔序號(hào):7954227閱讀:264來源:國(guó)知局
專利名稱:視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及到視頻壓縮過程中采用靈活宏塊排序(FM0)和任意條帶順序(AS0)技術(shù)時(shí) 的解碼過程,特別是涉及到視頻碼流的解碼和環(huán)路濾波的方法和裝置。
背景技術(shù)
在視頻壓縮標(biāo)準(zhǔn)(如H.264)中,有許多適用于基于IP的對(duì)話應(yīng)用的關(guān)鍵技術(shù),如多條 帶群(slice gro叩)靈活宏塊排序(Flexible Macroblock Ordering即FMO)和任意條帶順 序(Abitrary Slice Order即ASO)。采用靈活宏塊排序(FMO)技術(shù)有利于實(shí)現(xiàn)錯(cuò)誤隱藏, 提髙視頻通信網(wǎng)絡(luò)的健壯性,在有無序(out of order)傳輸行為的網(wǎng)絡(luò)中采用任意條帶順 序技術(shù)能更有效地利用網(wǎng)絡(luò)帶寬,減小傳輸延遲。但采用靈活宏塊排序(FMO)和任意條帶順 序(ASO)技術(shù)也對(duì)解碼過程和環(huán)路濾波(deblocking filter)的實(shí)現(xiàn)(特別是硬件實(shí)現(xiàn)) 產(chǎn)生直接影響。
圖像按宏塊編碼的方式
在視頻壓縮標(biāo)準(zhǔn)中,一幅圖像由整數(shù)個(gè)宏塊(macroblock)構(gòu)成,如圖l所示,宏塊是16x16 (像素)大小的正方形區(qū)域,宏塊在圖像內(nèi)的序號(hào)(地址)按光柵掃描的順序編號(hào)。
如圖1所示,以176x144大小的圖像為例, 一幅圖像中共包含99((176x144)/(16x16)) 個(gè)宏塊,宏塊的序號(hào)依圖1中箭頭所示方向遞增,這種方式即為按光柵掃描順序編號(hào)的方式。 在視頻壓縮標(biāo)準(zhǔn)中,編碼過程和解碼過程都是以宏塊為單位進(jìn)行的,很顯然,解碼后的宏塊 仍要按上圖1所示的順序放置才能保證解碼圖像的正確。
視頻碼流的結(jié)構(gòu)和順序描述如下
在視頻壓縮標(biāo)準(zhǔn)中,原始的圖像文件經(jīng)過編碼以后的二進(jìn)制文件稱為碼流,碼流中信息 的基本組成單位是條帶(slice),條帶按圖2所示的分層結(jié)構(gòu)組織。
在視頻碼流中, 一幅圖像的信息是由幾個(gè)條帶組成,每個(gè)條帶包括條帶頭(slice header) 和條帶數(shù)據(jù)(slice data)兩部分。其中條帶頭包含了該條帶中所有宏塊所共有的信息,而 條帶數(shù)據(jù)是由整數(shù)個(gè)宏塊構(gòu)成(如圖3中包含8個(gè)宏塊),條帶中的宏塊放置有兩種方式, 分別如圖3(a)和圖3(b)所示。在圖3(a)中,條帶內(nèi)的宏塊序號(hào)是按自然數(shù)遞增的,在圖3(b) 中,條帶內(nèi)宏塊的序號(hào)經(jīng)過某種映射(MAP)操作后,條帶內(nèi)的宏塊序號(hào)不一定按自然數(shù)遞增, 即映射后的宏塊序號(hào)厶,厶,……力不一定按l的步長(zhǎng)遞增。
環(huán)路濾波-
視頻壓縮標(biāo)準(zhǔn)如H.264, MPEG-1, MPEG-4中,采用基于塊的混合編碼方法,即預(yù)測(cè)編碼 和變換編碼相結(jié)合的方法。在編碼過程中,宏塊被進(jìn)一步劃分成更小的塊,塊的大小依不同 的視頻壓縮標(biāo)準(zhǔn)而不同。為了進(jìn)一步提髙視頻壓縮的效率,可充分利用視頻序列本身的特點(diǎn), 即相鄰像素的空間相關(guān)性及相繼幀之間的時(shí)間相關(guān)性。所謂空間相關(guān)性指同一幅圖像中相鄰 像素的彩色值一般是平滑變化的,而時(shí)間相關(guān)性指視頻序列的相繼幀通常對(duì)應(yīng)相同的物理場(chǎng) 景,只不過其中的物體可能是移動(dòng)的。預(yù)測(cè)編碼充分利用了視頻序列的時(shí)間相關(guān)性,當(dāng)前編 碼圖像中的圖像塊可在以前已經(jīng)編碼過的參考圖像中搜索最匹配的塊,這稱為運(yùn)動(dòng)估計(jì),當(dāng) 前塊與匹配(預(yù)測(cè))塊對(duì)應(yīng)像素的差值構(gòu)成預(yù)測(cè)誤差塊。變換編碼(如離散余弦變換)則充 分利用了像素之間的空間相關(guān)性,在視頻壓縮標(biāo)準(zhǔn)中,變換編碼被應(yīng)用于預(yù)測(cè)誤差塊,變換 編碼后的系數(shù)經(jīng)量化后再進(jìn)行熵編碼可得到進(jìn)一步的壓縮。在以上編碼過程中,變換編碼后 系數(shù)的量化會(huì)產(chǎn)生一定的編碼誤差,主要以塊效應(yīng)的形式表現(xiàn)出來。為了減少編碼誤差,通 常對(duì)編碼圖像采用環(huán)路濾波(也稱為去塊效應(yīng)濾波,即deblocking filtering)的方法。環(huán) 路濾波通常以宏塊為單位進(jìn)行,在濾波過程中要用到當(dāng)前宏塊的相鄰的上面宏塊和左面宏塊 的像素,如圖4所示。
在圖4中,當(dāng)前宏塊的濾波要用到宏塊A和宏塊B中的像素,所以當(dāng)前宏塊的濾波必須
在宏塊A和宏塊B己經(jīng)完成解碼的前提下才能進(jìn)行,這就要求解碼過程按宏塊光柵掃描的順
序進(jìn)行。當(dāng)采用多條帶群靈活宏塊排序(FMO)和任意條帶順序(ASO)時(shí),如果解碼過程按條
帶在碼流中的順序進(jìn)行,不能保證按宏塊光柵掃描的順序解碼,因此環(huán)路濾波只能在一幅圖
像的所有宏塊解碼結(jié)束后才能進(jìn)行。
目前已公開的采用靈活宏塊排序(FM0)和任意條帶順序(AS0)時(shí)的解碼和環(huán)路濾波方
法如下
1) 按條帶在碼流中的順序解碼一幅圖像的所有條帶并把解碼完的宏塊存入環(huán)路濾波前復(fù)原 圖像幀/場(chǎng)緩沖存儲(chǔ)器;
2) 對(duì)環(huán)路濾波前復(fù)原圖像幀/場(chǎng)緩沖存儲(chǔ)器中的解碼后圖像進(jìn)行宏塊級(jí)的環(huán)路濾波;
3) 重復(fù)步驟l)和2),直到視頻碼流結(jié)束。 上述的解碼流程圖如圖5所示。
上述的宏塊解碼和環(huán)路濾波方法所應(yīng)用的裝置示意圖如圖6所示。整個(gè)宏塊解碼和環(huán)路 濾波裝置由以下5個(gè)模塊組成
1.條帶頭解碼模塊,用于解碼條帶頭;
2. 宏塊解碼模塊,用于每個(gè)宏塊的解碼;
3. 環(huán)路濾波前復(fù)原圖像幀/場(chǎng)緩沖存儲(chǔ)器。由于按條帶在碼流中的順序解碼條帶,不能 實(shí)現(xiàn)按宏塊光柵掃描順序的解碼,所以解碼后的整幅圖像的所有宏塊在經(jīng)過環(huán)路濾波前要先
暫存在此幀/場(chǎng)緩沖存儲(chǔ)器;
4. 環(huán)路濾波模塊,按光柵掃描的順序?yàn)V波圖像中的所有宏塊;
5. 圖像顯示和存儲(chǔ)模塊,用于環(huán)路濾波后復(fù)原圖像的顯示和存儲(chǔ)。
這些現(xiàn)有技術(shù)的相關(guān)資料有[TU-T(國(guó)際電信聯(lián)盟)的視頻編碼專家組VCEG( video coding experts group)和ISO/IEC(國(guó)際標(biāo)準(zhǔn)化組織)的運(yùn)動(dòng)圖像專家組MPEG (moving picture experts group)共同組建的聯(lián)合視頻組(Joint Video Team)參考軟件JM85版本。
從圖5中可看出,環(huán)路濾波過程是在一幅圖像解碼全部結(jié)束后進(jìn)行的,因此解碼后的整 幅圖像必須先放在緩沖區(qū)內(nèi),然后再?gòu)木彌_區(qū)中取出進(jìn)行環(huán)路濾波,這需要很大的緩沖存儲(chǔ) 空間以及很多的時(shí)鐘周期數(shù),因此這種方法大大增加了解碼到環(huán)路濾波的延遲和實(shí)現(xiàn)成本。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置,以減 少解碼到環(huán)路濾波的延遲和實(shí)現(xiàn)成本。為達(dá)上述目的,本發(fā)明采用如下技術(shù)方案
一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法,包括解碼和環(huán)路濾波步驟,所述其 解碼步驟中按宏塊光柵掃描的順序進(jìn)行的,并暫存當(dāng)前宏塊的濾波用到上面宏塊和左面宏塊 的相關(guān)像素,所述環(huán)路濾波步驟中利用暫存的相關(guān)像素對(duì)當(dāng)前宏塊進(jìn)行環(huán)路濾波,直到當(dāng)前 圖像解碼結(jié)束。
其中,所述解碼和環(huán)路濾波具體包括以下步驟
1) 讀取輸入碼流中當(dāng)前圖像的所有條帶信息并暫存;
2) 初始化當(dāng)前解碼宏塊的指數(shù)i=0;
3) 找到當(dāng)前解碼宏塊i所屬條帶后解碼該宏塊i;
4) 對(duì)宏塊i進(jìn)行環(huán)路濾波;
5) 宏塊指數(shù)i遞增l;
6) 判斷當(dāng)前圖像解碼是否結(jié)束,若結(jié)束則順序執(zhí)行以下步驟,否則跳到步驟3);
7) 判斷視頻碼流是否結(jié)束,若結(jié)束則解碼全部完成,否則跳到步驟1)進(jìn)行下一幅圖像 的解碼。
一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波裝置,包括
序列參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的序列參數(shù)集; 圖像參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的圖像參數(shù)集;
整幅圖像的所有條帶頭信息緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶頭內(nèi)容; 整幅圖像的所有條帶數(shù)據(jù)緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶數(shù)據(jù)內(nèi)容; 解碼控制模塊,其輸入端與序列參數(shù)集存儲(chǔ)模塊、圖像參數(shù)集存儲(chǔ)模塊和整幅圖像的所
有條帶頭信息緩存模塊相連,接受這三個(gè)模塊的信息,用來控制整個(gè)解碼流程,判定哪個(gè)條
帶是按光柵掃描順序遞增的當(dāng)前解碼宏塊所在的條帶,并判定一幅圖像的解碼是否結(jié)束;
宏塊讀取模塊,其輸入端與解碼控制模塊和條帶數(shù)據(jù)緩存模塊相連,根據(jù)解碼控制模塊
提供的信息,從條帶數(shù)據(jù)緩存模塊的相應(yīng)的條帶中讀出當(dāng)前解碼宏塊的數(shù)據(jù);
宏塊解碼和環(huán)路濾波模塊,其輸入端與宏塊讀取模塊相連,接受宏塊讀取模塊提供的數(shù)
據(jù),實(shí)現(xiàn)宏塊解碼及環(huán)路濾波的功能;
圖像顯示或存儲(chǔ)模塊,顯示或存儲(chǔ)解碼和環(huán)路濾波后的復(fù)原圖像內(nèi)容。 作為本發(fā)明裝置的一種優(yōu)先方式,所述解碼控制模塊包括以下單元
條帶中第一宏塊與0比較單元,其輸入端與條帶頭信息緩存模塊相連,其輸出端與宏塊 讀取模塊相連,用來確定條帶中第一宏塊等于0的條帶,并指示宏塊讀取模塊從此條帶中讀 取宏塊數(shù)據(jù);
映射存儲(chǔ)和宏塊所在條帶判別單元,其輸入端與條帶頭信息緩存模塊相連,其輸出端與 宏塊讀取模塊相連,用于存儲(chǔ)宏塊到條帶群的映射信息并計(jì)算每個(gè)宏塊所在的條帶群數(shù),根 據(jù)這些信息判別出宏塊i所在的條帶,并指示宏塊讀取模塊從此條帶中讀取宏塊數(shù)據(jù);
當(dāng)前圖像已解碼宏塊數(shù)與宏塊總數(shù)比較單元,用于判定一幅圖像的解碼是否已經(jīng)全部結(jié)束。
本發(fā)明提出的視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置,適用于靈活宏塊排 序和任意條帶順序機(jī)制的視頻壓縮碼流的解碼和環(huán)路濾波。它不需要在一幅圖像全部宏塊解 碼結(jié)束后再進(jìn)行環(huán)路濾波,而是在每個(gè)宏塊解碼結(jié)束后立即進(jìn)行環(huán)路濾波,解碼過程和環(huán)路 濾波之間也不需要把整幅圖像的宏塊暫存到緩沖區(qū),避免了暫存和再讀取所需要的時(shí)間和計(jì) 算。其解碼過程是按宏塊光柵掃描的順序進(jìn)行的,由于當(dāng)前宏塊的濾波用到上面宏塊和左面 宏塊的有關(guān)像素,因此只需要將當(dāng)前宏塊的上面一行宏塊和左面一個(gè)宏塊的相應(yīng)像素進(jìn)行暫 存即可,顯著減少了緩沖存儲(chǔ)器的空間,降低了解碼器的實(shí)現(xiàn)成本。


圖1為現(xiàn)有176x144大小的圖像及其16x16大小的宏塊和光柵掃描順序示意圖2為現(xiàn)有條帶的分層組織結(jié)構(gòu)示意圖3為現(xiàn)有條帶內(nèi)宏塊的兩種放置方式;
圖4為現(xiàn)有當(dāng)前宏塊解碼需用到的宏塊示意圖5為現(xiàn)有解碼和環(huán)路濾波方法的流程圖6為現(xiàn)有解碼和環(huán)路濾波裝置示意圖7為本發(fā)明的宏塊級(jí)耦合的解碼和環(huán)路濾波方法的流程圖8為本發(fā)明的宏塊級(jí)耦合的解碼和環(huán)路濾波方法所應(yīng)用的裝置示意圖9為現(xiàn)有兩種不同的色度亞采樣格式;
圖10為本發(fā)明實(shí)施例當(dāng)前宏塊解碼需用到的部分宏塊的示意圖; 圖11為本發(fā)明實(shí)施例宏塊級(jí)耦合的解碼和環(huán)路濾波方法的流程圖; 圖12為本發(fā)明實(shí)施例宏塊級(jí)耦合的解碼和環(huán)路濾波裝置示意具體實(shí)施例方式
如圖7所示, 一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法,包括以下步驟
1) 讀取輸入碼流中當(dāng)前圖像的所有條帶信息并暫存;
2) 初始化當(dāng)前解碼宏塊的指數(shù)i=0;
3) 找到當(dāng)前解碼宏塊i所屬條帶后解碼該宏塊i;
4) 對(duì)宏塊i進(jìn)行環(huán)路濾波;
5) 宏塊指數(shù)i遞增l;
6) 判斷當(dāng)前圖像解碼是否結(jié)束,若結(jié)束則順序執(zhí)行以下步驟,否則跳到步驟3);
7) 判斷視頻碼流是否結(jié)束,若結(jié)束則解碼全部完成,否則跳到步驟1)進(jìn)行下一幅圖像 的解碼。
如圖8所示, 一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波裝置,包括
序列參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的序列參數(shù)集; 圖像參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的圖像參數(shù)集;
整幅圖像的所有條帶頭信息緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶頭內(nèi)容; 整幅圖像的所有條帶數(shù)據(jù)緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶數(shù)據(jù)內(nèi)容; 解碼控制模塊,其輸入端與序列參數(shù)集存儲(chǔ)模塊、圖像參數(shù)集存儲(chǔ)模塊和整幅圖像的所 有條帶頭信息緩存模塊相連,接受這三個(gè)模塊的信息,用來控制整個(gè)解碼流程,其主要功能
之一是判定哪個(gè)條帶是按光柵掃描順序遞增的當(dāng)前解碼宏塊所在的條帶,其主要功能之二是 判定一幅圖像的解碼是否結(jié)束,以及其他對(duì)解碼過程進(jìn)行控制的功能;
宏塊讀取模塊,其輸入端與解碼控制模塊和條帶數(shù)據(jù)緩存模塊相連,根據(jù)解碼控制模塊 提供的信息,從條帶數(shù)據(jù)緩存模塊的相應(yīng)的條帶中讀出當(dāng)前解碼宏塊的數(shù)據(jù);
宏塊解碼和環(huán)路濾波模塊,其輸入端與宏塊讀取模塊相連,接受宏塊讀取模塊提供的數(shù) 據(jù),實(shí)現(xiàn)宏塊解碼及環(huán)路濾波的功能;
圖像顯示或存儲(chǔ)模塊,顯示或存儲(chǔ)解碼和環(huán)路濾波后的復(fù)原圖像內(nèi)容。
H. 264中實(shí)現(xiàn)每個(gè)宏塊解碼后立即濾波的例子
在彩色數(shù)字視頻圖像中,每個(gè)像素值由三個(gè)分量構(gòu)成,分別是一個(gè)亮度(luma)分量(Y)和 兩個(gè)色度(chroma)分量(U和V),每個(gè)分量通常用8比特(bit) =1字節(jié)(byte)表示其具體數(shù) 值。由于人類視覺系統(tǒng)對(duì)亮度比色度更敏感,所以對(duì)色度分量的空間采樣率可以小于亮度分 量的空間采樣率,采用不同的亮度和色度的空間采樣率構(gòu)成不同的色度亞采樣格式,例如對(duì) 于兩個(gè)色度分量,在每行中采用--半的亞采樣,即每行中每4個(gè)Y樣點(diǎn)對(duì)應(yīng)兩個(gè)U樣點(diǎn)和兩 個(gè)V樣點(diǎn),這稱為4: 2: 2格式若對(duì)色度分量在水平和垂直方向上都進(jìn)行一半的亞采樣, 即每4個(gè)Y樣點(diǎn)對(duì)應(yīng)一個(gè)U樣點(diǎn)和一個(gè)V樣點(diǎn),這稱為4: 2: 0格式,不同格式的亮度與色 度樣點(diǎn)的相對(duì)位置如下圖9所示。在li264中,以4: 2: O亞采樣格式的視頻序列為例,對(duì) 于每個(gè)16x16大小的亮度分量宏塊,對(duì)應(yīng)兩個(gè)8x8大小的色度分量塊。采用4: 2: 0格式時(shí), 一整幅圖像所占用的存儲(chǔ)空間為以176xl44大小的圖像為例,對(duì)亮度分量,需要176x144 =25344字節(jié)的存儲(chǔ)空間,對(duì)兩個(gè)色度分量,需要(88x72)x2 = 12672字節(jié)的存儲(chǔ)空間,所以 總共需38016字節(jié)的存儲(chǔ)空間。
正如前面所述,在H.264中,解碼結(jié)束后要進(jìn)行環(huán)路濾波,環(huán)路濾波是以宏塊為單位進(jìn) 行的,并且對(duì)亮度分量塊與兩個(gè)色度分量塊要分別進(jìn)行濾波。對(duì)亮度分量來說,每個(gè)宏塊的 濾波要用到其上面的宏塊中與當(dāng)前宏塊相鄰接的四行像素以及左面宏塊中與當(dāng)前宏塊相鄰接 的四列像素,而對(duì)兩個(gè)色度分量來說,每個(gè)8x8塊的濾波要用到上面8x8塊的兩行像素和左 面8x8塊的兩列像素,如下圖10所示。
在實(shí)現(xiàn)宏塊按光柵掃描順序解碼后,環(huán)路濾波可在每個(gè)宏塊解碼結(jié)束后立即進(jìn)行,由于 宏塊濾波要用到相鄰的上面宏塊與左面宏塊的像素,所以對(duì)亮度分量來說,需要存儲(chǔ)當(dāng)前解 碼宏塊的上面一行宏塊的四行像素和左面一個(gè)宏塊的四列像素,而對(duì)兩個(gè)8x8的色度分量塊 來說,需要存儲(chǔ)當(dāng)前解碼塊的上面一行塊的兩行像素和左面一個(gè)塊的兩列像素。以176 x 144 大小的圖像為例,對(duì)亮度分量,需要176x4+16x4=704+64=768字節(jié)的存儲(chǔ)空間,對(duì)兩個(gè)
色度分量,需要(88x2 + 8x2)x2 = 384字節(jié)的存儲(chǔ)空間,所以總共需1152字節(jié)的存儲(chǔ)空間,這
些內(nèi)容放在環(huán)路濾波暫存器中。
如前所述,在視頻壓縮標(biāo)準(zhǔn)中,當(dāng)前塊與經(jīng)過運(yùn)動(dòng)估計(jì)后的預(yù)測(cè)塊的差值形成預(yù)測(cè)誤差
塊,為了進(jìn)一步去除像素之間的空間相關(guān)性,預(yù)測(cè)誤差塊還要經(jīng)過變換編碼和量化,量化后
的系數(shù)通過熵編碼進(jìn)一步提高壓縮效率。在H.264中,有兩種可選擇的熵編碼方法,分別是
基于上下文的可變長(zhǎng)編碼CAVLC(context-adaptive variable-length coding)以及基于上下
文的二進(jìn)制算術(shù)編碼CABAC (context-adative binary arithmetic coding)。對(duì)于CABAC編
碼方式來說,上下文的信息對(duì)不同的條帶來說是不同的,而同一條帶內(nèi)前一宏塊解碼結(jié)束后
要將上下文信息(context model)傳送到下一宏塊,所以在采用CABAC編碼方式時(shí),需要將
每一個(gè)條帶內(nèi)的上下文信息保存,在當(dāng)前解碼宏塊與下一個(gè)解碼宏塊位于不同條帶時(shí),即需
要條帶切換時(shí),對(duì)應(yīng)每個(gè)條帶的上下文信息也必須一同進(jìn)行切換。
在H.264中,每幅圖像由一個(gè)或幾個(gè)條帶群組成,每個(gè)條帶群又含有一個(gè)或者幾個(gè)條帶。
在同一條帶群中,宏塊總是以遞增(但不一定連續(xù))的宏塊序號(hào)放置的,而靈活宏塊排序(FMO)
是通過宏塊到條帶群的映射(MAP)操作實(shí)現(xiàn)的。H.264碼流的內(nèi)容以語(yǔ)法結(jié)構(gòu)表形式出現(xiàn),并
具有層次特征,上層語(yǔ)法結(jié)構(gòu)由相應(yīng)的語(yǔ)法元素組成并可能包含底層的語(yǔ)法結(jié)構(gòu)。如條帶數(shù)
據(jù)(slice data)語(yǔ)法結(jié)構(gòu)包含了 mb_skip_flag等語(yǔ)法元素及macroblock_layer()語(yǔ)法結(jié)構(gòu),
macroblock—layer ()語(yǔ)法結(jié)構(gòu)規(guī)定了宏塊中所包含的信息。圖像參數(shù)集(picture parameter
set)是比264碼流中的一個(gè)語(yǔ)法結(jié)構(gòu),它包括一幅圖像的所有條帶的所有相關(guān)信息。在開始
解碼條帶前,碼流中有一個(gè)或多個(gè)圖像參數(shù)集傳輸?shù)讲⒋鎯?chǔ)在解碼器中。 一幅圖像使用哪個(gè)
圖像參數(shù)集由條帶頭語(yǔ)法結(jié)構(gòu)中的語(yǔ)法元素picjarameter—set一id來選擇。在圖像參數(shù)集
(picture parameter set ) 語(yǔ)法結(jié)構(gòu)中包含 num_slice—group—minus—1 和
slice—group—map—type兩個(gè)語(yǔ)法元素。num—slice—group_minus_l表征了當(dāng)前圖像所使用的
條帶群數(shù)。當(dāng)該參數(shù)取0時(shí),說明當(dāng)前圖像只有一個(gè)條帶群,所有的宏塊屬于這個(gè)條帶群且
宏塊在條帶內(nèi)是以光柵掃描順序排列的;當(dāng)該參數(shù)大于0時(shí),說明當(dāng)前圖像有多于一個(gè)的條
帶群且宏塊與條帶群之間的映射(MAP)形式由參數(shù)Slice_group_map__type決定。在H. 264中,
slice—group—raap—type取值范圍為{0, 1, 2, 3, 4, 5, 6},每個(gè)值對(duì)應(yīng)一種映射方式,即宏
塊與條帶群之間共有7種映射形式。不同的映射形式對(duì)應(yīng)宏塊在條帶群內(nèi)的不同放置。因此
在得到圖像參數(shù)集語(yǔ)法結(jié)構(gòu)中的num—slice—group—minus—1和slice—group—map—type信息后
就能確定一幅圖像所包含的所有宏塊與條帶群之間的映射關(guān)系,也就是說給定宏塊按光柵掃 描的序號(hào)i之后,在解碼條帶內(nèi)容前,就能確定該宏塊所屬條帶群。這些映射的信息放在數(shù)
組MbToSliceGro叩Map[]中。另外,條帶頭語(yǔ)法結(jié)構(gòu)中含有語(yǔ)法元素條帶中第一宏塊 (first_mb_in—slice ),它給出當(dāng)前條帶中第一個(gè)宏塊的序號(hào)。利用數(shù)組 MbToSliceGroupM即[],條帶中第一宏塊(first—mb_in—slice)以及宏塊序號(hào)在同一條帶群 中總是遞增(但不一定連續(xù))的性質(zhì),就可以在未解碼完的條帶中找到包含宏塊i的條帶。
通過以上說明,宏塊級(jí)耦合的解碼和環(huán)路濾波方法的一個(gè)實(shí)施例描述如下-
1) 讀取輸入碼流中當(dāng)前圖像的所有條帶信息并放入條帶緩存區(qū)中;
2) 初始化每個(gè)條帶用于CABAC解碼的上下文信息并放入條帶的上下文信息暫存區(qū)中;
3) 初始化當(dāng)前解碼宏塊的指數(shù)i=0;
4) 在當(dāng)前圖像的所有條帶中,找到條帶中第一個(gè)宏塊的序號(hào)等于0的條帶,跳到步驟6);
5) 在條帶緩存區(qū)中搜索其第一個(gè)宏塊的映射(MbToSliceGroupMap[first_mb—in—slice]) 等于宏塊i的映射(MbToSliceGro叩Map[i])的非空條帶,此條帶即為宏塊i所在的條帶;
6) 從上下文信息暫存區(qū)中讀取宏塊i所在的條帶的上下文信息
7) 在宏塊i所在的條帶中解碼宏塊i;
8) 對(duì)宏塊i進(jìn)行環(huán)路濾波;
9) 將宏塊i中與后續(xù)宏塊濾波有關(guān)的采樣值放入環(huán)路濾波暫存器中;
10) 將宏塊i所在條帶用于CABAC解碼的最新上下文信息放入條帶的上下文信息暫存區(qū)
中;
11) 解碼宏塊指數(shù)i遞增l;
12) 判斷i是否等于一幅圖像包含的總宏塊個(gè)數(shù),若等于則當(dāng)前圖像解碼結(jié)束,順序執(zhí) 行以下步驟,否則跳到步驟5);
13) 判斷視頻碼流是否結(jié)束,若結(jié)束則解碼全部完成,否則跳到步驟l)進(jìn)行下一幅圖像 的解碼。
上述解碼和環(huán)路濾波實(shí)施例的流程圖如圖11所示
上述宏塊級(jí)耦合的的解碼和環(huán)路濾波實(shí)施例所應(yīng)用的裝置示意圖如圖12所示 整個(gè)解碼和環(huán)路濾波裝置由以下模塊和單元組成 序列參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的序列參數(shù)集; 圖像參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的圖像參數(shù)集;
整幅圖像的所有條帶頭信息緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶頭內(nèi)容; 整幅圖像的所有條帶數(shù)據(jù)緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶數(shù)據(jù)內(nèi)容; 解碼控制模塊,其輸入端與序列參數(shù)集存儲(chǔ)模塊、圖像參數(shù)集存儲(chǔ)模塊和整輻圖像的所
有條帶頭信息緩存模塊相連,接受這三個(gè)模塊的信息,用來控制整個(gè)解碼流程。此模塊包括 以下單元-
(1) 條帶中第一宏塊(firstjnb一in—slice)與0比較單元,其輸入端與條帶頭信息緩存 模塊相連,其輸出端與宏塊讀取模塊相連,用來確定條帶中第一宏塊(first_mb—in—slice) 等于0的條帶,并指示宏塊讀取模塊從此條帶中讀取宏塊數(shù)據(jù);
(2) 映射存儲(chǔ)和宏塊所在條帶判別單元,其輸入端與條帶頭信息緩存模塊相連,其輸出端 與宏塊讀取模塊相連,用于存儲(chǔ)宏塊到條帶群的映射信息并計(jì)算每個(gè)宏塊所在的條帶群數(shù), 根據(jù)這些信息判別出MbToSliceGro叩Map[firstjnb—in_slice] = MbToSliceGroupMap[i]的條 帶,即宏塊i所在的條帶,并指示宏塊讀取模塊從此條帶中讀取宏塊數(shù)據(jù);
(3) 當(dāng)前圖像已解碼宏塊數(shù)與宏塊總數(shù)比較單元,用來判定一幅圖像的解碼是否已經(jīng)全部 結(jié)束,從而可以開始解碼一幅新的圖像。
宏塊讀取模塊,其輸入端與解碼控制模塊和條帶數(shù)據(jù)緩存模塊相連,根據(jù)解碼控制模塊 提供的信息,從條帶數(shù)據(jù)緩存模塊的相應(yīng)的條帶中讀出當(dāng)前解碼宏塊的數(shù)據(jù); 宏塊解碼和環(huán)路濾波模塊,包括以下單元
(1) 宏塊解碼及環(huán)路濾波單元,其輸入端與宏塊讀取模塊、環(huán)路濾波暫存器單元,條帶的 上下文信息暫存單元相連,接受這些模塊或單元提供的數(shù)據(jù),實(shí)現(xiàn)宏塊解碼及環(huán)路濾波的功 能;
(2) 環(huán)路濾波暫存器,其輸入、輸出端均與宏塊解碼及環(huán)路濾波單元相連,當(dāng)前宏塊濾波 結(jié)束后,將亮度分量宏塊的最后四行和最右邊四列及兩個(gè)色度分量塊的最后兩行和最右邊兩 列內(nèi)容暫存,用于后續(xù)宏塊的濾波。
(3) 條帶的上下文信息初始化單元,其輸入端與解碼控制模塊中的當(dāng)前圖像已解碼宏塊數(shù) 與宏塊總數(shù)比較單元相連,當(dāng)一幅新的圖像解碼開始時(shí),初始化各條帶的上下文信息并將其 存入條帶的上下文信息暫存單元,即其輸出與條帶的上下文信息暫存單元相連。
(4) 條帶的上下文信息暫存單元,其輸入端與宏塊解碼及環(huán)路濾波單元和條帶的上下文信 息初始化單元相連,在宏塊i解碼結(jié)束后,暫存宏塊i所在條帶用于CABAC解碼的最新上下 文信息。
圖像顯示或存儲(chǔ)模塊,顯示或存儲(chǔ)解碼和環(huán)路濾波后的復(fù)原圖像內(nèi)容。
權(quán)利要求
1、一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法,包括解碼和環(huán)路濾波步驟,其特征在于所述其解碼步驟中按宏塊光柵掃描的順序進(jìn)行的,并暫存當(dāng)前宏塊的濾波用到上面宏塊和左面宏塊的相關(guān)像素,所述環(huán)路濾波步驟中利用暫存的相關(guān)像素對(duì)當(dāng)前宏塊進(jìn)行環(huán)路濾波,直到當(dāng)前圖像解碼結(jié)束。
2、 根據(jù)權(quán)利要求1所述的視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法,其特征在于所述解 碼和環(huán)路濾波具體包括以下步驟1) 讀取輸入碼流中當(dāng)前圖像的所有條帶信息并暫存;2) 初始化當(dāng)前解碼宏塊的指數(shù)i=0;3) 找到當(dāng)前解碼宏塊i所屬條帶后解碼該宏塊i;4) 對(duì)宏塊i進(jìn)行環(huán)路濾波;5) 宏塊指數(shù)i遞增l;6) 判斷當(dāng)前圖像解碼是否結(jié)束,若結(jié)束則順序執(zhí)行以下步驟,否則跳到步驟3);7) 判斷視頻碼流是否結(jié)束,若結(jié)束則解碼全部完成,否則跳到步驟1)進(jìn)行下一幅圖像 的解碼。
3、 根據(jù)權(quán)利要求1所述的視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法,其特征在于當(dāng)視頻碼流的熵編碼為CABAC時(shí),所述解碼和環(huán)路濾波具體包括以下步驟-1) 讀取輸入碼流中當(dāng)前圖像的所有條帶信息并放入條帶緩存區(qū)中;2) 初始化每個(gè)條帶用于CABAC解碼的上下文信息并放入條帶的上下文信息暫存區(qū)中;3) 初始化當(dāng)前解碼宏塊的指數(shù)i=0;4) 在當(dāng)前圖像的所有條帶中,找到條帶中第一個(gè)宏塊的序號(hào)等于0的條帶,跳到步驟6);5) 在條帶緩存區(qū)中搜索其第一個(gè)宏塊的宏塊到條帶群映射等于宏塊i的宏塊到條帶群映 射的非空條帶,此條帶即為宏塊i所在的條帶;6) 從上下文信息暫存區(qū)中讀取宏塊i所在的條帶的上下文信息;7) 在宏塊i所在的條帶中解碼宏塊i;8) 對(duì)宏塊i進(jìn)行環(huán)路濾波;9) 將宏塊i中與后續(xù)宏塊濾波有關(guān)的采樣值放入環(huán)路濾波暫存器中;10) 將宏塊i所在條帶用于CABAC解碼的最新上下文信息放入條帶的上下文信息暫存區(qū) 中;11) 解碼宏塊指數(shù)i遞增l;12) 判斷i是否等于一幅圖像包含的總宏塊個(gè)數(shù),若等于則當(dāng)前圖像解碼結(jié)束,順序執(zhí) 行以下步驟,否則跳到步驟5);13)判斷視頻碼流是否結(jié)束,若結(jié)束則解碼全部完成,否則跳到步驟l)進(jìn)行下一幅圖像的解碼。
4、 一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波裝置,其特征在于包括 序列參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的序列參數(shù)集;圖像參數(shù)集存儲(chǔ)模塊,用于存儲(chǔ)從碼流中讀出的圖像參數(shù)集;整幅圖像的所有條帶頭信息緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶頭內(nèi)容; 整幅圖像的所有條帶數(shù)據(jù)緩存模塊,用于存儲(chǔ)讀出的一幅圖像中的所有條帶數(shù)據(jù)內(nèi)容; 解碼控制模塊,其輸入端與序列參數(shù)集存儲(chǔ)模塊、圖像參數(shù)集存儲(chǔ)模塊和整幅圖像的所有 條帶頭信息緩存模塊相連,接受這三個(gè)模塊的信息,用來控制整個(gè)解碼流程,判定哪個(gè)條 帶是按光柵掃描順序遞增的當(dāng)前解碼宏塊所在的條帶,并判定一幅圖像的解碼是否結(jié)束; 宏塊讀取模塊,其輸入端與解碼控制模塊和條帶數(shù)據(jù)緩存模塊相連,根據(jù)解碼控制模塊提 供的信息,從條帶數(shù)據(jù)緩存模塊的相應(yīng)的條帶中讀出當(dāng)前解碼宏塊的數(shù)據(jù); 宏塊解碼和環(huán)路濾波模塊,其輸入端與宏塊讀取模塊相連,接受宏塊讀取模塊提供的數(shù)據(jù), 實(shí)現(xiàn)宏塊解碼及環(huán)路濾波的功能;圖像顯示或存儲(chǔ)模塊,顯示或存儲(chǔ)解碼和環(huán)路濾波后的復(fù)原圖像內(nèi)容。
5、 根據(jù)權(quán)利要求4所述的視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波裝置,其特征在于所述 解碼控制模塊包括以下單元條帶中第一宏塊與0比較單元,其輸入端與條帶頭信息緩存模塊相連,其輸出端與宏塊讀 取模塊相連,用來確定條帶中第一宏塊等于O的條帶,并指示宏塊讀取模塊從此條帶中讀 取宏塊數(shù)據(jù);映射存儲(chǔ)和宏塊所在條帶判別單元,其輸入端與條帶頭信息緩存模塊相連,其輸出端與宏 塊讀取模塊相連,用于存儲(chǔ)宏塊到條帶群的映射信息并計(jì)算每個(gè)宏塊所在的條帶群數(shù),根 據(jù)這些信息判別出宏塊i所在的條帶,并指示宏塊讀取模塊從此條帶中讀取宏塊數(shù)據(jù); 當(dāng)前圖像已解碼宏塊數(shù)與宏塊總數(shù)比較單元,用于判定一幅圖像的解碼是否已經(jīng)全部結(jié) 束。下文信息初始化單元、條帶的上下文信息暫存單元,其中宏塊解碼及環(huán)路濾波單元,其輸入端與宏塊讀取模塊、環(huán)路濾波暫存器單元,條帶的上下 文信息暫存單元相連,接受這些模塊或單元提供的數(shù)據(jù),實(shí)現(xiàn)宏塊解碼及環(huán)路濾波的功能; 環(huán)路濾波暫存器,其輸入、輸出端均與宏塊解碼及環(huán)路濾波單元相連,當(dāng)前宏塊濾波結(jié)束 后,將亮度分量宏塊的最后四行和最右邊四列及兩個(gè)色度分量塊的最后兩行和最右邊兩列 內(nèi)容暫存,用于后續(xù)宏塊的濾波;條帶的上下文信息初始化單元,其輸入端與解碼控制模塊中的當(dāng)前圖像已解碼宏塊數(shù)與宏 塊總數(shù)比較單元相連,當(dāng)一幅新的圖像解碼開始時(shí),初始化各條帶的上下文信息并將其存 入條帶的上下文信息暫存單元,即其輸出與條帶的上下文信息暫存單元相連; 條帶的上下文信息暫存單元,其輸入端與宏塊解碼及環(huán)路濾波單元和條帶的上下文信息初 始化單元相連,在宏塊i解碼結(jié)束后,暫存宏塊i所在條帶用于CABAC解碼的最新上下文fe息。
全文摘要
本發(fā)明提供一種視頻碼流的宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置,適用于具有靈活宏塊排序和任意條帶順序機(jī)制的視頻壓縮碼流的解碼和環(huán)路濾波,本發(fā)明不需要在一幅圖像全部宏塊解碼結(jié)束后再進(jìn)行環(huán)路濾波,而是在每個(gè)宏塊解碼結(jié)束后立即進(jìn)行環(huán)路濾波,解碼過程和環(huán)路濾波之間不需要把整幅圖像的宏塊暫存到緩沖區(qū),也避免了暫存和再讀取所需要的時(shí)間和計(jì)算。在這種宏塊級(jí)耦合的解碼和環(huán)路濾波方法和裝置中,解碼過程是按宏塊光柵掃描的順序進(jìn)行的,由于當(dāng)前宏塊的濾波用到上面宏塊和左面宏塊的有關(guān)像素,因此只需要將當(dāng)前宏塊的上面一行宏塊和左面一個(gè)宏塊的相應(yīng)像素進(jìn)行暫存即可,顯著減少了緩沖存儲(chǔ)器的空間,降低了解碼器的實(shí)現(xiàn)成本。
文檔編號(hào)H04N7/24GK101115195SQ20061002931
公開日2008年1月30日 申請(qǐng)日期2006年7月24日 優(yōu)先權(quán)日2006年7月24日
發(fā)明者濤 林, 林爭(zhēng)輝, 王淑慧 申請(qǐng)人:同濟(jì)大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
微山县| 博乐市| 岳普湖县| 图木舒克市| 都安| 大足县| 永川市| 新蔡县| 河间市| 乌拉特前旗| 开封市| 宁陕县| 防城港市| 兰考县| 高碑店市| 宝鸡市| 临沭县| 江川县| 通辽市| 房产| 郎溪县| 祁东县| 剑阁县| 红桥区| 玉树县| 通州市| 沾益县| 安新县| 高雄县| 黄冈市| 昭觉县| 石楼县| 辛集市| 泽普县| 伽师县| 高要市| 北海市| 安徽省| 吐鲁番市| 青州市| 洪泽县|