專利名稱:一種視頻系數(shù)的并行掃描方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字音視頻編碼領(lǐng)域,特別涉及一種視頻系數(shù)的并行掃描方法。
技術(shù)背景在眾多的圖像編碼協(xié)議,如H.264、 AVS等,幀內(nèi)圖像編碼都需要通過(guò)離散 余弦變換(DCT),即將圖像從空間的表達(dá)式或空間域轉(zhuǎn)化為頻i普表達(dá)式或頻率 域。這是因?yàn)榻?jīng)過(guò)變換,圖像只需要少量的數(shù)據(jù)點(diǎn)就可以表示;并且由于DCT 產(chǎn)生的系數(shù)4艮容易被量化,可獲得更好的塊壓縮。在量化后,圖像矩陣中的大 多數(shù)DCT系數(shù)都被截取為零值。在使用DCT變換的時(shí)候,量化后的二維的系 數(shù)通常使用Zig-Zag掃描(讀取)方法將系數(shù)表示為一維的,再對(duì)連續(xù)0系數(shù)的 個(gè)數(shù)(run)和非0系數(shù)的大小(Level)進(jìn)行編碼?,F(xiàn)有的Zig-Zag掃描實(shí)現(xiàn)方法,如圖1所示,圓圈內(nèi)的數(shù)字表示掃描的次序, 每個(gè)時(shí)鐘周期只處理一個(gè)數(shù)據(jù),這樣對(duì)于8x8的量化塊而言,需要經(jīng)過(guò)64個(gè)時(shí) 鐘才可以處理完畢,在編碼的實(shí)時(shí)性要求高的情況下,如高清編碼就很難實(shí)現(xiàn) 實(shí)時(shí)編碼。發(fā)明內(nèi)容本發(fā)明的目的在于提供一種視頻系數(shù)的并行掃描方法,所述方法通過(guò)并行 掃描,從而大大節(jié)省時(shí)鐘周期,很好的滿足編碼的實(shí)時(shí)性要求。本發(fā)明的目的是這樣實(shí)現(xiàn)的 一種視頻系數(shù)的并行掃描方法,所述方法是 在對(duì)離散余弦變換系數(shù)進(jìn)行量化后,進(jìn)入編碼前完成的將8x8 二維像素子塊轉(zhuǎn) 換為一維排列方式的過(guò)程,所述方法涉及輸入暫存寄存器、掃描控制器、計(jì)數(shù) 器以及輸出存儲(chǔ)器,所述并行掃描方法是這樣實(shí)現(xiàn)的步驟l、按照Z(yǔ)ig-Zag掃描的順序,將8x8子塊量化系數(shù)均分成若干數(shù)組, 每個(gè)數(shù)組包含m個(gè)量化系數(shù),如果最后一組不滿m個(gè)數(shù),則以0補(bǔ)足;步驟2、將計(jì)數(shù)器置零,開(kāi)始對(duì)輸入暫存寄存器量化系數(shù)進(jìn)行掃描; 步驟3、對(duì)于步驟1所述的任一數(shù)組|>\1,八2,...八11...,八111],其中任一量化系 數(shù)An:a) 如果An-0,不輸出幅度和游程數(shù)對(duì)(level, run);b) 如果An^0,此時(shí)計(jì)數(shù)器的值為x,則當(dāng)An為本數(shù)組首個(gè)不為0的 數(shù)時(shí),其前面有n-l個(gè)數(shù)為O,則生成的(level, run)數(shù)對(duì)為(An, x+n-1),同時(shí)將計(jì)數(shù)器的值置為0;當(dāng)An為本數(shù)組的非首個(gè)不為0 的數(shù)時(shí),設(shè)數(shù)Au ( 1" < w )是在An之前距An最近的一個(gè)不為0 的數(shù),則An生成的(level, run)數(shù)對(duì)為(An, n-u-1);步驟4、從輸出存儲(chǔ)器輸出(level, run)數(shù)對(duì);步驟5、移動(dòng)量化系數(shù)存儲(chǔ)地址,重復(fù)步驟3 步驟4,直至完成該子塊的 掃描。在所述的輸出存儲(chǔ)器中, 一行并行存放m個(gè)(level, run)數(shù)對(duì)的寄存器。 本發(fā)明由于采用了上述的技術(shù)方案,使現(xiàn)有技術(shù)中 一個(gè)時(shí)鐘只處理一個(gè)數(shù)據(jù)的情況變?yōu)榭梢酝瑫r(shí)處理m個(gè)數(shù)據(jù),因此大大節(jié)省了時(shí)鐘周期,可以盡量滿足編碼的實(shí)時(shí)性要求。
本發(fā)明的視頻系數(shù)的并行掃描方法由以下的實(shí)施例及附圖詳細(xì)給出。 圖1為一般的Zig-Zag掃描示意圖; 圖2為本發(fā)明實(shí)施例的掃描示意圖。
具體實(shí)施方式
以下將對(duì)本發(fā)明的一種視頻系數(shù)的并行掃描方法作進(jìn)一步的詳細(xì)描述。 根據(jù)本發(fā)明提供的 一種視頻系數(shù)的并行掃描方法,所述方法是在對(duì)離散余弦 變換系數(shù)進(jìn)行量化后,進(jìn)入編碼前完成的將8x8 二維像素子塊轉(zhuǎn)換為一維排列 方式的過(guò)程,所述方法涉及輸入暫存寄存器、掃描控制器、計(jì)數(shù)器以及輸出存 儲(chǔ)器,所述并行掃描方法是這樣實(shí)現(xiàn)的步驟l、按照Z(yǔ)ig-Zag掃描的順序,將8x8子塊量化系數(shù)均分成若干數(shù)組,每個(gè)數(shù)組包含m個(gè)量化系數(shù),如果最后一組不滿m個(gè)數(shù),則以0補(bǔ)足; 步驟2、將計(jì)數(shù)器置零,開(kāi)始對(duì)輸入暫存寄存器量化系數(shù)進(jìn)行掃描; 步驟3、對(duì)于步驟1所述的任一數(shù)組[Al,A2,…An…,Am],其中任一量化系數(shù)An:a) 如果An = 0,不輸出幅度和游程數(shù)對(duì)(level, run);b) 如果An^0,此時(shí)計(jì)數(shù)器的值為x,則當(dāng)An為本數(shù)組首個(gè)不為O的 數(shù)時(shí),其前面有n-l個(gè)數(shù)為O,則生成的(level, run)數(shù)對(duì)為(Ari, x+n-l),同時(shí)將計(jì)數(shù)器的值置為O;當(dāng)An為本數(shù)組的非首個(gè)不為0 的數(shù)時(shí),設(shè)數(shù)Au (1^"<")是在An之前距An最近的一個(gè)不為0 的數(shù),則An生成的(level, run)數(shù)對(duì)為(An, n-u-1);步驟4、從輸出存儲(chǔ)器輸出(level, run)數(shù)對(duì);步驟5、重復(fù)步驟3~步驟4,直至完成該子塊的掃描。假設(shè)本實(shí)施例中m=2,即兩路并行掃描,在步驟1中將8x8子塊量化系數(shù) 均分成32個(gè)數(shù)組,以每個(gè)量化系數(shù)的地址表示為[O, l], [2, 3], [4, 5]......[62,63];對(duì)于以上數(shù)組中地址所對(duì)應(yīng)的量化系數(shù)的值是否為零,可以分為四種情況, 即[P, O],
, [S, T]或[O, O],其中P, Q, S, T為某一不為零的數(shù)。在步驟3中,掃描過(guò)程需判斷以上數(shù)組中地址所指量化系數(shù)符合以下哪種 情況:a) 當(dāng)符合[P, O]形式時(shí),即第一個(gè)數(shù)不為O,設(shè)此時(shí)計(jì)數(shù)器值為x,則形成 一組(level, run)數(shù)對(duì)為(P, x);第二個(gè)數(shù)為0,則不形成(level, run), 而是將計(jì)數(shù)器置為1;b) 當(dāng)符合[O, Q]形式時(shí),即第一個(gè)數(shù)為0,第二個(gè)不為0,設(shè)此時(shí)計(jì)數(shù)器 值為x,則形成一組(level, run)數(shù)對(duì)為(Q, x+1 ),同時(shí)將計(jì)數(shù)器置O;c) 當(dāng)符合[S, T]形式時(shí),即第一個(gè)數(shù)和第二個(gè)數(shù)均不為0,設(shè)此時(shí)計(jì)數(shù)器 值為x,則形成兩組(level, run)數(shù)對(duì)(S, x)和(T, 0),同時(shí)將計(jì)數(shù) 器置0;d) 當(dāng)符合(O, O)形式時(shí),即第一個(gè)數(shù)和第二個(gè)數(shù)均為O,則不形成(level, run)數(shù)對(duì),只將計(jì)數(shù)器加2。當(dāng)對(duì)第一組地址數(shù)據(jù)所寄存的量化系數(shù)處理完之后,要將輸入暫存寄存器中的數(shù)據(jù)按照?qǐng)D2中細(xì)實(shí)線或細(xì)虛線箭頭所指的順序進(jìn)行移位操作,以保證下 一時(shí)鐘能夠讀到正確的數(shù)據(jù)。在圖2中,奇數(shù)地址的量化按照細(xì)實(shí)線箭頭所示 的方向進(jìn)行移動(dòng),偶數(shù)地址的量化按照細(xì)虛線箭頭所示的方向進(jìn)行移動(dòng)。粗實(shí) 線箭頭為外部送入量化系數(shù)時(shí)的移動(dòng)方向;在輸出存儲(chǔ)器中, 一行并行存放了兩個(gè)(level, run)數(shù)對(duì)的寄存器。 本實(shí)施例中由于并行處理了兩個(gè)數(shù)據(jù),因此只需經(jīng)過(guò)32個(gè)時(shí)鐘周期,就可 完成64個(gè)的量化系數(shù)的掃描,從而節(jié)省了 64-64/m-32個(gè)時(shí)鐘周期。
權(quán)利要求
1、一種視頻系數(shù)的并行掃描方法,所述方法是在對(duì)離散余弦變換系數(shù)進(jìn)行量化后,進(jìn)入編碼前完成的將8×8二維像素子塊轉(zhuǎn)換為一維排列方式的過(guò)程,所述方法包括提供一輸入暫存寄存器、掃描控制器、計(jì)數(shù)器以及輸出存儲(chǔ)器,其特征在于,所述并行掃描方法還包括下列步驟步驟1、按照Z(yǔ)ig-Zag掃描的順序,將8×8子塊量化系數(shù)均分成若干數(shù)組,每個(gè)數(shù)組包含m個(gè)量化系數(shù),如果最后一組不滿m個(gè)數(shù),則以0補(bǔ)足;步驟2、將計(jì)數(shù)器置零,掃描控制器開(kāi)始對(duì)輸入暫存寄存器量化系數(shù)進(jìn)行掃描;步驟3、對(duì)于步驟1所述的任一數(shù)組[A1,A2,...An...,Am],其中任一量化系數(shù)Ana)如果An=0,不輸出幅度和游程數(shù)對(duì)(level,run);b)如果An≠0,此時(shí)計(jì)數(shù)器的值為x,則當(dāng)An為本數(shù)組首個(gè)不為0的數(shù)時(shí),其前面有n-1個(gè)數(shù)為0,則生成的(level,run)數(shù)對(duì)為(An,x+n-1),同時(shí)將計(jì)數(shù)器的值置為0;當(dāng)An為本數(shù)組的非首不為0的數(shù)時(shí),設(shè)數(shù)Au(1≤u<n)是在An之前距An最近的一個(gè)不為0的數(shù),則An生成的(level,run)數(shù)對(duì)為(An,n-u-1);步驟4、從輸出存儲(chǔ)器輸出(level,run)數(shù)對(duì);步驟5、移動(dòng)量化系數(shù)存儲(chǔ)地址,重復(fù)步驟3~步驟4,直至完成該子塊的掃描。
2、 如權(quán)利要求1所述的一種視頻系數(shù)的并行掃描方法,在所述的輸出存儲(chǔ) 器中, 一行并行存放m個(gè)(level, run)數(shù)對(duì)的寄存器。
全文摘要
本發(fā)明提供了一種視頻系數(shù)的并行掃描方法,所述方法按Zig-Zag掃描的順序,將子塊量化系數(shù)分成若干數(shù)組,每個(gè)數(shù)組包含m個(gè)量化系數(shù);對(duì)于所述的任一數(shù)組[A1,A2,…An…,Am],其中任一量化系數(shù)An如果An=0,則計(jì)數(shù)器值加1,不輸出幅度和游程的數(shù)對(duì);如果An≠0,此時(shí)計(jì)數(shù)器的值為x,則當(dāng)An為本數(shù)組首個(gè)不為0的數(shù)時(shí),生成幅度和游程數(shù)對(duì)(An,x+n-1),同時(shí)將計(jì)數(shù)器置0;當(dāng)An為本數(shù)組的非首個(gè)不為0的數(shù)時(shí),設(shè)數(shù)Au(1≤u<n)是在An之前距An最近的不為0的數(shù),則An生成的數(shù)對(duì)為(An,n-u-1);輸出(level,run)數(shù)對(duì),重復(fù)直至完成該子塊的掃描,只需消耗現(xiàn)有技術(shù)中m分之一的時(shí)鐘。
文檔編號(hào)H04N7/26GK101217665SQ20081003263
公開(kāi)日2008年7月9日 申請(qǐng)日期2008年1月14日 優(yōu)先權(quán)日2008年1月14日
發(fā)明者劉錦陽(yáng), 王蕾睿, 霞 范 申請(qǐng)人:上海廣電(集團(tuán))有限公司中央研究院