專利名稱::視頻解碼的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)字視頻數(shù)據(jù)的解碼,具體涉及對數(shù)字視頻數(shù)據(jù)進行解碼以使得能夠在較低分辨率屏幕上播放高分辨率視頻的方法。
背景技術(shù):
:為了在便攜式設(shè)備上觀看視頻,需要該設(shè)備支持視頻標準。優(yōu)選的數(shù)字視頻標準一般被稱為“MPEG-4”,是ISO(國際標準化組織)運動圖像專家組所設(shè)計的第四代標準。可以以許多不同的分辨率和幀速率來顯示MPEG-4視頻,以適合廣泛的應(yīng)用。適合于便攜式媒體以及有線或無線互聯(lián)網(wǎng)傳輸?shù)墓妙愋偷木幋a視頻文件是Cifmpeg-4文件。cif(公用中分辨率圖像格式)視頻具有352X288像素的分辨率。盡管該分辨率足以適合在許多設(shè)備(例如,計算機監(jiān)控器)上回放,但對于例如手持便攜式無線電話(一般被稱為移動電話或蜂窩電話)上的屏幕而言,該分辨率太大。因此,降低的分辨率格式是優(yōu)選的,例如,mpeg-4qcif(四分之一公用中分辨率圖像格式)。顧名思義,qcifmpeg-4視頻具有四分之一的cifmpeg-4分辨率,即,176X144像素。貫穿本說明書,術(shù)語“像素分辨率”旨在涉及具體幀或圖像中的像素數(shù)目,例如,從定義了幀的水平和垂直像素的數(shù)目方面表示的。與qcif的需求相比,cif需要相當高的CPU能力水平、改變高速緩存存儲器來提供足夠空間,以及增加存儲器需求。因此,用戶嘗試在支持視頻的移動電話上播放cif格式的mpeg-4文件可能會導致錯誤消息。在移動電話上支持mpeg-4是優(yōu)選的,但是典型的移動電話能夠播放的文件類型會受限于其處理能力。例如,具有一個以100MIPS(每秒100XIO6個指令)進行操作的ARM9處理器的移動電話能夠以每秒15幀的速度來處理qcifmpeg-4文件。為了利用僅qcif大小的屏幕來播放較高分辨率cifmpeg-4文件,出于計算機能力和存儲器容量的考慮,這種布置是效率低的。因此,當面對cifmpeg-4文件時,這樣的移動電話不能夠播放視頻,相反不得不向用戶返回錯誤消息。因此,問題在于如何在具有較小分辨率屏幕的并僅具有足以對較小分辨率mpeg-4文件進行解碼的計算能力的移動電話上播放大(或高分辨率)mpeg-4文件。本發(fā)明的目的是解決上述問題中的一個或多個。
發(fā)明內(nèi)容本發(fā)明提供了一種對數(shù)字視頻文件進行解碼的方法,該數(shù)字視頻文件包括多個編碼幀,其中每個編碼幀具有第一數(shù)目的像素,每個編碼幀由整數(shù)倍的η階方形矩陣組成,該方法包括i)對于每個η階方形矩陣,對η階方形矩陣執(zhí)行離散余弦逆變換以產(chǎn)生m階方形矩陣,其中m<n;ii)對于每個m階方形矩陣,將m階方形矩陣縮減為ρXm矩陣,其中,ρ<m;iii)對于每個幀,產(chǎn)生由從步驟ii)中導出的多個PXm矩陣組成的解碼幀,其中,每個解碼幀具有小于第一像素數(shù)目的第二數(shù)目的像素。本發(fā)明在計算機硬件中實現(xiàn),并因此以計算機程序產(chǎn)品的形式體現(xiàn),該計算機程序產(chǎn)品包括其上具有計算機程序代碼裝置的計算機可讀介質(zhì),當將所述程序加載到計算機上時,該計算機程序代碼裝置適合于使計算機執(zhí)行本發(fā)明的方法。優(yōu)選地,本發(fā)明在便攜式電子設(shè)備(例如,移動電話)上實現(xiàn)。參照附圖,現(xiàn)在將僅通過示例詳細描述本發(fā)明,在附圖中圖1示出了用于對包括I幀和P幀的視頻文件進行解碼的步驟的示例序列;以及圖2示出了用于對從圖1的解碼過程導出的解碼幀進行顯示的步驟的示例序列。具體實施例方式以下不應(yīng)視為限制由所附權(quán)利要求限定的本發(fā)明。為了簡單起見,以下示例實施例涉及在移動電話上對cifmpeg-4文件進行解碼,該移動電話具有qcif分辨率屏幕(176X144像素)并僅具有足夠的計算能力來對qcifmpeg-4文件進行解碼。在典型SP(簡單簡檔)cifmpeg-4文件中,存在兩種類型的幀1(幀內(nèi)編碼)幀和P(預(yù)測)幀。對于每個I幀,在去量化之后,在組成I幀的8X8DCT(離散余弦變換)矩陣上執(zhí)行4X4IDCT(離散余弦逆變換)。根據(jù)以下方程來執(zhí)行IDCT操作A4=(D4,*(I4,O4)*A8*(I4,O4),*D4)./2其中,A4是4X4輸出矩陣,A8是DCT域中(去量化后的)8X8矩陣,I4是4X4單位矩陣,O4是4X4零矩陣,以及D4是標準4X4DCT矩陣。D/是D的轉(zhuǎn)置,以及(14,04)’是(I4jQ4)的轉(zhuǎn)置。Χ.Λ意味著矩陣X中的所有元素被2除。該運算的效果是對8X8矩陣A8的左上部4X4部分執(zhí)行離散余弦逆變換,產(chǎn)生4X4輸出矩陣Α4。然后將4X4矩陣A4變換成2X4矩陣A24A24=Τ*Α4矩陣T包括如下元素所述元素被選出,使得在矩陣計算中對A4矩陣的行進行平均,以產(chǎn)生A24矩陣。例如,矩陣T可以具有以下形式<formula>formulaseeoriginaldocumentpage5</formula>因此以上運算有效地對矩陣A4上下兩行中垂直相鄰的像素進行平均,以產(chǎn)生較小矩陣Α24。因此,解碼幀具有176X72的像素分辨率。優(yōu)選地,解碼幀采用YCbCr(或YUV)格式,然后還可以被處理成RGB格式,并可選地提升到176X144像素的qcif分辨率,以在適合的屏幕上顯示。對于每個P幀,上述相同方法可以用于產(chǎn)生2X4誤差矩陣,E24。對于這些預(yù)測矩陣計算,可以使用Vetro禾口Sun在"OntheMotionCompensationWithinaDown-ConversionDecoder”,SPIEJournalofElectronicImaging,1998年7月中描述的方法??傊摲椒ò╥)找到包括2X4參考塊的4X8宏塊,該參考塊被命名為R48;以及ii)計算參考塊R24:R24=P24*R48*P84在以上公式中,P24是2X4矩陣,P24=(NnN2),N^N2是2X2矩陣,N1=D^S^D/,N2=D2*S2*D2’,D2是2X2DCT變換矩陣,以及S1、S2是基于MV(平均運動矢量)的2X2矩陣。矩陣P84是8X4矩陣,其中,P84=(M1,M2)’,M1和M2是4X4矩陣,其中M1=D^P^D/,M2=D4*P2*D4’,以及P”P2是基于MV的4X4矩陣。矩陣S1和S2是基于垂直MV來導出的。例如,對于MV_y/4=Oj1=[1,0;0,1],S2=。如果MV_y/4=1,則S1=,S2=。P1和P2是從水平MV中導出的。通常,對于P幀中的幀間編碼塊,在其參考幀中存在一個參考塊。當解碼時,可以通過MV來找到參考塊。然后對誤差塊進行解碼并與參考塊相加。在這種情況下,8X8塊變成2X4塊,從而參考塊應(yīng)當也是2X4塊。參考塊必須在一個4X8宏塊中,從而R48是包含2X4參考塊的宏塊。然后通過以下公式來計算當前塊C24C24=R24+E24然后可以將從以上過程中產(chǎn)生的分辨率176X72的解碼后的YCbCr幀變成RGB幀,并可選地提升到176X144像素的qcif分辨率。提升之前將分辨率降低至176X72,這具有降低CPU和存儲器負載的效果。在圖1所示的流程圖中示出了以上解碼方法,圖1示出了用于對包括I幀和P幀的視頻文件進行解碼的步驟的示例序列。該序列在步驟100開始,針對第一(或下個)幀前進至步驟101,該第一(或下個)幀可以是I幀或P幀。如果該幀是I幀,則對I幀中的每個塊進行變換(步驟102至104),該過程經(jīng)由步驟105進行重復,直到達到當前I幀中的最后塊為止。該過程然后前進至下個幀(步驟101)。如果下個幀是P幀,對P幀中的每個塊進行分析和變換(步驟110至114),這包括與針對I幀中的每個塊的過程相同的過程(步驟110至112),但是后續(xù)步驟是基于來自P幀的參考塊對當前塊C24進行計算(步驟113和114)。重復步驟110-115的序列,直到達到P幀中的最后塊為止(步驟115)。經(jīng)由步驟106和101重復針對每個P幀和每個I幀的過程,直到達到最后幀為止。然后過程停止(步驟107)。圖2示出了用于對從解碼過程中導出的解碼幀進行顯示的步驟的示例序列。將被選擇用于顯示(步驟201)的幀提升到qcif大小(步驟202),從YCbCr轉(zhuǎn)換到RGB格式(步驟203)、以及在屏幕上寫入(步驟204)。過程然后停止(步驟205),或針對要顯示的下個幀而重復。使用以上方法,可以將cifmpeg-4視頻文件變換成設(shè)備(例如,移動電話)上的一系列qcif圖像,這里,該設(shè)備僅僅具有足夠的能力對qcifmpeg-4文件進行解碼,但是不具有足夠的能力對cifmpeg-4文件進行解碼和顯示。在以下表中對以上解碼方法和傳統(tǒng)mpeg4解碼器所需的CPU和存儲器資源進行比較。在該表中,從所需乘法次數(shù)方面給出了CPU需求,并且從對每個幀進行解碼所需的字節(jié)數(shù)目方面給出了存儲器需求。<table>tableseeoriginaldocumentpage7</column></row><table>盡管以上乘法方法需要是普通解碼器的多于3倍的乘法次數(shù),但由于DCT模塊對CPU的占有大約為整個mpeg-4解碼過程的10%-15%,增加的CPU負載相對而言是較小的。通常,對于解碼器,大部分CPU能力被運動補償使用。與總的解碼器CPU占有相比,IDCT僅占有大約CPU的10-15%。在IDCT過程中增加乘法次數(shù),這使總的解碼CPU占有僅增加大約20%-30%。由于最終的幀大小減小,需要讀取和寫入的數(shù)據(jù)量也減小,并且高速緩存的使用因此也減少。幀大小的減小意味著減少存儲器的讀取時間,因此使高速緩存未命中相應(yīng)降低。這可以使解碼更快速。當應(yīng)用于對qcif格式的cifmpeg-4文件進行解碼時,以上方法的解碼速度估計是大約等于傳統(tǒng)qcifmpeg-4解碼過程的速度。以下提供了一種通過向設(shè)備提供包括測試矩陣的數(shù)據(jù)來檢測根據(jù)以上方法的解碼是否正在設(shè)備中執(zhí)行的方法。以上方法將8X8矩陣變換成2X4矩陣,即<formula>formulaseeoriginaldocumentpage7</formula>其中,矩陣定義如上。如果令A(yù)8為特殊矩陣<formula>formulaseeoriginaldocumentpage7</formula>其中,D4是4X4DCT變換矩陣,M1,M2,M3是任意的4X4矩陣,以及S是以下矩陣<formula>formulaseeoriginaldocumentpage8</formula>其中,a興0(a不等于零)。那么,如果根據(jù)以上方法對以上矩陣進行處理,則產(chǎn)生的A24將是零矩陣。作為用于檢測是否正在執(zhí)行根據(jù)以上方法的解碼的示例測試方法,如果I幀由以上A8矩陣的復制版本組成,則將解碼幀顯示為黑幀,這是由于所有解碼后的數(shù)據(jù)將為0。然而,如果在傳統(tǒng)解碼器中對該I幀進行處理,則解碼后的幀將不是黑幀。從而可以檢測采用根據(jù)本發(fā)明的特定方面的方法的解碼器。其他實施例意在所附權(quán)利要求所限定的本發(fā)明的范圍內(nèi)。權(quán)利要求一種用于對數(shù)字視頻文件進行解碼的方法,所述數(shù)字視頻文件包括多個編碼幀,每個編碼幀具有第一數(shù)目的像素,每個編碼幀由整數(shù)倍的n階方形矩陣組成,所述方法包括i)對于每個n階方形矩陣,對n階方形矩陣執(zhí)行(103)離散余弦逆變換以產(chǎn)生m階方形矩陣,其中m<n;ii)對于每個m階方形矩陣,將m階方形矩陣縮減(104)為p×m矩陣,其中,p<m;iii)對于每個幀,產(chǎn)生(202,203)解碼幀,所述解碼幀由從步驟ii)中導出的整數(shù)倍的p×m矩陣組成,其中,每個解碼幀具有小于第一像素數(shù)目的第二數(shù)目的像素。2.根據(jù)權(quán)利要求1所述的方法,其中,步驟i)包括執(zhí)行以下矩陣計算Am=D'm(ImOm)An(Im,Om)‘Dm其中,Am是m階方形矩陣,Dm是m階離散余弦變換矩陣,Im是m階單位矩陣,以及Om是m階零矩陣。3.根據(jù)權(quán)利要求1或2所述的方法,其中,步驟ii)包括執(zhí)行以下矩陣計算A=TAApm=TpmAm其中,Am是m階方形矩陣,Apm是ρXm矩陣,以及Tpm是具有如下元素的pXm矩陣所述元素被選出,使得在矩陣計算中對Am矩陣的行進行平均,以產(chǎn)生Apm矩陣。4.根據(jù)權(quán)利要求1所述的方法,其中,步驟iii)包括產(chǎn)生由整數(shù)倍的pXm矩陣組成的YCbCr幀。5.根據(jù)前述權(quán)利要求中任一項所述的方法,其中,η是m的整數(shù)倍,并且m是ρ的整數(shù)倍。6.根據(jù)權(quán)利要求5所述的方法,其中,η為8,m為4,以及ρ為2。7.根據(jù)權(quán)利要求3至6中任一項所述的方法,其中,Tpm是以下矩陣'0.50.500“<formula>formulaseeoriginaldocumentpage2</formula>8.根據(jù)前述權(quán)利要求中任一項所述的方法,其中,數(shù)字視頻文件包括具有352X288像素分辨率的cifmpeg-4幀,并且每個解碼幀被提升為具有176X144像素分辨率的cif幀。9.一種檢測方法,用于檢測對包括多個編碼幀在內(nèi)的數(shù)字視頻文件進行視頻解碼的方法,所述檢測方法包括以下步驟i)提供包括測試幀的測試文件,所述測試幀由以下形式的多個測試矩陣組成'DYS^D4M;Μ\Α/λ其中,04是4乂40(^變換矩陣,Μ^Μ2、Μ3是任意的4X4矩陣,以及S是以下矩陣?!猑-α-α-aaaaa<formula>formulaseeoriginaldocumentpage2</formula>其中,a≠0;)執(zhí)行根據(jù)權(quán)利要求7所述的方法;iii)確定解碼后的測試幀是否由零矩陣組成。10.一種計算機程序產(chǎn)品,包括其上具有計算機程序代碼裝置的計算機可讀介質(zhì),所述計算機程序代碼裝置適用于當將所述程序加載到計算機中時使計算機執(zhí)行權(quán)利要求1至9中任一項所述的方法。11.一種手持便攜式電子設(shè)備,用于執(zhí)行根據(jù)權(quán)利要求1至9中任一項所述的方法。全文摘要本發(fā)明提供了一種用于對數(shù)字視頻文件進行解碼的方法,所述數(shù)字視頻文件包括分別具有第一數(shù)目像素的多個編碼幀,每個編碼幀由整數(shù)倍的n階方形矩陣組成,所述方法包括i)對于每個n階方形矩陣,對n階方形矩陣執(zhí)行離散余弦逆變換以產(chǎn)生m階方形矩陣,其中m<n;ii)對于每個m階方形矩陣,將m階方形矩陣縮減為p×m矩陣,其中,p<m;iii)對于每個幀,產(chǎn)生由從步驟ii)中導出的整數(shù)倍的p×m矩陣組成的解碼幀,其中,每個解碼幀具有小于第一像素數(shù)目的第二數(shù)目的像素。文檔編號H04N7/30GK101822051SQ200880110324公開日2010年9月1日申請日期2008年10月3日優(yōu)先權(quán)日2007年10月8日發(fā)明者王楷申請人:Nxp股份有限公司