專利名稱:一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在數(shù)字電視接收中,如移動電視、地面廣播等,實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法和 系統(tǒng)。
背景技術(shù):
數(shù)字電視被認(rèn)為是21世紀(jì)前景最廣闊的產(chǎn)業(yè)之一,也是國際范圍內(nèi)數(shù)字消費(fèi)類 電子信息產(chǎn)品發(fā)展的重點(diǎn),目前數(shù)字電視接收已經(jīng)滲透到各種終端,包括手機(jī)、PMP、PSP、 PC、機(jī)頂盒等等。中國本土的地面廣播標(biāo)準(zhǔn)和移動電視標(biāo)準(zhǔn)也已經(jīng)確立?;趬K的DCT變換(離散余弦變換)算法被廣泛用于各種視頻標(biāo)準(zhǔn)中,包括 MPEG1/2/4,H. 26x和AVS中。圖1為一典型的基于塊變換的數(shù)字電視解碼示意圖。在解碼圖像顯示時,由于觀看習(xí)慣的不同,用戶一般都需要對圖像進(jìn)行旋轉(zhuǎn)顯示, 尤其是對手機(jī)或者PMP屏幕。傳統(tǒng)的旋轉(zhuǎn)顯示的實(shí)現(xiàn)方法需要從顯示幀緩存中讀取數(shù)據(jù),然后旋轉(zhuǎn),最后存入 到顯示幀緩存中(很可能是另一段區(qū)域),如圖2所示。由于解碼后的圖像數(shù)據(jù)量較大,這 樣的實(shí)現(xiàn)將會增加對存儲器的存取次數(shù),甚至需要增加對存儲大小的要求,從而導(dǎo)致終端 價格增加、功耗增大。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題提供一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法和系 統(tǒng),在不增加存取次數(shù)和存儲空間的情況下實(shí)現(xiàn)對視頻解碼后的圖像進(jìn)行旋轉(zhuǎn)顯示。根據(jù)本發(fā)明一方面,提出一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng),包括熵解 碼模塊,接收并解碼視頻基本流,得到塊或者塊殘差的離散余弦變換DCT變換域矩陣以及 運(yùn)動矢量;反量化模塊,對DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域矩陣的各個系數(shù) 反變換到量化前的數(shù)值,經(jīng)加權(quán)反量化后的DCT變換域矩陣的系數(shù)對應(yīng)于編碼端圖像塊或 塊殘差經(jīng)過DCT變換后的結(jié)果;反DCT模塊,將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間 域矩陣,即轉(zhuǎn)換為4x4或8x8的原始圖像塊或原始圖像塊殘差;矩陣轉(zhuǎn)置模塊,對原始圖像 塊或原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后圖像塊作為重建幀的一部分存入到幀存 儲器;幀存儲器,存儲顯示幀、重建幀和預(yù)測幀,重建幀在解碼過程中變換為預(yù)測幀,當(dāng)解碼 過程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯示幀。進(jìn)一步,所述實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng)還包括運(yùn)動矢量修正模塊,根據(jù)設(shè)定的旋轉(zhuǎn)角 度,對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量,并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送 給幀內(nèi)/幀間預(yù)測模塊;幀內(nèi)/幀間預(yù)測模塊,當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,從幀存儲器中讀 取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測像素,將預(yù)測像素與轉(zhuǎn)置后的原始圖像塊 殘差相加得到重建塊,并將重建塊寫入幀存儲器。進(jìn)一步,幀內(nèi)/幀間預(yù)測模塊還在預(yù)測類型為幀間預(yù)測時,從幀存儲器的預(yù)測幀 位置讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測塊,將預(yù)測塊與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,并將重建塊寫入幀存儲器。根據(jù)本發(fā)明另一方面,還提出一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法,包括 以下步驟熵解碼模塊接收視頻基本流,將視頻基本流進(jìn)行解碼,得到塊或者塊殘差的離散 余弦變換DCT變換域矩陣以及運(yùn)動矢量;反量化模塊將對DCT變換域矩陣進(jìn)行加權(quán)反量化, 將DCT變換域矩陣的各個系數(shù)反變換到量化前的數(shù)值,經(jīng)加權(quán)反量化后的DCT變換域矩陣 的系數(shù)對應(yīng)于編碼端圖像塊或塊殘差經(jīng)過DCT變換后的結(jié)果;反DCT模塊將加權(quán)反量化后 的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣,即轉(zhuǎn)換為4x4或8x8的原始圖像塊或原始圖像塊殘 差;矩陣轉(zhuǎn)置模塊對原始圖像塊或原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后原始圖像 塊作為重建幀的一部分存入到幀存儲器;幀存儲器存儲顯示幀、重建幀和預(yù)測幀,重建幀在 解碼過程中變換為預(yù)測幀,當(dāng)解碼過程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯 示幀。進(jìn)一步,對原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算后,還包括以下步驟根據(jù)設(shè)定的旋 轉(zhuǎn)角度,運(yùn)動矢量修正模塊對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量, 并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊;當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,幀內(nèi)/幀間預(yù)測 模塊從幀存儲器中讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測像素;將預(yù)測像素與 轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,將重建塊寫入幀存儲器的重建幀中。進(jìn)一步,對原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算后,還包括以下步驟根據(jù)設(shè)定的旋 轉(zhuǎn)角度,運(yùn)動矢量修正模塊對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量, 并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊;當(dāng)預(yù)測類型為幀間預(yù)測時,幀內(nèi)/幀間預(yù)測 模塊從幀存儲器的預(yù)測幀位置讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測塊;將預(yù) 測塊與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,將重建塊寫入幀存儲器的重建幀中。與現(xiàn)有技術(shù)相比,本發(fā)明消除了對存儲器讀取次數(shù)的額外要求,消除了對存儲器 空間的額外要求,并且降低了功耗。
圖1所示為現(xiàn)有技術(shù)的數(shù)字電視接收中視頻解碼的系統(tǒng)示意圖。圖2所示為現(xiàn)有技術(shù)的實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng)示意圖。圖3所示為本發(fā)明實(shí)現(xiàn)圖像塊旋轉(zhuǎn)的系統(tǒng)示意圖。圖4所示本發(fā)明實(shí)現(xiàn)圖像塊殘差旋轉(zhuǎn)的系統(tǒng)示意圖。圖5所示為本發(fā)明中8X8矩陣經(jīng)過90度轉(zhuǎn)置的實(shí)施例。圖6(a)所示為旋轉(zhuǎn)前相對位置示意圖。圖6(b)所示為旋轉(zhuǎn)后相對位置示意圖。圖7所示為本發(fā)明實(shí)現(xiàn)對圖像塊旋轉(zhuǎn)的方法流程圖。圖8所示為本發(fā)明通過幀內(nèi)預(yù)測實(shí)現(xiàn)對圖像塊殘差旋轉(zhuǎn)的方法流程圖。圖9所示為一 4x4的圖像塊在做幀內(nèi)預(yù)測時與相鄰像素的位置關(guān)系的示意圖,其 中a,b,c,d,e,f,g,h,I,j,k,1,m, n,o,ρ為所述4x4圖像塊的各個像素,ABCD為此圖像 塊上方相鄰圖像塊的最下方的4個像素,IJKL為此圖像塊左方相鄰圖像塊的最右方的4個 像素,M為此圖像塊左上方相鄰圖像塊的最右下角的像素。圖10所示為本發(fā)明通過幀間預(yù)測實(shí)現(xiàn)對圖像塊殘差旋轉(zhuǎn)的方法流程圖。
具體實(shí)施例方式圖1所示為現(xiàn)有技術(shù)的數(shù)字電視接收中視頻解碼的系統(tǒng)示意圖,包括熵解碼模塊 10、反DCT模塊20、反量化模塊30、幀內(nèi)/幀間預(yù)測模塊40和幀存儲器50。熵解碼模塊10接收視頻基本流ES,將所述視頻基本流進(jìn)行解碼,得到圖像塊或者 圖像塊殘差的離散余弦變換DCT變換域矩陣和相應(yīng)運(yùn)動矢量。所涉及的基于塊的壓縮標(biāo)準(zhǔn) 中,圖像宏塊和圖像宏塊殘差為基本運(yùn)算單位,一般一個圖像宏塊將包括幾個亮度圖像塊 (如MPEG2中包括4個)和幾個色度圖像塊(如MPEG2中包括2個)。在同一圖像宏塊中, 所述圖像塊的運(yùn)算都一致,以下將以圖像塊作為敘述單位,此圖像塊可以是4x4(如H. 264) 也可以是8x8 (如MPEG2)的矩陣。熵解碼模塊10接收數(shù)字電視接收系統(tǒng)其他模塊的視頻基本流,如解復(fù)用模塊將 數(shù)字電視傳輸流TS解復(fù)用后得到視頻基本流和音頻基本流,其中視頻基本流作為熵解碼 10的輸入。再如數(shù)字電視接收系統(tǒng)直接從硬盤或者網(wǎng)絡(luò)得到視頻基本流,作為熵解碼模塊 10的輸入。所述數(shù)字電視接收系統(tǒng)可以是數(shù)字電視機(jī)頂盒,包括地面、衛(wèi)星、有線或者是網(wǎng) 絡(luò)。也可以是帶有數(shù)字電視解碼功能的移動終端,如手機(jī)、PMP等。所述視頻基本流ES是 基于DCT塊變換的壓縮碼流,如H. 264、MPEGl/2/4、AVS等。熵解碼模塊10依據(jù)的解碼算法 可以是霍夫曼編碼、如MPEG1/2/3,或者是CABIC、CAVLCJn H. 264等。得到的DCT變換域矩 陣可以是4x4 (如H. 264)也可以是8x8 (如MPEG2)。反量化模塊30對所述DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域矩陣的各個 系數(shù)反變換到量化前的數(shù)值。經(jīng)反量化后的DCT變換域矩陣的系數(shù)對應(yīng)于編碼端圖像塊或 塊殘差經(jīng)過DCT變換后的結(jié)果。反DCT模塊20將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣,即轉(zhuǎn)換為 4x4或8x8的原始圖像塊或原始圖像塊殘差。當(dāng)轉(zhuǎn)換為原始圖像塊時,將所述原始圖像塊發(fā)送給幀存儲器50,以構(gòu)建重建幀 502。當(dāng)轉(zhuǎn)換為原始圖像塊殘差時,則根據(jù)預(yù)測類型得到預(yù)測塊,將所述預(yù)測塊與原始圖像 塊殘差相加得到重建塊。其中,預(yù)測類型包括幀內(nèi)、幀間預(yù)測,獲取預(yù)測塊的操作由幀內(nèi)/ 幀間預(yù)測模塊40執(zhí)行,將在下面進(jìn)行說明。幀內(nèi)/幀間預(yù)測模塊40對原始圖像塊殘差進(jìn)行預(yù)測得到預(yù)測塊,將預(yù)測塊與原始 圖像塊殘差相加得到重建幀502。當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,幀內(nèi)/幀間預(yù)測模塊40從已經(jīng)解碼完成的重建幀502 得到相應(yīng)的預(yù)測像素,該預(yù)測像素將根據(jù)幀內(nèi)預(yù)測類型從重建幀502中的相應(yīng)位置(如相 鄰的圖像宏塊的邊界像素)得到。該預(yù)測像素與反DCT模塊20得到的圖像塊殘差中相應(yīng) 像素相加得到重建塊,將該重建塊寫入幀存儲器50中重建幀502的相應(yīng)位置。以H. 264標(biāo) 準(zhǔn)為例,如果幀內(nèi)預(yù)測類型為4x4亮度幀內(nèi)預(yù)測模式1,即垂直預(yù)測,則幀內(nèi)/幀間預(yù)測模塊 40將從已經(jīng)解碼完成的重建幀502中得到所述圖像塊上方圖像塊的最下方的4個像素,如 圖9所示的ABCD,并將此四個像素與當(dāng)前圖像塊殘差(a,b,c, d ;e,f,g,h ;i,j,k,1 ;m, η, ο, ρ)垂直相加得到重建塊為(a+A,b+B, c+C,d+D ;e+A, f+B, g+C,h+D ;i+A, j+B, k+C,1+D ; m+A, n+B, o+C, p+D),將該重建塊寫入幀存儲器50中重建幀502的相應(yīng)位置。當(dāng)預(yù)測類型為幀間預(yù)測時,幀內(nèi)/幀間預(yù)測模塊40根據(jù)從熵解碼模塊10中得到的運(yùn)動矢量,從幀存儲器50中預(yù)測幀503位置得到相應(yīng)的預(yù)測塊,該預(yù)測塊將根據(jù)幀間預(yù) 測類型從預(yù)測幀503中的相應(yīng)位置得到像素并經(jīng)過濾波計(jì)算得到。假設(shè)幀間預(yù)測類型為P 幀,即前向預(yù)測,而且運(yùn)動矢量為(A,B),而所述圖像塊殘差在重建幀502的位置(塊的第 一個像素位置)為(k,l),則幀內(nèi)/幀間預(yù)測模塊40將會從預(yù)測幀503的(k+A,B+l)的位 置讀取一個圖像塊,即預(yù)測塊,該預(yù)測塊與反DCT模塊20得到的圖像塊殘差相加得到重建 塊,將該重建塊寫入幀存儲器50中重建幀502的相應(yīng)位置。幀存儲器50存儲顯示幀501、重建幀502和預(yù)測幀503。其中,重建幀502在解碼 過程中變換為預(yù)測幀503,以供未來的解碼預(yù)測所用。當(dāng)解碼過程中預(yù)測幀503的數(shù)目達(dá)到 設(shè)定值時,即該解碼過程不再需要某一預(yù)測幀503,該預(yù)測幀503將會成為顯示幀501,供顯 示所用。圖2所示為現(xiàn)有技術(shù)的實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng)示意圖。在圖1的基礎(chǔ)上,還包括旋 轉(zhuǎn)運(yùn)算模塊60,對顯示幀501執(zhí)行旋轉(zhuǎn)操作。在圖1過程中得到位于幀存儲器50中的顯示幀501后,旋轉(zhuǎn)運(yùn)算模塊60從幀存 儲器50中讀出顯示幀501,根據(jù)設(shè)定的旋轉(zhuǎn)角度對整個顯示幀501做旋轉(zhuǎn)運(yùn)算,將運(yùn)算結(jié)果 寫回到幀存儲器50中成為新的顯示幀501,并對該顯示幀進(jìn)行讀取顯示。下面結(jié)合附圖和實(shí)施例進(jìn)一步詳細(xì)說明本發(fā)明的工作原理。圖3所示為本發(fā)明實(shí)現(xiàn)對圖像塊旋轉(zhuǎn)的系統(tǒng)示意圖,與圖1相比增加了矩陣轉(zhuǎn)置 模塊80。幀存儲器,存儲顯示幀、重建幀和預(yù)測幀,重建幀在解碼過程中變換為預(yù)測幀,當(dāng) 解碼過程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯示幀。矩陣轉(zhuǎn)置模塊80根據(jù)設(shè)定的旋轉(zhuǎn)角度,對反DCT模塊20輸出的原始圖像塊或所 述原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后圖像塊作為重建幀的一部分存入到幀存儲 器50的重建幀502中,所述矩陣轉(zhuǎn)置運(yùn)算可以是旋轉(zhuǎn)0、90、180、270度或鏡像等。圖5所 示為本發(fā)明中8X8矩陣經(jīng)過90度轉(zhuǎn)置的實(shí)施例。對圖像塊執(zhí)行旋轉(zhuǎn)運(yùn)算操作是在構(gòu)建顯示幀之前,避免了從幀存儲器中讀取顯示 幀的操作,消除了對幀存儲器讀取次數(shù)以及對存儲空間的額外要求。由于此時該系統(tǒng)用于對圖像塊執(zhí)行旋轉(zhuǎn)操作,因此,現(xiàn)有技術(shù)的系統(tǒng)中可以只包 括熵解碼模塊10、反DCT模塊20、反量化模塊30和幀存儲器50。當(dāng)然,該操作也可以是基 于還包括幀內(nèi)/幀間預(yù)測模塊40的系統(tǒng)所完成的。圖4所示為本發(fā)明實(shí)現(xiàn)圖像塊殘差旋轉(zhuǎn)的系統(tǒng)示意圖,在圖3的基礎(chǔ)上還包括運(yùn) 動矢量修正模塊70。下面將結(jié)合現(xiàn)有技術(shù)的其他模塊來具體說明該模塊執(zhí)行的操作。運(yùn)動矢量修正模塊70根據(jù)設(shè)定的旋轉(zhuǎn)角度,對熵解碼模塊10中的原始運(yùn)動矢量 進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量,并將所述旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊40。幀內(nèi)/幀間預(yù)測模塊40在預(yù)測類型為幀內(nèi)預(yù)測時,從幀存儲器重建幀502中讀取 旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測像素,該預(yù)測像素與轉(zhuǎn)置后的原始圖像塊殘 差相加得到重建塊,將該重建塊寫入幀存儲器50中重建幀502的相應(yīng)位置?,F(xiàn)有技術(shù)與本 發(fā)明的內(nèi)容在此部分讀取方式是一致的,不同之處是現(xiàn)有技術(shù)沒有旋轉(zhuǎn)運(yùn)動矢量之說,所 依據(jù)的是從碼流中得到的原始運(yùn)動矢量。以H. 264標(biāo)準(zhǔn)為例,如果幀內(nèi)預(yù)測類型為4x4亮度幀內(nèi)預(yù)測模式1,即垂直預(yù)測,則幀內(nèi)/幀間預(yù)測模塊40將從已經(jīng)解碼完成的重建幀502中得到所述圖像塊上方圖像塊 的最下方的4個像素,如圖9所示的AB⑶,并將此四個像素與當(dāng)前圖像塊殘差(a,b, c, d; e,f, g, h ;i, j,k,1 ;m, η, ο, ρ)垂直相加得到重建塊為(a+A, b+B, c+C, d+D ;e+A, f+B, g+C, h+D ; i+A, j+B, k+C,1+D ;m+A, n+B, o+C,p+D),將該重建塊寫入幀存儲器50中重建幀502的
相應(yīng)位置。幀內(nèi)/幀間預(yù)測模塊40在預(yù)測類型為幀間預(yù)測時,從幀存儲器50中預(yù)測幀503 位置讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測塊,將預(yù)測塊與轉(zhuǎn)置后的原始圖像 塊殘差相加得到重建塊,并將重建塊寫入幀存儲器。該預(yù)測塊將根據(jù)幀間預(yù)測類型從預(yù)測 幀503中的相應(yīng)位置得到像素并經(jīng)過濾波計(jì)算得到。圖6(a)所示為旋轉(zhuǎn)前相對位置的實(shí)施例示意圖,假設(shè)幀間預(yù)測類型為P幀,即前 向預(yù)測,解碼后的運(yùn)動矢量為(A,B),而所述圖像塊殘差在重建幀502的位置(塊的第一個 像素位置)為(k,l),則原參考圖像塊的位置是(X,Y),其中X = k+A,Y = b+l,并且假設(shè)圖 像的大小為(H,V)。圖6(b)所示為旋轉(zhuǎn)90度后相對位置的實(shí)施例示意圖。當(dāng)旋轉(zhuǎn)90度 后,運(yùn)動矢量將被修正為(_B,A),修正后的參考塊位置為(V-Y,X),即(V-B-l,k+A),幀內(nèi)/ 幀間預(yù)測模塊40將會從預(yù)測幀503的(V-b-1,k+A)位置讀取一個圖像塊,即預(yù)測塊,該預(yù) 測矩陣與轉(zhuǎn)置后的圖像塊殘差相加得到重建塊,將該重建塊寫入幀存儲器50中重建幀502 的相應(yīng)位置。旋轉(zhuǎn)其他角度的修正同理可得,具體修正方法如下旋轉(zhuǎn)180度 運(yùn)動矢量被修正為(-A,-B),修正后的參考塊位置為(H-X,V-Y),即(H_k_A, V-B-1)。旋轉(zhuǎn)270度運(yùn)動矢量被修正為(B,-A),修正后的參考塊位置為(Y,H-X),即(B+l,H_A_k)。由于根據(jù)重建幀502得到的預(yù)測像素、以及根據(jù)預(yù)測幀503得到的預(yù)測塊都是經(jīng) 過了矩陣轉(zhuǎn)置模塊80的矩陣轉(zhuǎn)置運(yùn)算,而運(yùn)動矢量修正模塊70輸出的也是進(jìn)行修正得到 的旋轉(zhuǎn)運(yùn)動矢量。同時,經(jīng)過矩陣轉(zhuǎn)置模塊80轉(zhuǎn)置后得到的是旋轉(zhuǎn)的圖像塊殘差,于是,預(yù) 測像素或預(yù)測塊與圖像塊殘差相加得到的重建塊,與原始圖像相比已經(jīng)是旋轉(zhuǎn)后的圖像。本發(fā)明在不增加幀存儲器50容量和讀取次數(shù)的情況下,在現(xiàn)有技術(shù)的解碼過程 中增加矩陣轉(zhuǎn)置模塊80,實(shí)現(xiàn)對圖像塊的旋轉(zhuǎn)操作并顯示,進(jìn)一步,還可以增加運(yùn)動矢量修 正模塊70,實(shí)現(xiàn)對圖像塊殘差的旋轉(zhuǎn)操作并顯示。圖7所示為本發(fā)明實(shí)現(xiàn)對圖像塊旋轉(zhuǎn)的方法流程圖,包括以下步驟在步驟701,熵解碼模塊10接收視頻基本流,將所述視頻基本流進(jìn)行解碼,得到塊 或者宏殘差的離散余弦變換DCT變換域矩陣以及運(yùn)動矢量。在步驟702,反量化模塊30對所述DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域 矩陣的各個系數(shù)反變換到量化前的數(shù)值,經(jīng)加權(quán)反量化后的DCT變換域矩陣的系數(shù)對應(yīng)于 編碼端圖像塊或塊殘差經(jīng)過DCT變換后的結(jié)果。在步驟703,反DCT 模塊20將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣, 即轉(zhuǎn)換為4x4或8x8的原始圖像塊或原始圖像塊殘差。在步驟704,矩陣轉(zhuǎn)置模塊80對反DCT模塊20輸出的原始圖像塊或所述原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后圖像塊作為重建幀的一部分存入到幀存儲器50的重 建幀502中,重建幀502在解碼過程中變換為預(yù)測幀503,以供未來的解碼預(yù)測所用。當(dāng)解 碼過程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯示幀。所述矩陣轉(zhuǎn)置運(yùn)算可以是旋轉(zhuǎn)0、90、180、270度或鏡像等。當(dāng)解碼過程中預(yù)測幀 503的數(shù)目達(dá)到設(shè)定值時,即該解碼過程不再需要某一預(yù)測幀503,該預(yù)測幀503將會成為 顯示幀501,供顯示所用。所顯示的圖像即是對原始圖像旋轉(zhuǎn)后的圖像。
由于對圖像塊執(zhí)行旋轉(zhuǎn)運(yùn)算操作是在構(gòu)建顯示幀之前,避免了從幀存儲器中讀取 顯示幀的操作,消除了對幀存儲器讀取次數(shù)以及對存儲空間的額外要求。圖8所示為本發(fā)明通過幀內(nèi)預(yù)測實(shí)現(xiàn)對圖像塊殘差旋轉(zhuǎn)的方法流程圖,在圖7的 步驟701 步驟704的基礎(chǔ)上,還包括以下步驟在步驟801,根據(jù)設(shè)定的旋轉(zhuǎn)角度,運(yùn)動矢量修正模塊70對熵解碼模塊10中的原 始運(yùn)動矢量進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量,并將所述旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模 塊40。在步驟802,當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,幀內(nèi)/幀間預(yù)測模塊40從幀存儲器50的重 建幀502中讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測像素。在步驟803,將預(yù)測像素與轉(zhuǎn)置后的圖像塊殘差相加得到重建塊,將該重建塊寫入 幀存儲器50中重建幀502的相應(yīng)位置。現(xiàn)有技術(shù)與本發(fā)明的內(nèi)容在此部分讀取方式是一 致的,不同之處是現(xiàn)有技術(shù)沒有旋轉(zhuǎn)運(yùn)動矢量之說,所依據(jù)的是從碼流中得到的原始運(yùn)動 矢量。圖10所示為本發(fā)明通過幀間預(yù)測實(shí)現(xiàn)對圖像塊殘差旋轉(zhuǎn)的方法流程圖,在圖7的 步驟701 步驟704的基礎(chǔ)上,還包括以下步驟在步驟1001,根據(jù)設(shè)定的旋轉(zhuǎn)角度,運(yùn)動矢量修正模塊70對熵解碼模塊10中的原 始運(yùn)動矢量進(jìn)行修正得到旋轉(zhuǎn)運(yùn)動矢量,并將所述旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模 塊40。在步驟1002,當(dāng)預(yù)測類型為幀間預(yù)測時,幀內(nèi)/幀間預(yù)測模塊40從幀存儲器50的 預(yù)測幀503位置讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù)測塊。在步驟1003,將預(yù)測塊與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,將重建塊寫 入幀存儲器50的重建幀502中。由于根據(jù)重建幀502得到的預(yù)測像素、以及根據(jù)預(yù)測幀503得到的預(yù)測塊都是經(jīng) 過了矩陣轉(zhuǎn)置模塊80的矩陣轉(zhuǎn)置運(yùn)算,而運(yùn)動矢量修正模塊70輸出的也是進(jìn)行修正得到 的旋轉(zhuǎn)運(yùn)動矢量。同時,經(jīng)過矩陣轉(zhuǎn)置模塊80轉(zhuǎn)置后得到的是旋轉(zhuǎn)的圖像塊殘差,于是,預(yù) 測像素或預(yù)測塊與圖像塊殘差相加得到的重建塊,與原始圖像相比已經(jīng)是旋轉(zhuǎn)后的圖像。
權(quán)利要求
一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng),包括熵解碼模塊,接收并解碼視頻基本流,得到塊或者塊殘差的離散余弦變換DCT變換域矩陣以及運(yùn)動矢量;反量化模塊,對DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域矩陣的各個系數(shù)反變換到量化前的數(shù)值,經(jīng)加權(quán)反量化后的DCT變換域矩陣的系數(shù)對應(yīng)于編碼端圖像塊或塊殘差經(jīng)過DCT變換后的結(jié)果;反DCT模塊,將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣,即轉(zhuǎn)換為4x4或8x8的原始圖像塊或原始圖像塊殘差;矩陣轉(zhuǎn)置模塊,對原始圖像塊或原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后圖像塊作為重建幀的一部分存入到幀存儲器;幀存儲器,存儲顯示幀、重建幀和預(yù)測幀,重建幀在解碼過程中變換為預(yù)測幀,當(dāng)解碼過程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯示幀。
2.根據(jù)權(quán)利要求1所述實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng),還包括運(yùn)動矢量修正模塊,根據(jù)設(shè)定的旋轉(zhuǎn)角度,對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正 得到旋轉(zhuǎn)運(yùn)動矢量,并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊;幀內(nèi)/幀間預(yù)測模塊,當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,從幀存儲器中讀取旋轉(zhuǎn)運(yùn)動矢量指 向的一個區(qū)域的像素作為預(yù)測像素,將預(yù)測像素與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建 塊,并將重建塊寫入幀存儲器。
3.根據(jù)權(quán)利要求2所述實(shí)現(xiàn)圖像旋轉(zhuǎn)的系統(tǒng),其中,幀內(nèi)/幀間預(yù)測模塊還在預(yù)測類型 為幀間預(yù)測時,從幀存儲器的預(yù)測幀位置讀取旋轉(zhuǎn)運(yùn)動矢量指向的一個區(qū)域的像素作為預(yù) 測塊,將預(yù)測塊與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,并將重建塊寫入幀存儲器。
4.一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法,包括以下步驟熵解碼模塊接收視頻基本流,將視頻基本流進(jìn)行解碼,得到塊或者塊殘差的離散余弦 變換DCT變換域矩陣以及運(yùn)動矢量;反量化模塊將對DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域矩陣的各個系數(shù)反變 換到量化前的數(shù)值,經(jīng)加權(quán)反量化后的DCT變換域矩陣的系數(shù)對應(yīng)于編碼端圖像塊或塊殘 差經(jīng)過DCT變換后的結(jié)果;反DCT模塊將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣,即轉(zhuǎn)換為4x4或8x8 的原始圖像塊或原始圖像塊殘差;矩陣轉(zhuǎn)置模塊對原始圖像塊或原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后原始圖像 塊作為重建幀的一部分存入到幀存儲器;幀存儲器存儲顯示幀、重建幀和預(yù)測幀,重建幀在解碼過程中變換為預(yù)測幀,當(dāng)解碼過 程中預(yù)測幀的數(shù)目達(dá)到設(shè)定值時,預(yù)測幀將會成為顯示幀。
5.根據(jù)權(quán)利要求4所述實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法,對原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算 后,還包括以下步驟根據(jù)設(shè)定的旋轉(zhuǎn)角度,運(yùn)動矢量修正模塊對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正得 到旋轉(zhuǎn)運(yùn)動矢量,并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊;當(dāng)預(yù)測類型為幀內(nèi)預(yù)測時,幀內(nèi)/幀間預(yù)測模塊從幀存儲器中讀取旋轉(zhuǎn)運(yùn)動矢量指向 的一個區(qū)域的像素作為預(yù)測像素;將預(yù)測像素與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,將重建塊寫入幀存儲器的重 建幀中。
6.根據(jù)權(quán)利要求4所述實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法,對原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算 后,還包括以下步驟根據(jù)設(shè)定的旋轉(zhuǎn)角度,運(yùn)動矢量修正模塊對熵解碼模塊中的原始運(yùn)動矢量進(jìn)行修正得 到旋轉(zhuǎn)運(yùn)動矢量,并將旋轉(zhuǎn)運(yùn)動矢量發(fā)送給幀內(nèi)/幀間預(yù)測模塊;當(dāng)預(yù)測類型為幀間預(yù)測時,幀內(nèi)/幀間預(yù)測模塊從幀存儲器的預(yù)測幀位置讀取旋轉(zhuǎn)運(yùn) 動矢量指向的一個區(qū)域的像素作為預(yù)測塊;將預(yù)測塊與轉(zhuǎn)置后的原始圖像塊殘差相加得到重建塊,將重建塊寫入幀存儲器的重建 幀中。
全文摘要
本發(fā)明提出一種在數(shù)字電視接收中實(shí)現(xiàn)圖像旋轉(zhuǎn)的方法和系統(tǒng),包括熵解碼模塊接收并解碼視頻基本流,得到塊或者塊殘差的離散余弦變換DCT變換域矩陣以及運(yùn)動矢量;反量化模塊對DCT變換域矩陣進(jìn)行加權(quán)反量化,將DCT變換域矩陣的各個系數(shù)反變換到量化前的數(shù)值;反DCT模塊將加權(quán)反量化后的DCT變換域矩陣轉(zhuǎn)換為空間域矩陣;矩陣轉(zhuǎn)置模塊對原始圖像塊或原始圖像塊殘差進(jìn)行矩陣轉(zhuǎn)置運(yùn)算,將轉(zhuǎn)置后圖像塊作為重建幀的一部分存入到幀存儲器;幀存儲器存儲顯示幀、重建幀和預(yù)測幀。本發(fā)明在不增加存取次數(shù)和存儲空間的情況下實(shí)現(xiàn)對視頻解碼后的圖像進(jìn)行旋轉(zhuǎn)顯示。
文檔編號H04N5/44GK101964881SQ20091015821
公開日2011年2月2日 申請日期2009年7月21日 優(yōu)先權(quán)日2009年7月21日
發(fā)明者劉宗偉, 林國輝 申請人:北京中天聯(lián)科微電子技術(shù)有限公司