專利名稱:用于視頻處理的方法、用于解量化和量化的電子裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于視頻編碼和解碼,更具體的,是關(guān)于用于視頻處理的方法、用于解量化的電子裝置和用于量化的電子裝置。
背景技術(shù):
包含一系列靜態(tài)幀的視頻序列需要相當(dāng)大的存儲容量和傳輸帶寬。例如,具有 640X480像素/幀、15幀/秒、時長90分鐘的全色(full color)視頻流需要的帶寬為 640X480(像素/幀)X3(字節(jié)/像素)X15(幀/秒)=13. 18 (兆字節(jié)/秒),該視頻流 文件的大小為13. 18(兆字節(jié)/秒)X90X60 = 69. 50 (GB)。如此大的數(shù)字視頻流是難以實 時存儲和傳輸?shù)摹R虼?,為減少所需存儲器大小和傳輸帶寬,引入了多種編碼技術(shù)。遵循H. 26x標(biāo)準(zhǔn)的視頻編碼器產(chǎn)生標(biāo)準(zhǔn)化文件,使用遵循標(biāo)準(zhǔn)的解碼器可在任何 系統(tǒng)中打開和播放標(biāo)準(zhǔn)化文件。為避免引起視覺質(zhì)量嚴(yán)重退化,可對數(shù)字視頻的時空冗余 進(jìn)行編碼。H. 264編碼是一種通用標(biāo)準(zhǔn),獨立于特定應(yīng)用,涉及基于時空方向靜態(tài)冗余的編 碼。其中,空間冗余是基于相鄰像素之間的相似性。通過對畫面中的4X4或8X8像素區(qū)塊作DCT(離散余弦變換)所產(chǎn)生的系數(shù)進(jìn) 行量化并通過運動補償,就可實現(xiàn)H. 26x的編碼。量化包含DCT系數(shù)除以量化位階(scale) 以產(chǎn)生量化系數(shù)的步驟,其中量化位階與質(zhì)量等級相關(guān),量化位階較高時編碼效率較高但 質(zhì)量較差,量化位階較低時則相反。相反地,通過對已量化系數(shù)解量化,可以實現(xiàn)H. 26x的 解碼。解量化包含解量化位階乘以已量化值以產(chǎn)生解量化系數(shù)的步驟,其中解量化位階也 與質(zhì)量等級相關(guān)。
發(fā)明內(nèi)容
現(xiàn)有技術(shù)的量化和解量化方法及裝置需要大量存儲器及頻寬,為解決上述問題, 本發(fā)明目的之一在于提供用于視頻處理的方法、用于解量化的電子裝置和用于量化的電子
直ο本發(fā)明提供一種用于視頻處理的方法,該方法包含通過視頻處理單元實施視頻 解碼步驟和視頻編碼步驟中的至少一個,其中該視頻解碼步驟進(jìn)一步包含從比特流中獲 取第一宏區(qū)塊;提供該第一宏區(qū)塊的第一區(qū)塊的多個第一子因數(shù)和多個第二子因數(shù);將該 第一子因數(shù)和該第二子因數(shù)相乘以產(chǎn)生多個解量化位階;提供該第一區(qū)塊的多個已量化系 數(shù);以及將該已量化系數(shù)乘以該解量化位階,以產(chǎn)生多個解量化系數(shù);以及其中該視頻編 碼步驟進(jìn)一步包含從視頻序列中獲取欲編碼的第二宏區(qū)塊;對該第二宏區(qū)塊的第二區(qū)塊 提供多個該第一子因數(shù)的逆和該第二子因數(shù)的逆;將該第一子因數(shù)的逆乘以該第二子因數(shù) 的逆,以產(chǎn)生多個量化位階;提供該第二區(qū)塊的多個已變換系數(shù);以及將該已變換系數(shù)乘 以該量化位階,以產(chǎn)生該第二區(qū)塊的多個已量化系數(shù)。本發(fā)明另提供一種用于解量化的電子裝置,包含第一乘法器,通過將第一子因數(shù) 乘以一第二子因數(shù),以產(chǎn)生比特流的一個宏區(qū)塊的解量化位階,由此,采用產(chǎn)生的該解量化位階以解量化該宏區(qū)塊的一個區(qū)塊。本發(fā)明還提供一種用于量化的電子裝置,包含第一乘法器,通過將第一子因數(shù)的 逆乘以第二子因數(shù)的逆,以產(chǎn)生視頻序列的一個宏區(qū)塊的量化位階,由此,采用產(chǎn)生的該量 化位階以量化該宏區(qū)塊的一個區(qū)塊。本發(fā)明目的之一是減少量化及解量化所需要的存儲器大小與頻寬。
圖1顯示示例H. 26x視頻序列的畫面架構(gòu)。
圖2是視頻編碼和解碼系統(tǒng)實施例的示意圖。圖3是解量化系統(tǒng)一個實施例的示意圖。圖4是比特流解碼方法一個實施例的流程圖。圖5£1、6£1、7£1、8£1、9£1、10£1、11£1、12£1是根據(jù)本發(fā)明不同實施例的解量化單元的示意 圖。圖5b、6b、7b、8b、9b、10b、llb、12b是根據(jù)本發(fā)明不同實施例的量化單元的示意圖。圖13是解量化MB的區(qū)塊的方法一個實施例的流程圖。圖14是用于量化MB的區(qū)塊的方法一個實施例的流程圖。
具體實施例方式在說明書及后續(xù)的權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。所屬領(lǐng)域技術(shù) 人員應(yīng)可理解,制造商可能會用不同的名詞來稱呼同一個組件。本說明書及后續(xù)的權(quán)利要 求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn) 貝U。在通篇說明書及后續(xù)的權(quán)利要求當(dāng)中所提及的“包括”和“包含”為一開放式的用語, 故應(yīng)解釋成“包含但不限定于”。以外,“耦接”一詞在此為包含任何直接及間接的電性連接 手段。間接的電性連接手段包括通過其它裝置進(jìn)行連接。圖1顯示示例H. 26x視頻序列的畫面架構(gòu)。一個視頻序列包含多個畫面或者畫面 組(Group Of Picture,GOP),可以特定順序安排畫面或G0P,此特定順序稱為GOP結(jié)構(gòu)。每 一畫面劃分為多個片(slice)。每一片包含多個宏區(qū)塊(Macro-Block,MB)。每一MB可以由 多個亮度數(shù)據(jù)像素區(qū)塊和色度數(shù)據(jù)像素區(qū)塊組成,每個亮度數(shù)據(jù)像素區(qū)塊可以具有8X8、 4X4、8X4或4X8個(等等)亮度數(shù)據(jù)像素,每個色度數(shù)據(jù)像素區(qū)塊可以具有8X8、4X4、 8X4或4X8個(等等)色度數(shù)據(jù)像素。例如,如圖1所示,一個MB可包含4個亮度數(shù)據(jù) 區(qū)塊和2個色度數(shù)據(jù)區(qū)塊,其中亮度數(shù)據(jù)區(qū)塊具有8X8亮度數(shù)據(jù)像素,色度數(shù)據(jù)區(qū)塊具有 8X8色度數(shù)據(jù)像素。YCbCr是用于表示數(shù)字元素視頻的主要色彩空間的一個(另一種主要 色彩空間是RGB)。YCbCr與RGB的區(qū)別的一個是=YCbCr將色彩表示為亮度及兩種色彩差 值信號,而RGB將色彩表示為紅色、綠色和藍(lán)色。YCbCr中,Y為亮度,Cb為藍(lán)色減去亮度 (B-Y),Cr為紅色減去亮度(R-Y)。圖2是視頻編碼和解碼系統(tǒng)實施例的示意圖,例如H. 26x視頻編碼和解碼系統(tǒng)。 視頻編碼和解碼系統(tǒng)的一個實施例包含視頻編碼器210和視頻解碼器230。視頻編碼器 210中,輸入視頻典型的以MB為單位進(jìn)行處理(預(yù)處理)。分區(qū)塊運動補償(blockwisemotion compensation)是從現(xiàn)有的畫面數(shù)據(jù)來預(yù)測當(dāng)前輸入視頻的值(根據(jù)參考幀進(jìn)行 運動估計)。可以應(yīng)用區(qū)塊變換來降低空間的統(tǒng)計相關(guān)性(statistical correlation)。 常用變換至少包括4X 4、8 X 8、4X 8、8 X 4、16 X 16或其它大小的離散余弦變換、整數(shù)變換、 哈達(dá)馬變換等等。對變換后的輸出進(jìn)行量化(Q),對量化的輸出進(jìn)行解量化和IDCT,可與所 形成的預(yù)測子(predictor)共同作用以產(chǎn)生參考幀,然后對已量化值應(yīng)用熵編碼。對區(qū)塊 進(jìn)行量化是利用特定的量化表,例如畫面內(nèi)預(yù)測或畫面內(nèi)編碼Y、Cb、Cr,或者畫面間預(yù)測或 畫面間編碼Y、Cb、Cr等等。進(jìn)行DCT時,典型的是以Z型(zigzag)掃描順序掃描DCT系 數(shù),而熵編碼典型的將多個連續(xù)的零值已量化系數(shù)與下一個非零已量化系數(shù)組合成一個單 一的符號,并指示何時所有余下的已量化系數(shù)均等于零。熵編碼方法典型的使用變長編碼 (Variable-Length Coding, VLC)表。在視頻解碼器230中,參考VLC表通過熵解碼對壓縮 數(shù)據(jù)進(jìn)行解碼。接著,對熵解碼的輸出解量化和反變換(例如IDCT),根據(jù)參考幀形成預(yù) 測 子,反變換的輸出和所形成的預(yù)測子共同作用進(jìn)行后處理(post-processing),以獲取MB 中區(qū)塊的亮度或色度數(shù)據(jù)。在特定區(qū)塊的解量化中,采用解量化表來解量化已量化值。對于特定類型的區(qū)塊組合,例如4X4或8X8區(qū)塊、畫面內(nèi)區(qū)塊或畫面間區(qū)塊(即 畫面內(nèi)編碼區(qū)塊或畫面間編碼區(qū)塊)以及Y、Cb或Cr區(qū)塊,可選擇性應(yīng)用多個量化表或解 量化表進(jìn)行量化或解量化過程。圖3是解量化系統(tǒng)一個實施例的示意圖,包含解量化單元 310和外部存儲器330。例如靜態(tài)隨機存取存儲器(Static Random Access Memory,SRAM)、 寄存器等的本地存儲器置于解量化單元310中。解量化單元310當(dāng)前正使用本地存儲器 311時,其它裝置不能存取本地存儲器311。外部存儲器330可以是靜態(tài)隨機存取存儲器 (Dynamic Random Access Memory, DRAM) DRAM (Synchronized DRAM, SDRAM)
等。外部存儲器330可由不同裝置或單元共享。當(dāng)解量化單元310對MB實施解量化時,可 應(yīng)用Y、Cb和Cr的三個解量化表對MB的Y、Cb和Cr區(qū)塊解量化??捎梢韵率纠絹碛?算當(dāng)前處理區(qū)塊的解量化系數(shù)Tij = EijXlnvLevelScaleij,其中,Tij表示當(dāng)前處理區(qū)塊第i行第j列的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第 j列第i行的已量化系數(shù),Eij通過熵解碼變換,而InvLevelScal、表示解量化表第j列第 i行的解量化位階??捎梢韵率纠絹碛嬎憬饬炕淼慕饬炕浑AInvLevelScaleij = dequant^X q-matrixjj,其中,InvLevelScaleij表示解量化表第j列第i行的解量化位階,Cbquantij表示 解量化系數(shù)表第j列第i行的值,q-matriXiJ表示量化矩陣第j列第i行的值。在H. 264中,根據(jù)當(dāng)前處理的區(qū)塊類型,例如4X4或8X8區(qū)塊,畫面內(nèi)區(qū)塊或 畫面間區(qū)塊,Y、Cb或Cr區(qū)塊,可將八個量化矩陣(q-matrix)選擇性應(yīng)用于當(dāng)前處理 的區(qū)塊。具體地,q-matrix
、q-matrix[1]禾口 q_matrix[2]是畫面內(nèi) Y、Cb、Cr 區(qū)塊 的 4X4 量化矩陣,q-matrix[3]、q-matrix[4]和 q-matrix[5]是畫面間 Y、Cb、Cr 區(qū)塊 的4X4量化矩陣,而q-matrix[6]和q-matrix[7]是畫面內(nèi)Y區(qū)塊和畫面間Y區(qū)塊的 8X8 量化失巨陣。*艮據(jù)序列標(biāo)頭(header)中的 “seq_scaling_matrix_present_flag,,禾口 "seq_scaling_list_present_flag[i] ” 標(biāo)不,_面標(biāo)頭中的標(biāo)不"pic_scaling_matrix_ present_flag,,禾口 "pic_scaling_list_present_flag[i],,,或者序列、片、畫面、GOP 或 MB 層的標(biāo)頭中的類似標(biāo)示,量化矩陣可由原始量化矩陣設(shè)定,或者用默認(rèn)(default)和/或用戶定義的量化矩陣來設(shè)定。seq_scaling_matrix_present_flag等于1說明標(biāo)示seq_ scaling_list_present_flag[i] (i = O.·7)存在,seq_scaling_matrix_present_flag 等于O則說明標(biāo)示seq_scaling_list_present_flag[i]不存在??捎迷?X4量化矩 陣 “quant_org” 設(shè)定量化矩陣 q-matrices
。原始 8X8 量化矩陣 “quant8_org” 設(shè) q-matrices[6. · 7]。 當(dāng) seq_scaling_matrix_present_flag 于 1 i seq_scaling_ list_present_flag
. . [2]等于0時,確定由4X4畫面內(nèi)默認(rèn)量化矩陣“quant_intra_ default,,來設(shè)定 q-matrices
. · [2]。當(dāng) seq_scaling_present_flag 等于 1 且 seq_ scaling_list_present_flag[3]. . [5]等于0時,確定由4X4畫面間默認(rèn)量化矩陣 “quant—inter—default” ξ^^定 q-matrices[3]. · [5]。當(dāng) seq_scaling_matrix_present_ flag等于1且seq_scaling_list_present_flag[6]等于0時,確定由8X8畫面內(nèi)默認(rèn)量 化 矩陣"quant8_intra_default,,來設(shè)定 q-matrix [6]。當(dāng) seq_scaling_matrix_present_ flag等于1且seq_scaling_list_present_flag[7]等于0時,確定由8X8畫面間默認(rèn)量 化矩陣"quant8_inter_default,,來設(shè)定 q-matrix [7]。當(dāng) seq_scaling_matrix_present_ flag等于1且seq_scaling_list_present_flag
. . [2]等于1時,確定由用戶定義的量 化矩陣 ScalingList4x4
· · [2]分別定義 q-matrix
· · [2]。當(dāng) seq_scaling_matrix_ present_f lag 等于 1 且 seq_scaling_list_present_f lag[3]. . [5]等于 1 時,確定由用戶 定義的量化矩陣 ScalingList4x4[3]. . [5]分別定義 q-matrix[3]. . [5]。當(dāng) seq_scaling_ matrix_present_flag 等于 1 且 the seq_scaling_list_present_flag[6]等于 1 時,石角定 由用戶定義的量化矩陣 ScalingList8x8
定義 q_matrix[6]。當(dāng) seq_scaling_matrix_ present_flag^T 1 the seq_scaling_list_present_flag[7] 1 Β ,石角胃由fflP胃 義的量化矩陣 ScalingList8x8[l]定義 q-matrix[7]。pic_scaling_matrix_present_flag 禾口 pic_scaling_list_present_flag[i]的 詳細(xì)用法可由以上類比推知。這些標(biāo)示的詳細(xì)描述可參照2005年3月出版的H. 264標(biāo)準(zhǔn)說 明書“ITU-T Rec. H. 264 :H卷視聽服務(wù)的視聽及多媒體系統(tǒng)基礎(chǔ)建設(shè)-運動影像(moving video)編碼,,。示例的原始4X4量化矩陣“quant_org”及原始8X8量化矩陣“quant8 org" 如下所示int quant_org[16] = {16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16};以及int quant_org[64] = {16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16}.示例的4X4畫面內(nèi)默認(rèn)量化矩陣“quant_intra_default”、4X4畫面間默認(rèn)量化 矩陣 “ quant_inter_default ”、8 X 8 畫面內(nèi)默認(rèn)量化矩陣“ quant8_intra_default ” 以及 8X8畫面間默認(rèn)量化矩陣“quant8_inter_default”如下所示int quant_intra_default [16] = {6,13,20,28,
13,20,28,32,20,28,32,37,28,32,37,42};int quant_inter_default [16] = {10,14,20,24,14,20,24,27,20,24,27,30,24,27,30,34};int quant8_intra_default [64] = {6,10,13,16,18,23,25,27,10,11,16,18,23,25,27,29,13,16,18,23,25,27,29,31,16,18,23,25,27,29,31,33,18,23,25,27,29,31,33,36,23,25,27,29,31,33,36,38,25,27,29,31,33,36,38,40,27,29,31,33,36,38,40,42};以及int quant8_inter_default [64] = {9,13,15,17,19,21,22,24,13,13,17,19,21,22,24,25,15,17,19,21,22,24,25,27,17,19,21,22,24,25,27,28,19,21,22,24,25,27,28,30,21,22,24,25,27,28,30,32,22,24,25,27,28,30,32,33,24,25,27,28,30,32,33,35}.此外,根據(jù)當(dāng)前處理的區(qū)塊大小,例如4X4或8X8區(qū)塊,可將兩種大小的六個解量化系數(shù)表(例如六個4X4解量化系數(shù)表和六個8X8解量化系數(shù)表)選擇性應(yīng)用于當(dāng)前 處理的區(qū)塊。這些解量化系數(shù)表分別包含16或64個定義在H. 264的常數(shù)。六個示例4X4 解量化系數(shù)表“dequantcoef
”至“dequant_COef [5],,以三維數(shù)據(jù)數(shù)組形式表示如下const int dequant_coef[6][4][4] = {
{{10,13,10,13},{13,16,13,16},{10,13,10,13},{13,16,13,16}},{{11,14,11,14},{14,18,14,18},{11,14,11,14},{14,18,14,18}},{{13,16,13,16},{16,20,16,20},{13,16,13,16},{16,20,16,20}},{{14,18,14,18}, {18,23,18,23}, {14,18,14,18}, {18,23,18,23}},{{16,20,16,20},{20,25,20,25},{16,20,16,20},{20,25,20,25}},{{18,23,18,23},{23,29,23,29},{18,23,18,23},{23,29,23,29}}}.六個示例8X8 解量化系數(shù)表“8x8_dequant_coef
”至“8x8_dequant_coef[5] ” 以三維數(shù)據(jù)數(shù)組形式表示如下const int dequant_coef8[6][8][8]={{{20,19,25,19,20,19,25,19},{19,18,24,18,19,18,24,18},{25,24,32,24,25,24,32,24},{19,18,24,18,19,18,24,18},{20,19,25,19,20,19,25,19},{19,18,24,18,19,18,24,18},{25,24,32,24,25,24,32,24},{19,18,24,18,19,18,24,18}},{{22,21,28,21,22,21,28,21},{21,19,26,19,21,19,26,19},{28,26,35,26,28,26,35,26},{21,19,26,19,21,19,26,19},{22,21,28,21,22,21,28,21},{21,19,26,19,21,19,26,19},{28,26,35,26,28,26,35,26},{21,19,26,19,21,19,26,19}},{{26,24,33,24,26,24,33,24},{24,23,31,23,24,23,31,23},{33,31,42,31,33,31,42,31},
{24,23,31,23,24,23,31,23},{26,24,33,24,26,24,33,24},{24,23,31,23,24,23,31,23},{33,31,42,31,33,31,42,31},{24,23,31,23,24,23,31,23}},{{28,26,35,26,28,26,35,26},{26,25,33,25,26,25,33,25},{35,33,45,33,35,33,45,33},{26,25,33,25,26,25,33,25},{28,26,35,26,28,26,35,26},{26,25,33,25,26,25,33,25},{35,33,45,33,35,33,45,33},{26,25,33,25,26,25,33,25}},{{32,30,40,30,32,30,40,30},{30,28,38,28,30,28,38,28},{40,38,51,38,40,38,51,38},{30,28,38,28,30,28,38,28},{32,30,40,30,32,30,40,30},{30,28,38,28,30,28,38,28},{40,38,51,38,40,38,51,38},{30,28,38,28,30,28,38,28}},{{36,34,46,34,36,34,46,34},{34,32,43,32,34,32,43,32},{46,43,58,43,46,43,58,43},{34,32,43,32,34,32,43,32},{36,34,46,34,36,34,46,34},{34,32,43,32,34,32,43,32},{46,43,58,43,46,43,58,43},{34,32,43,32,34,32,43,32}}}·圖4是比特流解碼方法一個實施例的流程圖,在通用處理器(未示)或視頻解碼機(例如專用硬件電路,圖2中的視頻解碼器230)中實施。本文以H. 26x為例,但應(yīng)當(dāng)理解,之后描述的發(fā)明實施例也可適用于MPEG、VC-l、VP-6及其它,均不違背本發(fā)明的精神。在步 驟S411中,實施比特流初始化操作。參考序列標(biāo)頭中的標(biāo)示,例如seq_scaling_matrix_ present_flag和 seq_scaling_list_present_flag[i] (i = 0. . 7),可以準(zhǔn)備相關(guān)的解量化 系數(shù)表、量化矩陣和/或解量化表并存儲于外部存儲器(例如圖3中的330)和/或本地存 儲器(例如圖3中的311)。在步驟S431中,獲取欲解碼的畫面。在步驟S433中,確定獲取 的欲解碼畫面是否為GOP的第一個畫面。若是,繼續(xù)至步驟S435,否則跳至步驟S437。在 步驟S435中,實施GOP初始化操作。在步驟S437中,為解碼所獲取的畫面,實施畫面初始化 操作。參考畫面標(biāo)頭中的標(biāo)示,例如 pic—scaling—matrix—present—flag 禾Π pic_scaling_ list_present_flag[i] (i = 0. . 7),可以準(zhǔn)備相關(guān)的解量化系數(shù)表、量化矩陣和解量化表 并存儲于外部存儲器(例如圖3中的330)和本地存儲器(例如圖3中的311)。在步驟S451中,獲取欲解碼的獲取畫面中的一個MB(即獲取所獲取欲解碼畫面 的一個MB)。在步驟S453中,對欲解碼的獲取畫面中所有MB實施MB初始化操作??梢蕴?供相關(guān)的解量化系數(shù)表、量化矩陣和/或解量化表。參考序列標(biāo)頭、畫面標(biāo)頭中的標(biāo)示,例 如 seq—scaling—matrix—present_flag 或 pic_scaling—matrix—present_flag 以及 seq— scaling—list—present_flag[i]或 pic_scaling—list—present_flag[i] (i = 0..7),或者 參考序列、片、畫面、GOP或MB層的標(biāo)頭中的標(biāo)示,該提供過程可以包括產(chǎn)生解量化系數(shù)表、 量化矩陣和/或解量化表并存儲于外部存儲器(例如圖3中的外部存儲器330)和/或本 地存儲器(例如圖3中的本地存儲器311)。也就是說,可以在MB級實施產(chǎn)生操作。此外, 解量化系數(shù)表、量化矩陣和/或解量化表的產(chǎn)生和存儲也可在序列級、畫面級(例如步驟 S437)、G0P級(例如步驟S435)或片級實施。該提供過程還可包含從外部存儲器(例如圖 3中的330)和/或本地存儲器(例如圖3中的311)擷取(retrieve)。在步驟S455 中,所 獲取的MB經(jīng)過如圖2所示的熵解碼、解量化、IDCT、運動補償以及后處理(即解碼所獲取 的MB)。解量化所獲取MB的一個區(qū)塊(例如4X4Y,Cb或Cr畫面內(nèi)區(qū)塊或畫面間區(qū)塊,或 8X8Y畫面內(nèi)區(qū)塊或畫面間區(qū)塊)時,會確定提供其中一個已存儲的解量化表。當(dāng)所獲取的 MB包含待解量化的Y、Cb和Cr區(qū)塊時,需要Y、Cb和Cr的三個解量化表。以下描述解量化 表各方面的實現(xiàn)細(xì)節(jié)。在步驟S457中,確定所獲取的MB是否為所獲取畫面的最后一個MB。若是,則繼續(xù) 至步驟S471,否則跳至步驟S451以解碼下一個MB。在步驟S471中,確定比特流是否完全 被解碼。若是,全部過程即結(jié)束,否則繼續(xù)至步驟S431以解碼下一個畫面。第5a、6a、7a、8a、9a、10a、lla、12a圖是根據(jù)本發(fā)明不同實施例的解量化單元的示 意圖。在第一實施例中,如圖5a所示的示例解量化單元500a包含本地存儲器510a(例如 SRAM或寄存器)以及乘法器530a。在解量化MB的Y、Cb和Cr區(qū)塊之前,先產(chǎn)生全部比特 流或單一畫面的q-matriCeS
,隨后基于產(chǎn)生的q-matrices
準(zhǔn)備所有必要的 解量化表并存儲于例如圖3330的外部存儲器。在一個例子中,圖4的步驟S437是參考標(biāo)示 seq—scaling—matrix—present_flag 禾口 seq—scaling—list—present_flag[i] (i = 0..7), 以產(chǎn)生全部比特流的q-matrices
。在另一例子中,圖4的步驟S437是參考標(biāo)示pic_ sealing_matrix_present_flag 禾口 pic_scaling_list_present_flag[i] (i = 0· · 7),以產(chǎn) 生單一畫面的q-matriCeS
。4X4區(qū)塊所有必要的解量化表可用以下示例偽代碼計 笪弁。
for(k = 0 ;k < 6 ;k++)for(j = 0 ;j < 4 ;j++)for(i = 0 ;i < 4 ;i++){temp = (i << 2)+j ;InvLevelScale
[k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix
[temp];InvLevelScale [1] [k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix[1] [temp];InvLevelScale [2] [k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix[2][temp];InvLevelScale [3] [k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix[3][temp];InvLevelScale[4] [k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix[4][temp];InvLevelScale [5] [k] [j] [i] = dequant_coef [k] [j] [i]x q-matrix[5][temp] ;}其中q-matrix W]至q-matrix[5]分別表示第一至第六個產(chǎn)生的量化矩陣; dequant_coef[k]表示第k個預(yù)先定義的4X4解量化系數(shù)表;InvLevelScale
代表共 六個解量化矩陣,用于解量化4X4畫面內(nèi)Y MB ;InvLevelScale[1]代表共六個解量化矩 陣,用于解量化4X4畫面內(nèi)Cb MB ;InvLevelScale[2]代表共六個解量化矩陣,用于解量 化4X4畫面內(nèi)Cr MB ;InvLevelScale[3]代表共六個解量化矩陣,用于解量化4X4畫 面間Y MB;InVLeVelScale[4]代表共六個解量化矩陣,用于解量化4X4畫面間Cb MB; InvLevelScale[5]代表共六個解量化矩陣,用于解量化4X4畫面間Cr MB。8X8區(qū)塊所有 必要的解量化表可用以下示例偽代碼計算。for(k = 0 ;k < 6 ;k++)for(j = 0 ;j < 4 ;j++)for(i = 0 ;i < 4 ;i++){temp = (i << 3)+j ;InvLevelScale8
[k][j][i] = 8x8_dequant_coef[k][j][i]xq-matrix [6] [temp];InvLevelScale8[l][k][j][i] = 8x8_dequant_coef[k][j][i]xq-matrix [7] [temp] ;}其中q-matrix[6]至q-matrix[7]分別表示第七至第八個產(chǎn)生的量化矩陣;8x8_ dequant_coef[k]表示第k個預(yù)先定義的8X8解量化系數(shù)表;InvLevelScaleS
代表共 六個解量化矩陣,用于解量化8X8畫面內(nèi)Y MB ;InvLevelScale8[l]代表共六個解量化矩 陣,用于解量化8X8畫面間Y MB。如圖4的步驟S455所示,當(dāng)解碼特定的MB時,會識別 MB的類型,例如4X4、8X8以及畫面內(nèi)或畫面間,然后獲取至少一組對應(yīng)識別類型的解量化表,例如 4X4 畫面內(nèi) MB 的 InvLevelScale
[k]至 InvLevelScale[2] [k]、8X8 畫面內(nèi) MB 的 InvLevelScale8
[k]及其它,其中 k = 0. . 5,最后,基于量化參數(shù)(Quantization Parameter,QP)從外部存儲器的每一組解量化表中獲取一個解量化表(來自外部存儲器的 數(shù)據(jù)總線,下同),并存儲在本地存儲器510a中。量化MB時可通過示例偽代碼來確定QP值,如下所示。Function qp_calc () {img- > qp = ((img- > qp+currMB- > delta_quant+52+2氺img— > bitdepth_luma_qp_scale) % (52+img- > bitdepth_luma_qp_scale))-img- > bitdepth_luma_qp_scale ;int qp_per = (img- > qp+img- > bitdepth_luma_qp_scale_MIN_QP)/6 ;int qp_rem = (img- > qp+img- > bitdepth_luma_qp_scale_MIN_QP) % 6 ;qp_uv[i] = img- > qp+dec_picture_ > chroma_qp_offset[i];qp_uv[i] = Clip3(-(img- > bitdepth_chroma_qp_scale), 51, qp_uv[i]);qp_c[i] = (qp_uv[i] < 0) qp_uv[i] :QP_SCALE_CR[qp_uv[i]_MIN_QP];qp_per_uv[i] = (qp_c[i]+img- > bitdepth_chroma_qp_scale)/6 ;qp_rem_uv[i] = (qp_c[i]+img- > bitdepth_chroma_qp_scale)% 6 ;}例如,畫面內(nèi)編碼MB包含4個4 X 4Y區(qū)塊、1個4 X 4Cb區(qū)塊和1個4 X 4Cr區(qū)塊,解 量化該MB時,QP “qp_rem”(范圍從0至5)用于確定InvLevelScale
中的一個, Qp "qp_rem_uv
,,(范圍從 0 至 5)用于確定 InvLevelScale [1]
中的一個,QP‘‘qp_ rem_uv[l] ”(范圍從0至5)用于確定InvLevelScale [2]
中的一個。請注意,當(dāng)MB的 內(nèi)容為單色時,一個MB可僅包含Y區(qū)塊。之后,乘法器530a將解量化位階InvLevelScal、 乘以已量化系數(shù)Eij,以產(chǎn)生解量化系數(shù)Tij,其中,Tij表示當(dāng)前處理區(qū)塊第j列第i行的解 量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),Eij是經(jīng)由熵解碼變換或者經(jīng) 由熵解碼與哈達(dá)馬變換,而InvLevelScal、表示解量化表第j列第i行的解量化位階。由于解量化是量化的反操作,可類比推知量化單元。圖5b是示例量化單元500b 的示意圖,量化單元500b包含本地存儲器510b (例如SRAM或寄存器)及乘法器530b。量 化MB的Y、Cb和Cr區(qū)塊之前,本地存儲器510b可存儲三個量化表,每一量化表包含i X j 量化位階(即 InvLevelScaleI,每個 InvLevelScale—是 InvLevelScale 的逆。應(yīng)當(dāng)理 解,InvLevelScale的求逆可以不限于1/InvLevelScale,InvLevelScale與其逆的關(guān)系是 預(yù)先定義的,本領(lǐng)域具有通常知識者可參考任何相關(guān)的說明書等。IrwLevelScale逆的定 義也可適用于其它實施例。乘法器530b將量化位階InvLevelScaleJ1乘以已變換系數(shù) T’ ,j (例如DCT系數(shù),下同)以產(chǎn)生量化系數(shù)Eu,其中Eu表示當(dāng)前處理區(qū)塊第j列第i行 的已量化系數(shù),T’ ,j表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù),T’ ,j是經(jīng)由DCT變換, 而InvLevelScaleJ1表示量化表第j列第i行的量化位階。在另一實施例中,如圖6a所示,示例解量化單元600a包含本地存儲器610a(例如SRAM或寄存器)和兩個乘法器630a、650a。本地存儲器610a起初存儲第二子因數(shù)(例如包 括equant_coef
和8x8_dequant_coef
的解量化系數(shù)表)。本地存儲器(例如 本地存儲器610a)可能存儲默認(rèn)量化矩陣、解量化系數(shù)表,默認(rèn)量化矩陣包含至少一個唯一 (unique)的值,第一子因數(shù)可以是該唯一的值。解量化系數(shù)表包含多個唯一的值,第二 子因數(shù)可以是該唯一的值的一個。應(yīng)當(dāng)理解,作為默認(rèn)子因數(shù)的第二子因數(shù)可存儲在只讀 存儲器(Read-OnlyMemory,ROM)表中。在解量化MB的Y、Cb和Cr區(qū)塊之前,所有第一子因 數(shù)(例如所有_犬認(rèn)量化矩陣,包含 quant_org> quant8_org> quant_intra_default> quant— inter_default> quant8_intra_default> quant8_inter_default,以及用戶定義的fiU失巨 陣,包含 ScalingList4x4
和 ScalingList8x8
)都存儲在本地存儲器 610a 中。 當(dāng)以圖4步驟S455來解碼MB的特定區(qū)塊時,先識別MB的區(qū)塊類型,例如4X4或8X8區(qū) 塊,畫面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊,然后從視頻序列標(biāo)頭,畫面標(biāo)頭,或序列、片、畫面、 GOP> MB 層的標(biāo)頭中獲取標(biāo)不 seq_scaling_matrix_present_flag 禾口 seq_scaling_list_ present_flag[i],或者 pic_scaling_matrix_present_f lag>pic_scaling_list_present_ flag[i] (i = 0. . 7),參考識別區(qū)塊類型及所獲取的標(biāo)示,可從本地存儲器610a獲取相關(guān) 的量化矩陣;基于QP值和識別區(qū)塊類型,也可從本地存儲器610a獲取特定的解量化系數(shù) 表。關(guān)于QP的細(xì)節(jié)可參照第一實施例的描述。乘法器630a將量化矩陣值q-matriXij_乘 以解量化系數(shù)Clequantij以產(chǎn)生解量化位階InvLevelScaleij,其中InvLevelScaleij表示 解量化表第j列第i行的解量化位階,dequant.j表示所獲取解量化系數(shù)表第j列第i行 的值,Q-Hiatrixij表示所獲取量化矩陣第j列第i行的值。乘法器650a將解量化位階 InvLevelScal、乘以已量化系數(shù)Eij,以產(chǎn)生解量化系數(shù)Tij,其中Tij表示當(dāng)前處理區(qū)塊第 j列第i行的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),Eij經(jīng)由熵解 碼變換或者經(jīng)由熵解碼與哈達(dá)馬變換,而IrwLevelScal、表示解量化表第j列第i行的已 產(chǎn)生的解量化位階。由于解量化是量化的反操作,可類比推知量化單元。圖6b是示例量化單元600b 的示意圖,量化單元600b包含本地存儲器610b (例如SRAM或寄存器)及兩個乘法器630b、 650b。本地存儲器610b起初存儲第二子因數(shù)的逆。應(yīng)當(dāng)理解,第二子因數(shù)的逆起初也可存 儲在ROM表中。在量化MB的Y、Cb和Cr區(qū)塊之前,所有第一子因數(shù)的逆都存儲在本地存儲 器610b中。當(dāng)編碼MB的特定區(qū)塊時,乘法器630b將第一子因數(shù)的逆(例如量化矩陣值的 l/q-matriXiJ)乘以第二子因數(shù)的逆(例如解量化系數(shù)的逆l/dequan、)以產(chǎn)生量化位階 InvLevelScalei,1,其中(Iequantij表示角軍量化系數(shù)表第j列第i行的值,Qiatrixij表示 量化矩陣第j列第i行的值,InvLevelScaleij-1表示量化表第j列第i行的量化位階。乘 法器650b將量化位階InvLevelScaleJ1乘以已變換系數(shù)T’ij;以產(chǎn)生已量化系數(shù)Eij,其中 Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),T’ ,j表示當(dāng)前處理區(qū)塊第j列第i行的 已變換系數(shù)(經(jīng)由DCT變換),InvLevelScaleJ1表示量化表第j列第i行的量化位階。在第三實施例中,圖7a的示例解量化單元700a包含本地存儲器710a (例如SRAM 或寄存器)、多任務(wù)器730a和兩個乘法器750a、770a。本地存儲器710a起初存儲第一默 認(rèn)子因數(shù)(例如量化矩陣,包括 quant_org, quant8_org, quant_intra_default, quant_ inter—default, quant8_intra_default 禾口 quant8_inter_default)禾口第二默認(rèn)子因數(shù) (例如解量化系數(shù)表,包含 dequant_coef
和 8x8_dequant_coef
)。應(yīng)當(dāng)理 解,第一默認(rèn)子因數(shù)和第二默認(rèn)子因數(shù)也可存儲在ROM表中。在解量化MB的Y、Cb、Cr區(qū) 塊之前,所有用戶定義第一子因數(shù)(例如用戶定義量化矩陣,包含ScalingLiSt4X4
和ScalingList8x8
)都存儲在本地存儲器710a中。當(dāng)以圖4所示步驟S455解碼MB的特定區(qū)塊時,先從視頻序列標(biāo)頭,畫面標(biāo)頭,或者序列、片、畫面、GOP或MB層的標(biāo)頭中 獲取標(biāo)不 seq—scaling—matrix—present_flag、seq—scaling—list—present_flag[i],或 pic_scaling—matrix—present_flag 禾口 pic_scaling—list—present_flag[i] (i = 0. . 7), 多任務(wù)器730a相應(yīng)的將用戶定義或默認(rèn)量化矩陣輸出到乘法器750a。之后識別MB的區(qū) 塊類型,例如4X4或8X8區(qū)塊,畫面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊,參考識別的區(qū)塊類 型和獲取的標(biāo)示,可通過多任務(wù)器730a獲取相關(guān)的量化矩陣;基于QP值和識別的區(qū)塊類 型,可從本地存儲器710a獲取特定的解量化系數(shù)表。QP的細(xì)節(jié)可參照第一實施例的相 關(guān)描述。乘法器750a將解量化系數(shù)dequantij乘以量化矩陣值Crmatrixij以產(chǎn)生解量化 位階InvLeveIScaIeij,其中InvLevelScal、表示解量化表第j列第i行的解量化位階, dequant^·表示獲取的解量化系數(shù)表第j列第i行的值,Q-Hiatrixij表示獲取的量化矩陣 第j列第i行的值。乘法器770a將解量化位階InvLevelScal、乘以已量化系數(shù)Eij以產(chǎn) 生解量化系數(shù)T…其中Tu表示當(dāng)前處理區(qū)塊第j列第i行的解量化系數(shù),Eij表示當(dāng)前處 理區(qū)塊第j列第i行的已量化系數(shù)(經(jīng)由熵解碼變換,或者經(jīng)由熵解碼及哈達(dá)馬變換), InvLevelScaleij表示解量化表第j列第i行產(chǎn)生的解量化位階。由于解量化是量化的反操作,量化單元可由類比推知。圖7b 是示例量化單元700b 的示意圖,量化單元700b包含本地存儲器710b (例如SRAM或寄存器),多任務(wù)器730b和兩 個乘法器750b、770b。本地存儲器710b起初存儲第一默認(rèn)子因數(shù)的逆以及第二默認(rèn)子因 數(shù)的逆。應(yīng)當(dāng)理解,第一默認(rèn)子因數(shù)的逆以及第二默認(rèn)子因數(shù)的逆起初也可存儲在ROM表 中。解量化MB的Y、Cb、Cr區(qū)塊之前,所有用戶定義第一子因數(shù)都存儲在本地存儲器710b 中。編碼特定的MB的區(qū)塊時,多任務(wù)器730b將用戶定義及默認(rèn)量化矩陣輸出到乘法器 750b,之后乘法器750b將第一子因數(shù)的逆(例如量化矩陣值的逆IArmatrixij)乘以第二 子因數(shù)的逆(例如解量化系數(shù)的逆1/dequantij)以產(chǎn)生量化位階InvLevelScaleJ1,其中 InvLevelScaleij-1表示解量化表第j列第i行的解量化位階的逆,Cbquantij表示量化系數(shù) 表第j列第i行的的值,q-matriXiJ表示量化矩陣第j列第i行的值。乘法器770b將量化 位階InvLevelScaleJ1乘以已變換系數(shù)T’ u以產(chǎn)生已量化系數(shù)Eij,其中Eij表示當(dāng)前處理 區(qū)塊第j列第i行的已量化系數(shù),T’ ,j表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng) 由DCT變換),InvLevelScaleJ1表示量化表第j列第i行的量化位階。在第四實施例中,圖8a中的示例解量化單元800a包含本地存儲器810a,多任務(wù) 器850a和兩個乘法器830a、870a,本地存儲器810a起初存儲第二子因數(shù)(例如解量化系數(shù) 表,包括dequant_coef
和8x8_dequant_coef
)和默認(rèn)解量化表。應(yīng)當(dāng)理解, 第二子因數(shù)和默認(rèn)解量化表也可以存儲在ROM表中。4X 4區(qū)塊的所有默認(rèn)解量化表可用以 下示例公式計算InvLevelScale [i] [j] = dequant_coef [j] Xq-matrix[i](i = 0. . 5,j = 0. . 5)其中,q-matrix[i]表示第i個產(chǎn)生的量化矩陣,dequant_coef [ j]表示第 j個預(yù)先定義的4X4解量化系數(shù)表,InvLevelScale
[j]表示用于解量化4X4畫 面內(nèi)YMB的六個解量化表,InvLevelScale[l[j]表示用于解量化4X4畫面內(nèi)Cb MB 的六個解量化表,InvLevelScale[2] [j]表示用于解量化4X4畫面內(nèi)Cr MB的六 個解量化表,InvLevelScale[3] [j]表示用于解量化4X4畫面間Y MB的六個解量化表,InvLevelScale[4] [j]表示用于解量化4X4畫面間Cb MB的六個解量化 表,InvLevelScale[5] [j]表示用于解量化4X4畫面間Cr MB的六個解量化表。 q-matrices
"SJ以i quant_org gJc quant_intra) default, q-matrices [3. . 5] "SJ以i quant_org或quantjntei^default。8X8區(qū)塊的所有默認(rèn)解量化表可用以下示例公式計 算InvLevelScale [i] [j] = 8x8_dequant_coef [j] Xq-matrix[i](i = 6. . 7,j = 0. . 5)其中,q-matrix[i]表示第i個產(chǎn)生的量化矩陣,8x8_equant_coef [j]表示第j個預(yù)先定義的8X8解量化系數(shù)表,InvLevelScale[6] [j]表示用于解量化8X8畫面內(nèi)Y MB的六個解量化表,InvLevelScale [7] [j]表示用于解量化8 X 8畫面間Y MB的六個解量 U·。 q_matrix[6] IiXjk quant8_org gJc quant8_intra_default, q-matrix [7] IiXjk quant8_org或quant8_inter_default。解量化MB的Y、Cb、Cr區(qū)塊之前,所有用戶定義第一 子因數(shù)(例如用戶定義量化矩陣,包含ScalingList4x4
,ScalingListSxS
)存 儲在本地存儲器810a。以圖4所示步驟S455解碼MB的特定區(qū)塊時,先從視頻序列標(biāo)頭,畫 面標(biāo)頭,或者序列、片、畫面、GOP或MB層的標(biāo)頭中獲取標(biāo)示seq_scaling_matrix_present_ flag 禾口 seq_scaling_list_p:resent_flag[i],或 pic—scaling—matrix—present—flag 禾口 pic_scaling_list_present_flag[i] (i = 0. . 7)。之后識別 MB 的區(qū)塊類型,例如 4X4 或 8 X 8區(qū)塊,畫面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊。基于識別的區(qū)塊類型和獲取的標(biāo)示、QP值, 可從本地存儲器810a獲取默認(rèn)解量化系數(shù)表和用戶定義解量化系數(shù)表。QP的細(xì)節(jié)可參照 第一實施例的相關(guān)描述。乘法器830a將解量化系數(shù)dequantij乘以量化矩陣值Qiatrixij 以產(chǎn)生用戶定義的解量化位階InvLeveIScaIeij,其中InvLevelScal、表示用戶定義的解 量化表第j列第i行的解量化位階,dequant.j表示獲取的解量化系數(shù)表第j列第i行的值, q-matriXiJ表示獲取的量化矩陣第j列第i行的值。根據(jù)所獲取的標(biāo)示,乘法器850a將相 乘結(jié)果(例如用戶定義解量化表)或默認(rèn)解量化表輸出到乘法器870a。乘法器870a將解 量化位階InvLeveIScaIeij乘以已量化系數(shù)Eij以產(chǎn)生解量化系數(shù)Tij,其中Tij表示當(dāng)前處 理區(qū)塊第j列第i行的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù)(經(jīng) 由熵解碼變換,或者經(jīng)由熵解碼及哈達(dá)馬變換),InvLevelScaleij表示解量化表第j列第i 行產(chǎn)生的解量化位階。由于量化是解量化的反操作,量化單元可類比推知。圖8b是示例量化單元800b 的示意圖,量化單元800b包含本地存儲器810b (例如SRAM或寄存器),多任務(wù)器850b和兩 個乘法器830b、870b。本地存儲器810b起初存儲默認(rèn)解量化位階的逆和默認(rèn)第二子因數(shù) 的逆。應(yīng)當(dāng)理解,默認(rèn)解量化位階的逆和默認(rèn)第二子因數(shù)的逆起初可存儲在ROM表中。量 化MB的Y、Cb、Cr區(qū)塊之前,所有用戶定義第一子因數(shù)的逆都存儲在本地存儲器810b中。 編碼MB的特定區(qū)塊時,乘法器830b將量化矩陣值的逆IArmatrixij乘以解量化系數(shù)的逆 1/dequantij,以產(chǎn)生用戶定義解量化位階的逆InvLevelScaleJ1,其中InvLevelScaleJ1 表示用戶定義解量化表第j列第i行的解量化位階的逆,l/dequant.j表示解量化系數(shù)表 第j列第i行值的逆,l/q-matriXiJ表示用戶定義量化矩陣第j列第i行的值的逆。多任 務(wù)器850b輸出相乘結(jié)果(即用戶定義量化表)或默認(rèn)量化表。乘法器870b將量化位階 InvLevelScaleJ1乘以已變換系數(shù)T’ u以產(chǎn)生已量化系數(shù)Eij,其中Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),τ’ u表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng)由DCT 變換),IrwLevelScaleJ1表示量化表第j列第i行的量化位階。在第五實施例中,圖9a所示的示例解量化單元900a包含本地存儲器910a(例 如SRAM或寄存器),緩沖器950a以及兩個乘法器930a、970a。本地存儲器910a起初存儲 所有第——子因數(shù)(例如 quant_org、quant8_org> quant_intra一default、quant—inter— default、 quant8_intra_default> quant8_inter_default> ScalingList4x4
禾口 ScalingList8x8
)和第二子因數(shù)(例如解量化系數(shù)表,包括dequant_coef
和 8x8dequant coef
)0應(yīng)當(dāng)理解,所有第一子因數(shù)和第二子因數(shù)可以存儲在ROM表 中。解量化MB的特定Y、Cb、Cr區(qū)塊(圖4步驟S455)之前,先從視頻序列標(biāo)頭,畫面標(biāo) 頭,或者序列、片、畫面、GOP或MB層的標(biāo)頭中獲取標(biāo)示seq_scaling_matrix_present_flag 禾口 seq_scaling_list_p:resent_flag[i],或 pic—scaling—matrix—present—flag 禾口 pic_ scaling_list_present_flag[i] (i = 0. . 7)。之后識別 MB 的區(qū)塊類型,例如 4X4 或 8X8 區(qū)塊,畫面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊。為所獲取的MB確定至少一個QP值。QP的細(xì) 節(jié)可參照第一實施例的相關(guān)描述。為欲解碼的區(qū)塊產(chǎn)生解量化表并存儲在緩沖器950a。 請注意,當(dāng)欲解碼的區(qū)塊可以采用緩沖器950a存儲的解量化表時,可以不重新產(chǎn)生解量化 表。乘法器930a將解量化系數(shù)dequantij乘以量化矩陣值Qiatrixij,為欲解碼的區(qū)塊產(chǎn) 生解量化位階InvLeveIScaIeij,其中InvLevelScal、表示解量化表第j列第i行的解量 化位階,dequant.j表示基于識別區(qū)塊類型及QP值選擇的解量化系數(shù)表第j列第i行的值, q-matriXiJ表示基于識別區(qū)塊類型及獲取的標(biāo)示選擇的所獲取量化矩陣第j列第i行的 值。當(dāng)以圖4步驟S455解碼MB的特定區(qū)塊時,乘法器970a將緩沖器950a中的解量化位 階InvLevelScal、乘以已量化系數(shù)Eij以產(chǎn)生解量化系數(shù)Tij,其中Tij表示當(dāng)前處理區(qū)塊 第j列第i行的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù)(經(jīng)由熵解 碼變換,或者經(jīng)由熵解碼及哈達(dá)馬變換),InvLevelScaleij表示解量化表第j列第i行存儲 的解量化位階。由于量化是解量化的反操作,量化單元可類比推知。圖9b是示例量化單元900b 的示意圖,量化單元900b包含本地存儲器910b (例如SRAM或寄存器),緩沖器950b和兩 個乘法器930b、970b。本地存儲器910b起初存儲所有第一子因數(shù)的逆和第二子因數(shù)的逆。 應(yīng)當(dāng)理解,所有第一子因數(shù)的逆和第二子因數(shù)的逆起初可存儲在ROM表中。量化MB的特 定Y、Cb、Cr區(qū)塊之前,產(chǎn)生欲編碼區(qū)塊的量化表并存儲在緩沖器950b。請注意,當(dāng)欲編碼 的區(qū)塊可以采用緩沖器950a存儲的量化表時,可以不重新產(chǎn)生量化表。乘法器930b將 量化矩陣值的逆IArmatrixij乘以解量化系數(shù)的逆l/dequan、以產(chǎn)生解量化位階的逆 InvLevelScaleJ1,其中InvLevelScaleJ1表示解量化表第j列第i行的解量化位階的逆, l/dequant.j表示欲編碼區(qū)塊的解量化系數(shù)表第j列第i行值的逆,l/q-matriXiJ表示欲編 碼區(qū)塊的量化矩陣第j列第i行的值的逆。編碼MB的特定區(qū)塊時,乘法器970b將量化位 階InvLevelScaleJ1乘以已變換系數(shù)T’ u以產(chǎn)生已量化系數(shù)Eij,其中Eij表示當(dāng)前處理區(qū) 塊第j列第i行的已量化系數(shù),T’ ,j表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng)由 DCT變換),InvLevelScaleJ1表示量化表第j列第i行存儲的量化位階。在第六實施例中,圖IOa所示的示例解量化單元1000a包含本地存儲器IOlOa (例如SRAM或寄存器)、緩沖器1030a、多任務(wù)器1050a和多任務(wù)器1070a、乘法器1080a和解多任務(wù)器1090a。本地存儲器1010a起初存儲所有第一子因數(shù)(例如quant_org、quant8_org、 quant_intra_default> quant_inter_default> quant8_intra_default> quant8_inter_ default,ScalingList4x4
和 ScalingList8x8
)和第二子因數(shù)(例如解量化系 數(shù)表,包括dequant_coef W. . 5]和8x8_dequant_coef W. . 5])。應(yīng)當(dāng)理解,所有第一子因數(shù) 和第二子因數(shù)均可存儲在ROM表中。解量化MB的特定Y、Cb、Cr區(qū)塊(圖4步驟S455)之 前,先從視頻序列標(biāo)頭,畫面標(biāo)頭,或者序列、片、畫面、GOP或MB層的標(biāo)頭中獲取標(biāo)示seq_ sealing_matrix_present_flag 禾口 seq_scaling_list_present_flag[i],或 pic_scaling_ matrix_present_flag 禾口 pic_scaling_list_present_flag[i] (i = 0. · 7)。之后識另Ij MB 的區(qū)塊類型,例如4X4或8X8區(qū)塊,畫面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊。為所獲取的MB 確定至少一個QP值。QP的細(xì)節(jié)可參照第一實施例的相關(guān)描述。為欲解碼區(qū)塊產(chǎn)生解量化 表并存儲在緩沖器1030a。請注意,當(dāng)欲解碼的區(qū)塊可以采用緩沖器1030a存儲的解量化表 時,可以不重新產(chǎn)生解量化表。根據(jù)獲取的標(biāo)示和識別區(qū)塊類型,多任務(wù)器1050a將相關(guān)的 第一子因數(shù)輸出到乘法器1080a ;根據(jù)QP值和識別區(qū)塊類型,多任務(wù)器1070a將欲解碼區(qū) 塊相關(guān)的第二子因數(shù)輸出到乘法器1080a。乘法器1080a將解量化系數(shù)dequan、乘以量 化矩陣值q-matrixu以產(chǎn)生用戶定義解量化位階InvLevelScaleij,其中InvLevelScaleij 表示解量化表第j列第i行的解量化位階,dequant.j表示獲取的解量化系數(shù)表第j列第i 行的值,q-matriXiJ表示所獲取量化矩陣第j列第i行的值。解多任務(wù)器1090a輸出產(chǎn)生 的解量化位階至緩沖器1 030a。當(dāng)以圖4步驟S455解碼MB的特定區(qū)塊時,多任務(wù)器1050a 輸出已量化系數(shù)至乘法器1080a,多任務(wù)器1070a輸出存儲的解量化位階至乘法器1080a。 乘法器1080a將解量化位階InvLeveIScaIeij乘以已量化系數(shù)Eij以產(chǎn)生解量化系數(shù)Tij,其 中Tij表示當(dāng)前處理區(qū)塊第j列第i行的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行 的已量化系數(shù)(經(jīng)由熵解碼變換,或者經(jīng)由熵解碼及哈達(dá)馬變換),InvLeveIScaIeij表示獲 取的解量化表第j列第i行存儲的解量化位階。解多任務(wù)器1090a輸出解量化系數(shù)至后續(xù) 的硬件電路(例如IDCT單元)。 由于量化是解量化的反操作,量化單元可類比推知。圖IOb是示例量化單元IOOOb 的示意圖,量化單元IOOOb包含本地存儲器IOlOb (例如SRAM或寄存器),緩沖器1030b, 兩個多任務(wù)器1050b、1070b,乘法器1080b和解多任務(wù)器1090b。本地存儲器IOlOb起初 存儲所有第一子因數(shù)的逆和第二子因數(shù)的逆。應(yīng)當(dāng)理解,所有第一子因數(shù)的逆和第二子因 數(shù)的逆起初可存儲在ROM表中。量化MB的特定Y、Cb、Cr區(qū)塊之前,產(chǎn)生欲編碼區(qū)塊的量 化表并存儲在緩沖器1030b。請注意,當(dāng)欲編碼的區(qū)塊可以采用緩沖器1030a存儲的量化 表時,可以不重新產(chǎn)生量化表。多任務(wù)器1050b輸出欲編碼區(qū)塊第一子因數(shù)的逆至乘法 器1080b,多任務(wù)器1070b輸出欲編碼區(qū)塊第二子因數(shù)的逆至乘法器1080b。乘法器1080b 將量化矩陣值的逆IArmatrixij乘以解量化系數(shù)的逆l/dequan、以產(chǎn)生解量化位階的 逆InvLevelScaleJ1,其中InvLevelScaleJ1表示解量化表第j列第i行的解量化位階的 逆,l/dequant.j表示欲編碼區(qū)塊的量化系數(shù)表第j列第i行的值的逆,l/q-matriXiJ表示 欲編碼區(qū)塊的量化矩陣第j列第i行的值的逆。解多任務(wù)器1090b輸出所產(chǎn)生的解量化 位階的逆至緩沖器1030b。編碼MB的特定區(qū)塊時,多任務(wù)器1050b輸出已變換系數(shù)至乘法 器1080b,多任務(wù)器1070b輸出存儲的量化位階至乘法器1080b。乘法器1080b將量化位階 InvLevelScaleJ1乘以已變換系數(shù)T’ u以產(chǎn)生已量化系數(shù)Eij,其中Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),τ’ u表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng)由DCT 變換),InvLevelScaleij-1表示量化表第j列第i行存儲的量化位階。解多任務(wù)器1090b輸 出量化系數(shù)至后續(xù)的硬件電路(例如解量化單元或熵編解碼單元)。在第七實施例中,圖Ila所示的示例解量化單元IlOOa包含本地存儲器11 IOa (例 如SRAM或寄存器),緩沖器1150a,兩個乘法器1130a和1170a。本地存儲器IllOa起初 存儲所有第二子因數(shù)(例如解量化系數(shù)表,包括dequant_COef
和8X8_dequant_ coef
)o應(yīng)當(dāng)理解,所有第二子因數(shù)可存儲在ROM表中。解量化MB的特定Y、Cb、Cr 區(qū)塊(圖4步驟S455)之前,先從視頻序列標(biāo)頭,畫面標(biāo)頭,或者序列、片、畫面、GOP或MB 層的標(biāo)頭中獲取標(biāo)不 seq_scaling_matrix_present_f lag 禾口 seq_scaling_list_present_ flag[i],或 pic_scaling_matrix_present_flag 禾口 pic_scaling_list_present_flag[i] (i = 0. .7)。之后識別MB的區(qū)塊類型,例如4X4或8X8區(qū)塊,畫面內(nèi)或畫面間區(qū)塊,Y、 Cb、Cr區(qū)塊。為所獲取的MB確定至少一個QP值。QP的細(xì)節(jié)可參照第一實施例的相關(guān)描 述。根據(jù)獲取的標(biāo)示和識別區(qū)塊類型,從外部存儲器(例如圖3的330)將欲解碼區(qū)塊的第 一子因數(shù)(即量化矩陣)傳輸?shù)匠朔ㄆ?130a。為欲解碼區(qū)塊產(chǎn)生解量化表并存儲在緩沖 器1150a。請注意,當(dāng)欲解碼的區(qū)塊可以采用緩沖器1150a存儲的解量化表時,可以不重新 產(chǎn)生解量化表。乘法器1130a將解量化系數(shù)dequantij乘以量化矩陣值q-matr、以產(chǎn)生欲 解碼區(qū)塊的解量化位階InvLeveIScaIeij,其中InvLevelScal、表示解量化表第j列第i 行的解量化位階,dequant.j表示基于識別區(qū)塊類型和QP值選擇的解量化系數(shù)表第j列第 i行的值,q-matriXiJ表示所接收的量化矩陣第j列第i行的值。當(dāng)以圖4步驟S455解碼 MB的特定 區(qū)塊時,乘法器1170a將來自緩沖器1150a的解量化位階InvLevelScal、乘以 已量化系數(shù)Eij以產(chǎn)生解量化系數(shù)Tij,其中Tij表示當(dāng)前處理區(qū)塊第j列第i行的解量化系 數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù)(經(jīng)由熵解碼變換,或者經(jīng)由熵解碼 及哈達(dá)馬變換),IrwLevelScal、表示解量化表第j列第i行存儲的解量化位階。由于量化是解量化的反操作,量化單元可類比推知。圖1 Ib是示例量化單元1 IOOb 的示意圖,量化單元1 IOOb包含本地存儲器11 IOb (例如SRAM或寄存器),緩沖器1150b和 兩個乘法器1130b、1170b。本地存儲器IllOb起初存儲所有第二子因數(shù)的逆。應(yīng)當(dāng)理解,所 有第二子因數(shù)的逆起初可存儲在ROM表中。量化MB的特定Y、Cb、Cr區(qū)塊之前,從外部存儲 器將欲編碼區(qū)塊的第一子因數(shù)(即量化矩陣)傳輸?shù)匠朔ㄆ?130a,產(chǎn)生欲編碼區(qū)塊的量化 表并存儲在緩沖器1150b。請注意,當(dāng)欲編碼的區(qū)塊可以采用緩沖器1150a存儲的量化表 時,可以不重新產(chǎn)生量化表。乘法器1130b將量化矩陣值的IArmatrixij乘以解量化系數(shù) 的逆Ι/dequantij以產(chǎn)生解量化位階的逆InvLevelScaleJ1,其中InvLevelScaleJ1表示解 量化表第j列第i行的解量化位階的逆,l/dequant.j表示欲編碼區(qū)塊的解量化系數(shù)表第j 列第i行的值的逆,l/q-matriXiJ表示傳輸?shù)挠幋a區(qū)塊的量化矩陣第j列第i行值的逆。 編碼MB的特定區(qū)塊時,乘法器1170b將量化位階InvLevelScaleJ1乘以已變換系數(shù)T, 以產(chǎn)生已量化系數(shù)Eu,其中Eu表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù),T’u表示當(dāng) 前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng)由DCT變換),InvLevelScaleJ1表示量化表 第j列第i行存儲的量化位階。在第八實施例中,圖12a所示的示例解量化單元1200a包含本地存儲器1210a (例 如SRAM或寄存器),緩沖器1230a,兩個多任務(wù)器1250a、1270a,乘法器1280a和解多任務(wù)器1290a。本地存儲器1210a起初存儲所有第二子因數(shù)(例如解量化系數(shù)表,包括dequant_ coef
和8x8_dequant_coef
)。應(yīng)當(dāng)理解,所有第二子因數(shù)可存儲在ROM表中。 解量化MB的特定Y、Cb、Cr區(qū)塊(圖4步驟S455)之前,先從視頻序列標(biāo)頭,畫面標(biāo)頭,或者 序列、片、畫面、GOP或MB層的標(biāo)頭中獲取標(biāo)示seq_scaling_matrix_present_flag禾口 seq_ sealing_list_present_f lag[i],或 pic_scaling_matrix_present_f lag 禾口 pic_scaling_ list_present_flag[i] (i = 0. . 7)。之后識別MB的區(qū)塊類型,例如4X4或8X8區(qū)塊,畫 面內(nèi)或畫面間區(qū)塊,Y、Cb、Cr區(qū)塊。為所獲取的MB確定至少一個QP值。QP的細(xì)節(jié)可參 照第一實施例的相關(guān)描述。根據(jù)獲取的標(biāo)示和識別區(qū)塊類型,從外部存儲器(例如圖3的 330)將欲解碼區(qū)塊的第一子因數(shù)(即量化矩陣)傳輸?shù)蕉嗳蝿?wù)器1250a。為欲解碼區(qū)塊產(chǎn) 生解量化表并存儲在緩沖器1230a。請注意,當(dāng)欲解碼的區(qū)塊可以采用緩沖器1230a存儲 的解量化表時,可以不重新產(chǎn)生解量化表。多任務(wù)器1250a輸出接收的第一子因數(shù)至乘法 器1280a,根據(jù)識別區(qū)塊類型和QP值,多任務(wù)器1270a輸出欲解碼區(qū)塊相關(guān)的第二子因數(shù) 至乘法器1280a。乘法器1280a將解量化系數(shù)Cbquantij乘以量化矩陣值q-matriXij,以產(chǎn) 生用戶定義解量化位階InvLevelScal、,其中InvLevelScal、表示解量化表第j列第i 行的解量化位階,dequant.j表示獲取的解量化系數(shù)表第j列第i行的值,Q-Hiatrixij表示 所接收的量化矩陣第j列第i行的值。解多任務(wù)器1290a輸出產(chǎn)生的解量化位階至緩沖器 1230a。當(dāng)以圖4步驟S455解碼MB的特定區(qū)塊時,多任務(wù)器1250a輸出已量化系數(shù)至乘法 器1280a,多任務(wù)器1270a輸出存儲的解量化位階至乘法器1280a。乘法器1280a將解量化 位階InvLevelScal、乘以已量化系數(shù)Eij以產(chǎn)生解量化系數(shù)Tij,其中Tij表示當(dāng)前處理區(qū) 塊第j列第i行的解量化系數(shù),Eij表示當(dāng)前處理區(qū)塊第j列第i行的已量化系數(shù)(經(jīng)由熵 解碼變換,或者經(jīng)由熵解碼及哈達(dá)馬變換),示獲取的解量化表第j列第 i行存儲的解量化位階。解多任務(wù)器1290a輸出解量化系數(shù)至后續(xù)的硬件電路(例如IDCT 單元)。
由于量化是解量化的反操作,量化單元可類比推知。圖12b是示例量化單元1200b 的示意圖,量化單元1200b包含本地存儲器1210b (例如SRAM或寄存器),緩沖器1230b,兩 個多任務(wù)器1250b、1270b,乘法器1280b和解多任務(wù)器1290b。本地存儲器1210b起初存 儲所有第二子因數(shù)的逆。應(yīng)當(dāng)理解,所有第二子因數(shù)的逆起初可存儲在ROM表中。量化MB 的特定Y、Cb、Cr區(qū)塊之前,從外部存儲器將欲編碼區(qū)塊的第一子因數(shù)的逆?zhèn)鬏數(shù)蕉嗳蝿?wù)器 1250b。產(chǎn)生欲編碼區(qū)塊的量化表并存儲在緩沖器1230b。請注意,當(dāng)欲編碼的區(qū)塊可以采 用緩沖器1230a存儲的量化表時,可以不重新產(chǎn)生量化表。多任務(wù)器1250b輸出欲編碼區(qū)塊 第一子因數(shù)的逆至乘法器1280b,多任務(wù)器1270b輸出欲編碼區(qū)塊第二子因數(shù)的逆至乘法 器1280b。乘法器1280b將量化矩陣值的逆l/q-matriXij乘以解量化系數(shù)的逆l/dequan、 以產(chǎn)生解量化位階的逆InvLevelScaleJ1,其中InvLevelScaleJ1表示解量化表第j列第 i行的解量化位階的逆,l/dequant.j表示欲編碼區(qū)塊的解量化系數(shù)表第j列第i行值的逆, l/q-matriXiJ表示接收的量化矩陣第j列第i行值的逆。解多任務(wù)器1290b輸出所產(chǎn)生的 解量化位階的逆至緩沖器1230b。編碼MB的特定區(qū)塊時,多任務(wù)器1250b輸出已變換系數(shù) 至乘法器1280b,多任務(wù)器1270b輸出存儲的量化位階至乘法器1280b。乘法器1280b將 量化位階IrwLevelScaleJ1乘以已變換系數(shù)T’ u以產(chǎn)生已量化系數(shù)Eij,其中Eij表示當(dāng)前 處理區(qū)塊第j列第i行的已量化系數(shù),T’ ,j表示當(dāng)前處理區(qū)塊第j列第i行的已變換系數(shù)(經(jīng)由DCT變換),InvLevelScalei;1表示量化表第j列第i行存儲的量化位階。解多任務(wù)器1290b輸出已量化系數(shù)至后續(xù)的硬件電路(例如解量化單元或熵編解碼單元)。本領(lǐng)域具有通常知識者可用單個乘法器在物理上實現(xiàn)雙乘法器結(jié)構(gòu),例如圖6a 的 630a,650a,圖 6b 的 630b,650b,圖 7a 的 750a,770a,圖 7b 的 750b,770b,圖 8a 的 830a、 870a,圖 8b 的 830b,870b,圖 9a 的 930a,970a,圖 9b 的 930b,970b,圖 Ila 的 1130a、1170a, 圖lib的1130b、1170b,其中的單個乘法器可根據(jù)控制信號,選擇性和周期性地從不同來源 獲取以產(chǎn)生相乘結(jié)果,并傳送至不同目的地。默認(rèn)量化矩陣(例如 quant_org、quant8_org、quant_intra_default> quant_ inter—default、quant8_intra_default gJc quant8_inter_default) sKl^fift.^^^: ( M 如dequant_coef
中的一個或者dequant_coef8
中的一個)起初可用壓縮格 式存儲。在一個例子中,除第一值以外,默認(rèn)量化矩陣的每個值都用該值與前一值之差來代 替??捎肸型順序掃描默認(rèn)量化矩陣。包含第一值和多個差值的新8X8畫面內(nèi)默認(rèn)量化 矩陣 “quant8_intra_default” 如下所示int new_quant8_intra_default[64] = {6,4,2,3,0,5,0,0,0, -2,0,0,0,0,0,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,2,0,2,0,3,0,2,2}.因此,new_quant8_intra_default的每個值可以用三比特來表示,以減少所需存 儲容量。應(yīng)當(dāng)理解,多個差值可進(jìn)一步以游程碼編碼,以產(chǎn)生VLC流。當(dāng)neW_quan8_intra_ default恢復(fù)(reverse)至quan8_intra_default時,如果需要,VLC流可以游程碼解碼以 獲取new_quan8_intra_default,將每一差值加至前一個已轉(zhuǎn)化值(inverted value)以獲 取已轉(zhuǎn)化值。在另一例子中,較后的解量化系數(shù)表的每個值均是該值與較前的解量化系數(shù)表 相應(yīng)值之差,其中,較后和較前的解量化系數(shù)表是同維的(例如4X4或8X8)。包含與較 前的8X8解量化系數(shù)表“dequant_COef8
”的差值的新8X8解量化系數(shù)表“dequant_ coef8[l]”如下所示Static const int new_dequant_coef8[1][8][8] = {2,2,3,2,2,2,3,2,2,1,2,1,2,1,2,1,3,2,3,2,3,2,3,2,2,1,2,1,2,1,2,1,2,2,3,2,2,2,3,2,2,1,2,1,2,1,2,1,
3,2,3,2,3,2,3,2,2,1,2,1,2,1,2,1}.除第一值以外,新產(chǎn)生的解量化系數(shù)表的每個值可以進(jìn)一步用該值與前一個值的 差來代替。可用Z型順序掃描新產(chǎn)生的量化矩陣或解量化系數(shù)表的值。接著,多個差值可 進(jìn)一步以游程碼編碼以產(chǎn)生VLC流。當(dāng)恢復(fù)new_dequant_coef8[l]至dequant_coef8 [1] 時,如果需要,可用游程碼解碼VLC流以獲取編碼解量化系數(shù)表,編碼解量化系數(shù)表包含順 序排列(例如Z型順序)的一個原始值和多個差值,若需要,獲取的解量化系數(shù)表的每個差 值均加至前一個已轉(zhuǎn)化值,以獲取new_dequant_coef8[l],并且new_dequant_coef8 [1]的 每個值均加至dequant_coef8
的相應(yīng)值,以獲取dequant_coef8 [1]。在另一例子中,可僅用三個值表示4X4解量化系數(shù)表(例如dequant_COef
中的一個)。典型的,每個4X4解量化系數(shù)表的值是以下式表示的通用樣式來布局Static const int dequant_coef = {a2, ab, a2, ab,ab,b2,ab,b2,a2, ab, a2, ab,ab,b2,ab,b2}·因此,對每個4X4解量化系數(shù)表,起初只有三個值存儲在本地存儲器以節(jié)省存儲 容量。具體的,對deqUant_COefW],起初只有“10”,“13”和“16”存儲在本地存儲器。傳送 dequant_coef
時,存儲值按照預(yù)定的順序分別輸出,例如“ 10,13,10,13,13,16,13,16, 10,13,10,13,13,16,13,16”。原始量化矩陣和默認(rèn)量化矩陣的壓縮過程可以類比推知。在另一例子中,8X8解量化系數(shù)表(例如dequant_coef8
中的一個)可以 分為四部分,每一部分包含相同的系數(shù)值。示例dequant_COef8
如下所示Static const int dequant_coef8
= {A, A,A, A};A = {20,19,25,19,19,18,24,18,25,24,32,24,19,18,24,18}.因此,對每個8X8解量化系數(shù)表,起初只有六個值存儲在本地存儲器,以節(jié)省存 儲容量。具體的,對于 dequant_COef8W],起初只有 “20”、“19”、“25”、“18”、“24” 和 “32” 存儲在本地存儲器。當(dāng)傳送deqUant_COef8
時,按照預(yù)定的順序分別輸出存儲值。圖13是解量化MB的區(qū)塊方法的一個實施例的流程圖,由硅實現(xiàn)的解量化單元實 施,例如600a、700a、800a、900a、1000a、1100a、1200a或通用處理器。在步驟S1310中,從比 特流中獲取欲解碼MB。在步驟S1330中,向欲解碼MB的區(qū)塊提供多個第一子因數(shù)(例如原 始量化矩陣值、默認(rèn)矩陣值和/或用戶定義量化矩陣值)和第二子因數(shù)(例如解量化系數(shù) 表的值)。在一個例子中,步驟S1330可以實際上依上文所述提供第一子因數(shù)和第二子因數(shù)。在另一例子中,步驟S1330可以從存儲器擷取第一和第二子因數(shù),這些子因數(shù)是在步驟 S1310之前產(chǎn)生的。在步驟S1350中,通過將第一子因數(shù)乘以第二子因數(shù),產(chǎn)生多個解量化 位階(即產(chǎn)生解量化位階)。在步驟S1370中,為區(qū)塊提供多個已量化系數(shù)(即提供已量化 系數(shù))。在步驟S1390中,將已量化系數(shù)乘以解量化位階,產(chǎn)生區(qū)塊的多個解量化系數(shù)(即 產(chǎn)生解量化系數(shù))。圖14是用于量化MB的區(qū)塊的方法的一個實施例的流程圖,由硅實現(xiàn)的量化單元 實施,例如600b、700b、800b、900b、1000b、1100b、1200b或通用處理器。在步驟S1410中,從 視頻序列中獲取欲編碼MB。在步驟S1430中,向MB的區(qū)塊提供多個第一子因數(shù)的逆和第 二子因數(shù)的逆。在一個例子中,步驟S1430可以實際上依上文所述產(chǎn)生第一和第二子因數(shù) 的逆。在另一例子中,步驟S1430可以從存儲器擷取第一和第二子因數(shù)的逆,這些子因數(shù)的 逆是在步驟S1410之前產(chǎn)生的。應(yīng)當(dāng)理解,第一和第二子因數(shù)的逆可以不限于1/(第一或 第二子因數(shù)),第一或第二子因數(shù)及其逆的關(guān)系是預(yù)先定義的,所屬領(lǐng)域具有通常知識者可 參考任何相關(guān)的標(biāo)準(zhǔn)說明書等。在步驟S1450中,通過將第一子因數(shù)的逆乘以第二子因數(shù) 的逆,產(chǎn)生多個量化位階(即產(chǎn)生量化位階)。在步驟S1470中,為區(qū)塊提供多個已變換系 數(shù)。在步驟S1490中,將已變換系數(shù)乘以量化位階,產(chǎn)生區(qū)塊的多個已量化系數(shù)(即產(chǎn)生已 量化系數(shù))。量化、解量化方法及其某些方面或部分可實施于有形介質(zhì)(例如軟盤、只讀光盤、 硬盤驅(qū)動器或其它機器可讀存儲介質(zhì))以程序代碼(即指令)的形式出現(xiàn),當(dāng)機器(例如 計算機、DVD播放器、DVD錄像機、移動電話或其它類似機器)加載或執(zhí)行程序代碼時,機器 就成為實現(xiàn)本發(fā)明的裝置。所揭露的方法也可通過傳輸介質(zhì)(例如通過電導(dǎo)線、電纜、光纖 或其它傳輸形式)傳輸程序代碼的形式來實施,當(dāng)機器(例如計算機)接收、加載并執(zhí)行程 序代碼時,機器就成為實現(xiàn)本發(fā)明的裝置。在通用處理器上實現(xiàn)時,程序代碼與處理器相結(jié) 合,以提供類比特定邏輯電路運作的特定的裝置。在說明書及后續(xù)的權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。所屬領(lǐng)域中具有通常知識者應(yīng)可理解,制造商可能會用不同的名詞來稱呼同一個組件。本說明書及后續(xù) 的權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為 區(qū)分的準(zhǔn)則。在通篇說明書及后續(xù)的請求項當(dāng)中所提及的“包括”和“包含”為一開放式的 用語,故應(yīng)解釋成“包含但不限定于”。以外,“耦接”一詞在此包含任何直接及間接的電性 連接手段。間接的電性連接手段包括通過其它裝置進(jìn)行連接。任何所屬領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許的更動與 潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視所附的權(quán)利要求所界定者為準(zhǔn)。
權(quán)利要求
一種用于視頻處理的方法,其特征在于,該方法包含通過視頻處理單元實施視頻解碼步驟和視頻編碼步驟中的至少一個,其中該視頻解碼步驟進(jìn)一步包含從比特流中獲取第一宏區(qū)塊;為該第一宏區(qū)塊的第一區(qū)塊提供多個第一子因數(shù)和多個第二子因數(shù);將該第一子因數(shù)和該第二子因數(shù)相乘以產(chǎn)生多個解量化位階;提供該第一區(qū)塊的多個已量化系數(shù);以及將該已量化系數(shù)乘以該解量化位階,以產(chǎn)生多個解量化系數(shù);以及其中該視頻編碼步驟進(jìn)一步包含從視頻序列中獲取欲編碼的第二宏區(qū)塊;為該第二宏區(qū)塊的第二區(qū)塊提供多個該第一子因數(shù)的逆和該第二子因數(shù)的逆;將該第一子因數(shù)的逆乘以該第二子因數(shù)的逆,以產(chǎn)生多個量化位階;提供該第二區(qū)塊的多個已變換系數(shù);以及將該已變換系數(shù)乘以該量化位階,以產(chǎn)生該第二區(qū)塊的多個已量化系數(shù)。
2.一種用于解量化的電子裝置,其特征在于,該電子裝置包含第一乘法器,通過將第一子因數(shù)乘以第二子因數(shù),以產(chǎn)生比特流的一個宏區(qū)塊的解量 化位階,其中,該解量化位階用以解量化該宏區(qū)塊的一個區(qū)塊。
3.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接于該第一乘法器的第二乘法器,用于解量化的該電子裝置將來自該第一乘法器的該解 量化位階乘以已量化系數(shù),以產(chǎn)生解量化系數(shù)。
4.如權(quán)利要求3所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接于該第一乘法器的本地存儲器,該本地存儲器起初存儲該第二子因數(shù)和該第一子因 數(shù),其中,該第一子因數(shù)是原始量化矩陣、默認(rèn)量化矩陣或用戶定義量化矩陣的值,該原始 量化矩陣、默認(rèn)量化矩陣及用戶定義量化矩陣存儲在該本地存儲器。
5.如權(quán)利要求3所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器,連接于該第一乘法器,用以存儲該第二子因數(shù)、原始量化矩陣、默認(rèn)量化矩陣及用戶定義矩陣;以及多任務(wù)器,連接于該本地存儲器和該第一乘法器,用以輸出來自存儲的該原始量化矩 陣、該默認(rèn)量化矩陣或該用戶定義量化矩陣的值,以作為該第一子因數(shù)。
6.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器,用以存儲該第二子因數(shù)和默認(rèn)解量化位階,并存儲包含該第一子因數(shù)的用戶定義量化矩陣;多任務(wù)器,連接于該本地存儲器和該第一乘法器,用以輸出產(chǎn)生的該解量化位階或存 儲的該默認(rèn)解量化位階;以及連接于該多任務(wù)器的第二乘法器,用以將該多任務(wù)器輸出的該解量化位階乘以已量化 系數(shù),以產(chǎn)生解量化系數(shù)。
7.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接該第一乘法器的一本地存儲器,用以存儲該第一子因數(shù)和第二子因數(shù);連接該第一乘法器的緩沖器,用以存儲產(chǎn)生的該解量化位階;以及 連接該緩沖器的第二乘法器,用以將存儲的該解量化位階乘以已量化系數(shù),以產(chǎn)生解 量化系數(shù),其中該解量化位階是產(chǎn)生的解量化位階。
8.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器;緩沖器;第一多任務(wù)器,連接于該本地存儲器和該第一乘法器; 第二多任務(wù)器,連接于該本地存儲器、該緩沖器和該第一乘法器;以及 解多任務(wù)器,連接于該緩沖器和該第一乘法器,其中,該本地存儲器存儲該第一子因數(shù)和該第二子因數(shù),該第一多任務(wù)器在解量化該 區(qū)塊之前輸出該第一子因數(shù)至該第一乘法器,該第二多任務(wù)器輸出該第二子因數(shù)至該第一 乘法器,該第一乘法器產(chǎn)生該解量化位階并輸出產(chǎn)生的該解量化位階至該解多任務(wù)器,該 解多任務(wù)器輸出該解量化位階至該緩沖器,以將該解量化位階存儲在該緩沖器中,該第一 多任務(wù)器輸出一已量化系數(shù)至該第一乘法器,該第二多任務(wù)器輸出存儲的該解量化位階至 該第一乘法器,該第一乘法器將該已量化系數(shù)乘以該解量化位階,以產(chǎn)生解量化系數(shù),并將 產(chǎn)生的該解量化系數(shù)輸出至該解多任務(wù)器,該解多任務(wù)器輸出該解量化系數(shù)至后續(xù)硬件電 路。
9.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接該第一乘法器的本地存儲器,用以存儲該第二子因數(shù);連接該第一乘法器的緩沖器,用以存儲產(chǎn)生的該解量化位階;以及 連接該緩沖器的第二乘法器,用以將存儲的該解量化位階乘以已量化系數(shù),以產(chǎn)生解 量化系數(shù),其中該第一子因數(shù)是從外部存儲器獲取的。
10.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含本地存儲器; 緩沖器;第一多任務(wù)器,連接于該外部存儲器和該第一乘法器; 第二多任務(wù)器,連接于該本地存儲器、該緩沖器和該第一乘法器;以及 解多任務(wù)器,連接于該緩沖器和該第一乘法器,其中,該本地存儲器存儲該第二子因數(shù),該第一多任務(wù)器在解量化該區(qū)塊之前輸出該 第一子因數(shù)至該第一乘法器,該第二多任務(wù)器輸出該第二子因數(shù)至該第一乘法器,該第一 乘法器產(chǎn)生該解量化位階并輸出產(chǎn)生的該解量化位階至該解多任務(wù)器,該解多任務(wù)器輸出 該解量化位階至該緩沖器,以將該解量化位階存儲在該緩沖器中,該第一多任務(wù)器輸出一 已量化系數(shù)至該第一乘法器,該第二多任務(wù)器輸出存儲的該解量化位階至該第一乘法器, 該第一乘法器將該已量化系數(shù)乘以該解量化位階,以產(chǎn)生解量化系數(shù),并將產(chǎn)生的該解量 化系數(shù)輸出至該解多任務(wù)器,該解多任務(wù)器輸出該解量化系數(shù)至后續(xù)硬件電路。
11.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 存儲編碼默認(rèn)量化矩陣的本地存儲器,該編碼默認(rèn)量化矩陣包含原始值以及多個順序排列 的差值,其中,每個差值通過與前一個已轉(zhuǎn)化值或者該原始值相加進(jìn)行轉(zhuǎn)化以獲取默認(rèn)量 化矩陣,并且該第一子因數(shù)是從該默認(rèn)量化矩陣獲取。
12.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含存儲變長編碼流的本地存儲器,其中,解碼該變長編碼流,以獲取編碼默認(rèn)量化矩陣,該編 碼默認(rèn)量化矩陣包含原始值以及多個順序排列的差值,其中,每個差值的轉(zhuǎn)化是通過與前 一個已轉(zhuǎn)化值或者該原始值相加以獲取默認(rèn)量化矩陣,并且該第一子因數(shù)是從該默認(rèn)量化 矩陣獲取。
13.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器,存儲第一編碼解量化系數(shù)表和第二解量化系數(shù)表,其中,該第一編碼解量化系 數(shù)表的每個值與該第二解量化系數(shù)表的相應(yīng)值相加,以獲取第一解量化系數(shù)表,并且該第 二子因數(shù)是從該第一解量化系數(shù)表獲取。
14.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 存儲默認(rèn)量化矩陣的本地存儲器,該默認(rèn)量化矩陣包含至少一個唯一的值,其中該第一子 因數(shù)是該唯一的值。
15.如權(quán)利要求2所述的用于解量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 存儲解量化系數(shù)表的本地存儲器,該解量化系數(shù)表包含多個唯一的值,該第二子因數(shù)是該 唯一的值中的一個。
16.一種用于量化的電子裝置,其特征在于,該電子裝置包含第一乘法器,通過將第一子因數(shù)的逆乘以第二子因數(shù)的逆,以產(chǎn)生視頻序列的一個宏 區(qū)塊的量化位階,其中,該量化位階用以量化該宏區(qū)塊的一個區(qū)塊。
17.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接于該第一乘法器的第二乘法器,該電子裝置將來自該第一乘法器的該量化位階乘以已 變換系數(shù),以產(chǎn)生已量化系數(shù)。
18.如權(quán)利要求17所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接于該第一乘法器的本地存儲器,用以存儲該第二子因數(shù)的逆和該第一子因數(shù)的逆,其 中,該第一子因數(shù)是原始量化矩陣、默認(rèn)量化矩陣或用戶定義量化矩陣的值,該原始量化矩 陣、該默認(rèn)量化矩陣及該用戶定義量化矩陣值的逆存儲在該本地存儲器。
19.如權(quán)利要求17所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器,連接于該第一乘法器,用以存儲該第二子因數(shù)的逆,并存儲原始量化矩陣、默認(rèn)量化矩陣及用戶定義矩陣的值的逆;以及多任務(wù)器,連接于該本地存儲器和該第一乘法器,用以輸出來自存儲的該原始量化矩 陣、該默認(rèn)量化矩陣或該用戶定義量化矩陣的值的逆,作為該第一子因數(shù)的逆。
20.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器,用以存儲該第二子因數(shù)的逆和默認(rèn)量化位階,并存儲用戶定義量化矩陣的該第一子因數(shù)的逆;多任務(wù)器,連接于該本地存儲器和該第一乘法器,用以輸出產(chǎn)生的該量化位階或存儲 的該默認(rèn)量化位階;以及連接于該多任務(wù)器的第二乘法器,用以將該多任務(wù)器輸出的該量化位階乘以已變換系 數(shù),以產(chǎn)生已量化系數(shù)。
21.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接該第一乘法器的本地存儲器,用以存儲該第一和第二子因數(shù)的逆;連接該第一乘法器的緩沖器,用以存儲產(chǎn)生的該量化位階;以及 連接該緩沖器的第二乘法器,用以將存儲的該量化位階乘以已變換系數(shù),以產(chǎn)生已量 化系數(shù),其中該量化位階是產(chǎn)生的量化位階。
22.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器;緩沖器;第一多任務(wù)器,連接于該本地存儲器和該第一乘法器; 第二多任務(wù)器,連接于該本地存儲器、該緩沖器和該第一乘法器;以及 解多任務(wù)器,連接于該緩沖器和該第一乘法器,其中,該本地存儲器存儲該第一子因數(shù)的逆和第二子因數(shù)的逆,該第一多任務(wù)器在解 量化該區(qū)塊之前輸出該第一子因數(shù)的逆至該第一乘法器,該第二多任務(wù)器輸出該第二子因 數(shù)的逆至該第一乘法器,該第一乘法器產(chǎn)生該量化位階并輸出產(chǎn)生的該量化位階至該解多 任務(wù)器,該解多任務(wù)器輸出該量化位階至該緩沖器,以將該量化位階存儲在該緩沖器中,該 第一多任務(wù)器輸出已變換系數(shù)至該第一乘法器,該第二多任務(wù)器輸出存儲的該量化位階至 該第一乘法器,該第一乘法器將該已變換系數(shù)乘以該量化位階,以產(chǎn)生已量化系數(shù),并將產(chǎn) 生的該已量化系數(shù)輸出至該解多任務(wù)器,該解多任務(wù)器輸出該已量化系數(shù)至后續(xù)硬件電 路。
23.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 連接該第一乘法器的本地存儲器,用以存儲該第二子因數(shù)的逆;連接該第一乘法器的緩沖器,用以獲取該宏區(qū)塊之后存儲產(chǎn)生的該量化位階;以及 連接該緩沖器的第二乘法器,用以將存儲的該量化位階乘以已變換系數(shù),以產(chǎn)生已量 化系數(shù),其中該第一子因數(shù)的逆是從外部存儲器獲取的。
24.如權(quán)利要求16所述的用于量化的電子裝置,其特征在于,該電子裝置進(jìn)一步包含 本地存儲器;緩沖器;第一多任務(wù)器,連接于該外部存儲器和該第一乘法器; 第二多任務(wù)器,連接于該本地存儲器、該緩沖器和該第一乘法器;以及 解多任務(wù)器,連接于該緩沖器和該第一乘法器,其中,該本地存儲器存儲該第二子因數(shù)的逆,該第一多任務(wù)器從該外部存儲器輸出該 第一子因數(shù)的逆至該第一乘法器,該第二多任務(wù)器輸出該第二子因數(shù)的逆至該第一乘法 器,該第一乘法器產(chǎn)生該量化位階并輸出產(chǎn)生的該量化位階至該解多任務(wù)器,該解多任務(wù) 器輸出該量化位階至該緩沖器,以將該量化位階存儲在該緩沖器中,該第一多任務(wù)器輸出 已變換系數(shù)至該第一乘法器,該第二多任務(wù)器輸出存儲的該量化位階至該第一乘法器,該 第一乘法器將該已變換系數(shù)乘以該量化位階,以產(chǎn)生已量化系數(shù),并輸出產(chǎn)生的該已量化 系數(shù)至該解多任務(wù)器,該解多任務(wù)器輸出該已量化系數(shù)至后續(xù)硬件電路。
全文摘要
一種用于視頻處理的方法、用于解量化的電子裝置和用于量化的電子裝置。其中用于解量化的電子裝置包含第一乘法器,通過將第一子因數(shù)乘以第二子因數(shù),以產(chǎn)生比特流的一個宏區(qū)塊的解量化位階,由此,采用產(chǎn)生的該解量化位階以解量化該宏區(qū)塊的一個區(qū)塊。本發(fā)明目的之一是減少量化及解量化所需要的存儲器大小與頻寬。
文檔編號H04N7/26GK101835039SQ20091014770
公開日2010年9月15日 申請日期2009年6月17日 優(yōu)先權(quán)日2009年3月9日
發(fā)明者李坤儐 申請人:聯(lián)發(fā)科技股份有限公司