專利名稱:圖像編碼設(shè)備和方法,圖像解碼設(shè)備和方法,及程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像編碼設(shè)備和方法,圖像解碼設(shè)備和方法,及程序。特別地,抑制由后期量化引起的在圖像中產(chǎn)生的不適感或不清楚感。
背景技術(shù):
到目前為止,作為一種圖像壓縮系統(tǒng),使用一種稱為JPEG2000或JPEG XR (聯(lián)合圖像專家組擴(kuò)展范圍)的系統(tǒng),即使當(dāng)增大壓縮比時(shí),利用這種系統(tǒng),也能夠獲得具有高質(zhì)量和高灰度的圖像。另外,例如,在未經(jīng)審查的日本專利申請(qǐng)公報(bào)No. 2004160539和未經(jīng)審查的日本專利申請(qǐng)公報(bào)No. 2002-204357中公開(kāi)一種對(duì)在上述系統(tǒng)中壓縮的圖像進(jìn)行解碼的圖像解碼設(shè)備。
發(fā)明內(nèi)容
順便提及,按照J(rèn)PEG2000系統(tǒng),進(jìn)行把像素值從空間坐標(biāo)變換成頻率坐標(biāo)的頻率變換,和通過(guò)頻率變換獲得的系數(shù)數(shù)據(jù)的量化。此外,為了使得能夠有效地對(duì)量化的系數(shù)數(shù)據(jù)編碼,執(zhí)行其中進(jìn)行把系數(shù)數(shù)據(jù)擴(kuò)展成位平面的處理等的系數(shù)位建模,和對(duì)經(jīng)過(guò)系數(shù)位建模處理的數(shù)據(jù)的熵編碼,等等。另外,在熵編碼中,進(jìn)行其中使變長(zhǎng)編碼和定長(zhǎng)編碼相互結(jié)合的編碼。進(jìn)行從 MSB(最高有效位)一側(cè)到LSB(最低有效位)一側(cè)的掃描,對(duì)離首次生成位“1”的位深度不到一定深度的位平面進(jìn)行變長(zhǎng)編碼。此外,對(duì)在所述一定深度以上的位平面進(jìn)行定長(zhǎng)編碼。按照這種方式,取決于深度是否在所述一定深度以上,進(jìn)行變長(zhǎng)編碼和定長(zhǎng)編碼之間的分割,而不管輸入的系數(shù)數(shù)據(jù)的特性。于是,會(huì)出現(xiàn)其中變長(zhǎng)編碼和定長(zhǎng)編碼之間的分割未被設(shè)置為最佳位置,從而難以穩(wěn)定地提高編碼效率的情況。鑒于上面所述,按照本發(fā)明的一個(gè)實(shí)施例,理想的是提供一種增強(qiáng)編碼效率,并且能夠抑制由后期量化引起的在圖像中產(chǎn)生的不適感或不清楚感的圖像編碼設(shè)備和方法,圖像解碼設(shè)備和方法,和程序。按照本發(fā)明的一個(gè)實(shí)施例的圖像編碼設(shè)備包括有效位檢測(cè)處理單元,有效位檢測(cè)處理單元從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;編碼選擇單元,所述編碼選擇單元根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼;變長(zhǎng)編碼單元,所述變長(zhǎng)編碼單元對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和定長(zhǎng)編碼單元,所述定長(zhǎng)編碼單元對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。按照本發(fā)明的實(shí)施例,從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,對(duì)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目進(jìn)行檢測(cè)。另外,可從較淺的位深度開(kāi)始順序進(jìn)行編碼的選擇,對(duì)于位深度大于或等于第一閾值和/或更高一階的位平面上的系數(shù)數(shù)據(jù)的數(shù)目大于或等于第二閾值的位平面,可以選擇定長(zhǎng)編碼,對(duì)于其他位平面可以選擇變長(zhǎng)編碼,以對(duì)該位平面進(jìn)行編碼。
按照本發(fā)明的另一個(gè)實(shí)施例的圖像編碼方法包括下述步驟用有效位檢測(cè)處理單元從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,用編碼選擇單元為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼;用變長(zhǎng)編碼單元對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和用定長(zhǎng)編碼單元對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。按照本發(fā)明的另一個(gè)實(shí)施例的程序使計(jì)算機(jī)執(zhí)行包括下述步驟的處理從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼;對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。按照本發(fā)明的另一個(gè)實(shí)施例的圖像解碼設(shè)備包括變長(zhǎng)解碼單元,所述變長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的;定長(zhǎng)解碼單元,所述定長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼;有效位檢測(cè)處理單元,所述有效位檢測(cè)處理單元檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和解碼選擇單元,所述解碼選擇單元根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。按照本發(fā)明的實(shí)施例,對(duì)編碼數(shù)據(jù)進(jìn)行解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的,關(guān)于獲得的位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目。另外,從較淺的位深度開(kāi)始, 順序進(jìn)行解碼的選擇,在位深度大于或等于第一閾值和/或在更高一階的位平面上的系數(shù)數(shù)據(jù)的數(shù)目大于或等于第二閾值的情況下,可選擇定長(zhǎng)解碼,在其它情況下可選擇變長(zhǎng)編碼,以對(duì)編碼數(shù)據(jù)進(jìn)行解碼。按照本發(fā)明的另一個(gè)實(shí)施例的圖像解碼方法包括下述步驟用變長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的;用定長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼;用有效位檢測(cè)處理單元檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,用解碼選擇單元選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。按照本發(fā)明的另一個(gè)實(shí)施例的程序使計(jì)算機(jī)執(zhí)行包括下述步驟的處理對(duì)編碼數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù), 根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的;對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼;檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。
應(yīng)注意按照本發(fā)明的實(shí)施例的程序是可借助以計(jì)算機(jī)可讀格式提供的存儲(chǔ)介質(zhì)或者通信介質(zhì),比如諸如光盤(pán)、磁盤(pán)或半導(dǎo)體存儲(chǔ)器之類的存儲(chǔ)介質(zhì),或者諸如網(wǎng)絡(luò)之類的通信介質(zhì),被提供給能夠執(zhí)行各種程序代碼的通用計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)程序。通過(guò)以計(jì)算機(jī)可讀格式提供這樣的程序,實(shí)現(xiàn)與計(jì)算機(jī)系統(tǒng)上的程序相應(yīng)的處理。按照本發(fā)明的實(shí)施例,通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換生成系數(shù)數(shù)據(jù),從所述系數(shù)數(shù)據(jù)中對(duì)于每個(gè)位表面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目。另外,根據(jù)這樣檢測(cè)的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,通過(guò)對(duì)每個(gè)位平面進(jìn)行變長(zhǎng)編碼或定長(zhǎng)編碼,實(shí)現(xiàn)編碼數(shù)據(jù)的生成。另外,在對(duì)所述編碼數(shù)據(jù)的解碼中,根據(jù)關(guān)于通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面,在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度, 進(jìn)行變長(zhǎng)解碼或定長(zhǎng)解碼。于是,由于能夠按照輸入的系數(shù)數(shù)據(jù)的特性,進(jìn)行變長(zhǎng)編碼和定長(zhǎng)編碼之間的分割,因此能夠穩(wěn)定地提高編碼效率,和能夠抑制由后期量化引起的在圖像中產(chǎn)生的不適感或不清楚感。
圖1圖解說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的圖像編碼設(shè)備的示意結(jié)構(gòu);圖2A和2B是說(shuō)明一維的系數(shù)位建模的說(shuō)明圖;圖3舉例說(shuō)明系數(shù)數(shù)據(jù)的大小;圖4圖解說(shuō)明熵編碼單元的結(jié)構(gòu);圖5是說(shuō)明熵編碼單元的操作的流程圖;圖6A和6B是說(shuō)明熵編碼單元中的操作的具體例子的說(shuō)明圖;圖7A和7B舉例說(shuō)明編碼表;圖8圖解說(shuō)明其中為每個(gè)頻帶設(shè)定閾值的情況;圖9圖解說(shuō)明按照一個(gè)實(shí)施例的圖像解碼設(shè)備的示意結(jié)構(gòu);圖10圖解說(shuō)明熵解碼單元的結(jié)構(gòu);圖11是說(shuō)明熵解碼單元的操作的流程圖;圖12是說(shuō)明熵解碼單元中的操作的一個(gè)具體例子的說(shuō)明圖;圖13圖解說(shuō)明按照上下文,優(yōu)化閾值的熵編碼單元的結(jié)構(gòu);圖14是說(shuō)明熵編碼單元的操作的流程圖;圖15圖解說(shuō)明熵解碼單元的結(jié)構(gòu);圖16是說(shuō)明熵解碼單元的操作的流程圖;和圖17圖解說(shuō)明計(jì)算機(jī)的硬件結(jié)構(gòu)例子。
具體實(shí)施例方式下面說(shuō)明實(shí)現(xiàn)本發(fā)明的實(shí)施例。應(yīng)注意將按照下述順序進(jìn)行說(shuō)明。1.第一實(shí)施例1-1.圖像編碼設(shè)備的結(jié)構(gòu)1-2.熵編碼單元的結(jié)構(gòu)1-3.熵編碼單元的操作1-4.圖像解碼設(shè)備的結(jié)構(gòu)
1-5.熵解碼單元的結(jié)構(gòu)1-6.熵解碼單元的操作2.第二實(shí)施例2-1.熵編碼單元的結(jié)構(gòu)2-2.熵編碼單元的操作2-3.熵解碼單元的結(jié)構(gòu)2-4.熵解碼單元的操作3.用計(jì)算機(jī)進(jìn)行編碼和解碼的情況1.第一實(shí)施例1-1.圖像編碼設(shè)備的結(jié)構(gòu)圖1圖解說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的圖像編碼設(shè)備的示意結(jié)構(gòu)。圖像編碼設(shè)備10設(shè)有顏色轉(zhuǎn)換單元11,正交變換單元12,量化單元13,系數(shù)位建模單元14,熵編碼單元15,后期量化單元16,和報(bào)頭創(chuàng)建單元17。顏色轉(zhuǎn)換單元11對(duì)用任意顏色空間(例如,RGB,YUV等)輸入的圖像數(shù)據(jù)進(jìn)行到特定顏色空間的顏色轉(zhuǎn)換,并把顏色轉(zhuǎn)換之后的圖像數(shù)據(jù)輸出給正交變換單元12。這種顏色轉(zhuǎn)換是提高編碼效率的處理,不是在圖像編碼中通常進(jìn)行的處理。正交變換單元12對(duì)從顏色轉(zhuǎn)換單元11供給的圖像數(shù)據(jù)進(jìn)行把相應(yīng)的像素值從空間坐標(biāo)變換成頻率坐標(biāo)的頻率變換(例如,諸如離散余弦變換(DCT),離散傅里葉變換 (DFT)和小波變換(DWT)之類的正交變換)。正交變換單元12把通過(guò)正交變換而獲得的系數(shù)數(shù)據(jù)輸出給量化單元13。量化單元13量化從正交變換單元12供給的系數(shù)數(shù)據(jù),以便輸出給系數(shù)位建模單元14。這種量化不是在圖像編碼中通常進(jìn)行的處理。系數(shù)位建模單元14進(jìn)行變換來(lái)自量化單元的量化系數(shù)數(shù)據(jù),以便由熵編碼單元 15有效編碼的處理。例如,系數(shù)位建模單元14把系數(shù)數(shù)據(jù)分成代碼塊,并從MSB (最高有效位)一側(cè)到LSB (最低有效位)一側(cè),把在代碼塊相應(yīng)位深度的位平面輸出給熵編碼單元 15。圖2A和2B是說(shuō)明一維的系數(shù)位建模的說(shuō)明圖。作為系數(shù)數(shù)據(jù),例如,如圖2A中所示, 假定輸入“ 10,20,5,9,34,18,2,0”。這種情況下,當(dāng)代碼塊的大小被設(shè)為4X 1時(shí),如圖2B 中所示,“10,20,5,9”是代碼塊0,“34,18,2,0”是代碼塊1。系數(shù)位建模單元14把代碼塊 0中,在位深度0的位平面的系數(shù)位“0000”輸出給熵編碼單元15。隨后,系數(shù)位建模單元 14把代碼塊0中,在位深度1的位平面的系數(shù)位“0000”輸出給熵編碼單元15。按照類似方式,對(duì)于每個(gè)位深度,系數(shù)位建模單元14順序把代碼塊0中,在位深度2-位深度7的位平面的系數(shù)位“0000”- “0011”輸出給熵編碼單元15。另外,同樣就代碼塊1來(lái)說(shuō),與代碼塊0中類似,從MSB —側(cè)到LSB —側(cè),系數(shù)位建模單元14把在相應(yīng)位深度的位平面輸出給熵編碼單元15。另外,系數(shù)位建模單元14輸出位平面的系數(shù)位,以便能夠?qū)崿F(xiàn)位深度的標(biāo)識(shí)。例如,指示位深度的位深度信息連同位平面的系數(shù)位一起被輸出。在熵編碼單元15中,關(guān)注正交變換單元12獲得的系數(shù)數(shù)據(jù)的偏離,按照輸入的系數(shù)數(shù)據(jù)的狀態(tài),自適應(yīng)地選擇變長(zhǎng)編碼或定長(zhǎng)編碼對(duì)系數(shù)數(shù)據(jù)編碼。熵編碼單元15把通過(guò)在自適應(yīng)選擇變長(zhǎng)編碼或定長(zhǎng)編碼的時(shí)候,進(jìn)行編碼而獲得的編碼數(shù)據(jù)輸出給后期量化單元16。
后期量化單元16進(jìn)行稱為截?cái)嗟奈唤財(cái)嗵幚?,以致由熵編碼單元15獲得的編碼數(shù)據(jù)具有期望的數(shù)據(jù)量。后期量化單元16把后期量化之后的編碼數(shù)據(jù)輸出給報(bào)頭創(chuàng)建單元17。報(bào)頭創(chuàng)建單元17生成例如指示位截?cái)辔恢玫鹊膱?bào)頭信息,以便增加到進(jìn)行后期量化的編碼數(shù)據(jù)中,并生成待輸出的流數(shù)據(jù)。1-2.熵編碼單元的結(jié)構(gòu)下面說(shuō)明熵編碼單元15。在自然圖像中,代碼塊中的各項(xiàng)系數(shù)數(shù)據(jù)的大小存在變化。此時(shí),從MSB —側(cè)到LSB —側(cè),對(duì)各項(xiàng)系數(shù)數(shù)據(jù)進(jìn)行掃描,首次存在位“ 1,,的位深度會(huì)變化。另外,對(duì)于代碼塊中,在位首次變成位“1”的位深度附近的系數(shù)位來(lái)說(shuō),很可能出現(xiàn) “0”,從而在系數(shù)位的發(fā)生概率方面產(chǎn)生偏離。應(yīng)注意在下面的說(shuō)明中,在各項(xiàng)系數(shù)數(shù)據(jù)中, 當(dāng)從MSB —側(cè)到LSB —側(cè)進(jìn)行掃描時(shí),首次出現(xiàn)的位“1”被稱為有效位。另一方面,在高階位平面中檢測(cè)到有效位的系數(shù)數(shù)據(jù)中,由于更接近于LSB —側(cè), 因此出現(xiàn)“ 1,,和“0”的概率變得彼此一致,于是,在LSB附近的位深度的代碼塊中的系數(shù)位 “0”和“1”的出現(xiàn)概率接近彼此一樣。換句話說(shuō),當(dāng)在編碼目標(biāo)塊中的高階位平面中檢測(cè)到有效位的有效數(shù)據(jù)的數(shù)目較小時(shí),“0”的出現(xiàn)概率較大,當(dāng)有效數(shù)據(jù)的數(shù)目較大時(shí),“0”和 “1”的出現(xiàn)概率彼此相等。此時(shí),在代碼塊中的有效數(shù)據(jù)的振幅較小,并從在LSB附近的位置開(kāi)始進(jìn)行編碼的情況下,在LSB—側(cè)具有均勻分布的位深度的數(shù)目較小,于是,與其中在高階位平面中檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目相同,并且振幅較大的系數(shù)數(shù)據(jù)相比,在系數(shù)位中出現(xiàn)“0”和 “1”的概率的偏離變小。圖3舉例說(shuō)明系數(shù)數(shù)據(jù)的大小,例如在自然圖像中,如圖3中所示, 特別地,在低通(low pass)和高通(high pass)中的系數(shù)數(shù)據(jù)的大小發(fā)生變化。應(yīng)注意在圖3中,“4L”在低通,“1H”在高通。鑒于上面所述,熵編碼單元15從在相應(yīng)代碼塊中的MSB—側(cè)的位平面開(kāi)始進(jìn)行變長(zhǎng)編碼,并根據(jù)位深度和/或在高階位平面檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目與閾值的比較結(jié)果,從變長(zhǎng)編碼切換到定長(zhǎng)編碼。圖4圖解說(shuō)明熵編碼單元的結(jié)構(gòu)。熵編碼單元15具有有效位檢測(cè)處理單元151, 編碼選擇單元152,變長(zhǎng)編碼單元153和定長(zhǎng)編碼單元154。通過(guò)利用從系數(shù)位建模單元14輸出的位平面的系數(shù)位DT,有效位檢測(cè)處理單元 151計(jì)算對(duì)于每個(gè)位平面來(lái)說(shuō),在高階位平面檢測(cè)到有效位的有效數(shù)據(jù)的數(shù)目NB,以便輸出給編碼選擇單元152。應(yīng)注意在下面的說(shuō)明中,在高階位平面檢測(cè)到有效位的有效數(shù)據(jù)的數(shù)目被稱為有效數(shù)據(jù)的數(shù)目。根據(jù)有效數(shù)據(jù)的數(shù)目NB,和從系數(shù)位建模單元14輸出的指示位深度BD的信息,對(duì)于代碼塊的每個(gè)位深度,編碼選擇單元152確定用變長(zhǎng)編碼還是定長(zhǎng)編碼對(duì)位平面編碼。 在確定進(jìn)行變長(zhǎng)編碼的情況下,編碼選擇單元152把位平面的系數(shù)位輸出給變長(zhǎng)編碼單元 153。另外,在確定進(jìn)行定長(zhǎng)編碼的情況下,編碼選擇單元152把位平面的系數(shù)位輸出給定長(zhǎng)編碼單元154。變長(zhǎng)編碼單元153對(duì)編碼選擇單元152選擇的位平面進(jìn)行變長(zhǎng)編碼,并把獲得的編碼數(shù)據(jù)BS輸出給在圖1中圖解說(shuō)明的后期量化單元16。另外,定長(zhǎng)編碼單元IM對(duì)編碼選擇單元152選擇的位平面進(jìn)行定長(zhǎng)編碼,并把獲得的編碼數(shù)據(jù)BS輸出給在圖1中圖解說(shuō)明的后期量化單元16。另外,變長(zhǎng)編碼單元153利用先前根據(jù)系數(shù)位的出現(xiàn)概率創(chuàng)建的編碼表,例如,先前相對(duì)于具有較大偏離的系數(shù)位預(yù)先優(yōu)化的編碼表進(jìn)行變長(zhǎng)編碼。1-3.熵編碼單元的操作下面說(shuō)明熵編碼單元15的操作。圖5是說(shuō)明熵編碼單元的操作的流程圖。應(yīng)注意圖5圖解說(shuō)明其中位深度BD變得大于或等于閾值Thd,或者有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值The,在從變長(zhǎng)編碼切換到定長(zhǎng)編碼的時(shí)候進(jìn)行編碼的情況。另外,在下面說(shuō)明的解碼中,為了能夠正確地從變長(zhǎng)編碼切換到定長(zhǎng)編碼,當(dāng)在更高一階的位平面上,有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thc時(shí),進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換。在步驟STl,熵編碼單元15輸入每個(gè)代碼塊的系數(shù)數(shù)據(jù),處理進(jìn)入步驟ST2。在步驟ST2,熵編碼單元15輸入每個(gè)位深度的位平面,處理進(jìn)入步驟ST3。熵編碼單元15隨同輸入的編碼目標(biāo)代碼塊,輸入從MSB —側(cè)到LSB —側(cè)的每個(gè)位深度的位平面的系數(shù)位。在步驟ST3,熵編碼單元15確定位深度BD是否大于或等于預(yù)先設(shè)定的閾值Thd。 當(dāng)位深度BD小于閾值Thd時(shí),熵編碼單元15進(jìn)入步驟ST4,當(dāng)位深度BD大于或等于閾值 Thd時(shí),熵編碼單元15進(jìn)入步驟ST7。在步驟ST4,熵編碼單元15計(jì)數(shù)有效數(shù)據(jù)的數(shù)目NB,并進(jìn)入步驟ST5。熵編碼單元 15計(jì)數(shù)比編碼目標(biāo)位平面高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB。在步驟ST5,熵編碼單元15確定有效數(shù)據(jù)的數(shù)目NB是否大于或等于預(yù)定設(shè)定的閾值The。當(dāng)有效數(shù)據(jù)的數(shù)目NB小于閾值Thc時(shí),熵編碼單元15進(jìn)入步驟ST6,當(dāng)有效數(shù)據(jù)的數(shù)目NB大于或等于閾值Thc時(shí),熵編碼單元15進(jìn)入步驟ST7。在步驟ST6,熵編碼單元15進(jìn)行變長(zhǎng)編碼。熵編碼單元15對(duì)編碼目標(biāo)位平面進(jìn)行變長(zhǎng)編碼,并進(jìn)入步驟ST8。在步驟ST7,熵編碼單元15進(jìn)行定長(zhǎng)編碼。熵編碼單元15對(duì)編碼目標(biāo)位平面進(jìn)行定長(zhǎng)編碼,并進(jìn)入步驟ST8。在步驟ST8,熵編碼單元15確定對(duì)所有位深度來(lái)說(shuō),處理是否都已完成。當(dāng)剩余在未進(jìn)行處理的位深度的位平面時(shí),熵編碼單元15返回步驟ST2,并通過(guò)輸入在新的位深度的位平面,進(jìn)行處理。另一方面,當(dāng)沒(méi)有剩余在未進(jìn)行處理的位深度的位平面時(shí),熵編碼單元15進(jìn)入步驟ST9。在步驟ST9,熵編碼單元15確定對(duì)所有代碼塊來(lái)說(shuō),處理是否都已完成。當(dāng)剩余未進(jìn)行處理的代碼塊時(shí),熵編碼單元15返回步驟ST1,并通過(guò)輸入新的代碼塊的系數(shù)數(shù)據(jù),進(jìn)行處理。另一方面,當(dāng)沒(méi)有剩余未進(jìn)行處理的代碼塊時(shí),熵編碼單元15結(jié)束熵編碼處理。應(yīng)注意由于當(dāng)位深度加深時(shí),有效數(shù)據(jù)的數(shù)目NB未減小,因此在有效數(shù)據(jù)的數(shù)目 NB變得大于或等于閾值Thc的情況下,也能夠在把在次深的位深度之后的所有位平面設(shè)定為定長(zhǎng)編碼的時(shí)候,結(jié)束一個(gè)代碼塊的處理。下面利用圖6A和6B,說(shuō)明熵編碼單元15的操作的一個(gè)具體例子。應(yīng)注意代碼塊的大小被設(shè)為“4X1”,閾值Thd被設(shè)為“7”,閾值Thc被設(shè)為“3”?!獋€(gè)代碼塊的系數(shù)數(shù)據(jù)被設(shè)定為例如基于十進(jìn)制數(shù)字表示的“19,149,10,37”,如圖6A中圖解所示。這種情況下,從系數(shù)位建模單元14向熵編碼單元15供給從代碼塊的 MSB 一側(cè)到LSB —側(cè)的各個(gè)位平面的系數(shù)位。應(yīng)注意在圖6A中,有效位用斜線表示。
熵編碼單元15通過(guò)步驟STl和步驟ST2的處理,輸入每個(gè)位平面的系數(shù)位。另外, 通過(guò)步驟ST3中的處理,當(dāng)輸入的系數(shù)位的位平面是位深度0 位深度6時(shí),熵編碼單元15 從步驟ST4進(jìn)行處理。此外,當(dāng)輸入的系數(shù)位的位平面大于或等于位深度7時(shí),熵編碼單元 15進(jìn)行步驟ST7中的處理。當(dāng)輸入在位深度0的位平面時(shí),由于有效數(shù)據(jù)的數(shù)目為“0”,因?yàn)椴淮嬖诟咭浑A的位平面,因此在步驟ST6,熵編碼單元15對(duì)在位深度0的位平面進(jìn)行變長(zhǎng)編碼。另外,通過(guò)在步驟ST8和步驟ST2中的處理,在位深度1的位平面的系數(shù)位被輸入,從而從步驟ST3進(jìn)行處理。另外,在反復(fù)進(jìn)行類似處理的時(shí)候,熵編碼單元15對(duì)一直到確定更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB小于閾值Thc的位深度4的各個(gè)位平面,進(jìn)行變長(zhǎng)編碼,并從作為確定更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB大于或等于閾值Thc的位平面的位深度 6開(kāi)始進(jìn)行定長(zhǎng)編碼。按照這種方式,進(jìn)行對(duì)于一個(gè)代碼塊的編碼。如圖6B中所示,下一個(gè)代碼塊的系數(shù)數(shù)據(jù)被設(shè)定為基于十進(jìn)制數(shù)字表示的“5, 13,2,1”。在這種情況下,從系數(shù)位建模單元14向熵編碼單元15供給在從代碼塊的MSB — 側(cè)到LSB —側(cè)的各個(gè)深度的位平面。應(yīng)注意在圖6B中,有效位用斜線表示。熵編碼單元15通過(guò)步驟STl和步驟ST2的處理,輸入每個(gè)位平面的系數(shù)位。另外,通過(guò)步驟ST3中的處理,當(dāng)輸入的系數(shù)位的位表面在位深度0 位深度6時(shí),熵編碼單元15進(jìn)行從步驟ST4開(kāi)始的處理,當(dāng)輸入的位平面在位深度7時(shí),熵編碼單元15進(jìn)行步驟 ST7中的處理。當(dāng)輸入的位平面在位深度0時(shí),由于有效數(shù)據(jù)的數(shù)目為“0”,因?yàn)椴淮嬖诟咭浑A的位平面,因此在步驟ST6,熵編碼單元15對(duì)在位深度0的位平面進(jìn)行變長(zhǎng)編碼。另外,通過(guò)在步驟ST8和步驟ST2中的處理,在位深度1的位平面的系數(shù)位被輸入,從而進(jìn)行從步驟 ST3開(kāi)始的處理。另外,在反復(fù)進(jìn)行類似處理的時(shí)候,由于一直到位深度6,在更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB都不大于或等于閾值The,因此熵編碼單元15對(duì)一直到位深度 6的位平面進(jìn)行變長(zhǎng)編碼。另外,當(dāng)位深度變成位深度7時(shí),位深度大于或等于閾值Thd,熵編碼單元15進(jìn)行定長(zhǎng)編碼。按照這種方式,進(jìn)行對(duì)于下一個(gè)代碼塊的編碼。圖7A和7B舉例說(shuō)明編碼表,其中圖7A圖解說(shuō)明預(yù)先根據(jù)系數(shù)位的出現(xiàn)概率創(chuàng)建的編碼表,例如,相對(duì)于具有較大偏離的系數(shù)位優(yōu)化的編碼表。圖7A圖解說(shuō)明其中當(dāng)與具有較大數(shù)目的有效數(shù)據(jù)的位平面相比,具有較少數(shù)目的有效數(shù)據(jù)的位平面的數(shù)目增大時(shí), 產(chǎn)生系數(shù)位的偏離的情況。在這種情況下,通過(guò)減少分配給具有較少數(shù)目的有效數(shù)據(jù)的位平面的位,以增大分配給具有較大數(shù)目的有效數(shù)據(jù)的位平面的位,優(yōu)化編碼表。應(yīng)注意圖7B 圖解說(shuō)明現(xiàn)有技術(shù)中的不按照偏離進(jìn)行優(yōu)化的編碼表。當(dāng)對(duì)圖6A中圖解說(shuō)明的代碼塊如上所述進(jìn)行編碼,并在變長(zhǎng)編碼中利用在圖7A 中圖解說(shuō)明的編碼表時(shí),從位深度0到位深度4的編碼長(zhǎng)度為“3,2,3,4,4”。另外,當(dāng)定長(zhǎng)編碼中的碼長(zhǎng)被設(shè)定為“4”時(shí),在位深度5,6和7的相應(yīng)碼長(zhǎng)為“4”,整個(gè)代碼塊的碼長(zhǎng)為 28位。應(yīng)注意在利用在圖7B中圖解說(shuō)明的編碼表的情況下,從位深度0到位深度4的編碼長(zhǎng)度為“4,3,4,4,4”。另外,當(dāng)定長(zhǎng)編碼中的碼長(zhǎng)被設(shè)為“4”時(shí),在位深度5,6和7的相應(yīng)碼長(zhǎng)為“4”,整個(gè)代碼塊的碼長(zhǎng)為31位。于是,通過(guò)利用相對(duì)于具有較大偏離的系數(shù)位優(yōu)化的編碼表,能夠提高編碼效率。另外,就圖6B中圖解說(shuō)明的代碼塊來(lái)說(shuō),在如上所述進(jìn)行編碼的時(shí)候,當(dāng)在變長(zhǎng)
10編碼中利用圖7A中圖解說(shuō)明的編碼表時(shí),從位深度4到位深度6的編碼長(zhǎng)度為“3,4,4”。 另外,當(dāng)定長(zhǎng)編碼中的碼長(zhǎng)被設(shè)為“4”時(shí),在位深度7的碼長(zhǎng)為“4”。另外,位深度0 位深度3是在編碼時(shí)被跳過(guò)的零位平面,整個(gè)代碼塊的碼長(zhǎng)為15位。應(yīng)注意在利用圖7B中圖解說(shuō)明的編碼表的情況下,從位深度4到位深度6的編碼長(zhǎng)度為“4,4,4”,整個(gè)代碼塊的碼長(zhǎng)為16位。于是,通過(guò)利用相對(duì)于具有較大偏離的系數(shù)位優(yōu)化的編碼表,能夠提高編碼效率。應(yīng)注意在上述說(shuō)明中,當(dāng)位深度變得大于或等于閾值Thd時(shí),或者當(dāng)更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thc時(shí),進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換。不過(guò),盡管圖中未示出,當(dāng)位深度變得大于或等于閾值Thd時(shí),和有效數(shù)據(jù)的數(shù)目NB 變得大于或等于閾值Thc時(shí),熵編碼單元15可在從變長(zhǎng)編碼切換到定長(zhǎng)編碼的時(shí)候進(jìn)行編碼。即,對(duì)于位深度大于或等于閾值Thd和/或更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB 大于或等于閾值Thc的位平面,編碼選擇單元152選擇定長(zhǎng)編碼,對(duì)于其他位平面,編碼選擇單元152選擇變長(zhǎng)編碼。此外,可以對(duì)每個(gè)頻帶設(shè)定閾值Thd。圖8圖解說(shuō)明其中對(duì)每個(gè)頻帶設(shè)定閾值的情況。例如,圖8圖解說(shuō)明其中就子帶3L來(lái)說(shuō),閾值Thd被設(shè)為位深度4,就子帶3H,2H和 IH來(lái)說(shuō),閾值Thd被設(shè)為位深度5的情況,斜線部分指示進(jìn)行定長(zhǎng)編碼的位平面。當(dāng)對(duì)每個(gè)頻帶設(shè)定閾值Thd時(shí),能夠進(jìn)一步提高編碼頻率。例如,在當(dāng)頻率被增大的時(shí)候,具有較大數(shù)目的有效數(shù)據(jù)的位平面的數(shù)目減少的情況下,如果設(shè)定與具有低頻率的子帶相適應(yīng)的閾值Thd,那么在具有高頻率的子帶中,通過(guò)變長(zhǎng)編碼能夠減少位的數(shù)目的位平面受到定長(zhǎng)編碼。當(dāng)對(duì)每個(gè)頻帶設(shè)定閾值Thd時(shí),在具有高頻率的子帶中,通過(guò)在較深的位深度的位置設(shè)定閾值Thd,阻止對(duì)具有較少數(shù)目的有效數(shù)據(jù)的位平面進(jìn)行定長(zhǎng)編碼,從而能夠提高編碼效率。如上所述,由于熵編碼單元15按照系數(shù)數(shù)據(jù)的位深度和有效數(shù)據(jù)的數(shù)目,選擇變長(zhǎng)編碼或定長(zhǎng)編碼,因此能夠提高編碼效率。另外,通過(guò)相對(duì)于具有較大偏離的系數(shù)位,優(yōu)化用在變長(zhǎng)編碼中的編碼表,能夠進(jìn)一步提高編碼效率。1-4.圖像解碼設(shè)備的結(jié)構(gòu)下面說(shuō)明圖像解碼設(shè)備。圖9圖解說(shuō)明按照本發(fā)明的一個(gè)實(shí)施例的圖像解碼設(shè)備的示意結(jié)構(gòu)。圖像解碼設(shè)備20配有報(bào)頭分析單元21,熵解碼單元22,系數(shù)位逆建模 (demodeling)單元23,逆量化單元24,系數(shù)數(shù)據(jù)校正處理單元25,逆正交變換單元沈,和逆顏色轉(zhuǎn)換單元27。報(bào)頭分析單元21從圖像編碼設(shè)備輸出的流數(shù)據(jù)中讀取報(bào)頭信息(例如,位截?cái)辔恢玫鹊?,以便分析。報(bào)頭分析單元21把分析結(jié)果輸出給熵解碼單元22或系數(shù)數(shù)據(jù)校正處理單元25。另外,報(bào)頭分析單元21把流數(shù)據(jù)中的編碼數(shù)據(jù)輸出給熵解碼單元22。熵解碼單元22利用關(guān)于報(bào)頭信息的分析結(jié)果對(duì)編碼數(shù)據(jù)進(jìn)行與熵編碼單元15進(jìn)行的編碼對(duì)應(yīng)的解碼。熵解碼單元22把通過(guò)對(duì)編碼數(shù)據(jù)進(jìn)行解碼而獲得的位平面輸出給系數(shù)位逆建模單元23。系數(shù)位逆建模單元23進(jìn)行由系數(shù)位建模單元14進(jìn)行的處理的逆處理。即,系數(shù)位逆建模單元23使從熵解碼單元22輸出的位平面的系數(shù)位層次化,從而產(chǎn)生每個(gè)代碼塊的系數(shù)數(shù)據(jù)。系數(shù)位逆建模單元23把產(chǎn)生的代碼塊的系數(shù)數(shù)據(jù)輸出給逆量化單元24。
逆量化單元M用與量化單元13對(duì)應(yīng)的預(yù)定計(jì)算表達(dá)式,對(duì)從系數(shù)位逆建模單元 23輸出的系數(shù)數(shù)據(jù)進(jìn)行逆量化,生成逆量化的系數(shù)數(shù)據(jù),以便輸出給系數(shù)數(shù)據(jù)校正處理單元25。系數(shù)數(shù)據(jù)校正處理單元25根據(jù)關(guān)于報(bào)頭信息的分析結(jié)果,確定截?cái)辔唬⑼ㄟ^(guò)在截?cái)辔坏奈恢貌迦胄碌臄?shù)據(jù),校正系數(shù)數(shù)據(jù)。另外,系數(shù)數(shù)據(jù)校正處理單元25通過(guò)量化,對(duì)截?cái)辔贿M(jìn)行校正。系數(shù)數(shù)據(jù)校正處理單元25把校正后的系數(shù)數(shù)據(jù)輸出給逆正交變換單元 26。逆正交變換單元沈?qū)南禂?shù)數(shù)據(jù)校正處理單元25輸出的系數(shù)數(shù)據(jù)進(jìn)行與圖像編碼設(shè)備的正交變換單元12對(duì)應(yīng)的逆變換,從而產(chǎn)生圖像數(shù)據(jù)。逆顏色轉(zhuǎn)換單元27對(duì)逆正交變換單元沈獲得的圖像數(shù)據(jù)進(jìn)行與圖像編碼設(shè)備的顏色轉(zhuǎn)換單元11對(duì)應(yīng)的預(yù)定逆顏色轉(zhuǎn)換,產(chǎn)生待輸出的輸出圖像數(shù)據(jù)。1-5.熵解碼單元的結(jié)構(gòu)圖10圖解說(shuō)明熵解碼單元22的結(jié)構(gòu)。熵解碼單元22配有解碼選擇單元221,變長(zhǎng)解碼單元222,定長(zhǎng)解碼單元223,和有效位檢測(cè)處理單元224。解碼選擇單元221選擇變長(zhǎng)解碼單元222或者定長(zhǎng)解碼單元223,并把輸入的編碼數(shù)據(jù)BS輸出給選擇的解碼單元。解碼選擇單元221進(jìn)行與熵編碼單元15的編碼選擇單元 152對(duì)應(yīng)的選擇處理,根據(jù)位深度和閾值Th之間的比較結(jié)果,和/或更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB與閾值Thc之間的比較結(jié)果,選擇變長(zhǎng)解碼或定長(zhǎng)解碼。應(yīng)注意閾值可由熵編碼單元和熵解碼單元預(yù)先決定,報(bào)頭信息也可包括在熵編碼單元中使用的閾值。變長(zhǎng)解碼單元222把通過(guò)對(duì)編碼數(shù)據(jù)BS進(jìn)行變長(zhǎng)解碼而獲得的位平面的系數(shù)位 DT輸出給有效位檢測(cè)處理單元2M和圖9中圖解說(shuō)明的系數(shù)位逆建模單元23。另外,定長(zhǎng)解碼單元223把通過(guò)對(duì)編碼數(shù)據(jù)BS進(jìn)行定長(zhǎng)解碼而獲得的位平面的系數(shù)位DT輸出給圖9 中圖解說(shuō)明的系數(shù)位逆建模單元23。有效位檢測(cè)處理單元2 從解碼的位平面中檢測(cè)有效數(shù)據(jù)的數(shù)目NB,并把有效數(shù)據(jù)的數(shù)目NB輸出給解碼選擇單元221。例如,假定編碼是從MSB—側(cè)開(kāi)始進(jìn)行的,根據(jù)位深度BD和/或有效數(shù)據(jù)的數(shù)目NB與閾值Thc之間的比較結(jié)果,進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換。在這種情況下,有效位檢測(cè)處理單元2M從由變長(zhǎng)解碼單元222解碼的位平面中檢測(cè)有效數(shù)據(jù)的數(shù)目NB。1-6.熵解碼單元的操作圖11是說(shuō)明熵解碼單元的操作的流程圖。應(yīng)注意圖11圖解說(shuō)明其中當(dāng)位深度BD 大于或等于閾值Thd時(shí),或者當(dāng)更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB大于或等于閾值 Thc時(shí),在從變長(zhǎng)解碼切換到定長(zhǎng)解碼的時(shí)候,進(jìn)行解碼的情況。應(yīng)注意當(dāng)更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB大于或等于閾值Thc時(shí),熵解碼單元進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換。在步驟ST21,熵解碼單元22確定位深度是否大于或等于閾值Thd。當(dāng)經(jīng)過(guò)解碼的編碼數(shù)據(jù)的位深度BD小于閾值Thd時(shí),熵解碼單元22進(jìn)入步驟ST22,當(dāng)位深度大于或等于閾值Thd時(shí),熵解碼單元22進(jìn)入步驟ST25。在步驟ST22,熵解碼單元22計(jì)數(shù)有效數(shù)據(jù)的數(shù)目NB。熵解碼單元22計(jì)數(shù)與將通過(guò)進(jìn)行解碼而產(chǎn)生的位平面相比,高一階的解碼位平面上的有效數(shù)據(jù)的數(shù)目NB,并進(jìn)入步驟 ST23。在步驟ST23,熵解碼單元22確定有效數(shù)據(jù)的數(shù)目NB是否大于或等于閾值The。當(dāng)有效數(shù)據(jù)的數(shù)目NB小于閾值Thc時(shí),熵解碼單元22進(jìn)入步驟ST24,當(dāng)有效數(shù)據(jù)的數(shù)目NB 大于或等于閾值Thc時(shí),熵解碼單元22進(jìn)入步驟ST25。在步驟STM,熵解碼單元22進(jìn)行變長(zhǎng)解碼。熵解碼單元22利用與在熵編碼單元 15中使用的變長(zhǎng)編碼表對(duì)應(yīng)的變長(zhǎng)解碼表,這種情況下,預(yù)先根據(jù)系數(shù)位的出現(xiàn)概率創(chuàng)建的解碼表,對(duì)編碼數(shù)據(jù)BS進(jìn)行變長(zhǎng)解碼,生成位平面,并進(jìn)入步驟SD6。在步驟ST25,熵解碼單元22進(jìn)行定長(zhǎng)編碼。熵解碼單元22利用與在熵編碼單元 15中使用的定長(zhǎng)編碼表對(duì)應(yīng)的定長(zhǎng)解碼表,對(duì)編碼數(shù)據(jù)BS進(jìn)行定長(zhǎng)解碼,生成位平面,并進(jìn)入步驟SD6。在步驟SD6,熵解碼單元22確定對(duì)于所有位深度,處理是否都已完成。當(dāng)剩余在未進(jìn)行解碼的位深度的位平面時(shí),熵解碼單元22返回步驟ST21,并繼續(xù)解碼處理。另外,當(dāng)獲得在代碼塊的相應(yīng)位深度的位平面時(shí),熵解碼單元22進(jìn)入步驟ST27。在步驟ST27,熵解碼單元22確定對(duì)于所有代碼塊,處理是否都已完成。當(dāng)剩余未進(jìn)行解碼的編碼數(shù)據(jù)時(shí),熵解碼單元22返回步驟ST21,通過(guò)進(jìn)行解碼,獲得在新的代碼塊的相應(yīng)位深度的位平面。另一方面,當(dāng)沒(méi)有剩余未進(jìn)行處理的編碼數(shù)據(jù)時(shí),熵解碼單元22 結(jié)束熵解碼處理。應(yīng)注意由于當(dāng)位深度加深時(shí),有效數(shù)據(jù)的數(shù)目NB不減小,因此如果有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值The,那么也能夠在所有都設(shè)定定長(zhǎng)編碼的時(shí)候,進(jìn)行一個(gè)代碼塊的解碼。當(dāng)進(jìn)行上述解碼時(shí),例如,在解碼圖6A中圖解說(shuō)明的代碼塊的編碼數(shù)據(jù)的情況下,如圖12中圖解所示,從位深度0開(kāi)始進(jìn)行變長(zhǎng)解碼。之后,當(dāng)在位深度5的更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB大于或等于閾值Thc “3”時(shí),進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換,從而能夠正確地獲得在位深度5,6和7的位平面。另外,例如,在解碼圖6B中圖解說(shuō)明的代碼塊的編碼數(shù)據(jù)的情況下,一直到位深度6都進(jìn)行變長(zhǎng)解碼,在位深度7,由于該位深度是閾值Thd,因此進(jìn)行定長(zhǎng)解碼。于是,編碼數(shù)據(jù)被正確解碼。應(yīng)注意在上述說(shuō)明中,在與編碼對(duì)應(yīng)的時(shí)候,當(dāng)位深度變得大于或等于閾值Thd, 或者當(dāng)更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值The時(shí),進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換。不過(guò),在編碼中,在當(dāng)位深度大于或等于閾值Thd,和有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thc時(shí),進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換的情況下,如果位深度大于或等于閾值Thd,和有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值The,那么可進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換。即,在對(duì)應(yīng)于編碼選擇單元152的時(shí)候,在位深度大于或等于閾值 Thd,和/或更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB大于或等于閾值Thc的情況下,解碼選擇單元221選擇定長(zhǎng)解碼,對(duì)于其他平面,則選擇變長(zhǎng)解碼。這樣,按照第一實(shí)施例,在考慮系數(shù)位“0”和“ 1,,的出現(xiàn)概率的時(shí)候,根據(jù)位深度和有效數(shù)據(jù)的數(shù)目,進(jìn)行變長(zhǎng)編碼或定長(zhǎng)編碼的選擇。另外,在變長(zhǎng)編碼中,利用在考慮到系數(shù)數(shù)據(jù)的偏離時(shí)優(yōu)化的編碼表。于是,能夠提高編碼效率。另外,由于能夠提高編碼效率, 因此能夠進(jìn)一步抑制由后期量化引起的在圖像中產(chǎn)生的不適感,不清楚感等等。此外,在進(jìn)行定長(zhǎng)編碼的情況下,不參考Huffman表,與全進(jìn)行變長(zhǎng)編碼的情況相比,減小了計(jì)算量。
2.第二實(shí)施例順便提及,系數(shù)數(shù)據(jù)的位分布隨上下文(例如,顏色分量、頻帶信息等之一,或者它們的組合)變化。于是,如果用于按照上下文,確定是選擇變長(zhǎng)編碼還是定長(zhǎng)編碼的閾值被優(yōu)化,那么能夠提高編碼效率。另外,如果與上下文相適應(yīng)的變長(zhǎng)編碼表被優(yōu)化,那么能夠進(jìn)一步提高編碼效率。下面,作為第二個(gè)實(shí)施例,說(shuō)明利用上下文的編碼處理和解碼處理。2-1.熵編碼單元的結(jié)構(gòu)圖13圖解說(shuō)明按照上下文優(yōu)化閾值的熵編碼單元的結(jié)構(gòu)。熵編碼單元1 具有有效位檢測(cè)處理單元151,編碼選擇單元152a,變長(zhǎng)編碼單元153a和定長(zhǎng)編碼單元154。有效位檢測(cè)處理單元151從編碼目標(biāo)的位深度,計(jì)算存在于MSB 一側(cè)的有效數(shù)據(jù)的數(shù)目NB,以便輸出給編碼選擇單元15加。根據(jù)有效數(shù)據(jù)的數(shù)目NB和編碼目標(biāo)塊的位深度BD,對(duì)于代碼塊的每個(gè)位深度,編碼選擇單元15 確定是通過(guò)變長(zhǎng)編碼還是定長(zhǎng)編碼對(duì)該位平面編碼。編碼選擇單元15 把在確定進(jìn)行變長(zhǎng)編碼的位深度的位平面輸出給變長(zhǎng)編碼單元153a。另一方面,編碼選擇單元15 把在確定進(jìn)行定長(zhǎng)編碼的位深度的位平面輸出給定長(zhǎng)編碼單元154。此外,編碼選擇單元15 通過(guò)把按照上下文TCa優(yōu)化的閾值Thd和Thc用作與位深度比較的閾值Thd, 和與有效數(shù)據(jù)的數(shù)目NB比較的閾值The,進(jìn)行變長(zhǎng)編碼和定長(zhǎng)編碼之間的選擇。變長(zhǎng)編碼單元153a進(jìn)行由編碼選擇單元15 選擇的位平面的變長(zhǎng)編碼,并把獲得的編碼數(shù)據(jù)BS輸出給在圖1中圖解說(shuō)明的后期量化單元16。此外,變長(zhǎng)編碼單元153a 通過(guò)不僅利用具有較大偏離的系數(shù)位,而且利用按照上下文TCb優(yōu)化的編碼表,進(jìn)行變長(zhǎng)編碼。定長(zhǎng)編碼單元IM進(jìn)行由編碼選擇單元15 選擇的位平面的定長(zhǎng)編碼,并把獲得的編碼數(shù)據(jù)BS輸出給在圖1中圖解說(shuō)明的后期量化單元16。應(yīng)注意上下文TCa和上下文TCt可以彼此相同,或者彼此不同。此外,還可采用其中編碼選擇單元15 按照上下文TEa,改變閾值Thd或Thc的結(jié)構(gòu)。此外,還可采用其中編碼選擇單元15 和變長(zhǎng)編碼單元153a之一使用上下文的結(jié)構(gòu)。另外,這同樣適用于下面說(shuō)明的熵解碼單元22a。2-2.熵編碼單元的操作下面說(shuō)明熵編碼單元1 的操作。圖14是說(shuō)明熵編碼單元1 的操作的流程圖。 應(yīng)注意圖14圖解說(shuō)明其中當(dāng)位深度變得大于或等于按照上下文決定的閾值Thda時(shí),或者當(dāng)在更高一階的位平面上的有效數(shù)據(jù)的數(shù)目變得大于或等于按照上下文決定的閾值Thca 時(shí),在從變長(zhǎng)編碼切換以定長(zhǎng)編碼的時(shí)候,進(jìn)行編碼的情況。另外,在解碼中,為了使得能夠以位平面為單位,正確地進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換,當(dāng)位深度變得大于或等于閾值Thda時(shí),進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換。另外,當(dāng)在更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thca時(shí),進(jìn)行從變長(zhǎng)編碼到定長(zhǎng)編碼的切換。在步驟ST31,熵編碼單元1 輸入每個(gè)代碼塊的系數(shù)數(shù)據(jù),處理進(jìn)入步驟ST32。在步驟ST32,熵編碼單元1 輸入每個(gè)位深度的位平面,處理進(jìn)入步驟ST33。熵編碼單元15a隨同輸入的編碼目標(biāo)代碼塊,輸入從MSB 一側(cè)到LSB —側(cè)的每個(gè)位深度的位平面。
在步驟ST33,熵編碼單元1 按照上下文進(jìn)行設(shè)定。熵編碼單元1 設(shè)定按照上下文優(yōu)化的閾值Thda和Thca。另外,熵編碼單元1 進(jìn)行設(shè)定,以便不僅利用具有較大偏離的系數(shù)位,而且利用按照上下文優(yōu)化的編碼表,并進(jìn)入步驟ST34。在步驟ST34,熵編碼單元1 確定位深度是否大于或等于閾值Thda。當(dāng)位深度小于閾值Thda時(shí),熵編碼單元1 進(jìn)入步驟ST35,當(dāng)位深度大于或等于閾值Thda時(shí),熵編碼單元1 進(jìn)入步驟ST38。在步驟ST35,熵編碼單元1 計(jì)數(shù)有效數(shù)據(jù)的數(shù)目NB,并進(jìn)入步驟ST36。熵編碼單元1 計(jì)數(shù)比編碼目標(biāo)位平面高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB。在步驟ST36,熵編碼單元1 確定有效數(shù)據(jù)的數(shù)目NB是否大于或等于閾值Thca。 當(dāng)有效數(shù)據(jù)的數(shù)目小于閾值Thca時(shí),熵編碼單元1 進(jìn)入步驟ST37,當(dāng)有效數(shù)據(jù)的數(shù)目NB 大于或等于閾值iThca時(shí),熵編碼單元1 進(jìn)入步驟ST38。在步驟ST37,熵編碼單元1 進(jìn)行變長(zhǎng)編碼。熵編碼單元1 對(duì)位平面進(jìn)行變長(zhǎng)編碼,并進(jìn)入步驟ST39。另外,熵編碼單元1 不僅利用具有較大偏離的系數(shù)位,而且利用按照上下文優(yōu)化的編碼表進(jìn)行變長(zhǎng)編碼。在步驟ST38,熵編碼單元1 進(jìn)行定長(zhǎng)編碼。熵編碼單元1 對(duì)位平面進(jìn)行定長(zhǎng)編碼,并進(jìn)入步驟ST39。在步驟ST39,熵編碼單元1 確定對(duì)于所有位深度,處理是否都已完成。當(dāng)剩余未進(jìn)行處理的位深度時(shí),熵編碼單元1 返回步驟ST32,通過(guò)輸入在新的位深度的位平面,進(jìn)行處理。另一方面,當(dāng)沒(méi)有剩余未進(jìn)行處理的位深度時(shí),熵編碼單元1 進(jìn)入步驟ST40。在步驟ST40,熵編碼單元1 確定對(duì)于所有代碼塊,處理是否都已完成。當(dāng)剩余未進(jìn)行處理的代碼塊時(shí),熵編碼單元1 返回步驟ST31,通過(guò)輸入新的代碼塊的系數(shù)數(shù)據(jù),進(jìn)行處理。另一方面,當(dāng)沒(méi)有剩余未進(jìn)行處理的代碼塊時(shí),熵編碼單元1 結(jié)束熵編碼處理。這樣,熵編碼單元15a利用與上下文相適應(yīng)的閾值Thda和Thca進(jìn)行變長(zhǎng)編碼和定長(zhǎng)編碼之間的選擇。此外,熵編碼單元1 不僅利用具有較大偏離的系數(shù)位,而且利用按照上下文優(yōu)化的編碼表進(jìn)行變長(zhǎng)編碼。于是,熵編碼單元1 能夠進(jìn)一步提高編碼效率。2-3.熵解碼單元的結(jié)構(gòu)圖15圖解說(shuō)明熵解碼單元2 的結(jié)構(gòu)。熵解碼單元2 配有解碼選擇單元221a, 變長(zhǎng)解碼單元22加,定長(zhǎng)解碼單元223,和有效位檢測(cè)處理單元224。解碼選擇單元221a選擇變長(zhǎng)解碼單元22 或者定長(zhǎng)解碼單元223,并把編碼數(shù)據(jù)BS輸出給選擇的解碼單元。解碼選擇單元221a進(jìn)行與熵編碼單元15a的編碼選擇單元 152a對(duì)應(yīng)的選擇處理,并在根據(jù)位深度和閾值Thda之間的比較結(jié)果,和/或更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB和閾值Thca之間的比較結(jié)果,從變長(zhǎng)解碼切換成定長(zhǎng)解碼的時(shí)候,進(jìn)行解碼。應(yīng)注意閾值可由熵編碼單元和熵解碼單元預(yù)先決定,另外,在熵編碼單元中使用的閾值可被包括在報(bào)頭信息中。另外,對(duì)閾值來(lái)說(shuō),和編碼中類似,使用按照上下文 TCa優(yōu)化的閾值。變長(zhǎng)解碼單元22 把通過(guò)對(duì)編碼數(shù)據(jù)BS進(jìn)行變長(zhǎng)編碼而獲得的位平面的系數(shù)位 DT輸出給有效位檢測(cè)處理單元2M和在圖9中圖解說(shuō)明的系數(shù)位逆建模單元23。另外,變長(zhǎng)解碼單元22 使用與在熵編碼單元1 的變長(zhǎng)編碼單元153a中使用的編碼表對(duì)應(yīng)的解碼表,進(jìn)行變長(zhǎng)解碼。即,不僅具有較大偏離的系數(shù)位,而且按照上下文TCt優(yōu)化的解碼表都被用于進(jìn)行變長(zhǎng)解碼。定長(zhǎng)解碼單元223把通過(guò)對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)編碼而獲得的位平面的系數(shù)位DT 輸出給在圖9中圖解說(shuō)明的系數(shù)位逆建模單元23。有效位檢測(cè)處理單元2 從輸出自變長(zhǎng)解碼單元22 的位平面的系數(shù)位DT中檢測(cè)有效數(shù)據(jù)的數(shù)目NB,并把有效數(shù)據(jù)的數(shù)目NB輸出給解碼選擇單元221a。2-4.熵解碼單元的操作圖16是說(shuō)明熵解碼單元的操作的流程圖。應(yīng)注意圖16圖解說(shuō)明其中當(dāng)位深度變得大于或等于閾值Thda時(shí),或者當(dāng)有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thca時(shí),在從變長(zhǎng)解碼切換到定長(zhǎng)解碼的時(shí)候進(jìn)行解碼的情況。應(yīng)注意當(dāng)更高一階的位平面上的有效數(shù)據(jù)的數(shù)目NB變得大于或等于閾值Thca時(shí),熵解碼單元進(jìn)行從變長(zhǎng)解碼到定長(zhǎng)解碼的切換。在步驟ST51,熵解碼單元2 按照上下文進(jìn)行設(shè)定。熵解碼單元2 設(shè)定按照上下文優(yōu)化的閾值Thda和Thca。另外,熵解碼單元2 在不僅利用具有較大偏離的系數(shù)位, 而且利用按照上下文優(yōu)化的編碼表的時(shí)候進(jìn)行設(shè)定,并進(jìn)入步驟ST52。應(yīng)注意上下文可由熵編碼單元和熵解碼單元預(yù)先決定,另外,上下文可被包括在報(bào)頭信息中。在步驟ST52,熵解碼單元2 確定位深度是否大于或等于閾值Thda。當(dāng)進(jìn)行解碼的編碼數(shù)據(jù)的位深度小于閾值Thda時(shí),熵解碼單元2 進(jìn)入步驟ST53,當(dāng)編碼數(shù)據(jù)的位深度大于或等于閾值iThda時(shí),熵解碼單元2 進(jìn)入步驟ST56。在步驟ST53,熵解碼單元2 計(jì)數(shù)有效數(shù)據(jù)的數(shù)目NB。熵解碼單元2 從解碼的位平面中,選擇具有最大位深度的位平面,并計(jì)數(shù)所選位平面中的有效數(shù)據(jù)的數(shù)目NB,以進(jìn)入步驟ST54。在步驟STM,熵解碼單元2 確定有效數(shù)據(jù)的數(shù)目NB是否大于或等于閾值Thca。 當(dāng)有效數(shù)據(jù)的數(shù)目NB小于閾值Thca時(shí),熵解碼單元2 進(jìn)入步驟ST55,當(dāng)有效數(shù)據(jù)的數(shù)目 NB大于或等于閾值Thca時(shí),熵解碼單元2 進(jìn)入步驟ST56。在步驟ST55,熵解碼單元2 進(jìn)行變長(zhǎng)解碼。熵解碼單元2 使用與在熵編碼單元15a中使用的變長(zhǎng)編碼表對(duì)應(yīng)的變長(zhǎng)解碼表,進(jìn)行變長(zhǎng)解碼,生成位平面,并進(jìn)入步驟 ST57。在步驟ST56,熵解碼單元2 進(jìn)行定長(zhǎng)解碼。熵解碼單元2 使用與在熵編碼單元15a中使用的定長(zhǎng)編碼表對(duì)應(yīng)的定長(zhǎng)解碼表,進(jìn)行定長(zhǎng)解碼,生成位平面,并進(jìn)入步驟 ST57。在步驟ST57,熵解碼單元2 確定對(duì)所有位深度來(lái)說(shuō),處理是否都已完成。當(dāng)剩余未進(jìn)行解碼的位深度時(shí),熵解碼單元2 返回步驟ST52,并繼續(xù)解碼處理。另外,當(dāng)獲得在代碼塊的相應(yīng)位深度的位平面時(shí),熵解碼單元2 進(jìn)入步驟ST58。在步驟ST58,熵解碼單元2 確定對(duì)所有代碼塊來(lái)說(shuō),處理是否都已完成。當(dāng)剩余未進(jìn)行解碼的編碼數(shù)據(jù)時(shí),熵解碼單元2 返回步驟ST52,通過(guò)進(jìn)行解碼,獲得在新的代碼塊的相應(yīng)位深度的位平面。另一方面,當(dāng)未剩余未進(jìn)行處理的編碼數(shù)據(jù)時(shí),熵解碼單元2 結(jié)束熵解碼處理。當(dāng)用熵解碼單元2 進(jìn)行上述解碼時(shí),即使當(dāng)按照上下文進(jìn)行關(guān)于閾值和編碼表的設(shè)定時(shí),也能夠正確地對(duì)編碼數(shù)據(jù)進(jìn)行解碼。這樣,按照第二實(shí)施例,變長(zhǎng)編碼和定長(zhǎng)編碼之間的選擇是按照上下文(有效位的數(shù)目,位深度等等)自適應(yīng)地進(jìn)行的。另外,在變長(zhǎng)編碼中,使用適應(yīng)于上下文的變長(zhǎng)編碼表。為此,在系數(shù)位的偏離較大的情況下,利用相對(duì)于這種情況優(yōu)化的Huffman表進(jìn)行變長(zhǎng)編碼,在所述偏離較小的情況下,通過(guò)定長(zhǎng)編碼進(jìn)行編碼,以致編碼效率被提高。利用這種結(jié)構(gòu),能夠進(jìn)一步抑制由后期量化引起的在圖像中產(chǎn)生的不適感或不清楚感。3.用計(jì)算機(jī)進(jìn)行編碼和解碼的情況上述一系列處理可用硬件執(zhí)行,也可用軟件執(zhí)行。在用軟件執(zhí)行所述一系列處理的情況下,使用具有專用硬件的計(jì)算機(jī),構(gòu)成所述軟件的程序結(jié)合在所述專用硬件中。另一方面,例如,使用通過(guò)安裝各種程序,能夠?qū)崿F(xiàn)各種功能的通用個(gè)人計(jì)算機(jī)從程序記錄介質(zhì)安裝所述軟件。圖17圖解說(shuō)明利用程序,執(zhí)行上述處理的計(jì)算機(jī)的硬件結(jié)構(gòu)例子。在計(jì)算機(jī)60中,CPU (中央處理器)61,ROM (只讀存儲(chǔ)器)62,和RAM (隨機(jī)存取存儲(chǔ)器)63經(jīng)總線64相互連接。此外,輸入和輸出接口 5連接到總線64。由鍵盤(pán)、鼠標(biāo)等構(gòu)成的用戶接口單元66, 輸入圖像數(shù)據(jù)的輸入單元67,由顯示器等構(gòu)成的輸出單元68,由硬盤(pán)、非易失性存儲(chǔ)器等構(gòu)成的記錄單元69等連接到輸入和輸出接口 65。此外,由網(wǎng)絡(luò)接口等構(gòu)成的通信單元70, 和驅(qū)動(dòng)可拆卸介質(zhì)80,比如磁盤(pán)、光盤(pán)、磁光盤(pán)或半導(dǎo)體存儲(chǔ)器的驅(qū)動(dòng)器71連接到輸入和輸出接口 65。在這樣構(gòu)成的計(jì)算機(jī)中,CPU 61經(jīng)輸入和輸出接口 65,及總線64,把記錄在記錄單元69中的程序載入RAM 63中,以便執(zhí)行,從而實(shí)現(xiàn)上述一系列的處理。由計(jì)算機(jī)(CPU 61)執(zhí)行的程序是通過(guò)被記錄在充當(dāng)由磁盤(pán)(包括軟盤(pán)),光盤(pán) (CD-ROM(光盤(pán)-只讀存儲(chǔ)器),DVD (數(shù)字通用光盤(pán))等),磁光盤(pán),或者半導(dǎo)體存儲(chǔ)器構(gòu)成的套裝介質(zhì)的可拆卸介質(zhì)80上,或者經(jīng)諸如局域網(wǎng),因特網(wǎng)或數(shù)字衛(wèi)星廣播之類的有線或無(wú)線傳輸介質(zhì)提供的。隨后,通過(guò)把可拆卸介質(zhì)80安裝到驅(qū)動(dòng)器71中,可經(jīng)輸入和輸出接口 65把程序安裝到記錄單元69中。另外,程序可經(jīng)有線或無(wú)線傳輸介質(zhì),被通信單元70接收,并被安裝在記錄單元69中。另外,程序可被預(yù)先安裝到ROM 62或記錄單元69中。應(yīng)注意計(jì)算機(jī)執(zhí)行的程序可以是其中按照在本說(shuō)明書(shū)中說(shuō)明的順序,時(shí)序地執(zhí)行處理的程序,或者其中并行地或在適當(dāng)?shù)臅r(shí)刻,比如進(jìn)行調(diào)用時(shí),執(zhí)行處理的程序。本申請(qǐng)包含與在2010年3月16日向日本專利局提交的日本優(yōu)先權(quán)專利申請(qǐng)JP 2010-059118中公開(kāi)的主題相關(guān)的主題,該專利申請(qǐng)的整個(gè)內(nèi)容在此引為參考。本領(lǐng)域的技術(shù)人員應(yīng)明白,根據(jù)設(shè)計(jì)要求和其它各種因素,可以做出各種修改、組合、子組合和變化,只要它們?cè)诟郊訖?quán)利要求或其等同物的范圍之內(nèi)。
權(quán)利要求
1.一種圖像編碼設(shè)備,包括有效位檢測(cè)處理單元,所述有效位檢測(cè)處理單元從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;編碼選擇單元,所述編碼選擇單元根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼;變長(zhǎng)編碼單元,所述變長(zhǎng)編碼單元對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和定長(zhǎng)編碼單元,所述定長(zhǎng)編碼單元對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。
2.按照權(quán)利要求1所述的圖像編碼設(shè)備,其中變長(zhǎng)編碼單元通過(guò)利用根據(jù)系數(shù)位的出現(xiàn)概率而預(yù)先創(chuàng)建的編碼表,進(jìn)行變長(zhǎng)編碼。
3.按照權(quán)利要求2所述的圖像編碼設(shè)備,其中編碼選擇單元從較淺的位深度開(kāi)始順序選擇編碼,對(duì)于位深度大于或等于第一閾值和/或更高一階的位平面上的系數(shù)數(shù)據(jù)的數(shù)目大于或等于第二閾值的位平面,選擇定長(zhǎng)編碼,并對(duì)于其他位平面選擇變長(zhǎng)編碼。
4.按照權(quán)利要求3所述的圖像編碼設(shè)備,其中編碼選擇單元按照與圖像數(shù)據(jù)相關(guān)的上下文,設(shè)定第一閾值和/或第二閾值。
5.按照權(quán)利要求2所述的圖像編碼設(shè)備,其中變長(zhǎng)編碼單元從多個(gè)不同的編碼表中選擇和與圖像數(shù)據(jù)相關(guān)的上下文相適應(yīng)的編碼表,并利用選擇的編碼表進(jìn)行編碼。
6.一種圖像編碼方法,包括下述步驟用有效位檢測(cè)處理單元從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,用編碼選擇單元為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼;用變長(zhǎng)編碼單元對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和用定長(zhǎng)編碼單元對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。
7.一種使計(jì)算機(jī)執(zhí)行包括下述步驟的處理的程序從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼; 對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼;和對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。
8.一種圖像解碼設(shè)備,包括變長(zhǎng)解碼單元,所述變長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的; 定長(zhǎng)解碼單元,所述定長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼; 有效位檢測(cè)處理單元,所述有效位檢測(cè)處理單元檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和解碼選擇單元,所述解碼選擇單元根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。
9.按照權(quán)利要求8所述的圖像解碼設(shè)備,其中變長(zhǎng)解碼單元通過(guò)利用根據(jù)系數(shù)位的出現(xiàn)概率而預(yù)先創(chuàng)建的解碼表,進(jìn)行變長(zhǎng)解碼。
10.按照權(quán)利要求9所述的圖像解碼設(shè)備,其中解碼選擇單元從較淺的位深度開(kāi)始順序選擇解碼,在位深度大于或等于第一閾值和/或在更高一階的位平面上的系數(shù)數(shù)據(jù)的數(shù)目大于或等于第二閾值的情況下,選擇定長(zhǎng)解碼,在其它情況下選擇變長(zhǎng)編碼。
11.按照權(quán)利要求10所述的圖像解碼設(shè)備,其中解碼選擇單元按照與圖像數(shù)據(jù)相關(guān)的上下文,設(shè)定第一閾值和/或第二閾值。
12.按照權(quán)利要求9所述的圖像解碼設(shè)備,其中變長(zhǎng)解碼單元從多個(gè)不同的解碼表中選擇和與圖像數(shù)據(jù)相關(guān)的上下文相適應(yīng)的解碼表,并利用選擇的解碼表進(jìn)行解碼。
13.一種圖像解碼方法,包括下述步驟用變長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的;用定長(zhǎng)解碼單元對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼;用有效位檢測(cè)處理單元檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,用解碼選擇單元選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。
14.一種使計(jì)算機(jī)執(zhí)行包括下述步驟的處理的程序?qū)幋a數(shù)據(jù)進(jìn)行變長(zhǎng)解碼,所述編碼數(shù)據(jù)是針對(duì)通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù),根據(jù)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼而進(jìn)行編碼的;對(duì)編碼數(shù)據(jù)進(jìn)行定長(zhǎng)解碼;檢測(cè)在通過(guò)對(duì)編碼數(shù)據(jù)解碼而獲得的位平面中的高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目;和根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,選擇變長(zhǎng)解碼單元或定長(zhǎng)解碼單元并使其對(duì)編碼數(shù)據(jù)進(jìn)行解碼。
全文摘要
本發(fā)明公開(kāi)圖像編碼設(shè)備和方法,圖像解碼設(shè)備和方法,及程序。所述圖像編碼設(shè)備,包括有效位檢測(cè)處理單元,有效位檢測(cè)處理單元從通過(guò)對(duì)圖像數(shù)據(jù)進(jìn)行頻率變換而產(chǎn)生的系數(shù)數(shù)據(jù)中,對(duì)于每個(gè)位平面,檢測(cè)在高階位平面上檢測(cè)到有效位的系數(shù)數(shù)據(jù)的數(shù)目,編碼選擇單元,所述編碼選擇單元根據(jù)系數(shù)數(shù)據(jù)的數(shù)目和位平面的位深度,為每個(gè)位平面選擇變長(zhǎng)編碼或定長(zhǎng)編碼,變長(zhǎng)編碼單元,所述變長(zhǎng)編碼單元對(duì)選擇了變長(zhǎng)編碼的位平面進(jìn)行變長(zhǎng)編碼,和定長(zhǎng)編碼單元,所述定長(zhǎng)編碼單元對(duì)選擇了定長(zhǎng)編碼的位平面進(jìn)行定長(zhǎng)編碼。
文檔編號(hào)H04N7/30GK102196264SQ20111005400
公開(kāi)日2011年9月21日 申請(qǐng)日期2011年3月8日 優(yōu)先權(quán)日2010年3月16日
發(fā)明者和田祐司, 島內(nèi)和博, 池田廣志 申請(qǐng)人:索尼公司