圖像編碼設備和方法以及圖像解碼設備和方法與流程
2023-06-01 22:53:46 1

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