本申請(qǐng)是申請(qǐng)日為2012年2月27日、申請(qǐng)?zhí)枮?012800124709、發(fā)明名稱為“圖像編碼設(shè)備和方法以及圖像解碼設(shè)備和方法”的申請(qǐng)的分案申請(qǐng)。
本發(fā)明涉及圖像編碼設(shè)備、圖像編碼方法及其程序和圖像解碼設(shè)備、圖像解碼方法及其程序。更特別地,本發(fā)明涉及針對(duì)圖像中的量化參數(shù)的預(yù)測(cè)編碼方法。
背景技術(shù):
作為用于壓縮并記錄運(yùn)動(dòng)圖像的方法,已知有h.264/mpeg-4avc(以下稱為h.264)(iso/iec14496-10;2004informationtechnology-codingofaudio-visualobjects-part10:advancedvideocoding)。h.264廣泛用于單段地上數(shù)字廣播。
h.264使得能夠通過使用mb_qp_delta代碼來以宏塊為單位(16×16個(gè)像素)改變量化參數(shù)。上述文獻(xiàn)所述的公式7-23將差值mb_qp_delta與緊前解碼的宏塊的量化參數(shù)qpyprev相加,以按宏塊為單位(16×16個(gè)像素)改變量化參數(shù)。
近年來,進(jìn)行高效率視頻編碼(hevc)的國際標(biāo)準(zhǔn)化的活動(dòng)已經(jīng)開始。(hevc是作為h.264的后續(xù)者的甚至更高效率的編碼方法)。隨著畫面大小的增大,該活動(dòng)考慮利用比傳統(tǒng)宏塊(16×16個(gè)像素)大的塊大小來進(jìn)行分割。根據(jù)jct-vc貢獻(xiàn)jctvc-a205.doc,將具有較大大小的基本塊稱為最大編碼樹塊(lctb)。該考慮假定64×64個(gè)像素的大小(jct-vc貢獻(xiàn)jctvc-a205.doc<http://wftp3.itu.int/av-arch/jctvc-site/2010_04_a_dresden/>)。lctb進(jìn)一步被分割成多個(gè)子塊、即經(jīng)過變換和量化的編碼樹塊(ctb)。作為分割方法,使用區(qū)域四叉樹結(jié)構(gòu)來將塊分割成四個(gè)子塊(垂直方向上為兩個(gè)且水平方向上為兩個(gè))。
圖2a示出區(qū)域四叉樹結(jié)構(gòu)。粗框10000表示基本塊,其中為了簡化說明,該基本塊由64×64個(gè)像素構(gòu)成。各子塊10001和10010由16×16個(gè)像素構(gòu)成。各子塊10002~10009由8×8個(gè)像素構(gòu)成。子塊以這種方式形成并且用于進(jìn)行變換和其它編碼處理。
利用hevc,以相同方式按基本塊為單位對(duì)h.264的宏塊進(jìn)行量化參數(shù)控制。然而,從圖像質(zhì)量的觀點(diǎn),實(shí)際上期望以子塊為單位進(jìn)行量化參數(shù)控制。在這種情況下,期望以子塊為單位通過量化參數(shù)控制來進(jìn)行較小單位的量化。
然而,即使可以進(jìn)行較小單位的量化,也基于區(qū)域四叉樹結(jié)構(gòu)來進(jìn)行處理。因此,無法高效地進(jìn)行以子塊為單位的并行處理,使得無法改善編碼和解碼的處理速度。具體地,參考圖2a,按順序依次處理子塊10001(16×16個(gè)像素)、子塊10002~10009(8×8個(gè)像素)和子塊10010(16×16個(gè)像素)。由于通過使用相對(duì)于前一子塊的量化參數(shù)的差值作為預(yù)測(cè)值來計(jì)算各子塊的量化參數(shù),因此需要對(duì)這些量化參數(shù)進(jìn)行順次處理,由此無法進(jìn)行以子塊為單位的高效并行處理。
此外,在針對(duì)各子塊嘗試量化參數(shù)最優(yōu)化的情況下,由于基于區(qū)域四叉樹結(jié)構(gòu)來進(jìn)行用于獲取量化參數(shù)差值的處理,因此差值將改變。例如,圖2b示出在各子塊的中央示出的量化參數(shù)值。圖2b的示例假定量化參數(shù)值從左上方向著右下方逐漸改變的情況。在通常的自然圖像中有可能發(fā)生該現(xiàn)象。由于子塊10001的量化參數(shù)為12并且子塊10002的量化參數(shù)為14,因此子塊10002與子塊10001的差值為+2。后續(xù)的差值為+4、-6、+6、-6、+-0、+2、+4和+2。這樣根據(jù)區(qū)域四叉樹結(jié)構(gòu)獲取差值會(huì)導(dǎo)致這些差值隨機(jī)波動(dòng),這造成所產(chǎn)生的代碼大的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明涉及使得能夠并行地進(jìn)行針對(duì)各子塊的編碼和解碼,以不僅實(shí)現(xiàn)高速處理、還實(shí)現(xiàn)高效率的量化參數(shù)的編碼和解碼。
根據(jù)本發(fā)明的方面,一種圖像編碼設(shè)備,包括:分割部件,用于將輸入圖像分割成經(jīng)過量化控制的多個(gè)子塊;子塊量化參數(shù)計(jì)算部件,用于計(jì)算所述多個(gè)子塊中的各子塊的量化參數(shù);基本塊量化參數(shù)計(jì)算部件,用于設(shè)置包括至少兩個(gè)子塊的基本塊,并且計(jì)算所述基本塊的量化參數(shù);差值計(jì)算部件,用于計(jì)算所述基本塊的量化參數(shù)和所述基本塊內(nèi)所包括的各子塊的量化參數(shù)之間的差值;以及差值編碼部件,用于對(duì)所述差值進(jìn)行編碼。
根據(jù)本發(fā)明的典型實(shí)施例,可以基于基本塊的量化參數(shù)來以子塊為單位獨(dú)立對(duì)各子塊的量化參數(shù)進(jìn)行編碼和解碼,從而便于進(jìn)行以子塊為單位的并行處理。此外,抑制預(yù)測(cè)誤差使得能夠進(jìn)行高效率的量化參數(shù)的編碼和解碼。
通過以下參考附圖對(duì)典型實(shí)施例的詳細(xì)說明,本發(fā)明的其它特征和方面將變得明顯。
附圖說明
包含在說明書中并構(gòu)成說明書一部分的附圖示出了本發(fā)明的典型實(shí)施例、特征和方面,并和說明書一起用來解釋本發(fā)明的原理。
圖1是示出根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備的結(jié)構(gòu)的框圖。
圖2a示出塊分割的示例。
圖2b示出塊分割的示例。
圖3是示出根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備中的量化參數(shù)編碼單元的詳細(xì)框圖。
圖4是示出根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。
圖5a示出編碼時(shí)的并行處理。
圖5b示出編碼時(shí)的并行處理。
圖6是示出根據(jù)本發(fā)明的第二典型實(shí)施例的圖像解碼設(shè)備的結(jié)構(gòu)的框圖。
圖7是示出根據(jù)本發(fā)明的第二典型實(shí)施例的量化參數(shù)解碼單元的詳細(xì)框圖。
圖8是示出根據(jù)本發(fā)明的第二典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理的流程圖。
圖9a示出解碼時(shí)的并行處理。
圖9b示出解碼時(shí)的并行處理。
圖10是示出根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備的結(jié)構(gòu)的框圖。
圖11是示出根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備中的量化參數(shù)編碼單元的詳細(xì)框圖。
圖12是示出根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。
圖13是示出根據(jù)本發(fā)明的第四典型實(shí)施例的圖像解碼設(shè)備的結(jié)構(gòu)的框圖。
圖14是示出根據(jù)本發(fā)明的第四典型實(shí)施例的圖像解碼設(shè)備中的量化參數(shù)解碼單元的詳細(xì)框圖。
圖15是示出根據(jù)本發(fā)明的第四典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理的流程圖。
圖16是示出根據(jù)本發(fā)明的第五典型實(shí)施例的圖像編碼設(shè)備中的量化參數(shù)編碼單元的詳細(xì)框圖。
圖17是示出根據(jù)本發(fā)明的第五典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。
圖18是示出根據(jù)本發(fā)明的第六典型實(shí)施例的圖像解碼設(shè)備中的量化參數(shù)解碼單元的詳細(xì)框圖。
圖19是示出根據(jù)本發(fā)明的第六典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理的流程圖。
圖20是示出可應(yīng)用于根據(jù)本發(fā)明的典型實(shí)施例的圖像編碼設(shè)備和圖像解碼設(shè)備的計(jì)算機(jī)的硬件結(jié)構(gòu)示例的框圖。
具體實(shí)施方式
以下將參考附圖來詳細(xì)說明本發(fā)明的各種典型實(shí)施例、特征和方面。
圖1是示出根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備的框圖。參考圖1,該圖像編碼設(shè)備從端子1000輸入圖像數(shù)據(jù)。
塊分割單元1001將輸入圖像分割成多個(gè)基本塊、即從輸入圖像多次切出基本塊,并且根據(jù)需要進(jìn)一步將各基本塊分割成多個(gè)子塊。圖像編碼設(shè)備以子塊為單位進(jìn)行量化控制。盡管為了簡化說明、假定輸入圖像具有8位的像素值,但像素值不限于此?;緣K的大小為64×64個(gè)像素,并且子塊的最小大小為8×8個(gè)像素。在這種情況下,基本塊包括四個(gè)子塊。盡管以下將基于用于將塊分割成四個(gè)子塊(垂直方向上為兩個(gè)且水平方向上為兩個(gè))的方法來說明塊分割,但塊的形狀和大小不限于此?;緣K需要包括至少兩個(gè)子塊。子塊分割不限于任何特定方法。例如,整個(gè)圖像可以在邊緣量計(jì)算和聚類之后分割成多個(gè)子塊。具體地,在邊緣多的部分處設(shè)置小的子塊,并且在平坦部分處設(shè)置大的子塊。量化參數(shù)確定單元1002確定各基本塊的量化參數(shù)和各子塊的量化參數(shù)。
塊預(yù)測(cè)單元1003以塊分割單元1001所形成的子塊為單位進(jìn)行預(yù)測(cè)以計(jì)算各子塊的預(yù)測(cè)誤差。塊預(yù)測(cè)單元1003對(duì)靜止圖像和運(yùn)動(dòng)圖像的內(nèi)幀應(yīng)用幀內(nèi)預(yù)測(cè),并且還對(duì)運(yùn)動(dòng)圖像應(yīng)用運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)。塊變換單元1004對(duì)各子塊的預(yù)測(cè)誤差應(yīng)用正交變換以計(jì)算正交變換系數(shù)。正交變換不限于任何特定方法,并且可以基于離散余弦變換和hadamard(阿達(dá)瑪)變換。塊量化單元1005基于量化參數(shù)確定單元1002所確定的各子塊的量化參數(shù)來對(duì)上述的正交變換系數(shù)進(jìn)行量化。該量化使得能夠獲得量化系數(shù)。塊編碼單元1006對(duì)這樣獲取到的各子塊的量化系數(shù)應(yīng)用可變長度編碼以生成量化系數(shù)代碼數(shù)據(jù)。編碼不限于任何特定方法,并且可以基于霍夫曼代碼或算術(shù)代碼。塊再現(xiàn)圖像生成單元1007通過進(jìn)行塊量化單元1005和塊變換單元1004的逆操作來再現(xiàn)預(yù)測(cè)誤差,以基于塊預(yù)測(cè)單元1003的處理結(jié)果來生成基本塊的解碼圖像。所再現(xiàn)的圖像數(shù)據(jù)被存儲(chǔ)并且用于進(jìn)行塊預(yù)測(cè)單元1003的預(yù)測(cè)。
量化參數(shù)編碼單元1008對(duì)量化參數(shù)確定單元1002所確定的基本塊的量化參數(shù)和各子塊的量化參數(shù)進(jìn)行編碼以生成量化參數(shù)代碼數(shù)據(jù)。
合并編碼單元1009生成頭信息和與預(yù)測(cè)有關(guān)的代碼,并且將量化參數(shù)編碼單元1008所生成的量化參數(shù)代碼數(shù)據(jù)和塊編碼單元1006所生成的量化系數(shù)代碼數(shù)據(jù)合并。合并編碼單元1009將所生成的位流經(jīng)由端子1010輸出至外部。
以下將說明根據(jù)本典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理。在本典型實(shí)施例中,盡管運(yùn)動(dòng)圖像數(shù)據(jù)是以幀為單位輸入的,但也可以輸入一幀的靜止圖像數(shù)據(jù)。
塊分割單元1001從端子1000輸入一幀的圖像數(shù)據(jù),并且將該圖像數(shù)據(jù)分割成各自由64×64個(gè)像素構(gòu)成的多個(gè)基本塊。根據(jù)需要,塊分割單元1001進(jìn)一步將各基本塊分割成各自由至少8×8個(gè)像素構(gòu)成的多個(gè)子塊。量化參數(shù)確定單元1002和塊預(yù)測(cè)單元1003輸入與分割成子塊有關(guān)的信息以及分割后的圖像數(shù)據(jù)。
塊預(yù)測(cè)單元1003參考存儲(chǔ)在塊再現(xiàn)圖像生成單元1007中的再現(xiàn)圖像來進(jìn)行預(yù)測(cè),生成預(yù)測(cè)誤差,并且將所生成的預(yù)測(cè)誤差輸出至塊變換單元1004和塊再現(xiàn)圖像生成單元1007。塊變換單元1004對(duì)所輸入的預(yù)測(cè)誤差進(jìn)行正交變換,計(jì)算正交變換系數(shù),并且將所計(jì)算出的正交變換系數(shù)輸出至塊量化單元1005。
考慮到各子塊中發(fā)生的輸入代碼量,量化參數(shù)確定單元1002以子塊為單位基于圖像質(zhì)量和代碼量之間的平衡來確定最佳量化參數(shù)。例如,可以使用日本特開平4-323961所論述的技術(shù)。量化參數(shù)確定單元1002將所確定的各子塊的量化參數(shù)輸出至塊量化單元1005、塊再現(xiàn)圖像生成單元1007和量化參數(shù)編碼單元1008。
塊量化單元1005基于量化參數(shù)確定單元1002所確定的各量化參數(shù)來對(duì)(從塊變換單元1004輸入的)正交變換系數(shù)進(jìn)行量化以生成量化系數(shù)。塊量化單元1005將所生成量化系數(shù)輸出至塊編碼單元1006和塊再現(xiàn)圖像生成單元1007。塊再現(xiàn)圖像生成單元1007輸入該量化系數(shù),并且基于量化參數(shù)確定單元1002所確定的各量化參數(shù)來再現(xiàn)正交變換系數(shù)。塊再現(xiàn)圖像生成單元1007對(duì)所再現(xiàn)的正交變換系數(shù)應(yīng)用逆正交變換以再現(xiàn)預(yù)測(cè)誤差,基于所再現(xiàn)的預(yù)測(cè)誤差和預(yù)測(cè)時(shí)所參考的像素值來生成再現(xiàn)圖像,并且存儲(chǔ)該再現(xiàn)圖像。塊編碼單元1006對(duì)該量化系數(shù)進(jìn)行編碼以生成量化系數(shù)代碼數(shù)據(jù),并且將所生成的量化系數(shù)代碼數(shù)據(jù)輸出至合并編碼單元1009。
量化參數(shù)編碼單元1008以基本塊為單位對(duì)量化參數(shù)確定單元1002所確定的量化參數(shù)進(jìn)行編碼。
圖3是示出量化參數(shù)編碼單元1008的詳細(xì)框圖。參考圖3,量化參數(shù)編碼單元1008經(jīng)由端子1從圖1中的量化參數(shù)確定單元1002輸入各子塊的量化參數(shù)。量化參數(shù)存儲(chǔ)單元2一次存儲(chǔ)所輸入的子塊的量化參數(shù)?;緣K量化參數(shù)確定單元3基于量化參數(shù)存儲(chǔ)單元2中所存儲(chǔ)的各子塊的量化參數(shù)來確定基本塊的量化參數(shù)?;緣K量化參數(shù)編碼單元4對(duì)該基本塊的量化參數(shù)進(jìn)行編碼以生成基本塊量化參數(shù)代碼?;緣K量化參數(shù)編碼單元4將所生成的基本塊量化參數(shù)代碼經(jīng)由端子5輸出至圖1中的合并編碼單元1009。子塊量化參數(shù)差單元6獲取基本塊的量化參數(shù)和各子塊的量化參數(shù)之間的差。子塊量化參數(shù)編碼單元7對(duì)該差進(jìn)行編碼以生成子塊量化參數(shù)差值代碼。子塊量化參數(shù)編碼單元7將所生成的子塊量化參數(shù)差值代碼經(jīng)由端子8輸出至圖1中的合并編碼單元1009。
利用上述結(jié)構(gòu),量化參數(shù)存儲(chǔ)單元2以基本塊為單位存儲(chǔ)從端子1輸入的子塊的量化參數(shù)。在將所有的子塊的量化參數(shù)存儲(chǔ)在量化參數(shù)存儲(chǔ)單元2中的情況下,基本塊量化參數(shù)確定單元3計(jì)算基本塊量化參數(shù)。利用本典型實(shí)施例,基本塊量化參數(shù)確定單元3計(jì)算子塊量化參數(shù)的平均值。參考圖2b,平均值為14.6。在以整數(shù)為單位進(jìn)行量化參數(shù)編碼的情況下,基本塊量化參數(shù)確定單元3對(duì)平均值14.6進(jìn)行四舍五入,因此將基本塊量化參數(shù)設(shè)置為15。基本塊量化參數(shù)確定單元3將所確定的基本塊量化參數(shù)輸出至基本塊量化參數(shù)編碼單元4和子塊量化參數(shù)差單元6。基本塊量化參數(shù)編碼單元4通過golomb(哥倫布)編碼對(duì)所輸入的基本塊量化參數(shù)進(jìn)行編碼以生成基本塊量化參數(shù)代碼,并且將所生成的基本塊量化參數(shù)代碼經(jīng)由端子5輸出至外部。
子塊量化參數(shù)差單元6計(jì)算各子塊量化參數(shù)和基本塊量化參數(shù)之間的差。參考圖2b,差值按區(qū)域四叉樹結(jié)構(gòu)的順序依次為-3、-1、+3、-3、+3、-3、-3、-1、-1和+5。子塊量化參數(shù)差單元6將這些差值輸出至子塊量化參數(shù)編碼單元7。子塊量化參數(shù)編碼單元7將這些差值連同變化的有無一起進(jìn)行編碼。第一子塊10001的量化參數(shù)不同于基本塊量化參數(shù)或15。子塊量化參數(shù)編碼單元7通過golomb編碼對(duì)表示變化的1位值“1”和差值“-3”進(jìn)行編碼,并且將由此產(chǎn)生的代碼經(jīng)由端子8輸出至外部作為子塊量化參數(shù)差值編碼數(shù)據(jù)。隨后,子塊量化參數(shù)編碼單元7對(duì)第二子塊10002的子塊量化參數(shù)差值進(jìn)行編碼。由于該差值不同于基本塊量化參數(shù),因此子塊量化參數(shù)編碼單元7將包括表示變化的1位值“1”和子塊量化參數(shù)差值“-1”的golomb代碼經(jīng)由端子8輸出至外部。隨后,以與上述相同的方式,子塊量化參數(shù)編碼單元7對(duì)表示變化的1位值“1”和子塊量化參數(shù)差值進(jìn)行編碼以生成子塊量化參數(shù)差值編碼數(shù)據(jù)。
返回參考圖1,合并編碼單元1009生成圖像序列、幀頭和其它代碼。針對(duì)各基本塊,合并編碼單元1009從塊預(yù)測(cè)單元1003獲取諸如預(yù)測(cè)模式等的信息并且對(duì)該信息進(jìn)行編碼。然后,合并編碼單元1009從量化參數(shù)編碼單元1008輸入基本塊量化參數(shù)代碼。隨后,合并編碼單元1009針對(duì)各子塊合并子塊量化參數(shù)差值編碼數(shù)據(jù)和量化系數(shù)代碼數(shù)據(jù),并且將該合成數(shù)據(jù)作為位流經(jīng)由端子1010輸出至外部。
圖4是示出根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。在步驟s001中,合并編碼單元1009生成序列、幀頭和其它代碼,并且將所生成的代碼經(jīng)由端子1010輸出至外部。
在步驟s002中,塊分割單元1001針對(duì)輸入圖像從其左上角開始順次切出各基本塊。
在步驟s003中,塊分割單元1001進(jìn)一步將各基本塊分割成多個(gè)子塊。
在步驟s004中,量化參數(shù)確定單元1002確定子塊的量化參數(shù)。在步驟s005中,圖像編碼設(shè)備基于步驟s004中所確定的子塊的量化參數(shù)來確定基本塊的量化參數(shù)。為了簡化說明,根據(jù)本典型實(shí)施例的圖像編碼設(shè)備計(jì)算基本塊內(nèi)的子塊的量化參數(shù)的平均值作為基本塊的量化參數(shù)。
在步驟s006中,圖像編碼設(shè)備通過golomb編碼對(duì)(步驟s005中所確定的)基本塊的量化參數(shù)進(jìn)行編碼,并且輸出由此得到的代碼作為基本塊量化參數(shù)代碼。
在步驟s007中,圖像編碼設(shè)備以子塊為單位對(duì)子塊的量化參數(shù)進(jìn)行編碼。在按區(qū)域四叉樹結(jié)構(gòu)的順序使用與基本塊量化參數(shù)相同的量化參數(shù)的情況下,圖像編碼設(shè)備輸出1位代碼“0”。在使用不同的量化參數(shù)的情況下,圖像編碼設(shè)備輸出1位代碼“1”以及各子塊量化參數(shù)和基本塊量化參數(shù)之間的差。
在步驟s008中,圖像編碼設(shè)備對(duì)子塊圖像數(shù)據(jù)進(jìn)行預(yù)測(cè)以獲得預(yù)測(cè)誤差,對(duì)該預(yù)測(cè)誤差應(yīng)用正交變換和量化,對(duì)所獲得的量化系數(shù)進(jìn)行編碼,并且輸出量化系數(shù)代碼數(shù)據(jù)。
在步驟s009中,圖像編碼設(shè)備對(duì)所獲得的量化系數(shù)應(yīng)用逆量化和逆變換以計(jì)算預(yù)測(cè)誤差。圖像編碼設(shè)備基于該預(yù)測(cè)誤差和從再現(xiàn)圖像獲得的預(yù)測(cè)值來生成相關(guān)子塊的再現(xiàn)圖像。
在步驟s010中,圖像編碼設(shè)備判斷針對(duì)基本塊內(nèi)的所有子塊是否完成了編碼處理。在針對(duì)所有子塊完成了編碼處理的情況下(步驟s010中為“是”),該處理進(jìn)入步驟s011。相反,在針對(duì)所有子塊沒有完成編碼處理的情況下(步驟s010中為“否”),該處理返回至步驟s007以處理下一子塊。
在步驟s011中,圖像編碼設(shè)備判斷針對(duì)所有基本塊是否完成了編碼處理。在針對(duì)所有基本塊完成了編碼處理的情況下(步驟s011中為“是”),該處理結(jié)束。相反,在針對(duì)所有基本塊沒有完成編碼處理的情況下(步驟s011中為“否”),該處理返回至步驟s002以處理下一基本塊。
特別是在步驟s005~s009中,上述結(jié)構(gòu)和操作使得能夠通過使用基本塊的量化參數(shù)來對(duì)各子塊量化參數(shù)差值進(jìn)行編碼,由此抑制所生成的代碼量。
在本典型實(shí)施例中,盡管原樣使用子塊的量化參數(shù)的平均值作為基本塊的量化參數(shù),但基本塊的量化參數(shù)不限于此,并且可以是最接近平均值的實(shí)際子塊量化參數(shù)值。例如,盡管在圖2b的示例中平均值為14.6,但代替通過對(duì)該平均值進(jìn)行四舍五入所獲得的值,可以使用最接近該平均值的實(shí)際子塊量化參數(shù)值、即14。這樣獲取子塊量化參數(shù)使得能夠?qū)⒈硎咀兓拇a設(shè)置為“0”,從而減少要發(fā)送的子塊量化參數(shù)差值的數(shù)量。
上述結(jié)構(gòu)還使得能夠高效地并行進(jìn)行預(yù)測(cè)、量化、變換和編碼,從而實(shí)現(xiàn)高速處理。
圖5a和5b示出用于對(duì)圖2a所示的基本塊10000內(nèi)的子塊10001~10005應(yīng)用量化、變換和編碼處理的示例并行處理。在這種情況下,為了簡化說明,假定使用三個(gè)處理器來進(jìn)行編碼處理。處理器a~c計(jì)算各子塊的量化參數(shù)(qp),計(jì)算并編碼各子塊量化參數(shù)差值(δqp),對(duì)預(yù)測(cè)誤差應(yīng)用正交變換和量化,并且對(duì)量化系數(shù)進(jìn)行編碼。在這種情況下,利用另一處理器合并這些代碼。
圖5a示出傳統(tǒng)的并行處理的示例。首先,圖像編碼設(shè)備將子塊10001的處理分配至處理器a,將子塊10002的處理分配至處理器b,并且將子塊10003的處理分配至處理器c。qp計(jì)算所用的處理時(shí)間依賴于塊大小和圖像復(fù)雜度。存在如下趨勢(shì):針對(duì)塊大小較大的子塊10001的量化參數(shù)計(jì)算與針對(duì)子塊10002和10003的量化參數(shù)計(jì)算相比需要更長時(shí)間。
在量化參數(shù)計(jì)算之后,圖像編碼設(shè)備計(jì)算量化參數(shù)差值。需要完成針對(duì)子塊10001的子塊量化參數(shù)計(jì)算以開始針對(duì)子塊10002的子塊量化參數(shù)差值計(jì)算。這意味著處理器b進(jìn)行等待,直到處理器a完成針對(duì)子塊10001的子塊量化參數(shù)計(jì)算為止。在與計(jì)算子塊10003的量化參數(shù)相比、計(jì)算子塊10002的量化參數(shù)需要更長時(shí)間的情況下,需要完成針對(duì)子塊10002的子塊量化參數(shù)計(jì)算以開始針對(duì)子塊10003的子塊量化參數(shù)差值計(jì)算。處理器c進(jìn)行等待,直到處理器b完成針對(duì)子塊10002的子塊量化參數(shù)計(jì)算為止。
圖5b示出根據(jù)本典型實(shí)施例的并行處理的示例。與傳統(tǒng)情況相同,圖像編碼設(shè)備將子塊10001的處理分配至處理器a,將子塊10002的處理分配至處理器b,并且將子塊10003的處理分配至處理器c。在子塊量化參數(shù)計(jì)算之后,圖像編碼設(shè)備計(jì)算子塊量化參數(shù)差值。由于完成了基本塊量化參數(shù)計(jì)算,因此針對(duì)子塊10002的子塊量化參數(shù)差值計(jì)算可以緊挨在子塊量化參數(shù)的計(jì)算之后開始。因而,本發(fā)明實(shí)現(xiàn)了高效的并行處理。特別地,在存在具有多個(gè)大小的子塊的情況下,本發(fā)明提供了縮短處理間隔的顯著效果。
在本典型實(shí)施例中,盡管對(duì)基本塊量化參數(shù)值本身進(jìn)行編碼,但可以通過使用先前處理的基本塊量化參數(shù)來進(jìn)行預(yù)測(cè)。
在本典型實(shí)施例中,盡管基本塊由64×64個(gè)像素構(gòu)成、并且子塊由8×8個(gè)像素構(gòu)成,但像素結(jié)構(gòu)不限于此。例如,基本塊的塊大小可以改變?yōu)?28×128個(gè)像素?;緣K和子塊的形狀不限于正方形,并且可以是諸如8×4個(gè)像素等的矩形。本發(fā)明的本質(zhì)保持不變。
在本典型實(shí)施例中,盡管將子塊量化參數(shù)的平均值視為基本塊量化參數(shù),但基本塊量化參數(shù)不限于此。例如,當(dāng)然以下是可能的:基本塊量化參數(shù)可以是子塊量化參數(shù)的中間值或頻率最高的子塊量化參數(shù)值。當(dāng)然可以這樣準(zhǔn)備多個(gè)計(jì)算方法,并且選擇最高效的基本塊量化參數(shù)。
盡管在子塊量化參數(shù)差值編碼數(shù)據(jù)中設(shè)置了表示變化的1位代碼,但該處理不限于此。當(dāng)然,甚至在不存在變化的情況下也可以對(duì)子塊量化參數(shù)差值進(jìn)行編碼。
在本典型實(shí)施例中,盡管使用golomb編碼來對(duì)基本塊量化參數(shù)、子塊量化參數(shù)差值和量化系數(shù)進(jìn)行編碼,但該處理不限于此。例如,當(dāng)然可以使用霍夫曼編碼和其它算術(shù)編碼方法,并且將上述值在未經(jīng)編碼的情況下原樣輸出。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了本典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
以下將基于用于對(duì)通過使用根據(jù)本發(fā)明第一典型實(shí)施例的編碼方法編碼后的代碼數(shù)據(jù)進(jìn)行解碼的圖像解碼方法來說明本發(fā)明的第二典型實(shí)施例。圖6是示出根據(jù)本發(fā)明的第二典型實(shí)施例的圖像解碼設(shè)備的結(jié)構(gòu)的框圖。
圖像解碼設(shè)備從端子1100輸入編碼位流。解碼分離單元1101對(duì)位流的頭信息進(jìn)行解碼,將所需代碼從該位流分離,并且將分離出的代碼輸出至后級(jí)。解碼分離單元1101進(jìn)行圖1中的合并編碼單元1009的逆操作。量化參數(shù)解碼單元1102對(duì)量化參數(shù)編碼數(shù)據(jù)進(jìn)行解碼。塊解碼單元1103對(duì)各子塊量化系數(shù)代碼進(jìn)行解碼以再現(xiàn)量化系數(shù)。塊逆量化單元1104基于量化參數(shù)解碼單元1102所再現(xiàn)的子塊量化參數(shù)來對(duì)該量化系數(shù)應(yīng)用逆量化,以再現(xiàn)正交變換系數(shù)。塊逆變換單元1105進(jìn)行圖1中的塊變換單元1004的逆正交變換以再現(xiàn)預(yù)測(cè)誤差。塊再現(xiàn)單元1106基于該預(yù)測(cè)誤差和解碼后的圖像數(shù)據(jù)來再現(xiàn)子塊圖像數(shù)據(jù)。塊合成單元1107將所再現(xiàn)的子塊圖像數(shù)據(jù)配置在各位置處以再現(xiàn)基本塊圖像數(shù)據(jù)。
以下將說明根據(jù)本典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理。在第二典型實(shí)施例中,盡管根據(jù)第一典型實(shí)施例的圖像編碼設(shè)備所生成的運(yùn)動(dòng)圖像位流是以幀為單位輸入的,但可以輸入一幀的靜止圖像位流。
參考圖6,解碼分離單元1101從端子1100輸入一幀的流數(shù)據(jù),并且對(duì)再現(xiàn)圖像所需的頭信息進(jìn)行解碼。隨后,解碼分離單元1101將基本塊量化參數(shù)代碼輸出至量化參數(shù)解碼單元1102。隨后,解碼分離單元1101還將子塊量化參數(shù)差值代碼輸入至量化參數(shù)解碼單元1102。
圖7是示出量化參數(shù)解碼單元1102的詳細(xì)框圖。量化參數(shù)解碼單元1102經(jīng)由端子101從圖6中的解碼分離單元1101輸入基本塊量化參數(shù)代碼。量化參數(shù)解碼單元1102還經(jīng)由端子102從圖6中的解碼分離單元1101輸入子塊量化參數(shù)差編碼數(shù)據(jù)。基本塊量化參數(shù)解碼單元103輸入基本塊量化參數(shù)代碼,并且對(duì)該基本塊量化參數(shù)代碼進(jìn)行解碼以再現(xiàn)基本塊量化參數(shù)。子塊量化參數(shù)解碼單元104對(duì)子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)各子塊量化參數(shù)差值。子塊量化參數(shù)相加單元105將所再現(xiàn)的基本塊量化參數(shù)和各子塊量化參數(shù)差值相加以再現(xiàn)各子塊量化參數(shù)。子塊量化參數(shù)相加單元105將所再現(xiàn)的各子塊量化參數(shù)經(jīng)由端子106輸出至圖6中的塊逆量化單元1104。
基本塊量化參數(shù)解碼單元103從端子101輸入基本塊量化參數(shù)代碼,通過使用golomb代碼對(duì)該基本塊量化參數(shù)代碼進(jìn)行解碼以再現(xiàn)基本塊量化參數(shù),并且存儲(chǔ)由此得到的代碼。
子塊量化參數(shù)解碼單元104從端子102輸入子塊量化參數(shù)差值編碼數(shù)據(jù),并且通過使用golomb代碼對(duì)該子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。具體地,子塊量化參數(shù)解碼單元104針對(duì)基本塊量化參數(shù)來對(duì)表示變化的有無的1位代碼進(jìn)行解碼。在不存在變化的情況下,子塊量化參數(shù)解碼單元104將零作為子塊量化參數(shù)差值輸出至子塊量化參數(shù)相加單元105。在存在變化的情況下,子塊量化參數(shù)解碼單元104隨后對(duì)子塊量化參數(shù)差值進(jìn)行解碼,并且將由此得到的值輸出至子塊量化參數(shù)相加單元105。子塊量化參數(shù)相加單元105將子塊量化參數(shù)差值與所再現(xiàn)的基本塊量化參數(shù)相加以再現(xiàn)子塊量化參數(shù),并且將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106輸出至外部。
返回參考圖6,塊解碼單元1103輸入解碼分離單元1101從位流分離出的子塊量化系數(shù)代碼數(shù)據(jù),通過使用golomb代碼對(duì)所輸入的子塊量化系數(shù)代碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)各子塊量化系數(shù),并且將所再現(xiàn)的子塊量化系數(shù)輸出至塊逆量化單元1104。塊逆量化單元1104對(duì)所輸入的子塊量化系數(shù)和子塊量化參數(shù)應(yīng)用逆量化以再現(xiàn)正交變換系數(shù),并且將所再現(xiàn)的正交變換系數(shù)輸出至塊逆變換單元1105。塊逆變換單元1105對(duì)所再現(xiàn)的正交變換系數(shù)進(jìn)行逆變換以再現(xiàn)預(yù)測(cè)誤差,并且將所再現(xiàn)的預(yù)測(cè)誤差輸出至塊再現(xiàn)單元1106。塊再現(xiàn)單元1106輸入所再現(xiàn)的預(yù)測(cè)誤差,基于周圍的解碼像素?cái)?shù)據(jù)或前一幀的像素?cái)?shù)據(jù)進(jìn)行預(yù)測(cè)以再現(xiàn)子塊圖像數(shù)據(jù),并且將所再現(xiàn)的子塊圖像數(shù)據(jù)輸出至塊合成單元1107。塊合成單元1107將所再現(xiàn)的子塊圖像數(shù)據(jù)配置于各位置處以再現(xiàn)基本塊圖像數(shù)據(jù),并且將所再現(xiàn)的基本塊圖像數(shù)據(jù)經(jīng)由端子1108輸出至外部。塊合成單元1107還將所再現(xiàn)的基本塊圖像數(shù)據(jù)輸出至塊再現(xiàn)單元1106以進(jìn)行預(yù)測(cè)值計(jì)算。
圖8是示出根據(jù)本發(fā)明的第二典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理的流程圖。在步驟s101中,解碼分離單元1101對(duì)頭信息進(jìn)行解碼。
在步驟s102中,基本塊量化參數(shù)解碼單元103對(duì)基本塊量化參數(shù)代碼進(jìn)行解碼以再現(xiàn)基本塊量化參數(shù)。
在步驟s103中,子塊量化參數(shù)解碼單元104對(duì)子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。子塊量化參數(shù)相加單元105將基本塊量化參數(shù)與子塊量化參數(shù)差值相加以再現(xiàn)子塊量化參數(shù)。
在步驟s104中,圖像解碼設(shè)備對(duì)子塊量化系數(shù)代碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)量化系數(shù),并且對(duì)解碼后的子塊量化系數(shù)代碼數(shù)據(jù)應(yīng)用逆量化和逆正交變換以再現(xiàn)預(yù)測(cè)誤差。圖像解碼設(shè)備進(jìn)一步基于周圍的解碼像素?cái)?shù)據(jù)或前一幀的像素?cái)?shù)據(jù)進(jìn)行預(yù)測(cè)以再現(xiàn)子塊解碼圖像。
在步驟s105中,圖像解碼設(shè)備將子塊解碼圖像配置到基本塊解碼圖像。在步驟s106中,圖像解碼設(shè)備判斷針對(duì)相關(guān)的基本塊內(nèi)的所有子塊是否完成了解碼處理。在針對(duì)所有子塊完成了解碼處理的情況下(步驟s106中為“是”),該處理進(jìn)入步驟s107。在針對(duì)所有子塊沒有完成解碼處理的情況下(步驟s106中為“否”),該處理返回至步驟s103以處理下一子塊。
在步驟s107中,圖像解碼設(shè)備將基本塊解碼圖像配置到幀解碼圖像。在步驟s108中,圖像解碼設(shè)備判斷針對(duì)所有基本塊是否完成了解碼處理。在針對(duì)所有基本塊完成了解碼處理的情況下(步驟s108中為“是”),圖像解碼設(shè)備停止所有操作以終止處理。在針對(duì)所有基本塊沒有完成解碼處理的情況下(步驟s108中為“否”),該處理返回至步驟s102以處理下一基本塊。
上述結(jié)構(gòu)和操作使得能夠?qū)Φ谝坏湫蛯?shí)施例中生成的代碼量減少的位流進(jìn)行解碼,以獲得再現(xiàn)圖像。
在通過使用分隔符對(duì)各子塊進(jìn)行代碼識(shí)別的情況下,可以有效地并行進(jìn)行不同的操作,即再現(xiàn)子塊量化參數(shù)、對(duì)所再現(xiàn)的子塊應(yīng)用逆量化和逆變換并且再現(xiàn)圖像數(shù)據(jù),由此實(shí)現(xiàn)高速解碼。
圖9a和9b示出用于對(duì)圖2a所示的基本塊10000內(nèi)的子塊10001~10006應(yīng)用解碼、逆變換和逆變換處理以再現(xiàn)預(yù)測(cè)誤差的并行處理的示例。與根據(jù)本發(fā)明的第一典型實(shí)施例的圖5a和5b相同,為了簡化說明,假定使用三個(gè)處理器。在該示例中,三個(gè)處理器對(duì)各子塊量化參數(shù)差值(δqp)進(jìn)行解碼以再現(xiàn)量化參數(shù)(qp),對(duì)量化系數(shù)進(jìn)行解碼,并且對(duì)該量化系數(shù)應(yīng)用逆量化和逆正交變換。在這種情況下,另一處理器對(duì)這些代碼進(jìn)行分離。
圖9a示出傳統(tǒng)的并行處理的示例。首先,圖像解碼設(shè)備將子塊10001的處理分配至處理器a,將子塊10002的處理分配至處理器b,并且將子塊10003的處理分配至處理器c。由于處理器a作為開頭的處理器,因此該處理器a對(duì)子塊量化參數(shù)本身進(jìn)行解碼。處理器b和c對(duì)各子塊量化參數(shù)差值進(jìn)行解碼,然后再現(xiàn)子塊量化參數(shù)。上述處理通過將變?yōu)樽訅K量化參數(shù)預(yù)測(cè)值之前的子塊的子塊量化參數(shù)和子塊量化參數(shù)差值相加來實(shí)現(xiàn)。
需要完成子塊10001的量化參數(shù)的解碼以開始針對(duì)子塊10002的子塊量化參數(shù)再現(xiàn)。這意味著處理器b進(jìn)行等待,直到處理器a完成針對(duì)子塊10001的量化參數(shù)再現(xiàn)為止。
這同樣適用于針對(duì)子塊10002的量化參數(shù)再現(xiàn)。處理器c進(jìn)行等待,直到處理器b完成針對(duì)子塊10002的量化參數(shù)再現(xiàn)為止。隨后,完成了處理的各處理器按區(qū)域四叉樹結(jié)構(gòu)的順序、即按子塊10004、子塊10005和子塊10006的順序?qū)@些子塊進(jìn)行處理。需要完成針對(duì)子塊10005的量化參數(shù)再現(xiàn)以開始針對(duì)子塊10006的子塊量化參數(shù)再現(xiàn)。這意味著處理器c進(jìn)行等待,直到處理器a完成針對(duì)子塊10005的量化參數(shù)再現(xiàn)為止。
圖9b示出根據(jù)本典型實(shí)施例的并行處理的示例。首先,處理器a對(duì)基本塊量化參數(shù)進(jìn)行解碼并存儲(chǔ)。隨后,與傳統(tǒng)情況相同,圖像解碼設(shè)備將子塊10001的處理分配至處理器a,將子塊10002的處理分配至處理器b,并且將子塊10003的處理分配至處理器c。在對(duì)子塊量化參數(shù)差值進(jìn)行解碼之后,圖像解碼設(shè)備再現(xiàn)子塊量化參數(shù)。由于再現(xiàn)了基本塊量化參數(shù),因此針對(duì)子塊10002的量化參數(shù)再現(xiàn)可以緊挨在子塊量化參數(shù)差值的解碼之后開始。本發(fā)明實(shí)現(xiàn)了高效的并行處理。特別地,在存在具有多個(gè)大小的子塊的情況下,本發(fā)明提供了與縮短處理間隔有關(guān)的顯著效果。
假定通過使用用于從圖像數(shù)據(jù)切出一部分的編輯應(yīng)用來僅切出圖2a中的子塊10008的情況。利用傳統(tǒng)情況,需要對(duì)子塊10001~10007進(jìn)行解碼。根據(jù)本發(fā)明,僅對(duì)子塊10001和10006進(jìn)行解碼使得能夠進(jìn)行包括幀內(nèi)預(yù)測(cè)的所需解碼處理。因而,可以通過跳過解碼處理來提高處理速度。
與本發(fā)明的第一典型實(shí)施例相同,塊大小、處理單元大小、所參考的處理單元和像素配置以及代碼不限于此。
在第二典型實(shí)施例中,盡管使用golomb代碼來對(duì)基本塊量化參數(shù)、子塊量化參數(shù)差值和量化系數(shù)進(jìn)行解碼,但該處理不限于此。例如,當(dāng)然可以使用霍夫曼編碼和其它算術(shù)編碼方法,并且將上述值在未經(jīng)編碼的狀態(tài)下原樣輸出。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了第二典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
圖10是示出根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備的框圖。在第三典型實(shí)施例中,將開頭子塊的量化參數(shù)(以下稱為開頭子塊量化參數(shù))視為基本塊量化參數(shù),并且沒有單獨(dú)對(duì)基本塊量化參數(shù)進(jìn)行編碼。與本發(fā)明的第一典型實(shí)施例不同,第三典型實(shí)施例沒有使用表示變化的有無的代碼。然而,與本發(fā)明的第一典型實(shí)施例相同,也可以通過使用表示變化的有無的代碼來進(jìn)行編碼。參考圖10,向具有與第一典型實(shí)施例中的功能(圖1)相同的功能的部分指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
量化參數(shù)編碼單元1208對(duì)子塊量化參數(shù)進(jìn)行編碼以生成量化參數(shù)代碼數(shù)據(jù)。合并編碼單元1209生成頭信息和與預(yù)測(cè)有關(guān)的代碼,并且將量化參數(shù)編碼單元1208所生成的量化參數(shù)代碼數(shù)據(jù)與塊編碼單元1006所生成的量化系數(shù)代碼數(shù)據(jù)合并。
圖11是示出量化參數(shù)編碼單元1208的詳細(xì)框圖。參考圖11,向具有與第一典型實(shí)施例中的功能(圖3)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
選擇器200根據(jù)所輸入的子塊量化參數(shù)的子塊位置來選擇目的地?;緣K量化參數(shù)存儲(chǔ)單元203按基本塊的區(qū)域四叉樹結(jié)構(gòu)的順序存儲(chǔ)開頭子塊量化參數(shù)作為基本塊量化參數(shù)。子塊量化參數(shù)差單元206計(jì)算后續(xù)各子塊量化參數(shù)和基本塊量化參數(shù)之間的差值。子塊量化參數(shù)編碼單元207對(duì)該開頭子塊量化參數(shù)和各子塊量化參數(shù)差值進(jìn)行編碼。
與第一典型實(shí)施例相同,具有上述結(jié)構(gòu)的量化參數(shù)編碼單元1208按區(qū)域四叉樹結(jié)構(gòu)的順序從端子1輸入子塊量化參數(shù)。選擇器200按區(qū)域四叉樹結(jié)構(gòu)的順序?qū)㈤_頭子塊量化參數(shù)輸出至基本塊量化參數(shù)存儲(chǔ)單元203。選擇器200將后續(xù)子塊量化參數(shù)輸出至子塊量化參數(shù)差單元206。
基本塊量化參數(shù)存儲(chǔ)單元203存儲(chǔ)開頭子塊量化參數(shù)作為基本塊量化參數(shù)。然后,子塊量化參數(shù)差單元206也輸入開頭子塊量化參數(shù)。由于相關(guān)子塊量化參數(shù)是基本塊內(nèi)的開頭子塊量化參數(shù),因此子塊量化參數(shù)差單元206沒有計(jì)算差并且將相關(guān)子塊量化參數(shù)原樣輸出至后級(jí)的子塊量化參數(shù)編碼單元207。子塊量化參數(shù)編碼單元207通過golomb編碼對(duì)所輸入的子塊量化參數(shù)進(jìn)行編碼,并將由此得到的代碼經(jīng)由端子8輸出至外部作為子塊量化參數(shù)編碼數(shù)據(jù)。
隨后,子塊量化參數(shù)差單元206按區(qū)域四叉樹結(jié)構(gòu)的順序從端子1經(jīng)由選擇器200輸入子塊量化參數(shù)。子塊量化參數(shù)差單元206計(jì)算所輸入的各子塊量化參數(shù)和存儲(chǔ)在基本塊量化參數(shù)存儲(chǔ)單元203中的基本塊量化參數(shù)之間的差值。子塊量化參數(shù)編碼單元207經(jīng)由golomb編碼對(duì)子塊量化參數(shù)差值進(jìn)行編碼以生成子塊量化參數(shù)差值編碼數(shù)據(jù),并且將所生成的子塊量化參數(shù)差值編碼數(shù)據(jù)作為子塊量化參數(shù)編碼數(shù)據(jù)經(jīng)由端子8輸出至外部。隨后,子塊量化參數(shù)編碼單元207獲得基本塊內(nèi)的各子塊的子塊量化參數(shù)差值并進(jìn)行編碼。
圖12是示出根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。參考圖12,向具有與第一典型實(shí)施例中的功能(圖4)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
在步驟s001~s004中,與本發(fā)明的第一典型實(shí)施例相同,圖像編碼設(shè)備切出基本塊,將該基本塊分割成多個(gè)子塊,并且確定子塊量化參數(shù)。
在步驟s205中,圖像編碼設(shè)備存儲(chǔ)開頭子塊量化參數(shù)作為基本塊量化參數(shù)。
在步驟s206中,圖像編碼設(shè)備判斷所輸入的子塊是否是基本塊內(nèi)的開頭子塊。在所輸入的子塊是開頭子塊的情況下(步驟s206中為“是”),該處理進(jìn)入步驟s208。否則,在所輸入的子塊不是開頭子塊的情況下(步驟s206中為“否”),該處理進(jìn)入步驟s207。在步驟s207中,圖像編碼設(shè)備計(jì)算步驟s205中所存儲(chǔ)的基本塊量化參數(shù)和所輸入的子塊量化參數(shù)之間的差。
在步驟s208中,圖像編碼設(shè)備通過golomb編碼對(duì)所輸入的子塊量化參數(shù)或子塊量化參數(shù)差值進(jìn)行編碼,并且輸出由此得到的代碼作為子塊量化參數(shù)編碼數(shù)據(jù)。
在步驟s008和s009中,圖像編碼設(shè)備進(jìn)行與根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備相同的處理。在步驟s210中,圖像編碼設(shè)備判斷針對(duì)基本塊中的所有子塊是否完成了編碼處理。在針對(duì)所有子塊沒有完成編碼處理的情況下(步驟s210中為“否”),該處理進(jìn)入步驟s206以處理下一子塊。在針對(duì)所有子塊完成了編碼處理的情況下(步驟s210中為“是”),該處理進(jìn)入步驟s011。隨后,與根據(jù)本發(fā)明的第一典型實(shí)施例的圖像編碼設(shè)備相同,圖像編碼設(shè)備對(duì)圖像整體進(jìn)行編碼處理。利用上述的結(jié)構(gòu)和操作,將開頭子塊量化參數(shù)視為基本塊量化參數(shù)使得沒有必要傳送基本塊量化參數(shù),從而提高了編碼效率。
上述的結(jié)構(gòu)和操作還使得能夠有效地進(jìn)行與本發(fā)明的第一典型實(shí)施例相同的并行處理。具體地,參考圖5a,在并行處理的最初階段,處理器b和c需要進(jìn)行等待,直到處理器a完成開頭子塊量化參數(shù)計(jì)算為止。然而,隨后,處理器b和c可以計(jì)算子塊10005的量化參數(shù)差值,而無需一直等待到處理器a完成子塊10004的處理為止。
當(dāng)然,可以設(shè)置用于在第一典型實(shí)施例中的對(duì)基本塊量化參數(shù)進(jìn)行編碼的方法和本典型實(shí)施例中的將開頭子塊量化參數(shù)視為基本塊量化參數(shù)的方法之間進(jìn)行切換的代碼,并且選擇編碼效率較高的方法。
盡管將相同的編碼方法應(yīng)用于開頭子塊量化參數(shù)(基本塊量化參數(shù))和后續(xù)子塊量化參數(shù)差值,但該處理不限于此。當(dāng)然,可以向開頭子塊量化參數(shù)和后續(xù)子塊量化參數(shù)差值應(yīng)用不同的編碼方法。
在第三典型實(shí)施例中,盡管通過golomb編碼對(duì)基本塊量化參數(shù)、子塊量化參數(shù)差值和量化系數(shù)進(jìn)行編碼,但該處理不限于此。例如,當(dāng)然可以使用霍夫曼編碼和其它算術(shù)編碼方法。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了第三典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
以下將基于用于對(duì)通過使用根據(jù)本發(fā)明的第三典型實(shí)施例的編碼方法編碼后的代碼數(shù)據(jù)進(jìn)行解碼的圖像解碼方法來說明本發(fā)明的第四典型實(shí)施例。圖13是示出用于對(duì)通過使用根據(jù)本發(fā)明的第三典型實(shí)施例的編碼方法編碼后的代碼數(shù)據(jù)進(jìn)行解碼的圖像解碼設(shè)備的框圖。參考圖13,向具有與第二典型實(shí)施例中的功能(圖6)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
參考圖13,解碼分離單元1301對(duì)位流的頭信息進(jìn)行解碼,從該位流中分離出所需代碼,并且將分離出的代碼輸出至后級(jí)。量化參數(shù)解碼單元1302再現(xiàn)子塊量化參數(shù)。解碼分離單元1301和量化參數(shù)解碼單元1302分別與根據(jù)第二典型實(shí)施例的解碼分離單元1101和量化參數(shù)解碼單元1102(圖6)在量化參數(shù)代碼數(shù)據(jù)方面有所不同。
以下將說明根據(jù)本典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理。在本典型實(shí)施例中,盡管根據(jù)第三典型實(shí)施例的圖像編碼設(shè)備所生成的運(yùn)動(dòng)圖像位流是以幀為單位輸入的,但也可以輸入一幀的靜止圖像位流。
與第二典型實(shí)施例相同,解碼分離單元1301從端子1100輸入一幀的流數(shù)據(jù),并且對(duì)再現(xiàn)圖像所需的頭信息進(jìn)行解碼。隨后,量化參數(shù)解碼單元1302按區(qū)域四叉樹結(jié)構(gòu)的順序輸入子塊量化參數(shù)編碼數(shù)據(jù)。
圖14是示出量化參數(shù)解碼單元1302的詳細(xì)框圖。參考圖14,向具有與第二典型實(shí)施例中的功能(圖7)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
子塊量化參數(shù)解碼單元304對(duì)子塊量化參數(shù)和子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)各子塊量化參數(shù)差值。選擇器300根據(jù)所輸入的子塊量化參數(shù)的子塊位置選擇目的地?;緣K量化參數(shù)存儲(chǔ)單元310存儲(chǔ)最初解碼的子塊量化參數(shù)作為基本塊量化參數(shù)。子塊量化參數(shù)相加單元305將該基本塊量化參數(shù)和各子塊量化參數(shù)差值相加以再現(xiàn)各子塊量化參數(shù)。
利用上述結(jié)構(gòu),在基本塊的解碼開始時(shí),選擇器300選擇基本塊量化參數(shù)存儲(chǔ)單元310作為目的地。子塊量化參數(shù)解碼單元304從端子102輸入基本塊內(nèi)的開頭子塊的子塊量化參數(shù)編碼數(shù)據(jù),并且通過使用golomb代碼對(duì)該子塊量化參數(shù)編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)。基本塊量化參數(shù)存儲(chǔ)單元310經(jīng)由選擇器300輸入開頭子塊量化參數(shù),并且在相關(guān)基本塊的處理期間存儲(chǔ)該子塊量化參數(shù)。然后,子塊量化參數(shù)相加單元305也輸入開頭子塊量化參數(shù)。由于對(duì)于開頭子塊不存在差值,因此子塊量化參數(shù)相加單元305將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106原樣輸出至外部。在基本塊量化參數(shù)存儲(chǔ)單元310存儲(chǔ)開頭子塊量化參數(shù)的情況下,選擇器300選擇子塊量化參數(shù)相加單元305作為目的地。
隨后,子塊量化參數(shù)解碼單元304輸入第二個(gè)及其之后的子塊量化參數(shù)差值編碼數(shù)據(jù)。子塊量化參數(shù)解碼單元304通過使用golomb代碼對(duì)所輸入的子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。子塊量化參數(shù)相加單元305將(經(jīng)由選擇器300所輸入的)子塊量化參數(shù)差值與存儲(chǔ)在基本塊量化參數(shù)存儲(chǔ)單元310中的基本塊量化參數(shù)相加。子塊量化參數(shù)相加單元305這樣再現(xiàn)子塊量化參數(shù),并且將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106輸出至外部。隨后,量化參數(shù)解碼單元1302對(duì)基本塊內(nèi)的各子塊的子塊量化參數(shù)進(jìn)行解碼,計(jì)算子塊量化參數(shù)差值,并且將所計(jì)算出的子塊量化參數(shù)差值與基本塊量化參數(shù)相加以再現(xiàn)子塊量化參數(shù)。
圖15是示出根據(jù)本發(fā)明的第四典型實(shí)施例的圖像解碼處理的流程圖。參考圖15,向具有與第二典型實(shí)施例中的功能(圖8)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
在步驟s101中,與根據(jù)本發(fā)明的第二典型實(shí)施例的圖像解碼設(shè)備相同,圖像解碼設(shè)備對(duì)頭信息進(jìn)行解碼。在步驟s310中,圖像解碼設(shè)備判斷經(jīng)過了解碼的子塊是否是基本塊內(nèi)的開頭子塊。在經(jīng)過了解碼的子塊是開頭子塊的情況下(步驟s310中為“是”),該處理進(jìn)入步驟s311。否則,在經(jīng)過了解碼的子塊不是開頭子塊的情況下(步驟s310中為“否”),該處理進(jìn)入步驟s303。
在步驟s311中,圖像解碼設(shè)備通過使用golomb代碼對(duì)與所輸入的子塊量化參數(shù)有關(guān)的代碼、即子塊量化參數(shù)編碼數(shù)據(jù)進(jìn)行解碼,并且存儲(chǔ)將由此得到的代碼作為基本塊量化參數(shù)。然后,該處理進(jìn)入步驟s104以生成開頭子塊的解碼圖像。
在步驟s303中,圖像解碼設(shè)備通過使用golomb代碼對(duì)與所輸入的子塊量化參數(shù)有關(guān)的代碼、即子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼,以再現(xiàn)子塊量化參數(shù)差值。圖像解碼設(shè)備將所再現(xiàn)的子塊量化參數(shù)差值與步驟s311中所存儲(chǔ)的基本塊量化參數(shù)相加,并且使用相加結(jié)果作為子塊量化參數(shù)。該處理進(jìn)入步驟s104以生成第二個(gè)及其之后的子塊的解碼圖像。
隨后,與本發(fā)明的第二典型實(shí)施例相同,圖像解碼設(shè)備生成子塊解碼圖像并且再現(xiàn)幀圖像。
上述的結(jié)構(gòu)和操作使得能夠在無需單獨(dú)對(duì)基本塊量化參數(shù)進(jìn)行編碼的情況下,對(duì)第三典型實(shí)施例中所生成的代碼量減少的編碼數(shù)據(jù)進(jìn)行解碼。
上述的結(jié)構(gòu)和操作還使得能夠有效地進(jìn)行與本發(fā)明的第二典型實(shí)施例相同的并行處理。具體地,參考圖9b,代替基本塊量化參數(shù)解碼,處理器a對(duì)基本塊進(jìn)行開頭子塊量化參數(shù)解碼。該處理替換基本塊量化參數(shù)解碼和開頭子塊量化參數(shù)差值解碼。這意味著:在并行處理的最初階段,處理器b和c需要進(jìn)行等待,直到處理器a完成開頭子塊量化參數(shù)的解碼為止。隨后,處理器b和c可以開始所有的子塊量化參數(shù)的再現(xiàn),而無需一直等待到處理器a完成其它子塊的處理為止。
在第四典型實(shí)施例中,盡管使用golomb代碼來對(duì)基本塊量化參數(shù)、子塊量化參數(shù)差值和量化系數(shù)進(jìn)行解碼,但該處理不限于此。例如,當(dāng)然可以使用霍夫曼編碼和其它算術(shù)編碼方法。
在設(shè)置有用于在第三典型實(shí)施例中的對(duì)基本塊量化參數(shù)進(jìn)行編碼的方法和第四典型實(shí)施例中的將開頭子塊量化參數(shù)視為基本塊量化參數(shù)的方法之間進(jìn)行切換的代碼的情況下,圖像解碼設(shè)備解釋該代碼并且執(zhí)行圖8的步驟s102??蛇x地,圖像解碼設(shè)備優(yōu)選選擇是否要執(zhí)行圖15的步驟s310、s311和s303。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了第四典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
以下將基于通過使用前一基本塊中的子塊量化參數(shù)所進(jìn)行的基本塊量化參數(shù)的確定來說明本發(fā)明的第五典型實(shí)施例。
根據(jù)第五典型實(shí)施例的圖像編碼設(shè)備具有與根據(jù)本發(fā)明的第三典型實(shí)施例的圖像編碼設(shè)備(圖10)相同的結(jié)構(gòu),其中不同之處在于量化參數(shù)編碼單元1208的結(jié)構(gòu)。
圖16是示出根據(jù)本發(fā)明的第五典型實(shí)施例的量化參數(shù)編碼單元1208的詳細(xì)結(jié)構(gòu)的框圖。
參考圖16,選擇器400根據(jù)所輸入的子塊量化參數(shù)的基本塊位置來選擇源。子塊量化參數(shù)存儲(chǔ)單元410存儲(chǔ)前一基本塊的子塊量化參數(shù)?;緣K量化參數(shù)確定單元403基于子塊量化參數(shù)存儲(chǔ)單元410中所存儲(chǔ)的子塊量化參數(shù)來確定經(jīng)過編碼的基本塊的基本塊量化參數(shù)。子塊量化參數(shù)差單元406計(jì)算基本塊量化參數(shù)和各子塊量化參數(shù)之間的差值。子塊量化參數(shù)編碼單元407對(duì)開頭子塊量化參數(shù)和各子塊量化參數(shù)之間的差值進(jìn)行編碼。
利用上述結(jié)構(gòu),與第三典型實(shí)施例相同,塊分割單元1001將(從端子1000輸入的)圖像數(shù)據(jù)分割成多個(gè)子塊,并且量化參數(shù)確定單元1002確定各子塊量化參數(shù)。量化參數(shù)確定單元1002將所確定的各子塊量化參數(shù)輸出至量化參數(shù)編碼單元1208。
參考圖16,在所輸入的子塊量化參數(shù)是圖像數(shù)據(jù)的開頭基本塊的開頭子塊量化參數(shù)的情況下,選擇器400選擇來自端子1的輸入?;緣K量化參數(shù)確定單元403經(jīng)由子塊量化參數(shù)存儲(chǔ)單元410、子塊量化參數(shù)差單元406和選擇器400輸入子塊量化參數(shù)。子塊量化參數(shù)存儲(chǔ)單元410存儲(chǔ)下一基本塊的處理所用的子塊量化參數(shù)。與根據(jù)第三典型實(shí)施例的基本塊量化參數(shù)存儲(chǔ)單元203相同,基本塊量化參數(shù)確定單元403存儲(chǔ)所輸入的子塊量化參數(shù)作為基本塊量化參數(shù)。與根據(jù)本發(fā)明的第三典型實(shí)施例的子塊量化參數(shù)差單元206相同,子塊量化參數(shù)差單元406將子塊量化參數(shù)原樣輸出至子塊量化參數(shù)編碼單元407。子塊量化參數(shù)編碼單元407通過golomb編碼對(duì)開頭子塊量化參數(shù)進(jìn)行編碼,并且將由此得到的代碼經(jīng)由端子8輸出至外部。
隨后,子塊量化參數(shù)存儲(chǔ)單元410和子塊量化參數(shù)差單元406從端子1輸入圖像數(shù)據(jù)的開頭基本塊的其它子塊量化參數(shù)。子塊量化參數(shù)差單元406計(jì)算從基本塊量化參數(shù)確定單元403輸出的基本塊量化參數(shù)和所輸入的子塊量化參數(shù)之間的差值。子塊量化參數(shù)編碼單元407輸入該差值,與第三典型實(shí)施例相同對(duì)該差值進(jìn)行編碼,并且將由此得到的代碼經(jīng)由端子8輸出至外部。
以下將說明針對(duì)隨后輸入的圖像的基本塊(非開頭基本塊)的處理。在針對(duì)基本塊的編碼處理之前,選擇器400選擇子塊量化參數(shù)存儲(chǔ)單元410作為源?;緣K量化參數(shù)確定單元403計(jì)算所存儲(chǔ)的子塊量化參數(shù)的平均值,并且將該平均值視為基本塊量化參數(shù)。然后,子塊量化參數(shù)差單元406從端子1輸入相關(guān)基本塊的子塊量化參數(shù)。子塊量化參數(shù)差單元406計(jì)算從基本塊量化參數(shù)確定單元403輸出的基本塊量化參數(shù)和所輸入的各子塊量化參數(shù)之間的差值。子塊量化參數(shù)編碼單元407輸入差值,與第三典型實(shí)施例相同對(duì)該差值進(jìn)行編碼,并且將由此得到的代碼輸出至端子8。
圖17是示出根據(jù)本發(fā)明的第五典型實(shí)施例的圖像編碼設(shè)備所進(jìn)行的圖像編碼處理的流程圖。參考圖17,向具有與第一典型實(shí)施例中的功能(圖4)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
在步驟s001~s003中,與根據(jù)第一典型實(shí)施例的圖像編碼設(shè)備相同,圖像編碼設(shè)備對(duì)頭信息進(jìn)行編碼,從圖像數(shù)據(jù)中切出基本塊,并且將該基本塊分割成多個(gè)子塊。在步驟s401中,圖像編碼設(shè)備判斷相關(guān)基本塊是否是圖像的開頭基本塊。在相關(guān)基本塊是開頭基本塊的情況下(步驟s401中為“是”),該處理進(jìn)入步驟s402。否則,在相關(guān)基本塊不是開頭基本塊的情況下(步驟s401中為“否”),該處理進(jìn)入步驟s409。在步驟s402中,圖像編碼設(shè)備判斷相關(guān)子塊是否是開頭基本塊內(nèi)的開頭子塊。在相關(guān)子塊是開頭子塊的情況下(步驟s402中為“是”),該處理進(jìn)入步驟s403。否則,在相關(guān)子塊不是開頭子塊的情況下(步驟s402中為“否”),該處理進(jìn)入步驟s406。
在步驟s403中,圖像編碼設(shè)備確定開頭基本塊的開頭子塊量化參數(shù),并且存儲(chǔ)該開頭子塊量化參數(shù)從而在下一基本塊的處理期間進(jìn)行參考。在步驟s404中,圖像編碼設(shè)備存儲(chǔ)步驟s403中所確定的子塊量化參數(shù)作為基本塊量化參數(shù)。在步驟s405中,圖像編碼設(shè)備對(duì)步驟s403中確定的子塊量化參數(shù)進(jìn)行編碼,并且該處理進(jìn)入步驟s008。在步驟s406中,圖像編碼設(shè)備確定相關(guān)子塊的子塊量化參數(shù),并且存儲(chǔ)所確定的子塊量化參數(shù)從而在下一基本塊的處理期間進(jìn)行參考。
在步驟s407中,圖像編碼設(shè)備從步驟s406中確定的子塊量化參數(shù)中減去步驟s404中所存儲(chǔ)的基本塊量化參數(shù),以計(jì)算相關(guān)子塊的子塊量化參數(shù)差值。在步驟s408中,圖像編碼設(shè)備對(duì)步驟s407中計(jì)算出的子塊量化參數(shù)差值進(jìn)行編碼以生成量化參數(shù)差值編碼數(shù)據(jù),并且該處理進(jìn)入步驟s008。在步驟s409中,圖像編碼設(shè)備判斷相關(guān)子塊是否是第二個(gè)及其之后的基本塊內(nèi)的開頭子塊。在相關(guān)子塊是開頭子塊的情況下(步驟s409中為“是”),該處理進(jìn)入步驟s410。否則,在相關(guān)子塊不是開頭子塊的情況下(步驟s409中為“否”),該處理進(jìn)入步驟s406。在步驟s410中,參考步驟s403或s406中所存儲(chǔ)的前一基本塊的子塊量化參數(shù),圖像編碼設(shè)備計(jì)算相關(guān)基本塊的基本塊量化參數(shù)。在本典型實(shí)施例中,圖像編碼設(shè)備計(jì)算上述子塊量化參數(shù)的平均值,并且將該平均值視為基本塊量化參數(shù)。在步驟s411中,圖像編碼設(shè)備確定相關(guān)子塊的子塊量化參數(shù),并且存儲(chǔ)該子塊量化參數(shù)從而在下一基本塊的處理期間進(jìn)行參考。
在步驟s412中,圖像編碼設(shè)備從步驟s411中確定的子塊量化參數(shù)中減去步驟s410中計(jì)算出的基本塊量化參數(shù),以計(jì)算相關(guān)子塊的子塊量化參數(shù)差值。
在步驟s413中,圖像編碼設(shè)備對(duì)步驟s412中計(jì)算出的子塊量化參數(shù)差值進(jìn)行編碼以生成量化參數(shù)差值編碼數(shù)據(jù),并且該處理進(jìn)入步驟s008。在步驟s414中,圖像編碼設(shè)備判斷針對(duì)相關(guān)基本塊內(nèi)的所有子塊是否完成了編碼處理。在針對(duì)所有子塊完成了編碼處理的情況下(步驟s414中為“是”),該處理進(jìn)入步驟s011。否則,在針對(duì)所有子塊沒有完成編碼處理的情況下(步驟s414中為“否”),該處理返回至步驟s401以處理下一子塊。在步驟s008、s009和s011中,圖像編碼設(shè)備進(jìn)行與第一典型實(shí)施例相同的處理以對(duì)圖像整體進(jìn)行編碼。
利用上述的結(jié)構(gòu)和操作,通過使用前一基本塊的子塊量化參數(shù)來確定基本塊量化參數(shù),這使得能夠緊挨在開始相關(guān)基本塊的處理之后確定相關(guān)基本塊的基本塊量化參數(shù),從而使處理延遲最小化。此外,基于前一基本塊的子塊量化參數(shù)來計(jì)算基本塊量化參數(shù),這使得并非必須傳送基本塊量化參數(shù),從而提高了編碼效率。
上述的結(jié)構(gòu)和操作還使得能夠有效地進(jìn)行與根據(jù)本發(fā)明的第一典型實(shí)施例相同的并行處理。具體地,參考圖5b,在編碼處理之前,基于前一基本塊的子塊量化參數(shù)來計(jì)算基本塊量化參數(shù)。這使得能夠在無需等待各單獨(dú)子塊的處理完成的情況下計(jì)算所有子塊的量化參數(shù)差值。
在第五典型實(shí)施例中,盡管僅針對(duì)圖像的開頭基本塊原樣地對(duì)開頭子塊量化參數(shù)進(jìn)行編碼,但該處理不限于此。具體地,還可以提供包括多個(gè)基本塊的片狀結(jié)構(gòu),并且對(duì)開頭基本塊應(yīng)用相同的處理。
在第五典型實(shí)施例中,盡管參考前一基本塊的子塊量化參數(shù)來確定基本塊量化參數(shù),但該處理不限于此。可以將前一基本塊的最后的子塊量化參數(shù)視為相關(guān)基本塊的基本塊量化參數(shù)。當(dāng)然,可以參考周圍基本塊的子塊量化參數(shù)或基本塊量化參數(shù)。
在第五典型實(shí)施例中,盡管將前一基本塊的子塊量化參數(shù)的平均值視為基本塊量化參數(shù),但該處理不限于此。例如,當(dāng)然以下是可以的:基本塊量化參數(shù)可以是子塊量化參數(shù)的中間值或頻率最高的子塊量化參數(shù)值。當(dāng)然,可以這樣準(zhǔn)備多個(gè)計(jì)算方法,選擇最高效的基本塊量化參數(shù),并且通過使用表示相關(guān)計(jì)算方法的代碼來進(jìn)行編碼。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了第五典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
以下將基于用于對(duì)通過使用根據(jù)本發(fā)明的第五典型實(shí)施例的編碼方法編碼后的代碼數(shù)據(jù)進(jìn)行解碼的圖像解碼方法來說明本發(fā)明的第六典型實(shí)施例。根據(jù)第六典型實(shí)施例的圖像解碼設(shè)備具有與根據(jù)本發(fā)明的第四典型實(shí)施例的圖像解碼設(shè)備(圖13)相同的結(jié)構(gòu),其中不同之處在于量化參數(shù)解碼單元1302的結(jié)構(gòu)。
圖18是示出根據(jù)本發(fā)明的第六典型實(shí)施例的量化參數(shù)解碼單元1302的結(jié)構(gòu)的框圖。參考圖18,向具有與第四典型實(shí)施例中的功能(圖14)相同的功能的元件指派相同的附圖標(biāo)記并且將省略重復(fù)說明。
選擇器500根據(jù)所輸入的子塊量化參數(shù)的子塊位置和相關(guān)子塊的基本塊位置來選擇目的地。子塊量化參數(shù)解碼單元501對(duì)子塊量化參數(shù)本身的代碼進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)。子塊量化參數(shù)差值解碼單元502對(duì)子塊量化參數(shù)差值的代碼進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。選擇器503根據(jù)所輸入的子塊量化參數(shù)的子塊位置和相關(guān)子塊的基本塊位置來選擇源。基本塊量化參數(shù)確定單元504確定基本塊量化參數(shù)。子塊量化參數(shù)相加單元505將所確定的基本塊量化參數(shù)和各子塊量化參數(shù)差值相加,以再現(xiàn)各子塊量化參數(shù)。選擇器506根據(jù)所輸入的子塊量化參數(shù)的子塊位置和相關(guān)子塊的基本塊位置來選擇源。子塊量化參數(shù)存儲(chǔ)單元507存儲(chǔ)所再現(xiàn)的子塊量化參數(shù)。
以下將說明圖像解碼設(shè)備所進(jìn)行的解碼處理。在本典型實(shí)施例中,盡管運(yùn)動(dòng)圖像位流是以幀為單位輸入的,但也可以輸入一幀的靜止圖像位流。
在一幀的位流的解碼處理之前,選擇器500選擇子塊量化參數(shù)解碼單元501作為目的地,并且選擇器503選擇子塊量化參數(shù)解碼單元501作為源。選擇器505選擇子塊量化參數(shù)解碼單元501作為源。
子塊量化參數(shù)解碼單元501經(jīng)由選擇器500輸入開頭基本塊的子塊量化參數(shù)編碼數(shù)據(jù)。子塊量化參數(shù)解碼單元501通過使用golomb代碼對(duì)該編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)?;緣K量化參數(shù)確定單元504經(jīng)由選擇器503輸入子塊量化參數(shù)。由于子塊量化參數(shù)的子塊是開頭基本塊的開頭子塊,因此基本塊量化參數(shù)確定單元504原樣存儲(chǔ)所輸入的子塊量化參數(shù)作為基本塊量化參數(shù)。子塊量化參數(shù)解碼單元501將所再現(xiàn)的子塊量化參數(shù)經(jīng)由選擇器505和端子106輸出至外部。子塊量化參數(shù)存儲(chǔ)單元507存儲(chǔ)該子塊量化參數(shù)。
隨后,選擇器500選擇子塊量化參數(shù)差值解碼單元502作為目的地,并且選擇器503選擇子塊量化參數(shù)存儲(chǔ)單元507作為源。選擇器505選擇子塊量化參數(shù)相加單元505作為源。
在量化參數(shù)解碼單元1302輸入下一子塊的子塊量化參數(shù)差值編碼數(shù)據(jù)的情況下,子塊量化參數(shù)差值解碼單元502經(jīng)由選擇器500輸入子塊量化參數(shù)差值編碼數(shù)據(jù)。子塊量化參數(shù)差值解碼單元502對(duì)該子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。子塊量化參數(shù)相加單元305將該子塊量化參數(shù)差值與基本塊量化參數(shù)相加以再現(xiàn)子塊量化參數(shù),并且將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106輸出至外部。子塊量化參數(shù)存儲(chǔ)單元507存儲(chǔ)該子塊量化參數(shù)。
隨后,量化參數(shù)解碼單元1302輸入下一基本塊的子塊量化參數(shù)差值編碼數(shù)據(jù)。在這種情況下,基本塊量化參數(shù)確定單元504從子塊量化參數(shù)存儲(chǔ)單元507讀取前一基本塊的子塊量化參數(shù),計(jì)算所讀取的子塊量化參數(shù)的平均值,并且將該平均值視為相關(guān)基本塊的基本塊量化參數(shù)。
子塊量化參數(shù)差值解碼單元502對(duì)所輸入的子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼以再現(xiàn)子塊量化參數(shù)差值。子塊量化參數(shù)相加單元305再現(xiàn)子塊量化參數(shù),并且將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106輸出至外部。子塊量化參數(shù)存儲(chǔ)單元507存儲(chǔ)所再現(xiàn)的子塊量化參數(shù)。
隨后,量化參數(shù)解碼單元1302輸入下一子塊量化參數(shù)差值編碼數(shù)據(jù),以相同方式再現(xiàn)子塊量化參數(shù)差值,然后再現(xiàn)子塊量化參數(shù)。量化參數(shù)解碼單元1302將所再現(xiàn)的子塊量化參數(shù)經(jīng)由端子106輸出至外部。子塊量化參數(shù)存儲(chǔ)單元507存儲(chǔ)該子塊量化參數(shù)。
圖19是示出根據(jù)本發(fā)明的第六典型實(shí)施例的圖像解碼設(shè)備所進(jìn)行的圖像解碼處理的流程圖。
在步驟s101中,與本發(fā)明的第二典型實(shí)施例相同,圖像解碼設(shè)備對(duì)頭信息進(jìn)行解碼。在步驟s501中,圖像解碼設(shè)備判斷經(jīng)過了解碼的子塊的基本塊是否是圖像的開頭基本塊。在相關(guān)基本塊是開頭基本塊的情況下(步驟s501中為“是”),該處理進(jìn)入步驟s502。否則,在相關(guān)基本塊不是開頭基本塊的情況下(步驟s501中為“否”),該處理進(jìn)入步驟s504。
在步驟s502中,圖像解碼設(shè)備判斷經(jīng)過了解碼的子塊是否是基本塊內(nèi)的開頭子塊。在相關(guān)子塊是開頭子塊的情況下(步驟s502中為“是”),該處理進(jìn)入步驟s503。否則,在相關(guān)子塊不是開頭子塊的情況下(步驟s502中為“否”),該處理進(jìn)入步驟s506。在步驟s503中,圖像解碼設(shè)備通過使用golomb代碼對(duì)與所輸入的子塊量化參數(shù)有關(guān)的代碼、即子塊量化參數(shù)編碼數(shù)據(jù)進(jìn)行解碼,以再現(xiàn)子塊量化參數(shù)。圖像解碼設(shè)備存儲(chǔ)由此獲得的代碼作為基本塊量化參數(shù)。同時(shí),圖像解碼設(shè)備單獨(dú)存儲(chǔ)由此得到的代碼從而在確定下一基本塊的基本塊量化參數(shù)期間進(jìn)行參考。然后,該處理進(jìn)入步驟s104以進(jìn)行開頭子塊的解碼圖像生成。
在步驟s504中,圖像解碼設(shè)備判斷經(jīng)過了解碼的子塊是否是基本塊內(nèi)的開頭子塊。在經(jīng)過了解碼的子塊是開頭子塊的情況下(步驟s504中為“是”),該處理進(jìn)入步驟s505。否則,在經(jīng)過了解碼的子塊不是開頭子塊的情況下(步驟s504中為“否”),該處理進(jìn)入步驟s506。
在步驟s505中,圖像解碼設(shè)備計(jì)算所存儲(chǔ)的前一基本塊的子塊量化參數(shù)的平均值,并且將該平均值視為基本塊量化參數(shù)。然后,該處理進(jìn)入步驟s506。
在步驟s506中,圖像解碼設(shè)備通過使用golomb代碼對(duì)與所輸入的子塊量化參數(shù)有關(guān)的代碼、即子塊量化參數(shù)差值編碼數(shù)據(jù)進(jìn)行解碼,以再現(xiàn)子塊量化參數(shù)差值。圖像解碼設(shè)備將所再現(xiàn)的子塊量化參數(shù)差值與步驟s503或s505中所存儲(chǔ)或計(jì)算出的基本塊量化參數(shù)相加,以獲得子塊量化參數(shù)。然后,該處理進(jìn)入步驟s104以進(jìn)行子塊的解碼圖像生成。隨后,與本發(fā)明的第四典型實(shí)施例相同,圖像解碼設(shè)備生成子塊解碼圖像并且再現(xiàn)幀圖像。
上述的結(jié)構(gòu)和操作使得能夠?qū)Ω鶕?jù)第五典型實(shí)施例的圖像編碼設(shè)備所生成的基本塊量化參數(shù)值沒有經(jīng)過編碼的位流進(jìn)行解碼。
上述的結(jié)構(gòu)和操作進(jìn)一步使得能夠有效地進(jìn)行與本發(fā)明的第二典型實(shí)施例相同的并行處理。具體地,參考圖9b,代替基本塊量化參數(shù)解碼,處理器a通過使用前一基本塊的子塊量化參數(shù)來進(jìn)行基本塊量化參數(shù)計(jì)算。這樣使得處理器a能夠在無需等待針對(duì)其它子塊的處理完成的情況下開始針對(duì)所有子塊的量化參數(shù)再現(xiàn)。
在第六典型實(shí)施例中,盡管將前一基本塊的子塊量化參數(shù)的平均值視為基本塊參數(shù),但該處理不限于此,只要使用根據(jù)第五典型實(shí)施例的用于計(jì)算基本塊量化參數(shù)的方法即可。例如,當(dāng)然以下是可以的:基本塊量化參數(shù)可以是子塊量化參數(shù)的中間值或頻率最高的子塊量化參數(shù)值。這些信息可以從子塊量化參數(shù)存儲(chǔ)單元507中所存儲(chǔ)的子塊量化參數(shù)導(dǎo)出。
即使在編碼側(cè)這樣準(zhǔn)備多個(gè)計(jì)算方法的情況下也選擇最高效的基本塊量化參數(shù),基于表示相關(guān)計(jì)算方法的代碼來進(jìn)行編碼,并且可以通過解碼來同樣地計(jì)算子塊量化參數(shù)。
盡管已經(jīng)基于使用幀內(nèi)預(yù)測(cè)的幀具體說明了第六典型實(shí)施例,但顯而易見,本典型實(shí)施例還可應(yīng)用于能夠使用涉及運(yùn)動(dòng)補(bǔ)償?shù)膸g預(yù)測(cè)來進(jìn)行預(yù)測(cè)的幀。
盡管已經(jīng)在圖1、3、6、7、10、11、13、14、16和18所示的各處理單元由硬件來實(shí)現(xiàn)的前提下具體說明了上述典型實(shí)施例,但這些處理單元所執(zhí)行的處理也可以由軟件(計(jì)算機(jī)程序)來實(shí)現(xiàn)。
圖20是示出可應(yīng)用于根據(jù)本發(fā)明的上述典型實(shí)施例的圖像顯示單元的計(jì)算機(jī)的硬件結(jié)構(gòu)示例的框圖。
中央處理單元(cpu)1401通過使用存儲(chǔ)在隨機(jī)存取存儲(chǔ)器(ram)1402和只讀存儲(chǔ)器(rom)1403中的計(jì)算機(jī)程序和數(shù)據(jù)來控制計(jì)算機(jī)整體,并且作為根據(jù)上述典型實(shí)施例的圖像處理設(shè)備來執(zhí)行上述各處理。具體地,cpu1401用作圖1、3、6、7、10、11、13、14、16和18所示的各處理單元。
ram1402包括如下區(qū)域,其中該區(qū)域用于臨時(shí)存儲(chǔ)從外部存儲(chǔ)裝置1406載入的計(jì)算機(jī)程序和數(shù)據(jù)、以及經(jīng)由接口(i/f)1407從外部獲取到的數(shù)據(jù)。ram1402還包括cpu1401執(zhí)行各種處理所使用的工作區(qū)域。例如,ram1402可以根據(jù)需要用作幀存儲(chǔ)器和其它各種類型的區(qū)域。
rom1403存儲(chǔ)計(jì)算機(jī)的設(shè)置數(shù)據(jù)和引導(dǎo)程序。操作單元1404配備有鍵盤、鼠標(biāo)等。計(jì)算機(jī)的用戶對(duì)操作單元1404進(jìn)行操作以向cpu1401給出各種指令。輸出單元1405顯示cpu1401所執(zhí)行的處理的結(jié)果。輸出單元1405包括諸如液晶顯示器(lcd)等的保持型顯示單元或者諸如場發(fā)光型顯示單元等的脈沖型顯示單元。
外部存儲(chǔ)裝置1406是以硬盤驅(qū)動(dòng)單元為代表的大容量存儲(chǔ)裝置。外部存儲(chǔ)裝置1406存儲(chǔ)cpu1401所執(zhí)行的操作系統(tǒng)(os)和計(jì)算機(jī)程序以實(shí)現(xiàn)圖1、3、6、7、10、11、13、14、16和18所示的各處理單元的功能。外部存儲(chǔ)裝置1406還可以存儲(chǔ)要處理的圖像數(shù)據(jù)。
cpu1401將外部存儲(chǔ)裝置1406中所存儲(chǔ)的計(jì)算機(jī)程序和數(shù)據(jù)適當(dāng)載入ram1402,并且執(zhí)行該計(jì)算機(jī)程序。諸如局域網(wǎng)(lan)和因特網(wǎng)等的網(wǎng)絡(luò)、投射裝置、顯示裝置和其它裝置可以連接至i/f1407。計(jì)算機(jī)可以經(jīng)由i/f1407獲取和發(fā)送各種信息??偩€1408使上述各種裝置互連。
利用上述結(jié)構(gòu)的操作是在cpu1401控制上述流程圖的處理的情況下實(shí)現(xiàn)的。
此外,在cpu1401具有多核結(jié)構(gòu)的情況下,可以通過將各處理的線程分配至各核來實(shí)現(xiàn)高效的并行處理。
在以下情況下也實(shí)現(xiàn)了本發(fā)明:將記錄有用于實(shí)現(xiàn)上述功能的計(jì)算機(jī)程序代碼的存儲(chǔ)介質(zhì)供給至系統(tǒng),并且該系統(tǒng)載入并執(zhí)行這些計(jì)算機(jī)程序代碼。在這種情況下,從存儲(chǔ)介質(zhì)載入的計(jì)算機(jī)程序代碼實(shí)現(xiàn)這些典型實(shí)施例的功能,并且存儲(chǔ)有這些計(jì)算機(jī)程序代碼的存儲(chǔ)介質(zhì)構(gòu)成本發(fā)明。此外,本發(fā)明還包括以下情況:運(yùn)行在計(jì)算機(jī)上的操作系統(tǒng)(os)基于計(jì)算機(jī)程序代碼的指令來執(zhí)行實(shí)際處理的一部分或全部,并且通過這些計(jì)算機(jī)程序代碼的處理來實(shí)現(xiàn)上述功能。
此外,本發(fā)明可以通過以下形式來實(shí)現(xiàn)。具體地,本發(fā)明還包括將從存儲(chǔ)介質(zhì)載入的計(jì)算機(jī)程序代碼寫入設(shè)置在插入至計(jì)算機(jī)中的功能擴(kuò)展卡或連接至計(jì)算機(jī)的功能擴(kuò)展單元中的存儲(chǔ)器的情況。本發(fā)明還包括設(shè)置在功能擴(kuò)展卡或功能擴(kuò)展單元中的cpu基于計(jì)算機(jī)程序代碼的指令來執(zhí)行實(shí)際處理的一部分或全部以實(shí)現(xiàn)上述功能的情況。
在將本發(fā)明應(yīng)用于上述存儲(chǔ)介質(zhì)的情況下,該存儲(chǔ)介質(zhì)存儲(chǔ)與上述流程圖相對(duì)應(yīng)的計(jì)算機(jī)程序代碼。
盡管已經(jīng)參考典型實(shí)施例說明了本發(fā)明,但是應(yīng)該理解,本發(fā)明不限于所公開的典型實(shí)施例。所附權(quán)利要求書的范圍符合最寬的解釋,以包含所有修改、等同結(jié)構(gòu)和功能。
本申請(qǐng)要求2011年3月9日提交的日本專利申請(qǐng)2011-051267的優(yōu)先權(quán),在此通過引用包含其全部內(nèi)容。