專利名稱:用于圖像編碼/解碼和擴(kuò)展圖像壓縮解壓縮的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像編碼方法、圖像解碼方法、運動圖像壓縮方法、運動圖像解壓縮方法、圖像編碼程序、圖像編碼裝置、圖像解碼裝置、圖像編碼/解碼系統(tǒng)、以及擴(kuò)展圖像壓縮/解壓縮系統(tǒng),這些方法、程序、裝置和系統(tǒng)對靜止圖像或運動圖像進(jìn)行編碼以進(jìn)行壓縮,或者/以及對它們進(jìn)行解碼以進(jìn)行解壓縮。
背景技術(shù):
在信息處理領(lǐng)域內(nèi),已經(jīng)開發(fā)了各種類型的用于壓縮數(shù)據(jù)的技術(shù)。對于數(shù)據(jù)(特別是對于圖像數(shù)據(jù)),公知壓縮技術(shù)的示例包括用于靜止圖像的JPEG、JPEG 2000等,以及用于運動圖像的MPEG、MPEG 2、MPEG4等。
例如,在CCIT建議T.81,“Information technology-digitalcompression and coding of continuous-tone still images-requirements andguidelines”,ITU,1992中描述了上述使用JPEG的壓縮。然而,為了方便將說明JPEG處理的概要。
以彩色圖像為例,首先將由三種顏色(例如,亮度信號Y、以及兩個色差信號Cb和Cr)構(gòu)成的圖像針對每種顏色分別分為8×8的像素塊。接著,利用DCT(離散余弦變換)將亮度信號Y的像素塊以及兩個色差信號Cb和Cr的各個像素塊分別(即,三次)變換到頻率空間中。隨后,使用亮度信號量化表或者色差信號量化表(Cb和Cr共用)對各個像素塊的DCT系數(shù)進(jìn)行量化,并使用亮度信號Huffman表或色差信號Huffman表(Cb和Cr共用)對各個像素塊的DCT系數(shù)進(jìn)行熵編碼。
盡管對傳統(tǒng)的JPEG有了改進(jìn)(例如,可逆/不可逆壓縮/圖像質(zhì)量的可量測性、蚊式噪聲的減少等),但用于靜止圖像壓縮的JPEG 2000還不普及。JPEG被認(rèn)為是將來用于圖像壓縮的首選技術(shù)。
近年來,數(shù)字相機(jī)和蜂窩電話中采用的圖像拾取像素的數(shù)量顯著增加。而且,以蜂窩電話等為代表的常用設(shè)備(經(jīng)常持續(xù)攜帶的設(shè)備)已經(jīng)被廣泛地使用,從而拍攝的機(jī)會增多,而且由個人處理的數(shù)字圖像的量也增加。因此,為了應(yīng)對信息量的這種增加,顯然期望圖像數(shù)據(jù)的量較小。
然而,通過傳統(tǒng)的JPEG,減小壓縮圖像數(shù)據(jù)的大小的唯一方法是采用較稀疏的量化表,即擴(kuò)大量化寬度。公知的是,這將增加上述蚊式噪聲等,從而降低了圖像質(zhì)量。
迄今已經(jīng)提出了用來即使在壓縮比設(shè)置得較高時也可以防止產(chǎn)生這種噪聲的多種技術(shù)。
例如,日本未審專利申請公報No.2000-308058描述了這樣的一種技術(shù),其中,可以通過在JPEG處理之前進(jìn)行預(yù)處理以降低圖像邊緣部分的信號電平差,來減小容易在圖像邊緣部分上產(chǎn)生的蚊式噪聲。
此外,日本未審專利申請公報No.8-163375描述了這樣的一種技術(shù),其中,根據(jù)像素值的分布將像素塊分為多個區(qū)域,針對每個劃分區(qū)域?qū)ο∈璧南袼剡M(jìn)行補(bǔ)償,從而獲得每個像素塊的大小,并對每個像素塊進(jìn)行JPEG轉(zhuǎn)換。
然而,通過上述日本未審專利申請公報No.2000-308058中所述的技術(shù),需要在進(jìn)行該預(yù)處理的裝置側(cè)儲存與在JPEG編碼前對圖像邊緣部分進(jìn)行的預(yù)處理相關(guān)的信息,因此,不能單獨從壓縮圖像文件再現(xiàn)原始圖像。而且,通過該預(yù)處理,圖像數(shù)據(jù)的整個像素塊進(jìn)行了低位轉(zhuǎn)換,從而增加了量化誤差,因此降低了圖像質(zhì)量。
此外,由于上述日本未審專利申請公報No.8-163375中描述的技術(shù)從單個像素塊產(chǎn)生多個像素塊,所以使用傳統(tǒng)的JPEG解碼器進(jìn)行解碼處理的嘗試將導(dǎo)致誤差,從而不能完成處理。
如上所述,還沒有提出這樣的壓縮格式,該壓縮格式能夠僅通過JPEG解碼器來概括地對壓縮圖像文件進(jìn)行解碼,從而即使在量化表設(shè)置得細(xì)致時也能通過少量的碼來進(jìn)行壓縮,或者即使在量化表設(shè)置得稀疏時也能防止蚊式噪聲。
針對上述情況而提出本發(fā)明,本發(fā)明的目的在于針對利用空間頻率變換的編碼方法提供圖像編碼方法、圖像解碼方法、運動圖像壓縮方法、運動圖像解壓縮方法、圖像編碼程序、圖像編碼裝置、圖像解碼裝置、圖像編碼/解碼系統(tǒng)、以及擴(kuò)展圖像壓縮/解壓縮系統(tǒng),這些方法、程序、裝置和系統(tǒng)減少了碼的量,而且/或者能夠抑制噪聲,而且/或者能夠?qū)幋a數(shù)據(jù)進(jìn)行解碼。
發(fā)明內(nèi)容
為了實現(xiàn)上述目的,將根據(jù)第一發(fā)明的一種圖像編碼方法應(yīng)用于基本編碼方法,該基本編碼方法包括空間頻率變換步驟,用于利用空間頻率變換將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換為頻率空間內(nèi)的變換系數(shù);以及頭部產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)的數(shù)據(jù)中作為頭部部分,所述圖像編碼方法包括空間變換步驟,用于在空間頻率變換步驟之前對所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于向所述頭部部分添加進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)。
此外,通過根據(jù)第二發(fā)明的圖像編碼方法,在根據(jù)所述第一發(fā)明的圖像編碼方法中,所述基本編碼方法還包括編碼步驟,該編碼步驟用于對所述變換系數(shù)進(jìn)行編碼,使得低頻系數(shù)的數(shù)據(jù)量總體上小于高頻系數(shù)的數(shù)據(jù)量,并且在所述空間變換步驟中進(jìn)行的可逆圖像空間變換抑制了由空間頻率變換導(dǎo)致的高頻系數(shù)。
此外,通過根據(jù)第三發(fā)明的圖像編碼方法,在根據(jù)第一發(fā)明的圖像編碼方法中,所述基本編碼方法還包括劃分步驟,該劃分步驟用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)劃分為像素塊,并且所述空間頻率變換步驟將在該劃分步驟中劃分的所述像素塊變換到頻率空間內(nèi),并且所述空間變換在空間頻率變換步驟之前對所述像素塊中的至少一個像素塊進(jìn)行所述可逆圖像空間變換。
通過根據(jù)第四發(fā)明的圖像編碼方法,在根據(jù)第三發(fā)明的圖像編碼方法中,在所述空間變換步驟中,將像素塊表示為矩陣M,并且所述可逆空間變換包括M的行置換(row-wise permutation)和列置換(column-wisepermutation)中的至少一種。
通過根據(jù)第五發(fā)明的圖像編碼方法,在根據(jù)第三發(fā)明的圖像編碼方法中,在所述空間變換步驟中,將像素塊表示為矩陣M,并且通過可逆線性矩陣運算來表示所述可逆空間變換M→AMB,其中,A和B表示可逆矩陣。
通過根據(jù)第六發(fā)明的圖像編碼方法,在根據(jù)第五發(fā)明的圖像編碼方法中,所述矩陣A和矩陣B中的一個矩陣為用于通過矩陣運算進(jìn)行矩陣M的行置換的矩陣,而另一個矩陣為用于通過矩陣運算進(jìn)行矩陣M的列置換的矩陣。
通過根據(jù)第七發(fā)明的圖像編碼方法,在根據(jù)第五發(fā)明的圖像編碼方法中,用于進(jìn)行行置換的矩陣被表示為用于將某一行加到另一行的矩陣與用于將某一行乘以-1的矩陣的矩陣積,而用于進(jìn)行列置換的矩陣被表示為用于將某一列加到另一列的矩陣與用于將某一列乘以-1的矩陣的矩陣積。
通過根據(jù)第八發(fā)明的圖像編碼方法,在根據(jù)第四至第六發(fā)明中的任意一項的圖像編碼方法中,進(jìn)行矩陣M的行之間的置換,使得在行間置換后,沿行方向的像素值的總和在列方向上為升序或降序,并且進(jìn)行矩陣M的列之間的置換,使得在列間置換后,沿列方向的像素值的總和在行方向上為升序或降序。
通過根據(jù)第九發(fā)明的圖像編碼方法,在根據(jù)第一發(fā)明的圖像編碼方法中,在所述空間變換步驟中,通過改變所述圖像數(shù)據(jù)或所述差分圖像數(shù)據(jù)中的像素的布置來進(jìn)行所述可逆空間變換。
通過根據(jù)第十發(fā)明的圖像編碼方法,在根據(jù)第一或第二發(fā)明的圖像編碼方法中,在所述空間頻率變換步驟中獲得的變換系數(shù)包括與所述圖像數(shù)據(jù)的平均值或與所述差分圖像數(shù)據(jù)的平均值成比例的DC系數(shù),并且在所述空間變換步驟中進(jìn)行的所述圖像空間變換保持所述DC系數(shù)不變。
通過根據(jù)第十一發(fā)明的圖像編碼方法,在根據(jù)第三發(fā)明的圖像編碼方法中,在所述空間頻率變換步驟中獲得的所述變換系數(shù)包括與所述像素塊的平均值成比例的DC系數(shù),并且在所述空間變換中進(jìn)行的所述圖像空間變換保持所述DC系數(shù)不變。
根據(jù)第十二發(fā)明的圖像編碼方法可應(yīng)用于JPEG編碼處理,該圖像編碼方法包括空間變換步驟,用于在進(jìn)行離散余弦變換之前對至少一個像素塊進(jìn)行可逆圖像空間變換;空間變換參數(shù)提取步驟,用于提取進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù);以及頭部信息添加步驟,用于向JPEG文件的頭部部分添加在所述空間變換參數(shù)提取步驟中提取的空間變換參數(shù)。
通過根據(jù)第十三發(fā)明的圖像編碼方法,在根據(jù)第十二發(fā)明的圖像編碼方法中,所述圖像空間變換保持通過進(jìn)行離散余弦變換獲得的DCT系數(shù)中的DC系數(shù)不變,并增加所述DCT系數(shù)中的低頻AC系數(shù)的幅值。
根據(jù)第十四發(fā)明的對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼的圖像編碼方法,該圖像編碼方法包括空間變換步驟,用于在圖像空間內(nèi)對所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆空間變換;空間頻率變換步驟,用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換至頻率空間,從而獲得變換系數(shù);編碼步驟,用于將所述變換系數(shù)編碼為編碼數(shù)據(jù);以及頭部信息產(chǎn)生步驟,用于向所述編碼數(shù)據(jù)整體地添加進(jìn)行所述空間變換的逆變換所需的信息作為頭部信息;在所述編碼步驟之后,用于低頻系數(shù)側(cè)的數(shù)據(jù)量總體上小于用于高頻系數(shù)側(cè)的數(shù)據(jù)量;并且所述空間變換步驟總體上抑制了由所述空間頻率變換導(dǎo)致的高頻系數(shù)。
根據(jù)第十五發(fā)明的圖像解碼方法,該圖像解碼方法可應(yīng)用于基本解碼方法,該基本解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對從編碼圖像數(shù)據(jù)或從編碼差分圖像數(shù)據(jù)產(chǎn)生的變換系數(shù)進(jìn)行變換,從而獲得圖像空間數(shù)據(jù),用于對利用根據(jù)第一發(fā)明的圖像編碼方法進(jìn)行了編碼的編碼圖像數(shù)據(jù)或編碼差分圖像數(shù)據(jù)進(jìn)行解碼,所述圖像解碼方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù)對由所述逆空間頻率變換步驟產(chǎn)生的圖像空間數(shù)據(jù)進(jìn)行所述圖像空間變換的逆變換。
通過根據(jù)第十六發(fā)明的圖像解碼方法,在根據(jù)第十五發(fā)明的圖像解碼方法中,該圖像解碼方法還包括頭部識別步驟,用于識別是否在所述頭部部分中描述了所述空間變換參數(shù),如果在所述頭部識別步驟中識別到所述空間變換參數(shù),則輸出通過基于所述空間變換參數(shù)進(jìn)行所述逆空間變換步驟而獲得的圖像數(shù)據(jù)或差分圖像數(shù)據(jù),但是在所述頭部識別步驟中沒有識別到所述空間變換參數(shù)的情況下,輸出沒有進(jìn)行所述逆空間變換步驟而獲得的圖像數(shù)據(jù)或差分圖像數(shù)據(jù)。
根據(jù)第十七發(fā)明的運動圖像壓縮方法用于利用根據(jù)一個圖像幀內(nèi)的圖像數(shù)據(jù)的幀內(nèi)壓縮和根據(jù)多個圖像幀的幀間壓縮,對包括呈時間序列式關(guān)系的多個圖像幀的運動圖像數(shù)據(jù)進(jìn)行編碼,并且所述幀內(nèi)壓縮可應(yīng)用于基本幀內(nèi)壓縮方法,該基本幀內(nèi)壓縮方法包括劃分步驟,用于將圖像幀劃分為像素塊;空間頻率變換步驟,用于對所述像素塊進(jìn)行空間頻率變換以獲得變換系數(shù);以及頭部信息產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于在所述空間頻率變換步驟內(nèi)獲得的所述變換系數(shù)的數(shù)據(jù),作為頭部部分,所述幀內(nèi)壓縮還包括空間變換步驟,用于在所述空間頻率變換步驟之前對所述像素塊中的至少一個進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于將進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)添加到所述頭部部分。
通過根據(jù)第十八發(fā)明的運動圖像壓縮方法,在根據(jù)第十七發(fā)明的運動圖像壓縮方法中,該運動圖像壓縮方法還包括空間變換模式選擇步驟,用于選擇是否執(zhí)行所述空間變換步驟和所述頭部信息添加步驟。
根據(jù)第十九發(fā)明的運動圖像壓縮方法用于利用基于一個圖像幀內(nèi)的圖像數(shù)據(jù)的幀內(nèi)壓縮和基于多個圖像幀的幀間壓縮,對包括呈時間序列式關(guān)系的多個圖像幀的運動圖像數(shù)據(jù)進(jìn)行編碼,并且所述幀間壓縮可應(yīng)用于基本幀間壓縮方法,該基本幀間壓縮方法包括劃分步驟,用于將圖像幀劃分為像素塊;差值計算步驟,用于通過獲得在該劃分步驟中劃分的所述像素塊中的至少一個像素塊與要進(jìn)行比較的圖像幀內(nèi)的對應(yīng)像素塊之間的差,來產(chǎn)生差分像素塊;空間頻率變換步驟,用于對所述差分像素塊進(jìn)行空間頻率變換;以及頭部信息產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)獲得的數(shù)據(jù)中作為頭部部分,所述幀間壓縮還包括空間變換,用于在所述空間頻率變換步驟之前對所述差分像素塊中的至少一個差分像素塊進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于將進(jìn)行所述圖像空間的逆變換所需的空間變換參數(shù)添加到所述頭部部分中。
根據(jù)第二十發(fā)明的運動圖像壓縮方法,在根據(jù)第十九方面的運動圖像壓縮方法中,該運動圖像壓縮方法還包括空間變換模式選擇步驟,用于選擇是否進(jìn)行所述空間變換步驟和所述頭部信息添加步驟。
通過根據(jù)第二十一發(fā)明的運動圖像壓縮方法,在根據(jù)第十九發(fā)明的運動圖像壓縮方法中,所述頭部信息產(chǎn)生步驟產(chǎn)生用于包括多個幀的組的頭部;并且所述頭部信息添加步驟是用于將所述空間變換參數(shù)添加到對應(yīng)組的所述頭部部分中的步驟。
根據(jù)第二十二發(fā)明的運動圖像解碼方法,該運動圖像解碼方法可應(yīng)用于基本運動圖像解碼方法,該基本運動圖像解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對來自壓縮運動圖像數(shù)據(jù)的變換系數(shù)進(jìn)行變換,以獲得像素塊的圖像空間數(shù)據(jù),用于對通過根據(jù)第十七發(fā)明的運動圖像壓縮方法進(jìn)行了編碼的運動圖像數(shù)據(jù)進(jìn)行解碼,所述運動圖像解碼方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少所述空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù),對由所述逆空間頻率變換步驟產(chǎn)生的像素塊進(jìn)行所述圖像空間變換的逆變換。
根據(jù)第二十三發(fā)明的運動圖像解壓縮方法,該運動圖像解壓縮方法可應(yīng)用于基本運動圖像解碼方法,該基本運動圖像解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對來自壓縮運動圖像數(shù)據(jù)的變換系數(shù)進(jìn)行變換,以獲得差分像素塊的圖像空間數(shù)據(jù),用于對通過根據(jù)第十九發(fā)明的運動圖像壓縮方法進(jìn)行了編碼的運動圖像數(shù)據(jù)進(jìn)行解碼,所述運動圖像解壓縮方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少所述空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù),對由所述逆空間頻率變換步驟產(chǎn)生的差分像素塊進(jìn)行所述圖像空間變換的逆變換。
根據(jù)第二十四發(fā)明的圖像編碼程序,該圖像編碼程序由計算機(jī)執(zhí)行從而對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼,所述圖像編碼程序包括空間變換步驟,用于在圖像空間內(nèi)對所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆空間變換;空間頻率變換步驟,用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換至頻率空間,從而獲得變換系數(shù);編碼步驟,用于將所述變換系數(shù)編碼為編碼數(shù)據(jù);頭部信息產(chǎn)生步驟,用于向所述編碼數(shù)據(jù)整體地添加進(jìn)行所述空間變換的逆變換所需的信息作為頭部信息。
根據(jù)第二十五發(fā)明的圖像編碼裝置用于對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼,該圖像編碼裝置包括空間變換單元,用于對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行圖像空間內(nèi)的可逆圖像空間變換;空間頻率變換單元,用于對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行空間頻率變換,從而獲得變換系數(shù);頭部信息產(chǎn)生器,用于將與圖像數(shù)據(jù)或差分圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)而獲得的數(shù)據(jù)中;以及頭部信息添加單元,用于將進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)添加到所述頭部部分。
根據(jù)第二十六發(fā)明的圖像解碼裝置用于對通過根據(jù)第二十五發(fā)明的所述圖像編碼裝置進(jìn)行了編碼的編碼數(shù)據(jù)進(jìn)行解碼,所述圖像解碼裝置包括逆空間頻率變換單元,用于對從所述編碼數(shù)據(jù)產(chǎn)生的變換系數(shù)進(jìn)行逆空間頻率變換,從而獲得圖像空間中的像素數(shù)據(jù);頭部解釋器,用于從所述頭部讀出至少所述空間變換參數(shù);以及逆空間變換單元,用于根據(jù)由所述頭部解釋器讀出的所述空間變換參數(shù)對圖像中的像素數(shù)據(jù)進(jìn)行所述圖像空間變換的逆變換,從而獲得圖像數(shù)據(jù)或差分圖像數(shù)據(jù)。
根據(jù)第二十七發(fā)明的圖像編碼/解碼系統(tǒng)包括根據(jù)第二十五發(fā)明的圖像編碼裝置;以及根據(jù)第二十六發(fā)明的圖像解碼裝置。
根據(jù)第二十八發(fā)明的擴(kuò)展圖像編碼/解碼系統(tǒng)包括第一圖像編碼/解碼系統(tǒng),該第一圖像編碼/解碼系統(tǒng)包括第一圖像編碼裝置、第一圖像解碼裝置、第二圖像編碼裝置以及第二圖像解碼裝置,該第一圖像編碼裝置包括劃分單元,用于將原始圖像數(shù)據(jù)劃分為像素塊;空間頻率變換單元,用于通過對由所述劃分單元產(chǎn)生的所述像素塊進(jìn)行空間頻率變換來獲得變換系數(shù);量化器,用于對來自所述空間頻率變換單元的所述變換系數(shù)進(jìn)行量化,從而產(chǎn)生變換系數(shù)的整數(shù)值(integral value);熵編碼器,用于對變換系數(shù)的這些整數(shù)值進(jìn)行熵編碼;以及壓縮圖像文件產(chǎn)生裝置,用于通過將與所述圖像數(shù)據(jù)相關(guān)的信息添加到根據(jù)所述熵編碼器的結(jié)果而獲得的數(shù)據(jù)中作為頭部部分而產(chǎn)生第一壓縮圖像文件,該第一圖像解碼裝置包括頭部解釋器,用于從所述第一壓縮圖像文件讀出所述頭部部分;熵解碼器,用于通過對從所述第一壓縮圖像文件獲得的碼進(jìn)行熵解碼而獲得變換系數(shù)的整數(shù)值;逆量化器,用于對所述熵解碼器產(chǎn)生的變換系數(shù)的整數(shù)值進(jìn)行去量化,從而獲得變換系數(shù);逆空間頻率變換單元,用于通過對來自所述逆量化器的變換系數(shù)進(jìn)行逆空間頻率變換而獲得以像素塊為單位的像素數(shù)據(jù);以及再現(xiàn)(rendering)裝置,用于通過將所述像素塊組合為原始圖像數(shù)據(jù)來產(chǎn)生原始圖像數(shù)據(jù),該第二圖像編碼裝置用于產(chǎn)生第二壓縮圖像文件,該第二圖像編碼裝置是通過向所述第一圖像編碼裝置添加以下單元而獲得的空間變換單元,用于在進(jìn)行空間頻率變換之前對所述像素塊進(jìn)行可通過空間變換參數(shù)識別的可逆圖像空間變換;以及頭部信息添加單元,用于將所述空間變換參數(shù)添加到所述頭部部分,該第二圖像解碼裝置用于從第二壓縮圖像文件獲取原始圖像數(shù)據(jù),該第二圖像解碼裝置是通過向所述第一圖像解碼裝置添加以下單元而獲得的附加頭部信息閱讀器,用于從所述頭部部分讀出所述空間變換參數(shù);以及逆空間變換單元,用于根據(jù)由該附加頭部信息閱讀器讀出的空間變換參數(shù)進(jìn)行所述圖像空間變換的逆變換。在該擴(kuò)展編碼/解碼系統(tǒng)中,在要處理的壓縮圖像文件為第二壓縮圖像文件的情況下,所述第一圖像解碼裝置能夠通過忽略在所述第二壓縮圖像文件的頭部部分中描述的空間變換參數(shù)來恢復(fù)與所述原始圖像數(shù)據(jù)不同的數(shù)據(jù);并且其中,在所述附加頭部信息閱讀器不能從所述頭部部分讀出所述空間變換參數(shù)的情況下,所述第二圖像解碼裝置通過只進(jìn)行由第一圖像解碼裝置部分進(jìn)行的解碼而不進(jìn)行由所述逆空間變換單元進(jìn)行的處理來恢復(fù)原始圖像數(shù)據(jù)。
在根據(jù)第二十八發(fā)明的擴(kuò)展圖像編碼/解碼系統(tǒng)中,根據(jù)第二十九發(fā)明的擴(kuò)展圖像編碼/解碼系統(tǒng)還包括圖像采集裝置,其具有所述第二圖像編碼裝置;以及計算機(jī),其具有所述第一圖像解碼裝置。
通過根據(jù)第三十發(fā)明的圖像編碼方法,在根據(jù)第一發(fā)明的圖像編碼方法中,所述空間變換步驟是用于進(jìn)行可通過至少一個調(diào)節(jié)參數(shù)進(jìn)行調(diào)節(jié)的圖像空間變換的步驟,并且所述頭部信息添加步驟是用于將所述調(diào)節(jié)參數(shù)添加到所述頭部部分中的步驟。
通過根據(jù)第三十一發(fā)明的圖像編碼方法,在根據(jù)第三十發(fā)明的圖像編碼方法中,所述基本編碼方法還包括用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)劃分為像素塊的劃分步驟,并且所述空間頻率變換步驟是用于對在所述劃分步驟中劃分的所述像素塊進(jìn)行空間頻率變換的步驟,并且所述空間變換步驟是用于在進(jìn)行所述空間頻率變換步驟之前對所述像素塊中的至少一個進(jìn)行可逆圖像空間變換的步驟。
通過根據(jù)第三十二發(fā)明的圖像編碼方法,在根據(jù)第三十一發(fā)明的圖像編碼方法中,在所述圖像變換步驟中,將像素塊表示為矩陣M,而且對該矩陣M進(jìn)行使用可逆矩陣A的被表示為M→AM的可逆矩陣運算以及使用可逆矩陣B的被表示為M→MB的可逆矩陣運算中的至少一種可逆矩陣運算。
通過根據(jù)第三十三發(fā)明的圖像編碼方法,在根據(jù)第三十二發(fā)明的圖像編碼方法中,所述矩陣A和矩陣B是用于對由所述矩陣M表示的像素塊實現(xiàn)空間低通濾波的矩陣。
通過根據(jù)第三十四發(fā)明的圖像編碼方法,在根據(jù)第三十三發(fā)明的圖像編碼方法中,所述調(diào)節(jié)參數(shù)包括用于調(diào)節(jié)空間低通濾波的強(qiáng)度的濾波調(diào)節(jié)參數(shù)。
通過根據(jù)第三十五發(fā)明的圖像編碼方法,在根據(jù)第三十四發(fā)明的圖像編碼方法中,所述基本編碼方法還包括量化步驟,用于利用特定的量化寬度對在所述空間頻率變換中獲得的變換系數(shù)進(jìn)行量化,所述頭部產(chǎn)生步驟是用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到根據(jù)所述量化步驟的所述結(jié)果而獲得的數(shù)據(jù)中作為頭部部分的步驟,并且根據(jù)所述濾波調(diào)節(jié)參數(shù)來調(diào)節(jié)所述量化寬度。
通過根據(jù)第三十六發(fā)明的圖像編碼方法,在根據(jù)第三十發(fā)明的圖像編碼方法中,在所述空間頻率變換步驟中獲得的所述變換系數(shù)包括與像素塊內(nèi)的圖像數(shù)據(jù)的平均值成比例的DC系數(shù),并且所述空間變換步驟使所述DC系數(shù)保持不變。
根據(jù)第三十七發(fā)明的圖像編碼方法用于選擇性地執(zhí)行以下方法根據(jù)第六發(fā)明的圖像編碼方法;以及根據(jù)第三十三發(fā)明的圖像編碼方法。
圖1為表示根據(jù)本發(fā)明第一實施例的擴(kuò)展JPEG編碼器的結(jié)構(gòu)的框圖。
圖2為表示根據(jù)第一實施例的擴(kuò)展JPEG解碼器的結(jié)構(gòu)的框圖。
圖3為表示根據(jù)本發(fā)明第一實施例的編碼處理的流程圖。
圖4為表示根據(jù)本發(fā)明第一實施例的解碼處理的流程圖。
圖5為表示根據(jù)本發(fā)明第一實施例的JEX編碼處理的流程圖。
圖6為表示根據(jù)本發(fā)明第一實施例的JEX解碼處理的流程圖。
圖7為表示本發(fā)明第一實施例的將VGA圖像劃分為多個塊的示例的圖。
圖8為表示本發(fā)明第一實施例的8×8像素塊的像素結(jié)構(gòu)的圖。
圖9為表示本發(fā)明第一實施例的要通過填充(padding)六角形像素來進(jìn)行2-D形再現(xiàn)的圖像的示例的圖。
圖10為其中將表示設(shè)置在圖9中的像素數(shù)據(jù)沿行方向和列方向排列的示例的圖。
圖11為表示本發(fā)明第一實施例的計算對于排列nc(i)將要獲得的決策值Chc所需的各個元素的示例的圖表。
圖12表示本發(fā)明第一實施例的決策值如何隨著權(quán)值w的變化而變化的圖表。
圖13為表示本發(fā)明第一實施例的矩陣M的示例的圖。
圖14為表示本發(fā)明第一實施例的用于實現(xiàn)列之間的基本置換的基矩陣的相互作用順序的圖表。
圖15為表示本發(fā)明第一實施例的從圖像數(shù)據(jù)提取的原始8×8像素塊的數(shù)據(jù)示例的圖表。
圖16為表示本發(fā)明第一實施例的關(guān)于8×8像素塊數(shù)據(jù)的沿行方向的總和以及沿列方向的總和的各個計算結(jié)果的圖表。
圖17為表示本發(fā)明第一實施例的進(jìn)行了置換的像素塊數(shù)據(jù)的圖表。
圖18為表示本發(fā)明第一實施例的進(jìn)行了電平移位(level shift)和DCT的數(shù)據(jù)的圖表。
圖19為表示本發(fā)明第一實施例的進(jìn)行了量化的8×8塊數(shù)據(jù)的圖表。
圖20為表示通過在圖4所示的解碼處理中對圖19所示的進(jìn)行了量化的數(shù)據(jù)進(jìn)行逆量化和逆DCT(IDCT),并對該數(shù)據(jù)進(jìn)行電平移位以舍入到0至255的范圍內(nèi)而獲得的數(shù)據(jù)的圖表。
圖21為表示通過對圖20所示的數(shù)據(jù)就進(jìn)行逆置換進(jìn)行了置換的像素塊的圖表。
圖22為表示從圖21所示的解碼像素塊數(shù)據(jù)中減去圖15所示的原始像素塊數(shù)據(jù)而獲得的結(jié)果的圖表。
圖23為表示本發(fā)明第一實施例的存儲JPEG壓縮數(shù)據(jù)的EXIF文件的基本結(jié)構(gòu)的圖。
圖24為更加詳細(xì)地表示本發(fā)明第一實施例的JPEG壓縮數(shù)據(jù)文件的基本結(jié)構(gòu)的圖。
圖25為表示本發(fā)明第一實施例的頭部信息Ph(n)的結(jié)構(gòu)和具體數(shù)據(jù)示例的圖表。
圖26為表示本發(fā)明第一實施例的其中組合了能夠處理擴(kuò)展JPEG的設(shè)備和能夠處理傳統(tǒng)JPEG的設(shè)備的系統(tǒng)結(jié)構(gòu)的圖。
圖27為表示本發(fā)明第一實施例的能夠?qū)\動圖像進(jìn)行JEX的編碼器的結(jié)構(gòu)的框圖。
圖28為表示傳統(tǒng)JPEG編碼器的結(jié)構(gòu)的框圖。
圖29為表示傳統(tǒng)JPEG解碼器的結(jié)構(gòu)的框圖。
圖30為表示對圖15所示的原始8×8像素塊數(shù)據(jù)進(jìn)行DCT而獲得的結(jié)果的圖表。
圖31為表示對圖30所示的塊數(shù)據(jù)進(jìn)行量化而獲得的結(jié)果的圖表。
圖32為表示對圖31所示的塊數(shù)據(jù)進(jìn)行逆量化和逆DCT,并對所述塊數(shù)據(jù)進(jìn)行電平移位以將其舍入到0至255之間范圍的數(shù)據(jù)內(nèi)而獲得的結(jié)果的圖表。
圖33為表示從圖32所示的解碼像素塊數(shù)據(jù)中減去圖15所示的原始像素塊數(shù)據(jù)而獲得的結(jié)果的圖表。
圖34為表示傳統(tǒng)運動圖像編碼器的結(jié)構(gòu)的框圖。
圖35為表示根據(jù)本發(fā)明第二實施例的擴(kuò)展JPEG編碼器的結(jié)構(gòu)的框圖。
圖36為表示根據(jù)本發(fā)明第二實施例的擴(kuò)展JPEG解碼器的結(jié)構(gòu)的框圖。
圖37為表示根據(jù)本發(fā)明第二實施例的JEX編碼處理的概要的流程圖。
圖38為表示圖37的步驟S61中的JEX(LPF)預(yù)處理的細(xì)節(jié)的流程圖。
圖39為表示本發(fā)明第二實施例的根據(jù)設(shè)置項Choice選擇的控制參數(shù)對(η,SF)的圖表。
圖40為表示圖37中的步驟S62的JEX(LPF)主處理的細(xì)節(jié)的流程圖。
圖41為表示圖40中的步驟S85中的Vsc和kc計算處理的細(xì)節(jié)的流程圖。
圖42為表示圖40的步驟S86中的Vsr和lr計算處理的細(xì)節(jié)的流程圖。
圖43為表示本發(fā)明第二實施例中的JEX(LPF)解碼處理的流程圖。
圖44為表示根據(jù)本發(fā)明第二實施例的Mode向量和Pos向量的示例的圖表。
圖45為表示根據(jù)本發(fā)明第二實施例的頭部信息Phl(n)的示例的圖。
圖46為表示本發(fā)明第二實施例的根據(jù)整個圖像的全局頭部的示例的圖表。
圖47為表示本發(fā)明第二實施例的要記錄在全局頭部的類別中的位值的示例的圖表。
圖48為表示圖46所示的全局參數(shù)的第一個8位值的示例的圖表。
圖49為表示圖46所示的全局參數(shù)的第二個8位值的示例的圖表。
圖50為表示本發(fā)明第二實施例的從圖像數(shù)據(jù)提取的原始8×8像素塊的數(shù)據(jù)示例的圖表。
圖51為表示對圖50所示的原始8×8像素塊數(shù)據(jù)進(jìn)行電平移位和DCT而獲得的結(jié)果的圖表。
圖52為表示對圖51所示的塊數(shù)據(jù)進(jìn)行量化而獲得的結(jié)果的圖表。
圖53為表示對圖52所示的塊數(shù)據(jù)進(jìn)行逆量化和逆DCT,并對該塊數(shù)據(jù)進(jìn)行電平移位以將其舍入到0至255之間范圍的數(shù)據(jù)內(nèi)而獲得的結(jié)果的圖表。
圖54為表示從圖53所示的進(jìn)行了解碼的像素塊數(shù)據(jù)中減去圖50所示的原始像素塊數(shù)據(jù)而獲得的結(jié)果的圖表。
圖55為表示本發(fā)明第二實施例的從頭部信息中提取的模式信息和濾波位置信息的示例的圖表。
圖56為表示對圖50所示的原始8×8像素塊數(shù)據(jù)進(jìn)行圖55所示的8次低通濾波處理而獲得的結(jié)果的圖表。
圖57為表示對圖56所示的進(jìn)行了低通濾波處理的8×8像素塊數(shù)據(jù)進(jìn)行電平移位和DCT而獲得的結(jié)果的圖表。
圖58為表示對圖57所示的塊數(shù)據(jù)進(jìn)行量化而獲得的結(jié)果的圖表。
圖59為表示對圖58所示的塊數(shù)據(jù)進(jìn)行逆量化和逆DCT,并對該塊數(shù)據(jù)進(jìn)行電平移位和逆LPF處理以將其舍入為0至255之間范圍的數(shù)據(jù)內(nèi)而獲得的結(jié)果的圖表。
圖60為表示本發(fā)明第三實施例的其中將低通濾波與置換進(jìn)行組合的JEX主處理的示例的流程圖。
圖61為表示將在圖60的步驟S137中產(chǎn)生的頭部信息的示例的圖表。
圖62為表示將在圖60的步驟S136中產(chǎn)生的頭部信息的示例的圖表。
圖63為表示本發(fā)明第三實施例的采用另一低通濾波時的頭部信息的示例的圖表。
具體實施例方式
對于以下說明中采用的術(shù)語,這里,在對本發(fā)明的具體實施例進(jìn)行描述之前將使它們的定義更加清楚。
首先,術(shù)語“像素”是指構(gòu)成圖像的元素,其包括表示圖像內(nèi)的空間位置(像素位置)以及在該空間位置處的值(像素值)的信息。注意,這里描述的圖像不限于通過以離散的方式將像素設(shè)置在2-D歐幾里德空間內(nèi)而限定的圖像,而可以是通過以離散的方式將像素設(shè)置在2-D黎曼空間內(nèi)限定的圖像,更一般地說,可以是通過以離散的方式將像素設(shè)置在2-D緊流形(compact manifold)K內(nèi)而限定的圖像。
術(shù)語“像素組”是指一組像素。實際上,像素組用作空間位置彼此相鄰的一組像素,但不限于此。如以下將描述的那樣,可以在數(shù)學(xué)方面將像素組表示為矩陣或向量,而且在信息處理方面可以將像素組作為2-D陣列或1-D陣列進(jìn)行處理。
術(shù)語“像素信號”以及“像素數(shù)據(jù)”是指上述像素值。像素信號的表述是指在實際電路中作為電信號處理的像素值等。此外,像素數(shù)據(jù)表明了這樣的事實,即,在進(jìn)行處理時像素值在計算機(jī)等中被作為信息進(jìn)行處理。
術(shù)語“圖像空間”是指通過以離散的方式將像素設(shè)置在2-D緊流形K內(nèi)而構(gòu)成的空間。該圖像空間的具體示例包括整個圖像,以及作為通過劃分圖像而獲得的圖像子集的8×8像素塊(其為要在JPEG編碼/解碼中進(jìn)行處理的單元)。此外,可以采用要在諸如MPEG、MPEG 2、MPEG4、H.264等的編碼/解碼中進(jìn)行處理的最小像素塊單元作為另一示例。
術(shù)語“圖像空間變換”是指從圖像空間A到圖像空間B的映射,而且可以將其定義為離散函數(shù)f。在以下實施例中,將主要考慮可逆圖像空間變換(即,可定義f的反函數(shù)的變換)。圖像空間變換的具體示例包括線性可逆映射,并且線性可逆映射的具體示例包括線性置換。以下將通過示例來描述可逆線性映射和線性置換的具體數(shù)學(xué)表示。在以下示例中,分別而言,在編碼時,在進(jìn)行空間頻率變換之前執(zhí)行該圖像空間變換(預(yù)處理),而在解碼時,在逆變換之后也進(jìn)行該圖像空間變換(后處理)。
術(shù)語“空間頻率變換”是指從圖像空間到頻率空間的映射。
術(shù)語“正交變換”是指從定義了內(nèi)積的空間A到定義了內(nèi)積的空間B的變換,而且內(nèi)積值在變換下保持不便。作為正交變換的空間頻率變換的示例包括DCT(離散余弦變換)。此外,Hadamard變換是作為正交變換的空間頻率變換的另一示例,該Hadamard變換可表示為整數(shù)算術(shù)運算。
術(shù)語“置換”是指在圖像空間(作為具體示例,為像素塊)內(nèi)替換像素,從而成為圖像空間內(nèi)的函數(shù)。如上所述,通過將像素的像素值的信息與像素的像素位置相關(guān)聯(lián)而獲得像素。通過中止圖像空間內(nèi)的像素值和像素位置之間的以前的配對,并產(chǎn)生新的配對,來實現(xiàn)置換。例如,對于像素置換,某個像素位置的像素值被另一位置的像素值替換。注意,進(jìn)行置換的最小像素集稱為置換單元,其一般等同于像素本身。利用基本置換來進(jìn)行兩個置換單元的交換。
其它術(shù)語將在以下示例中描述,或者采用通用的術(shù)語定義。
以下將參照附圖描述本發(fā)明的示例。
圖1至圖27示出了本發(fā)明的第一實施例,圖1為表示擴(kuò)展JPEG編碼器的結(jié)構(gòu)的框圖,而圖28為表示傳統(tǒng)JPEG編碼器的結(jié)構(gòu)的框圖。
注意,在適當(dāng)?shù)那闆r下,將擴(kuò)展JPEG稱為JPEGext、JPEGe、JEX等。
應(yīng)該指出的是,本發(fā)明可應(yīng)用于圖像編碼方法、圖像解碼方法、運動圖像壓縮方法、運動圖像解壓縮方法、圖像編碼程序、圖像編碼裝置、圖像解碼裝置、圖像編碼/解碼系統(tǒng)、以及擴(kuò)展圖像壓縮/解壓縮系統(tǒng)中的任何一種。
該擴(kuò)展JPEG編碼器包括用作劃分裝置的塊形成單元1、編碼控制單元2、標(biāo)記產(chǎn)生單元3、用作空間變換裝置的列操作確定單元4、用作空間變換裝置的行操作確定單元5、用作頭部信息添加裝置的頭部產(chǎn)生單元6、用作空間頻率變換裝置的正交變換單元7、用作量化裝置的量化單元8、用作量化裝置的量化表產(chǎn)生單元9、熵編碼單元10、以及用作壓縮圖像文件產(chǎn)生裝置和頭部信息產(chǎn)生裝置的合成單元13。
因此,圖1所示的擴(kuò)展JPEG編碼器與圖28所示的傳統(tǒng)JPEG編碼器相當(dāng),但圖1所示的擴(kuò)展JPEG編碼器添加了編碼控制單元2、列操作確定單元4、行操作確定單元5、以及頭部產(chǎn)生單元6。此外,圖28所示的傳統(tǒng)合成單元13用于合成編碼數(shù)據(jù)和標(biāo)記,而圖1所示的合成單元13還合成JEX頭部信息以及編碼數(shù)據(jù)和標(biāo)記,如以下所述。
熵編碼單元10還包括Z字形掃描單元11和Huffman編碼單元12。
塊形成單元1用于輸入圖像數(shù)據(jù),并將該圖像數(shù)據(jù)劃分為由8×8像素構(gòu)成的塊單元。
編碼控制單元2用于讀取與編碼時的壓縮級別相關(guān)的設(shè)置值,并分別發(fā)送列操作確定單元4和行操作確定單元5所需的設(shè)置值。
標(biāo)記產(chǎn)生單元3用于產(chǎn)生在合成單元13中合成文件所需的標(biāo)記。
列操作確定單元4利用從編碼控制單元2發(fā)送來的設(shè)置值確定是否應(yīng)對從塊形成單元1讀取的8×8像素塊圖像數(shù)據(jù)的列方向上的像素數(shù)據(jù)陣列進(jìn)行預(yù)定的可逆操作,并且在確定應(yīng)進(jìn)行該操作時進(jìn)行該操作。
行操作確定單元5利用從編碼控制單元2發(fā)送來的設(shè)置值確定是否應(yīng)該對從列操作確定單元4發(fā)送來的8×8像素塊圖像數(shù)據(jù)的行方向上的像素數(shù)據(jù)陣列進(jìn)行預(yù)定的可逆操作,并且在確定應(yīng)進(jìn)行該操作時進(jìn)行該操作。
在上述處理順序中,在列操作確定單元4進(jìn)行預(yù)定操作之后,行操作確定單元5進(jìn)行預(yù)定的操作,但如以下所述,與行相關(guān)的操作和與列相關(guān)的操作是可互換的,從而可采用這樣的處理順序,即,在行操作確定單元5進(jìn)行預(yù)定操作之后,列操作確定單元4進(jìn)行預(yù)定的操作。
頭部產(chǎn)生單元6用于產(chǎn)生頭部信息,該頭部信息是將由于列操作確定單元4的操作而在圖像中產(chǎn)生的變化以及由于行操作確定單元5的操作而在圖像中產(chǎn)生的變化恢復(fù)為初始狀態(tài)以進(jìn)行后續(xù)解碼所需的。
正交變換單元7對從行操作確定單元5發(fā)送的8×8像素塊數(shù)據(jù)進(jìn)行電平移位,以使像素數(shù)據(jù)的動態(tài)范圍以0(零)為中心。然后,對像素塊進(jìn)行DCT(離散余弦變換)。注意,進(jìn)行電平移位使得像素塊數(shù)據(jù)的平均值接近0,從而提供了這樣的優(yōu)點,即,在進(jìn)行DCT時可以減小所謂的DC系數(shù)。在該變換之后,正交變換單元7再次以8×8陣列塊數(shù)據(jù)的形式輸出64組數(shù)據(jù)。
量化單元8用于通過將從正交變換單元7發(fā)送來的8×8陣列塊數(shù)據(jù)的每個元素除以由相同的8×8陣列大小構(gòu)成的量化表數(shù)據(jù)的每個元素,并忽略其小數(shù)部分,來對每個像素使用不同的量化寬度進(jìn)行量化。該量化表是由8×8量化系數(shù)構(gòu)成的表,用于對進(jìn)行了空間頻率變換的8×8塊內(nèi)的每個元素進(jìn)行量化。
量化表產(chǎn)生單元9產(chǎn)生要由量化單元8使用的量化表數(shù)據(jù)。如公知的那樣,量化表產(chǎn)生單元9對DC系數(shù)和低頻AC系數(shù)產(chǎn)生值相對小的數(shù)據(jù),而對高頻AC系數(shù)產(chǎn)生值相對大的數(shù)據(jù)。
Z字形掃描單元11用于以Z字形方式從DC系數(shù)到AC系數(shù)的高頻側(cè)對從量化單元8發(fā)送的8×8陣列塊數(shù)據(jù)進(jìn)行掃描,并以64組1-D陣列數(shù)據(jù)的形式讀出該數(shù)據(jù)。
Huffman編碼單元12用于參照預(yù)定的Huffman編碼表基于Z字形掃描單元11的掃描結(jié)果進(jìn)行可變長度編碼,以壓縮數(shù)據(jù)量。
合成單元13用于將由Huffman編碼單元12進(jìn)行了編碼的圖像數(shù)據(jù)、由頭部產(chǎn)生單元6產(chǎn)生的頭部信息、以及由標(biāo)記產(chǎn)生單元3產(chǎn)生的標(biāo)記合成為一個圖像文件(進(jìn)行了JPEG擴(kuò)展編碼的圖像文件)并輸出該文件。
接著,圖2為表示擴(kuò)展JPEG解碼器的結(jié)構(gòu)的框圖,而圖29為表示傳統(tǒng)的JPEG解碼器的結(jié)構(gòu)的框圖。
該擴(kuò)展JPEG解碼器包括用作頭部信息讀取裝置的標(biāo)記確定單元21、劃分單元22、用作熵解碼裝置的熵解碼單元23、用作逆量化裝置的逆量化單元26、用作逆量化裝置的量化表產(chǎn)生單元27、用作逆空間頻率變換裝置的逆正交變換單元28、用作附加頭部信息讀出裝置的頭部解釋器29、解碼控制單元30、用作逆空間變換裝置的行操作單元31、用作逆空間變換裝置的列操作單元32、以及用作再現(xiàn)裝置的塊再現(xiàn)單元33。
這樣,圖2所示的擴(kuò)展JPEG解碼器與圖29所示的傳統(tǒng)JPEG解碼器相當(dāng),不過圖2所示的擴(kuò)展JPEG解碼器添加了頭部解釋器29、解碼控制單元30、行操作單元31、列操作單元32。而且,圖29所示的傳統(tǒng)劃分單元22用于將編碼數(shù)據(jù)劃分為與像素塊相對應(yīng)的多個部分,但圖2所示的劃分單元22還將JEX頭部信息輸出至頭部解釋器29,如以下所述。
熵解碼單元23還包括Huffman解碼單元24以及逆Z字形掃描單元25。
標(biāo)記確定單元21用于確定包括在進(jìn)行了JPEG擴(kuò)展編碼的圖像文件中的所有標(biāo)記。
劃分單元22用于根據(jù)標(biāo)記確定單元21確定的結(jié)果提取與上述8×8像素塊相對應(yīng)的編碼部分。
Huffman解碼單元24用于參照Huffman編碼表對從劃分單元22輸出的解碼部分進(jìn)行解碼。
逆Z字形掃描單元25用于通過以Z字形的方式對由Huffman解碼單元24進(jìn)行了解碼的數(shù)據(jù)進(jìn)行再現(xiàn),來獲得8×8陣列塊數(shù)據(jù)。
逆量化單元26用于通過將從逆Z字形掃描單元25輸出的8×8陣列塊數(shù)據(jù)的每個元素乘以由相同的8×8陣列大小構(gòu)成的量化表數(shù)據(jù)的每個元素來進(jìn)行逆量化。
量化表產(chǎn)生單元27用于產(chǎn)生要由逆量化單元26使用的量化表數(shù)據(jù),并且這里產(chǎn)生的量化表與圖1所示的量化表產(chǎn)生單元9產(chǎn)生的量化表相同。
逆正交變換單元28用于通過對由逆量化單元26進(jìn)行了逆量化的8×8陣列塊數(shù)據(jù)進(jìn)行作為逆空間頻率變換的逆DCT,來產(chǎn)生8×8像素塊圖像數(shù)據(jù)。
頭部解釋器29用于確定在頭部中是否記錄了與擴(kuò)展JPEG相關(guān)的頭部信息。
解碼控制單元30用于通過讀出恢復(fù)圖像所需的頭部信息來實現(xiàn)控制,并用于在頭部解釋器29確定已經(jīng)記錄了根據(jù)擴(kuò)展JPEG的頭部信息時,向行操作單元31或列操作單元32輸出該頭部信息。更具體地說,在記錄了對由于列操作確定單元4的特定操作而在圖像中產(chǎn)生的變化進(jìn)行恢復(fù)所需的頭部信息的情況下,解碼控制單元30向列操作單元32輸出該頭部信息,而在記錄了對由于行操作確定單元5的特定操作而在圖像中產(chǎn)生的變化進(jìn)行恢復(fù)所需的頭部信息的情況下,解碼控制單元30向行操作單元31輸出該頭部信息。
在上述處理順序中,在行操作單元31進(jìn)行操作之后,列操作單元32進(jìn)行操作,但是如上所述,與行相關(guān)的操作和與列相關(guān)的操作是可互換的,從而可采用這樣的處理順序,即,在列操作單元32進(jìn)行操作之后,行操作單元31進(jìn)行操作。
塊再現(xiàn)單元33用于將對每個塊進(jìn)行了解碼的圖像數(shù)據(jù)再現(xiàn)為原始的一頁圖像數(shù)據(jù)。
接下來,圖3為表示編碼處理的流程圖。圖3所示的處理可以是采用具有諸如圖1所示結(jié)構(gòu)的編碼器的硬件式處理,但不限于此,而是可以通過用計算機(jī)等執(zhí)行編碼程序來采用軟件式處理。
當(dāng)該處理開始時,首先將待處理的圖像數(shù)據(jù)劃分為一些塊(步驟S1)。圖7為表示其中VGA圖像被劃分為一些塊的示例的圖。在圖7所示的示例中,由640×480像素構(gòu)成的VGA圖像被劃分為多個8×8像素塊,從而產(chǎn)生總共80×60=4800個8×8像素塊。
圖8為表示8×8像素塊的像素結(jié)構(gòu)的圖。對于所產(chǎn)生的8×8像素塊,通過指定第0至第7行的行號以及第0至第7列的列號來表示像素坐標(biāo)(列號,行號)。此時,位于左上角的像素的坐標(biāo)表示為(0,0),位于右上角的像素的坐標(biāo)表示為(7,0),位于左下角的像素的坐標(biāo)表示為(0,7),而位于右下角的像素的坐標(biāo)表示為(7,7)。將坐標(biāo)(k,l)中的像素數(shù)據(jù)表示為f(k,l)。
注意,盡管作為示例示出了其上沿垂直方向和沿水平方向排列有正方形或矩形像素的圖像,但本實施例可處理的圖像不限于這些圖像。
圖9為表示通過填充六角形像素而進(jìn)行2-D形再現(xiàn)的圖像的示例的圖。即使在圖9所示的圖像中,通過取如圖9所示的像素位置a至p使得能夠獲得如圖10所示的沿行方向和沿列方向排列的像素數(shù)據(jù),從而使得能夠進(jìn)行如下所述的各種處理。圖10為表示其中設(shè)置在圖9中的像素數(shù)據(jù)沿行方向和沿列方向排列的示例的圖。
此外,更一般地說,可以采用排列在曲面上的像素,例如排列在昆蟲復(fù)眼上的像素,而且每個像素還不必具有相同的形狀。也就是說,通過分布廣泛的布置可以處理以離散的方式設(shè)置為2-D緊流形的像素。
再回到圖3進(jìn)行描述,接下來,進(jìn)行如以下將參照圖5詳細(xì)描述的擴(kuò)展JPEG編碼(JEX編碼)處理(步驟S2)。這里,進(jìn)行像素數(shù)據(jù)的置換,使得在后續(xù)階段的正交變換產(chǎn)生的高頻系數(shù)減小。如上所述,該置換處理是可逆的,從而在對數(shù)據(jù)進(jìn)行解碼時,決不會丟失數(shù)據(jù)。
隨后,進(jìn)行利用DCT的正交變換(步驟S3)。首先,如下式1中所示將像素數(shù)據(jù)f(k,l)表示為fkl。這里,假設(shè)像素數(shù)據(jù)fkl由值在0到28-1之間的8位數(shù)據(jù)構(gòu)成。
fkl=f(k,l)fkl∈
通過諸如式2所示的算術(shù)運算使用因子K將該像素數(shù)據(jù)fkl變換到頻域中的式D,來進(jìn)行DCT。
Duv=Σk=07Σl=07KkufklKlv]]>這里,在每個變量所附的后綴中,下標(biāo)代表頻率,上標(biāo)代表空間。
此外,用于正交變換的因子K由以下式3和式4表示。
Kku=12C(u)·cos(2k+1)uπ16]]>C(u)=12(u=0)1(u>0)]]>[式4]Klv=12C(v)·cos(2l+1)vπ16]]>C(v)=12(v=0)1(v>0)]]>注意,可以通過采用矩陣表達(dá)式將式2表示為以下矩陣運算。
D=kfKT這里,在右側(cè)的最后一項K的右邊所附的上標(biāo)[T]表示K的正常矩陣轉(zhuǎn)置。
更具體地說,可以利用余弦函數(shù)中的角度變?yōu)?的事實通過以下方式(式6)來計算系數(shù)D00。
D00=Σk=07Σl=07Kk0fklKl0=18Σk=07Σl=07fkl]]>因此,可以通過將8×8像素塊內(nèi)的圖像數(shù)據(jù)的平均值乘以8來獲得系數(shù)D00。
對于D00以外的系數(shù),余弦函數(shù)中的與頻率相對應(yīng)的角度項通常不為零,從而這些系數(shù)與針對每個頻率分量在該8×8像素塊中的提取變化相對應(yīng)。更具體地說,例如,通過下式7計算系數(shù)D10。
D10=Σk=07Σl=07Kk1fklKl0=142·Σk=07cos(2k+1)π16Σl=07fkl=V→·W→]]>這里,各個向量V和W分別表示式7中的以下部分。
V→=(V0,...,V7),]]>Vk=142cos(2k+1)π16]]>[式9]W→=(W0,...,W7),]]>Wk=Σl=07fkl]]>如參照這些式8和式9可理解的那樣,向量W的第k元素是第k列的像素數(shù)據(jù)的總和。此外,向量V的第k元素是嚴(yán)格單調(diào)遞減的離散函數(shù)。這樣,系數(shù)D10可以表示為向量內(nèi)積,并且通過類似的推導(dǎo),系數(shù)D01(沒有明確示出其表達(dá)式)也可表示為向量內(nèi)積。
可以通過依次進(jìn)行這種算術(shù)運算來計算從D00至D77的64個DCT系數(shù)。
回到圖3,在正交變換之后,對DCT系數(shù)進(jìn)行量化(步驟S4)。通過將所述64個DCT系數(shù)分別除以不同的系數(shù)(Q系數(shù)),并忽略其小數(shù)部分,來進(jìn)行該量化??梢圆捎妙A(yù)先選擇的值作為用于該量化的系數(shù),并且需要準(zhǔn)備一組理想的系數(shù)作為量化表。通常,諸如D00的DC系數(shù)以及諸如D10、D01的相對低頻AC系數(shù)包括與圖像有關(guān)的信息的概要,從而需要通過使用相對小的Q系數(shù)來進(jìn)行量化從而盡可能精確地存儲該信息。另一方面,即使忽略諸如D77的高頻AC信息,這些信息對整個圖像的視覺效果也僅產(chǎn)生有限的影響。因此使用相對大的Q系數(shù)對它們進(jìn)行量化。
通過以Z字形的方式從分量00到分量77進(jìn)行掃描,可以將DCT量化系數(shù)轉(zhuǎn)換為1-D陣列數(shù)據(jù)內(nèi)的64項(步驟S5)。
隨后,利用所謂的Huffman編碼進(jìn)行可變長度編碼(步驟S6)。Huffman編碼通過使具有較高出現(xiàn)頻率的值具有短位長度的碼,而低出現(xiàn)頻率的值具有長位長度的碼,來壓縮數(shù)據(jù),但其方法有些復(fù)雜,而且與本發(fā)明的第一實施例不直接相關(guān),從而省略其細(xì)節(jié)。除了該總體描述,還要指出,DC系數(shù)和AC系數(shù)是通過不同的方式進(jìn)行編碼的,并且將連續(xù)零的AC系數(shù)取作游程長度(run length),而將連續(xù)零之后的AC系數(shù)編碼為分別分類的10類中的任何一類的類值。
通過這種處理進(jìn)行了編碼的數(shù)據(jù)成為JPEG擴(kuò)展碼數(shù)據(jù),合成單元13將該JPEG擴(kuò)展碼數(shù)據(jù)與標(biāo)記和頭部信息一起形成文件。注意,上述量化表、DC Huffman編碼表、AC Huffman編碼表等記錄在根據(jù)JEX編碼的頭部以及頭部信息中。
圖4為表示解碼處理的流程圖。圖4所示的處理可以是利用具有諸如圖2所示結(jié)構(gòu)的解碼器的硬件式處理,或者可以通過使用計算機(jī)等執(zhí)行解碼程序而采用軟件式處理。
在該處理開始時,在標(biāo)記的幫助下,將待處理的JPEG擴(kuò)展碼劃分為與8×8像素塊的像素數(shù)據(jù)相對應(yīng)的碼部分,此后,參照記錄在頭部中的Huffman編碼表對各個碼部分進(jìn)行Huffman解碼(步驟S11)。
隨后,對64個1-D陣列系數(shù)進(jìn)行逆Z字形掃描,以將其變換為系數(shù)的8×8陣列(步驟S12)。
隨后,參照記錄在頭部中的量化表進(jìn)行逆量化(步驟S13)。
隨后,通過進(jìn)行逆DCT(IDCT)將頻率系數(shù)變換為圖像空間內(nèi)的像素值(步驟S14)。此時,進(jìn)行逆電平移位處理,在該逆電平移位處理中,以作為動態(tài)范圍中心的0為中心的正負(fù)圖像數(shù)據(jù)被變換為0到(28-1)之間的正的8位數(shù)據(jù)。
接下來,參照標(biāo)記來確定待處理的圖像文件是否為進(jìn)行了JEX編碼的圖像文件(步驟S15)。
這里,在已經(jīng)確定待處理的文件是進(jìn)行了JEX編碼的圖像文件的情況下,進(jìn)行以下詳細(xì)描述的JEX解碼處理(步驟S16)。
在已完成該步驟S16中的處理的情況下,或者在步驟S15中確定待處理的文件是沒有進(jìn)行JEX編碼的普通JPEG圖像文件的情況下,進(jìn)行處理,以將8×8像素塊圖像數(shù)據(jù)再現(xiàn)至原始圖像文件中的預(yù)定位置(步驟S17)。在對所有的8×8像素塊進(jìn)行了該塊再現(xiàn)后,恢復(fù)了一頁圖像。
圖5為表示JEX編碼處理的流程圖。該圖5示出了要在圖3的步驟S2中進(jìn)行的處理的細(xì)節(jié)。
在該處理開始時,輸入在步驟S1中劃分的8×8像素塊的像素數(shù)據(jù)f(k,l)(步驟S21)。如在圖3的步驟S1中描述的那樣,通過將一副圖像劃分為多個塊來進(jìn)行該處理。這里,對所劃分的像素塊中的第n像素塊進(jìn)行該處理,但是應(yīng)該理解,要通過順序改變該n值來對所有的像素塊進(jìn)行該處理。
接著,在每列(在改變行號的方向上)中對像素數(shù)據(jù)f(k,l)進(jìn)行相加,以產(chǎn)生每個第i列的總和數(shù)據(jù)sc(i),如式10所示,同樣地,在每行(在改變列號的方向上)中對像素數(shù)據(jù)f(k,l)進(jìn)行相加,以產(chǎn)生每個第j行的總和數(shù)據(jù)sr(j),如式11所示。
sc(i)=Σl=07f(i,l)]]>[式11]sr(j)=Σk=07f(k,j)]]>隨后,計算用于以降序?qū)?組總和數(shù)據(jù)sc(i)進(jìn)行排序的i的排列nc(i),以及用于以降序?qū)?組總和數(shù)據(jù)sr(j)進(jìn)行排序的j的排列nr(j)(步驟S23)。更具體地說,例如,在計算機(jī)的存儲器上的區(qū)域中設(shè)置數(shù)據(jù)陣列sc(0)至sc(7)以及值0至7的陣列。對數(shù)據(jù)陣列sc(0)至sc(7)應(yīng)用在編程中公知的排序算法中的任意一種,可以按照降序?qū)υ摂?shù)據(jù)進(jìn)行排序。當(dāng)通過相同的方式對數(shù)0至7的陣列進(jìn)行數(shù)據(jù)陣列sc(0)至sc(7)的這種排序處理時,所記錄的數(shù)將產(chǎn)生所需的i的排列nc(i)。也可以通過進(jìn)行相同的處理來獲得j的排列nr(j)。
注意,盡管這里以降序?qū)偤蛿?shù)據(jù)sc(i)及總和數(shù)據(jù)sr(j)進(jìn)行排序,但是可以采用升序排列。此外,可以采用任何排序,只要該排序可以降低圖像的頻率即可,而不管是升序還是降序。
隨后,確定是否需要用于對8×8像素塊中的列數(shù)據(jù)進(jìn)行排序的處理。更具體地說,利用閾值Thc來確定以下式12是否成立,[式12]sc(nc(0))-sc(nc(7))≥Thc×8并利用閾值Nc(典型的示例值為4)來確定以下式13是否成立(步驟S24)。
Chc≥Nci的排列nc(i)是用于以降序?qū)偤蛿?shù)據(jù)sc(i)進(jìn)行排序的排列,從而sc(nc(0))總是大于或等于sc(nc(7)),即,式12的左邊總為0或正。該式12的左邊成為一指數(shù),該指數(shù)表示在一列變?yōu)榱硪涣袝r,列內(nèi)的像素信號的總和的變化的最大不均勻性。因此,在該式12的左邊較小的情況下,不同列之間的信號(不同列內(nèi)的總和)幾乎不存在不均勻性,從而確定無需進(jìn)行列之間的交換。
此外,例如,如下式14所示來確定閾值Thc。
Thc=2n-3Thr=Thc這里,n表示代表像素數(shù)據(jù)的動態(tài)范圍的位值,從而例如在8位像素數(shù)據(jù)的情況下,n=8。此外,這里要從n減去的數(shù)為3,但這是因為像素塊由8×8像素構(gòu)成,從而沿列方向的像素線為8個像素,即23個像素。因此在例如采用16×16像素塊的情況下,要從n減去的數(shù)變?yōu)?。然而,這只描述了用于獲得閾值Thc的方法的示例,該方法不限于此。
注意,對以下描述的要在步驟S28中采用的閾值Thr,通常采用與閾值Thc相同的值,如該式14所示,但這也是示例,可以采用與閾值Thc不同的值。例如,在圖像在特定方向上具有相關(guān)性的情況下,可以設(shè)想將閾值Thc和閾值Thr設(shè)置得不同。
此外,這里對所有的像素塊都采用相同的閾值Thc或相同的閾值Thr,但這里要采用的閾值不限于此。相反地,可以對每個像素塊采用不同的閾值。
隨后,使用下式15計算決策值Chc(以及稍后描述的決策值Chr)。
Chc=wΣi=07|nc(i)-i|W]]>Chr=wΣi=07|nr(i)-i|W]]>該決策值Chc(以及決策值Chr)可被認(rèn)為是置換有效性程度的指數(shù)。例如,在決策值Chc=0的情況下,在一列(在變化行號的方向上)內(nèi)相加的像素值已經(jīng)使得在從左至右改變列時變小,從而不需要列的交換。還可推斷,決策值Chc越大,則要進(jìn)行交換的列的數(shù)量越大,或者交換目的地和交換源之間的差別越大。
閾值Nc表示有效性程度的下限值。例如,假設(shè)獲得了如圖11所示的排列nc(i)。圖11為表示計算要針對排列nc(i)獲得的決策值Chc所需的元素的圖表。如該附圖所示,在向更遠(yuǎn)的列移動的情況下,獲得更大的值。在使用被設(shè)置為1的權(quán)值w來計算決策值Chc的情況下,得到下式。
Chc=4+1+1+0+4+1+1+2=14注意,決策值Chc的值根據(jù)該權(quán)值w的值而變化。更具體地說,如圖12所示,當(dāng)將權(quán)值w設(shè)置為1時,兩種類型的nc(i)可以獲得相同的決策值Chc=8,而當(dāng)將權(quán)值w設(shè)置為4時,一個決策值Chc變?yōu)榧s4.8,而另一個決策值Chc變?yōu)榧s1.7,從而出現(xiàn)了差異。圖12為表示決策值如何在權(quán)值w改變時而改變的圖表。因此,在w=1的情況下,在相同的基礎(chǔ)上處理要交換的列的總數(shù)以及交換目的地與交換源之間的列號的差。另一方面,當(dāng)將權(quán)值w設(shè)置為較大的值時,與要交換的列的總數(shù)相比,更著重處理交換目的地與交換源之間的列號的差。因此,在將權(quán)值w設(shè)置為較大的值時,相距較遠(yuǎn)的列的置換與僅在較近列之間的置換相比將導(dǎo)致較大的決策值Chc。交換目的地和交換源之間的列號的差越大,則由于列的交換而導(dǎo)致的圖像變形越大,從而增加權(quán)值w與更著重圖像變形的的處理決定相對應(yīng)。該權(quán)值w可以根據(jù)需要通過對編碼控制單元2設(shè)置的壓縮級別來進(jìn)行設(shè)置。如果該權(quán)值例如被設(shè)置為“1”,則提供了以下優(yōu)點簡化了算術(shù)運算,從而降低了處理負(fù)荷。
注意,通過步驟S24,只確定了兩個決策值的下限,還需要進(jìn)一步進(jìn)行對上限的確定。也就是說,在上述兩個決策值變得太大時,像素塊內(nèi)的圖像將在置換后極大地變形。在這種情況下,如果使用傳統(tǒng)的JPEG解碼器來恢復(fù)JEX文件,則圖像將幾乎只在塊級別上再現(xiàn)。因此,在著重于與傳統(tǒng)JPEG解碼的一般兼容性的情況下,優(yōu)選的是提供上限。提供這種上限使得能夠在通過傳統(tǒng)的JPEG解碼器恢復(fù)JEX文件時能夠在一定程度上再現(xiàn)像素塊內(nèi)的圖像。
在步驟S24中,在滿足該條件的情況下,使用1(其表示進(jìn)行了對列的置換)來替代數(shù)據(jù)Pc(步驟S25)。該數(shù)據(jù)Pc是以后要記錄在圖像文件的頭部中作為頭部信息的數(shù)據(jù)。
隨后,實際進(jìn)行f(k,l)的列置換(步驟S26)。這里,將f(k,l)的數(shù)據(jù)撤回(retreat)到另一存儲區(qū)域等中,然后將f(nc(k),l)的數(shù)據(jù)寫入到f(k,l)的數(shù)據(jù)位置中。通過反復(fù)進(jìn)行這種處理來進(jìn)行置換,從而使得8×8像素塊的數(shù)據(jù)陣列變?yōu)閒(nc(0),l),f(nc(1),l),…,f(nc(7),l)該置換是如下所述的線性置換的具體示例。
首先,將如圖8所示的8×8像素塊的像素數(shù)據(jù)f(0,0)至f(7,7)表示為如下式16所示的8×8矩陣M。
注意,盡管已經(jīng)將該8×8像素塊按原樣進(jìn)行自然表述而表示為8×8方矩陣,但矩陣表示不限于此。例如,該8×8像素塊可以表示為如下式17所示的4×16的非方陣M′。
M′=f(0,0)f(1,0)···f(7,0)f(0,1)f(1,1)···f(7,1)f(0,2)f(1,2)···f(7,2)f(0,3)f(1,3)···f(7,3)f(0,4)f(1,4)···f(7,4)f(0,5)f(1,5)···f(7,5)f(0,6)f(1,6)···f(7,6)f(0,7)f(1,7)···f(7,7)]]>在該式17中示出的矩陣表示是用于將像素數(shù)據(jù)劃分為偶數(shù)行和奇數(shù)行的表示,在處理其一個幀被劃分為偶數(shù)域和奇數(shù)域的隔行掃描圖像數(shù)據(jù)時,該矩陣表示是有利的。換言之,相鄰像素應(yīng)優(yōu)選地具有較高相關(guān)性,以便在該方法中高效地壓縮圖像。因此,可以想到,可以通過對被假定為具有高相關(guān)性的每個域的像素數(shù)據(jù)進(jìn)行處理而實現(xiàn)更有效的數(shù)據(jù)編碼。如下進(jìn)行對式17所示的4×16的非方陣的矩陣操作通過左乘4×4矩陣而進(jìn)行行算術(shù)運算,并通過右乘16×16矩陣而進(jìn)行列算術(shù)運算。進(jìn)行這種矩陣表示使得能夠在由奇數(shù)行(奇數(shù)排)構(gòu)成的4個像素組成的列與由偶數(shù)行(偶數(shù)排)構(gòu)成的4個像素組成的列之間進(jìn)行列變換。
此外,另一矩陣表示的示例包括如下式18所示的矩陣M”。
M″=(f(0,0)f(1,0)…f(7,0)f(0,1)…f(7,1)f(0,2)…f(7,2)…f(7,7))在該式18中所示的矩陣表示為具有1行64列的矩陣,即,64-D向量。采用這樣的表示對該向量進(jìn)行矩陣算術(shù)運算導(dǎo)致要進(jìn)行64行64列的巨大矩陣運算,這導(dǎo)致了算術(shù)運算處理變得繁重而耗時的缺點。另一方面,該矩陣運算使得對像素的算術(shù)運算具有最高的自由度。
如下式19所示的表示對矩陣M進(jìn)行的任意可逆矩陣運算。
M→A·M·B這里,A和B分別為具有逆矩陣的矩陣。在沿逆方向進(jìn)行算術(shù)運算的情況下,可以左乘A的逆矩陣,而可以右乘B的逆矩陣。注意,不論矩陣M是方陣還是非方陣,都可以應(yīng)用該矩陣運算。
為了對圖像數(shù)據(jù)的像素塊進(jìn)行式19所示的該矩陣運算,具體地,以可靠的方式進(jìn)行該矩陣運算,作為JPEG的預(yù)處理,矩陣運算后的矩陣分量必須在像素值的動態(tài)范圍
內(nèi)。該條件與作為必要條件的矩陣A和矩陣B可逆的條件一起在下面概括為充分條件。
首先,對于矩陣A,(A1)矩陣A具有逆矩陣(可逆)。
(A2)矩陣A的每個元素a滿足1≥a≥0。
(A3)矩陣A的各個元素a沿行方向的總和Suma滿足1≥Suma≥0。接下來,對于矩陣B,(B1)矩陣B具有逆矩陣(可逆)。
(B2)矩陣B的每個元素b滿足1≥b≥0。
(B3)矩陣B的各個元素b沿列方向的總和Sumb滿足1≥Sumb≥0。
對于條件A3和條件B3,所述總和越小,即所述總和越遠(yuǎn)離1越接近于0,則整個像素塊的信號值被抑制得越多,從而減小了信號之間的差異,即,增強(qiáng)了低通濾波(LPF)的效果。然而,當(dāng)抑制整個像素塊的信號值時,也對整個頻率分量抑制了DCT系數(shù),從而由于量化步長而導(dǎo)致的誤差增加。
在JPEG的情況下,對于較高頻率系數(shù),量化步長較大,因此,對于較高頻率分量,由于這種量化誤差而導(dǎo)致的影響增加。(參見以下描述的日本未審專利公報No.2000-308058對量化誤差的描述。注意,為了便于說明,以像素塊的簡單除法運算作為示例來描述該量化誤差,但是有關(guān)量化誤差的結(jié)論可以用來理解由于矩陣A和B的公共元素值的減少而導(dǎo)致的量化誤差的增加)。因此,條件A3中所示的總和Suma以及條件B3中所示的總和Sumb優(yōu)選地分別被設(shè)置為盡可能接近1的值。
此外,條件A2和B2中的矩陣元素a和b的值越小,則由于系列的編碼和解碼過程而導(dǎo)致的結(jié)果的算術(shù)誤差將越大。這是因為盡管矩陣A和矩陣B是可逆的,但實際的像素信號被數(shù)字化。更具體地說,因為矩陣元素a和b接近0,所以逆矩陣的元素將具有與1/a或1/b(這些值都大于1)相當(dāng)?shù)闹担?,逆矩陣的元素增大。因此,矩陣元素a或b變得越小,則由于在進(jìn)行逆矩陣運算后將矩陣運算結(jié)果舍入為最接近的整數(shù)而導(dǎo)致的算術(shù)誤差越大。
由于該原因,可得出這樣的結(jié)論,即,用作算子的矩陣中的一列內(nèi)的總和以及一行內(nèi)的總和優(yōu)選地被設(shè)置為盡可能接近1的值,而且在將矩陣元素a和b本身設(shè)置為盡可能接近1的值時,提高了數(shù)字算術(shù)運算的精度。
可以示出滿足諸如上述條件A1至A3或條件B1至B3的條件的矩陣的一些示例。第一示例為置換矩陣,第二示例為除了對角線元素外左下三角形陣列部分的所有元素都為0的矩陣(以下將給出更確切的描述)。將對這兩個示例進(jìn)行簡要的描述。
對于第一示例,在置換矩陣中,每個元素都被設(shè)置為0或1的值,每一行的元素的總和恒為1,而且每一列的元素的總和也恒為1。在下式20中示出了典型置換矩陣的示例。
P=1000000000100000010000000000001000010000000000010000010000001000]]>因此,對于采用這種置換矩陣的線性可逆變換,可以得出這樣的結(jié)論,即,上述LPF效果以及由此出現(xiàn)的量化誤差最小。因為該置換矩陣具有對于每一行和每一列都存在單個非零系數(shù)1的結(jié)構(gòu),所以在實際進(jìn)行將表示像素塊的矩陣乘以該置換矩陣的算術(shù)運算時,應(yīng)該執(zhí)行該矩陣運算,作為在表示像素塊的矩陣內(nèi)列和行的交換。注意,該置換矩陣是被用作本第一實施例的DCT預(yù)處理的矩陣,以下將更加詳細(xì)地描述。
接著,第二示例的矩陣如下。該矩陣為除了對角線元素以外左下三角形陣列部分的所有元素都為0的矩陣,右上三角形部分的元素(包括對角線元素)被選擇為滿足條件A2和條件A3,并且對角線元素都非零。下式21中示出了該矩陣。
這里,ai滿足1≥ai>0(i=0,…,7),bij滿足1>bij≥0(i=1,…,7,j=,…,6,j<i),此外,分別而言,在矩陣B的情況下,元素滿足式22,而在矩陣A的情況下,各元素分別滿足式23。
0<ai+Σj<ibij≤1]]>[式23]0<ai+Σi>lbil≤1]]>該矩陣的具體示例在下式24中示出。
公知的是,對于對角線元素都非零而且左下三角形陣列部分的元素都為零的矩陣,其行列式值為所有對角線元素的乘積,即,行列式非零,從而該矩陣是可逆的。
因為這種矩陣是可逆的并且通常具有減小高頻系數(shù)的功能,從而可得出這樣的結(jié)論,即,其具有可逆的LPF功能。當(dāng)對表示像素塊的矩陣M進(jìn)行基于這種矩陣的空間變換時,必須實際進(jìn)行數(shù)學(xué)上表示的矩陣運算,從而優(yōu)選的是在集成電路(IC)中進(jìn)行該矩陣運算,以使得能夠進(jìn)行高速的算術(shù)處理。此外,在與上述置換矩陣相結(jié)合對這種矩陣進(jìn)行運算的情況下,作為矩陣運算來進(jìn)行該運算是最有效的方式。
接著,式19所示的矩陣A或矩陣B具有逆矩陣,從而矩陣A或矩陣B具有以下所示的特征。
也就是說,已經(jīng)在數(shù)學(xué)上證明,通過組合了諸如下式25所示的基矩陣Fkl以及諸如式26所示的基矩陣Fk(α)的乘積,可以將具有逆矩陣的任意矩陣表示為A=…Fkl…Fj(α)…Fmn…Fi(β)…(例如參見Max Koecher,“Linear Algebra und analytische Geometrie”,Springer Verlag(Berlin),1985)。
[式26]
注意,式25所示的Fkl中的非對角線分量1為第k行第l列的元素(注意,在兩個后綴中,左側(cè)后綴表示行號,右側(cè)后綴表示列號,因此該表示與其它矩陣部分的后綴表示相反),式26所示的Fk(α)中的對角分量α為第k行第k列的元素。此外,F(xiàn)k(α)必須具有逆矩陣,從而α為非零實數(shù)。
對矩陣M右乘式25所示的基矩陣Fkl(即,M·Fkl)產(chǎn)生了這樣的算術(shù)運算,即,其中矩陣M的第l列的元素分別被加到矩陣M的第k列的對應(yīng)元素上,而且將其結(jié)果作為新的第l列。
此外,通過對矩陣M左乘基矩陣Fkl(即,F(xiàn)kl·M)產(chǎn)生了這樣的算術(shù)運算,即,其中矩陣M的第k行的元素分別被加到矩陣M的第l行的對應(yīng)元素上,而且將所獲得的結(jié)果作為新的第k行。
另一方面,對矩陣M右乘式26所示的基矩陣Fk(α)(即,M·Fk(α))產(chǎn)生了這樣的算術(shù)運算,即,其中矩陣M的第k列的每個元素都乘以α,而且將所獲得的結(jié)果作為新的第k列。
此外,對矩陣M左乘式26所示的基矩陣Fk(α)(即,F(xiàn)k(α)·M)產(chǎn)生了這樣的算術(shù)運算,即,其中矩陣M的第k行的每個元素都乘以α,而且將所獲得的結(jié)果作為新的第k行。
在下式27中采用基矩陣Fkl和Fk(α)本身的組合來表示基矩陣Fkl和Fk(α)的逆矩陣。
Fkl-1=Fl(-1)FklFl(-1),F(xiàn)klFkl-1=EFl(α)-1=Fl(α-1),F(xiàn)l(α)Fl(α-1)=E這里,E為如下式28所示的單位矩陣。
而且,式19所示的矩陣運算為線性運算。也就是說,如果將矩陣M表示為矩陣M1和矩陣M2的和,則下式29成立,[式29]A·M·B=A·(M1+M2)·B=A·M1·B+A·M2·B其表示滿足線性關(guān)系。因此,式19所示的矩陣運算為線性可逆運算,而且在采用該運算來改變圖像空間分布的情況下,該運算可被稱為線性可逆映射。換言之,可以說,在將像素表示為矩陣的情況下,線性可逆映射是通過對該矩陣進(jìn)行可逆線性矩陣運算而獲得的圖像空間變換。
因此,線性可逆映射是通過連續(xù)對矩陣M進(jìn)行以下運算而獲得的映射1.將第二行或列加到第一行或列的算術(shù)運算。
2.將一行或一列乘以非零系數(shù)的算術(shù)運算。
注意,整理(comb)如式19所示的線性可逆圖像空間變換與如式5所示的DCT產(chǎn)生了如下式30所示的矩陣表示。
M→KAMBKT另一方面,與電平移位相對應(yīng)的矩陣運算為非線性運算。電平移位是這樣的算術(shù)運算,其中將像素數(shù)據(jù)的矩陣M與矩陣A相加,該矩陣A的元素由電平移位量給出。如下式31所示,[式31]M+A=(M1+M2)+A=(M1+A)+(M2+A)-A不滿足線性關(guān)系。
此外,在日本未審專利申請公報No.2000-308058的背景技術(shù)中描述的技術(shù)用于在進(jìn)行DCT之前進(jìn)行如下式32所示的變換,[式32]M→(1/2)·M+128N這里,N為所有元素都為1的矩陣。該變換用于將像素值壓縮到動態(tài)范圍的一半,從而將像素值轉(zhuǎn)換為原始動態(tài)范圍內(nèi)的中值。因此,該變換包括與上述電平移位相當(dāng)?shù)碾娖揭莆唬胰菀鬃C明不滿足線性關(guān)系。將該變換與隨后將要進(jìn)行的DCT進(jìn)行組合,可以將整個變換表示為如下式33所示。
M→12KMKT+1024D‾00]]>這里,作為右側(cè)第二項的矩陣D00(替代表示)是只有DCT的(0,0)系數(shù)變?yōu)橹?的矩陣,即,簡言之,其中只有分量(0,0)為1,而除此之外的分量為0的矩陣。
注意,在該日本未審專利申請公報No.2000-308058中描述的技術(shù)為這樣的變換,其中,不僅與本第一實施例中描述的JEX相比,而且與傳統(tǒng)的JPEG相比,量化誤差通常都會增加。
也就是說,如果將傳統(tǒng)JPEG中的DCT系數(shù)的絕對值表示為w,如下式34所示,[式34]w=|(KMKT)uv|]]>則量化以及逆量化之后的量化誤差Δ1變?yōu)橄率?5[式35]Δ1=[wq]·q]]>這里,q為q=Q(u,v),其表示量化寬度。
另一方面,容易證明,在利用日本未審專利申請公報No.2000-308058中所描述的技術(shù)進(jìn)行處理后,進(jìn)行DCT,并隨后進(jìn)行量化和逆量化時,量化誤差Δ2變?yōu)橄率?6。
Δ2=[w2q]·2q]]>可以將DCT系數(shù)的絕對值w除以2q,而得到商ζ(ζ為滿足ζ≥0的整數(shù))和第一余數(shù),而該第一余數(shù)還可以進(jìn)一步除以q,得到商ξ(ξ=0或1)以及第二余數(shù)η(η為滿足q>η≥0的整數(shù)),即,DCT系數(shù)的絕對值w可以如下式37所示進(jìn)行分解[式37]w=ζ·2q+ξ·q+η因此,如果如下式38所示計算Δ1和Δ2之間的差,[式38]Δ1-Δ2=[w/q]·q-[w/(2q)]·2q=(2ζ+ξ)·q-ζ·2q=ξ·q≥0則可以理解,量化誤差為0或q(量化寬度),因此,Δ1和Δ2彼此相等,或者Δ1和Δ2之間的差增大。
接著,作為如上所述的線性可逆映射的具體示例,考慮線性置換。該線性置換是可以通過在像素塊中組合行的交換和列的交換來實現(xiàn)的變換。因此,可以將任意線性置換表示為由行的交換或列的交換構(gòu)成的基本置換的乘積。對于基于這種線性置換的變換,可以在變換后在像素塊內(nèi)的特定位置處找到像素塊內(nèi)的像素值。因此,像素塊內(nèi)的像素值的平均值即使在變換后也不會改變,從而線性置換對諸如具有特定像素值的像素的出現(xiàn)頻率等的統(tǒng)計量沒有影響。
這種線性置換屬于上述線性可逆映射的類型,從而可以表示為上述基矩陣的乘積。具體地說,考慮基矩陣Fk(α),可以通過代入α=-1來使用Fk(-1)。
接著,如表示矩陣M的示例的圖13所示,考慮對具有值a的第k列與具有值b的第l列進(jìn)行交換的基本置換。按照圖14所示的順序依次對該矩陣應(yīng)用基矩陣。圖14為表示用于實現(xiàn)列之間的基本置換的基矩陣的應(yīng)用順序的圖表。
首先,在第一狀態(tài)下只選取上述預(yù)定值部分產(chǎn)生了表達(dá)式(a,b)。
接著,在第一步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Fk(-1),則獲得(a,-b)。
在第二步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Fkl,則獲得(a,a-b)。
在第三步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Fl(-1),則獲得(a,b-a)。
在第四步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Flk,則獲得(b,b-a)。
在第五步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Fl(-1),則獲得(b,a-b)。
在第六步驟中,如果從右側(cè)對矩陣M應(yīng)用基矩陣Fkl,則獲得(b,a),并因此進(jìn)行了列之間的基本置換。
因此,可以采用基矩陣乘積如下式39所示的那樣表示與列之間的交換相對應(yīng)的基本置換Pkl。
Pklc=Fl(-1)FklFl(-1)FlkFl(-1)Fkl]]>注意,附加在該基本置換Pkl的右上角上的后綴“c”表示對于列的置換。
如果將該基本置換Pkl表示為具體的矩陣,則其表示為下式40表示。
這里,在對角線分量中,具有1以外的值的分量包括分量(k,k)和分量(l,l),這兩個分量的值分別為0,然而在非對角線分量中,具有0以外的值的分量包括分量(k,l)和分量(l,k),它們的值分別為1。
通過如式41所示對矩陣M右乘基本置換Pkl,導(dǎo)致第k列和第l列之間的交換。
M→M·Pklc]]>類似地,采用基矩陣的乘積如下式42所示表示與行之間的交換相對應(yīng)的基本置換Pkl。
Pklr=FlkFl(-1)FklFl(-1)FlkFl(-1)]]>注意,附加在該基本置換Pkl的右上角上的后綴“r”表示對行的置換。
通過如式43所示對矩陣M左乘基本置換Pkl,導(dǎo)致第k行和第l行之間的交換。
M→Pklr·M]]>因為可以通過對矩陣M進(jìn)行右乘的算術(shù)運算來表示與列之間的交換相對應(yīng)的基本置換,而可以通過對矩陣M進(jìn)行左乘的算術(shù)運算來表示與行之間的交換相對應(yīng)的基本置換,所以這些運算是可交換的。因此,可以首先進(jìn)行通過組合基本置換而進(jìn)行的一系列與列相關(guān)的交換或者通過組合基本置換而進(jìn)行的一系列與行相關(guān)的交換。
因此,盡管在圖5中的JEX編碼中首先進(jìn)行列的置換,隨后進(jìn)行行的置換,但該順序也可以相反。
另一方面,在上述步驟S24中,在已經(jīng)確定不滿足上述條件的情況下,使用表示沒有進(jìn)行對列的置換的0來替代數(shù)據(jù)Pc(步驟S27)。
在完成了上述步驟S26或步驟S27中的處理后,接下來,確定是否需要進(jìn)行8×8像素塊中的行數(shù)據(jù)的置換。具體地說,確定是否滿足使用了閾值Thr的下式44,[式44]sr(nr(0))-sr(nr(7))≥Thr×8并且是否滿足使用了閾值Nr的下式45(該閾值Nr通常被設(shè)置為與和列相關(guān)的閾值Nc相同的值)(步驟S28)。
CHr≥Nr如在上述步驟S24和本步驟S28中所述,將與列和行相對應(yīng)地計算的四個參數(shù),即,sc(nc(0))-sc(nc(7))、Chc、sr(nr(0))-sr(nr(7))、以及Chr與對應(yīng)的閾值進(jìn)行比較,從而可以認(rèn)為以自適應(yīng)的方式根據(jù)各個像素塊的圖像對置換進(jìn)行了控制。
注意,除了根據(jù)這四個參數(shù)和各個對應(yīng)的閾值來確定是否進(jìn)行置換之外,還可以根據(jù)以下方法進(jìn)行確定首先,通過對像素塊實際進(jìn)行置換、DCT、量化和Huffman編碼而獲得編碼。此外,通過對該像素塊實際只進(jìn)行DCT、量化和Huffman編碼,而不進(jìn)行置換,來獲得編碼。隨后,對所獲得的兩種編碼(包括頭部信息)的量進(jìn)行比較,并且僅有在前者小于后者的情況下,才采用通過置換獲得的結(jié)果。在這種方法中,對每個像素塊都進(jìn)行兩次編碼處理,從而處理時間變長,但可以獲得更可靠的數(shù)據(jù)壓縮效果。因此,對于為編碼控制單元2設(shè)置的壓縮級別,可以構(gòu)想一種設(shè)置使得可以選擇這些措施。
在步驟S28中,在已經(jīng)確定滿足這些條件的情況下,使用表示已進(jìn)行了對行的置換的1來替代數(shù)據(jù)Pr(步驟S29)。該數(shù)據(jù)Pr與上述數(shù)據(jù)Pc一樣,也是稍后要記錄在圖像文件的頭部作為頭部信息的數(shù)據(jù)。
隨后,實際進(jìn)行f(k,l)的行置換,以使8×8像素塊的數(shù)據(jù)陣列變?yōu)閒(k,nr(0)),f(k,nr(1)),…,f(k,nr(7))(步驟S30)。
另一方面,在步驟S28中,在已經(jīng)確定不滿足上述條件的情況下,使用表示沒有進(jìn)行對列的置換的0來替代數(shù)據(jù)Pr(步驟S31)。
在完成步驟S30或步驟S31后,接下來,產(chǎn)生要寫入到圖像文件的頭部中的頭部信息Ph(n)(步驟S32)。
圖23為表示儲存JPEG壓縮數(shù)據(jù)的EXIF文件的基本結(jié)構(gòu)的圖。
該EXIF文件基本上包括表示壓縮數(shù)據(jù)開始位置的標(biāo)記SOI;其中可以描述一個或多個信息的應(yīng)用標(biāo)記段APP1至APPn;量化表數(shù)據(jù),其描述從量化表定義標(biāo)記DQT開始;Huffman表數(shù)據(jù),其描述從Huffman表定義DHT開始;重新開始標(biāo)記插入間隔的定義,其描述從重新開始間隔DRI開始;幀頭部,其描述從幀段開始標(biāo)記SOF開始;掃描頭部,其描述從掃描標(biāo)記SOS開始;在該掃描頭部之后描述的壓縮數(shù)據(jù);以及表示壓縮數(shù)據(jù)結(jié)束位置的標(biāo)記EOI。
規(guī)定每個應(yīng)用標(biāo)記段APP1至APPn的大小為64K字節(jié)或更小(K表示1024),但不限制標(biāo)記段的數(shù)量。例如,可以設(shè)想在應(yīng)用標(biāo)記段APP1中描述Exif的信息,在應(yīng)用標(biāo)記段APP2中描述Flashpix的信息,而在應(yīng)用標(biāo)記段APP3中描述JEX的信息。
圖23的右側(cè)表示其中描述了JEX的信息的應(yīng)用標(biāo)記段APPi的數(shù)據(jù)結(jié)構(gòu)的示例。
如附圖所示,在段內(nèi)的頂部描述了表示這是第i應(yīng)用標(biāo)記段的APPi標(biāo)記,其后描述了該應(yīng)用標(biāo)記段APPi的字節(jié)長度(該字節(jié)長度是以字節(jié)為增量的可變長度)。隨后,描述用于擴(kuò)展JPEG(JEX)的數(shù)據(jù)頭部(例如二進(jìn)制值“4A 45 58”),其后描述了上述頭部信息Ph(n)。
現(xiàn)在,頭部信息Ph(n)的數(shù)量將是通過劃分圖像而獲得的塊的數(shù)量,但是,如上所述,段的大小必須是64K字節(jié)或更小(包括諸如標(biāo)記等的描述部分)。因此,在根據(jù)所有塊的JEX頭部信息Ph(n)的大小超過64K字節(jié)的情況下,跨越連續(xù)的多個應(yīng)用標(biāo)記段來描述該頭部信息Ph(n)。也就是說,從根據(jù)第一像素塊的頭部信息Ph(1)開始依次記錄至應(yīng)用標(biāo)記段APP3,在記錄量達(dá)到應(yīng)用標(biāo)記段APP3的上限的位置處,在下一應(yīng)用標(biāo)記段APP4內(nèi)進(jìn)行后續(xù)頭部信息Ph的記錄。注意,每個應(yīng)用標(biāo)記段的大小必須以字節(jié)為增量,而頭部信息Ph(n)是通過合并方式(packed manner)以位為增量記錄的,從而在某些情況下,段中的最后數(shù)據(jù)可能不適合以字節(jié)為增量。在這種情況下,填充位值0作為填充位,使得該段以字節(jié)大小為增量結(jié)束。
注意,在以上描述中,在EXIF文件的應(yīng)用標(biāo)記段中描述了JEX頭部信息,但頭部內(nèi)可描述JEX頭部信息的部分不限于此。例如,在JPEG壓縮數(shù)據(jù)文件中,可以在其頭部內(nèi)描述注釋,而且數(shù)據(jù)量為64K字節(jié)。因此,可以進(jìn)行這樣的設(shè)置,即,其中使用該注釋頭部部分來記錄JEX頭部信息。
圖24為更加詳細(xì)表示JPEG壓縮數(shù)據(jù)文件的基本結(jié)構(gòu)的圖。
如參照圖23部分地描述的那樣,JPEG壓縮數(shù)據(jù)文件基本上包括表示壓縮數(shù)據(jù)開始位置的標(biāo)記SOI(以十六進(jìn)制表示的二進(jìn)制值為“FFD8”);量化表數(shù)據(jù),其描述從量化表定義標(biāo)記DQT(類似地,“FF DB”)開始;Huffman表數(shù)據(jù),其描述從Huffman表定義DHT(“FF C4”)開始;重新開始標(biāo)記插入間隔的定義,其描述從重新開始間隔DRI(“FF DD”)開始;垂直行的數(shù)量、水平像素的數(shù)量、以及量化表詳細(xì)內(nèi)容,它們表示與幀相關(guān)的各種參數(shù),其描述從幀段開始標(biāo)記SOF(“FF C0”)開始;掃描頭部,其包括與掃描相關(guān)的各種類型的參數(shù),其描述從掃描標(biāo)記SOS(“FF DA”)開始;諸如注釋等的數(shù)據(jù),其描述從注釋標(biāo)記COM(“FFFE”)開始;壓縮數(shù)據(jù),其描述從重新開始標(biāo)記RST(“FF D0”)開始;以及表示壓縮數(shù)據(jù)結(jié)束位置的標(biāo)記EOI(“FF D9”)。
在這些數(shù)據(jù)的注釋部分中,在注釋標(biāo)記COM(“FF FE”)之后描述大小在2至65535字節(jié)之間的范圍內(nèi)的注釋(即,這表示以字節(jié)為增量的可變長度的段),其后描述注釋。在該注釋部分內(nèi)描述例如“4A 45 58”的二進(jìn)制值,作為擴(kuò)展JPEG(JEX)數(shù)據(jù)頭部,其后描述上述頭部信息Ph(n)。
圖25為表示頭部信息Ph(n)的結(jié)構(gòu)和具體數(shù)據(jù)示例的圖表。
根據(jù)一個像素塊的JEX頭部信息Ph(n)基本上包括表示數(shù)據(jù)開始位置的指示符Ind、表示是否已經(jīng)進(jìn)行了與列相關(guān)的置換的上述數(shù)據(jù)Pc、表示是否已經(jīng)進(jìn)行了與行相關(guān)的置換的上述數(shù)據(jù)Pr、與列相關(guān)的排列nc(0)至nc(6)、以及與行相關(guān)的排列nr(0)至nr(6)。
這里,該指示符設(shè)置1為位值,從而區(qū)分以塊為增量的數(shù)據(jù)開始位置和上述填充位。換言之,在不提供指示符Ind時,在緊接著特定像素塊的頭部信息Ph的兩個位值為“00”的情況下,不能區(qū)分這些位是填充位,還是表示Pc=0而且Pr=0的像素塊。因此,在每個像素塊的頭部信息Ph(n)的頂部總是設(shè)置位值1作為指示符Ind。
如圖5所示,在已經(jīng)進(jìn)行了置換的情況下,使用1作為位值來描述數(shù)據(jù)Pc和Pr,而在沒有進(jìn)行置換的情況下,使用0作為位值來描述數(shù)據(jù)Pc和Pr。在Pc為0時,不描述nc(0)至nc(6),另一方面,在Pr為0時,不描述nr(0)至nr(6)。
此外,在采用8×8像素塊的情況下,nc(i)和nr(j)的數(shù)據(jù)量分別為3位,從而nc(0)至nc(6)所需的數(shù)據(jù)量為21位,而且nr(0)至nr(6)所需的數(shù)據(jù)量也為21位。在頭部中不描述nc(7)和nr(7)的原因在于,排列nc(0)至nc(7)以及排列nr(0)至nr(7)為數(shù)字0至7的置換,從而通過獲得nc(0)至nc(6)的信息可以知道nc(7),同樣,通過獲得nr(0)至nr(6)的信息可以知道nr(7)。因此,在以下將要描述的解碼處理中進(jìn)行nc(7)和nr(7)的計算。
在圖25示出的示例中,Pc為1而Pr為0,從而只描述了nc(0)至nc(6),而沒有描述nr(0)至nr(6)。在圖25示出的示例中描述了圖11所示的示例中的每個列數(shù)據(jù)。
由于上述原因,一個像素塊的頭部所需的數(shù)據(jù)量為3位、24位和45位中的任何一個。因此,對于由640×480像素構(gòu)成的VGA圖像,塊的數(shù)量為(640/8)×(480/8)=80×60=4800,因此最大所需數(shù)據(jù)量為27000字節(jié)(即,在對于所有的塊Pc=Pr=1成立的情況下),即大約26K字節(jié)(這里,利用K=1024來進(jìn)行計算)。在這種情況下,因為該數(shù)據(jù)量可以容納在作為一個段大小的64K字節(jié)內(nèi),所以可以在應(yīng)用標(biāo)記段內(nèi)描述該頭部信息,或者可以在注釋段內(nèi)描述該頭部信息。然而,這是針對單色圖像的情況。
在彩色圖像的情況下,可以采用多種方法中的任何一種作為用于描述頭部信息的方法。
首先,可想到的方法是針對每種顏色Y、Cb和Cr或者每種顏色R、G、B來單獨地分析像素塊(具體地,例如,其中比較每列或每行的像素值的總和、獲得置換順序、并確定是否適于進(jìn)行置換的處理步驟),并根據(jù)各個分析結(jié)果來確定置換。然后,分別生成與每一種顏色的置換相對應(yīng)的頭部信息,并在頭部中進(jìn)行描述。在這種情況下,因為對每種顏色都進(jìn)行最優(yōu)JEX,所以可以極大地減少圖像部分的編碼量。然而,對于頭部信息,所需的數(shù)據(jù)量是單色圖像所需的數(shù)據(jù)量的三倍。在這種情況下,即使VGA圖像也需要79K字節(jié)的數(shù)據(jù)量,從而不能容納在一個段中,因而必須使用多個應(yīng)用標(biāo)記段。注意,因為不禁止提供多個注釋段,所以可以在多個注釋段中描述JEX頭部信息。
此外,另一種方法是根據(jù)在圖像質(zhì)量方面具有重要作用的顏色分量(例如,Y或G分量)的8×8像素塊的分析結(jié)果來確定置換,并將該置換應(yīng)用于所有的Y、Cb和Cr像素塊或G、R和B像素塊。在這種情況下,頭部信息所需的數(shù)據(jù)量與單色圖像情況下的所需數(shù)據(jù)量相同,從而可以在用于VGA圖像的一個段中描述頭部信息。通常,人眼對亮度信號Y的敏感度大于對色差信號Cb和Cr的敏感度。因此,通過進(jìn)行JEX以在減少頭部信息的信息量的同時更著重于再現(xiàn)亮度信號,可以如實地再現(xiàn)原始圖像。該方法尤其是對彩色程度較低的圖像具有顯著效果。
對于具有更多像素的圖像,數(shù)據(jù)量將根據(jù)像素塊的數(shù)量而增加,因此根據(jù)需要利用多個段來進(jìn)行信息的描述。
注意,在以上描述中,例如,在數(shù)據(jù)Pc為1時描述了nc(0)至nc(6)的21位數(shù)據(jù),但是還可進(jìn)一步減少數(shù)據(jù)量。因為nc(0)至nc(7)代表由數(shù)字0至7構(gòu)成的排列中的任何一種,從而存在8!種排列方式。因為8?。?27)×315<(27)×512=(27)×(29)=(216)成立,從而只要存在16位數(shù)據(jù)量就可以進(jìn)行描述。在這種情況下,例如,預(yù)先準(zhǔn)備具有8?。?0320個元素的表,在該表中描述了系列號0至40319以及與每個系列號相對應(yīng)的排列“01234567”至“76543210”。隨后,在頭部中記錄該表的系列號,并且應(yīng)該在解碼時利用相同的表來獲得原始排列數(shù)據(jù)。
在這種情況下,因為對于一個像素塊,頭部的所需數(shù)據(jù)量為3位、19位和35位,所以對于Pc和Pr中一個為1而另一個為0的塊,頭部信息的量可減少5位,此外,對于Pc=Pr=1的塊,頭部信息的量可減少10位。在這種情況下,頭部信息的最大量對于VGA單色圖像變?yōu)?1000字節(jié),即大約21K字節(jié)。
為了進(jìn)一步減少頭部信息的量,考慮使用適當(dāng)?shù)膲嚎s方法來壓縮不包括JEX擴(kuò)展頭部的頭部信息Ph(n)。這樣,可減小圖像文件的大小,而且根據(jù)具有較高分辨率的圖像數(shù)據(jù)的頭部信息也可以容納在一個段(例如注釋段)中。上述排列阿拉伯?dāng)?shù)字系統(tǒng)(algorism)根據(jù)圖像而改變,從而所計算的排列具有統(tǒng)計特性。在這種情況下,采用可變長度的編碼(例如熵編碼等)作為壓縮方法使得能夠更有效地進(jìn)行壓縮。
現(xiàn)在,輸出進(jìn)行了置換的像素數(shù)據(jù)f(k,l)以及在步驟S32中產(chǎn)生的頭部信息Ph(n)(步驟S33),然后該流程從該JEX編碼返回至圖3所示的處理。
注意,對所有的像素塊進(jìn)行圖5所示的處理,這樣,在實際中通過改變n的循環(huán)過程來進(jìn)行上述處理。
接著,圖6為表示JEX解碼的流程圖。圖6表示將要在圖4的步驟S16中執(zhí)行的處理的細(xì)節(jié)。
在該處理開始時,輸入與第n塊相關(guān)的第n逆DCT(IDCT)變換塊f′(k,l)以及頭部信息Ph(n)(步驟S41)。這里,逆DCT變換之后的塊數(shù)據(jù)不設(shè)置成f而是設(shè)置成f′的原因在于,在采用圖2所示的逆量化單元26進(jìn)行逆量化時,產(chǎn)生量化誤差,從而導(dǎo)致與原始塊數(shù)據(jù)f不同的值。
接下來,將頭部信息Ph(n)的第二位替換為數(shù)據(jù)Pc的值,而且將第三位替換為數(shù)據(jù)Pr的值(步驟S42)。
隨后,確定數(shù)據(jù)Pc的值是否為1(步驟S43)。
如果Pc為1,則從頭部信息Ph(n)獲得nc(0)至nc(6)中的每個數(shù)據(jù)(步驟S44),并根據(jù)這些數(shù)據(jù)計算nc(7)(步驟S45)。
隨后,利用這些nc(0)至nc(7)對f′(k,l)的列進(jìn)行逆置換(步驟S46),例如f′(nc(k),l)←f′(k,l)。
在步驟S46中完成該處理后,或者在步驟S43中Pc=0的情況下,接下來,判斷Pr的值是否為1(步驟S47)。
在數(shù)據(jù)Pr的值為1的情況下,從頭部信息Ph(n)獲得nr(0)至nr(6)的每個數(shù)據(jù)(步驟S48),并根據(jù)這些數(shù)據(jù)計算nr(7)(步驟S49)。
隨后,利用這些nr(0)至nr(7)對f′(k,l)的行進(jìn)行逆置換(步驟S50),例如f′(k,nr(1))←f′(k,l)。
這樣,輸出了進(jìn)行了置換的像素數(shù)據(jù)f′(k,l),隨后該流程從該JEX解碼處理返回至圖4所示的處理。
注意,如同圖5所示的處理一樣,對所有的像素塊進(jìn)行圖6所示的處理,這樣,在實際中通過改變n的循環(huán)過程來執(zhí)行上述處理。
而且,即使通過傳統(tǒng)的JPEG解碼處理也能夠在可以獲取圖像概觀的程度上再現(xiàn)通過圖3的JEX編碼產(chǎn)生的擴(kuò)展JPEG文件。
也就是說,正常的JPEG解碼處理等同于圖4中的省略了步驟S15中的處理以及步驟S16中的處理的解碼處理。因此,不進(jìn)行JEX解碼中的置換,從而對于圖像,不能總是精確地再現(xiàn)8×8數(shù)據(jù)塊中的細(xì)節(jié),但是可以獲取圖像的外觀作為以像素塊為增量的整個圖像。具體地,如上所述的像素的置換不會改變像素塊中的圖像數(shù)據(jù)的平均值,從而不管是否進(jìn)行了JEX處理,都不會影響整個圖像的概觀。
接下來,將參照圖15至圖22描述通過上述處理對具體數(shù)據(jù)進(jìn)行變換的情形。
圖15為表示從圖像數(shù)據(jù)中提取的原始8×8像素塊的數(shù)據(jù)示例的圖表。
該圖像數(shù)據(jù)為8位灰度級的單色圖,并且像素值在0至255之間。
圖16表示計算了8×8像素塊數(shù)據(jù)的沿行方向的總和以及沿列方向的總和的情形。
在圖5的步驟S22中,計算第i列中的像素值的總和數(shù)據(jù)sc(i)以及第j行的像素數(shù)據(jù)的總和數(shù)據(jù)sr(j)。
這里,sc(i)的最大值為1480,而sc(i)的最小值為807,因此,步驟S24中的第一判定表達(dá)式的左側(cè)為673。另一方面,通過將Thc的25乘以8,該判定表達(dá)式的右側(cè)為256。因此,可以理解,該第一判定表達(dá)式成立。
另一方面,sr(j)的最大值為1248,而sr(j)的最小值為1107,因此,步驟S28中的第一判定表達(dá)式的左側(cè)為141。另一方面,該判定表達(dá)式的右側(cè)與步驟中S24的第一判定表達(dá)式的右側(cè)一樣為256。因此,步驟S28中的第一判定表達(dá)式不成立,無需對第二判定表達(dá)式進(jìn)行確定,而且該流程前進(jìn)至步驟S31,其中設(shè)置Pr=0。
另一方面,在步驟S24中,第一判定表達(dá)式成立,從而還必須確定第二判定表達(dá)式。這里,在權(quán)值被設(shè)置為1并且閾值Nc被設(shè)置為上述通常的值4的情況下,對式15進(jìn)行判定。對于圖15和圖16所示的塊數(shù)據(jù)示例,如上所述,要在步驟S23中計算的nc(i)變?yōu)槿鐖D11所示,而且Chc變?yōu)?4。因此,第二判定表達(dá)式也成立。還流程前進(jìn)至步驟S25,其中設(shè)置Pc=1。
通過執(zhí)行步驟S26中的后續(xù)處理,像素塊數(shù)據(jù)變?yōu)槿鐖D17所示。圖17為表示進(jìn)行了置換的像素塊數(shù)據(jù)的圖表。在進(jìn)行了置換的像素數(shù)據(jù)的下側(cè)示出了表示列置換的nc(i)以及用于將排列恢復(fù)到原始排列的逆置換順序,在進(jìn)行了置換的像素數(shù)據(jù)的右側(cè)示出了表示行置換的nr(j)以及用于將排列恢復(fù)到原始排列的逆置換順序。然而,如上所述,因為Pr=0,并且沒有進(jìn)行行置換,所以nr(j)與它的逆(inverse)相同。
注意,如根據(jù)步驟S26中的替換式可理解的,可如下解釋nc(i)的陣列。圖17中的像素塊的第0列包括“4”作為nc(0)。因此,圖15所示的原始數(shù)據(jù)的第4列在置換后進(jìn)入第0列。類似地,圖17中的像素塊的第1列包括“2”作為nc(1)。因此,圖15所示的原始數(shù)據(jù)的第2列在置換后進(jìn)入第1列。這也適用于其它列。
隨后,在圖3中的步驟S3中進(jìn)行了處理的數(shù)據(jù)變?yōu)槿鐖D18所示。圖18為表示進(jìn)行了電平移位和DCT的數(shù)據(jù)的圖表。
利用預(yù)定的量化表在圖3的步驟S4對圖18所示的數(shù)據(jù)進(jìn)行量化獲得的結(jié)果變?yōu)槿鐖D19所示。圖19為表示量化后的8×8塊的圖表。
因此,大部分的高頻分量為0,從而可以預(yù)期后續(xù)的熵編碼能夠高效地壓縮數(shù)據(jù)。
另一方面,圖20表示通過在圖4所示的解碼處理中對圖19中的量化數(shù)據(jù)進(jìn)行逆量化和逆DCT(IDCT)、對該數(shù)據(jù)進(jìn)行電平移位并舍入到0至255的范圍內(nèi)而獲得的數(shù)據(jù)。
圖21為表示對圖20所示的數(shù)據(jù)進(jìn)行逆置換而獲得的像素塊的圖表。
因此,通過處理進(jìn)行根據(jù)圖17所示的逆nc(i)的置換,其中,圖20中的第4列數(shù)據(jù)變?yōu)閳D21中的第0列數(shù)據(jù),而圖20中的第2列數(shù)據(jù)變?yōu)閳D21中的第1列數(shù)據(jù),等等。
圖22為表示從圖21中的解碼像素塊數(shù)據(jù)中減去圖15所示的原始像素塊數(shù)據(jù)而獲得的結(jié)果的圖表。
圖22表示圖21的解碼像素塊數(shù)據(jù)以及圖15的原始像素塊數(shù)據(jù)之間的誤差。每個像素的誤差的絕對值的總和為“756”,而且誤差的均方值為“125”。
另一方面,對于沒有進(jìn)行JEX編碼的普通JPEG文件,可以獲得如圖30至圖33所示的處理結(jié)果。圖30為表示對圖15所示的原始8×8像素塊數(shù)據(jù)進(jìn)行DCT的結(jié)果的圖表,圖31為表示對圖30中的塊數(shù)據(jù)進(jìn)行量化的結(jié)果的圖表,圖32為表示對圖31中的塊數(shù)據(jù)進(jìn)行逆量化和逆DCT、電平移位、以及將數(shù)據(jù)舍入到0至255范圍內(nèi)而獲得的結(jié)果的圖表,而圖33為表示從圖32中的解碼像素塊數(shù)據(jù)中減去圖15所示的原始像素塊數(shù)據(jù)而獲得的結(jié)果的圖表。
如上所述,在圖15所示的原始圖像數(shù)據(jù)中,只重新排列了列,而沒有重新排列行。在這種情況下,置換和DCT后的結(jié)果如圖18所示,與圖30所示的只進(jìn)行了DCT的傳統(tǒng)結(jié)果相比,可以說DCT系數(shù)具有如下性質(zhì)。
(1)D00不變。
(2)D10(的絕對值)增加。
(3)對幾乎所有的v,D1v的絕對值增加。
D00為所謂的DC分量,其是與像素塊內(nèi)的像素值的平均值成比例的量。不用說,即使進(jìn)行置換(其不改變像素值的平均值),D00也保持不變。
接著,如式7所示,可以將D10視為向量V(式8)和向量W(式9)之間的內(nèi)積,該向量V由k的隨著k增加而單調(diào)遞減的函數(shù)構(gòu)成,該向量W的分量為列中的像素數(shù)據(jù)的總和。因此,顯然,通過按照列內(nèi)的像素數(shù)據(jù)的總和的遞減順序進(jìn)行列之間的置換,這些向量V和W的內(nèi)積會增加。
而且,對于D1v,盡管不能象D10的情況那樣得出簡單的結(jié)論,但是通常,隨著每列內(nèi)的像素值的增加,它們也將增加,因此,可以說通過按照列內(nèi)的像素數(shù)據(jù)的總和的遞減順序進(jìn)行列之間的置換提高了增加的可能性。
DCT為正交變換,從而在變換后內(nèi)積保持恒定。從而,DCT系數(shù)的平方和等于原始像素塊的像素值的平方和。置換不會改變像素塊的像素值的平方和,因此,經(jīng)置換的像素塊的DCT系數(shù)的平方和等于原始DCT系數(shù)的平方和。因此,在DCT系數(shù)集中在低頻區(qū)(0,0)、(0,1)、(0,v)內(nèi)時,高頻系數(shù)將必然降低。
在JPEG壓縮中,在如上所述對DCT系數(shù)進(jìn)行量化之后,進(jìn)行Z字形掃描,并根據(jù)游程長度(其是為0的連續(xù)DCT系數(shù)的數(shù)量)以及該游程長度后的DCT系數(shù)的值來進(jìn)行Huffman編碼。通常,在存在大量高頻非零系數(shù)的情況下,將產(chǎn)生多得多的長位長度的碼(最長的碼為16(游程長度)+10(AC系數(shù))=26位)。因此,減少DCT的高頻分量對減少碼量是有利的。
在圖33中,每個像素中的誤差的絕對值的總和為“900”,并且誤差的均方值為“152”。
這樣,可以看出,圖22中的擴(kuò)展JPEG具有較小的誤差,從而提高了圖像質(zhì)量。
此外,在對普通JPEG進(jìn)行編碼時,圖15所示的原始8×8像素塊數(shù)據(jù)變?yōu)?32位長,而在對擴(kuò)展JPEG進(jìn)行編碼時,該數(shù)據(jù)變?yōu)?68位。如上所述,對于圖15中的數(shù)據(jù)示例,向頭部部分添加了24位頭部信息,但仍然能夠減少40位的數(shù)據(jù)(即,幾乎是這種情況下的編碼數(shù)據(jù)量的10%)。
此外,即使采用普通JPEG對通過擴(kuò)展JPEG進(jìn)行了編碼的數(shù)據(jù)進(jìn)行解碼,也不會產(chǎn)生誤差。盡管不可能獲得與通過擴(kuò)展JPEG進(jìn)行解碼時一樣優(yōu)異的圖像,但仍然可以獲得以塊為增量的整個圖像。例如,通過5百萬像素的圖像采集設(shè)備采集的圖像具有2500×2000左右的分辨率,將該圖像劃分為塊產(chǎn)生了大約313×250個塊。因此,即使在通過傳統(tǒng)JPEG進(jìn)行解碼時,也能獲得具有足夠概觀的圖像。
圖26為表示這樣的系統(tǒng)結(jié)構(gòu)的圖,該系統(tǒng)結(jié)構(gòu)中,將能夠處理擴(kuò)展JPEG的設(shè)備和只能處理傳統(tǒng)JPEG的設(shè)備進(jìn)行組合。
通過該圖26所示的結(jié)構(gòu)示例,示出了組合了數(shù)字相機(jī)41(其能夠產(chǎn)生通過JPEG進(jìn)行了編碼的JPEG圖像文件41a以及通過JEX進(jìn)行了編碼的JEX圖像文件41b)、個人計算機(jī)(PC)42(其只能夠通過JPEG進(jìn)行解碼)以及PC 43(其能夠利用JPEG進(jìn)行解碼,而且還能夠通過安裝能利用JEX進(jìn)行解碼的軟件44來使用JEX進(jìn)行解碼)的系統(tǒng)。
數(shù)字相機(jī)41被構(gòu)造為可以執(zhí)行JPEG壓縮方法和JEX壓縮方法,或者這兩種方法中的所要求的一種。根據(jù)該數(shù)字相機(jī)41,通過采集對象并利用JPEG方法進(jìn)行壓縮而獲得的圖像成為JPEG圖像文件41a,而通過采集相同對象并利用JEX方法進(jìn)行壓縮而獲得的圖像成為JEX圖像文件41b。如上所述,根據(jù)JEX圖像文件41b的圖像相對于從數(shù)字相機(jī)41的圖像采集裝置輸出的原始圖像的誤差比根據(jù)JPEG圖像文件41a的圖像的誤差要小,從而JEX圖像是精確再現(xiàn)了更多細(xì)節(jié)的高質(zhì)量圖像。
假設(shè)通過無線LAN、USB電纜、存儲卡等將JPEG圖像文件41a和JEX圖像文件41b從數(shù)字相機(jī)41傳輸?shù)絇C 42。PC 42可以進(jìn)行JPEG解碼,從而能夠獲得對JPEG圖像文件41a進(jìn)行了解碼的顯示圖像42a。另一方面,對于JEX圖像文件41b,仍然可以在不產(chǎn)生誤差的情況下進(jìn)行通過JPEG解碼(而不是通過JEX解碼)的解碼,然而這將產(chǎn)生顯示圖像42b,其中像素塊內(nèi)的排列沒有恢復(fù)為原始順序,因此該圖像變?yōu)閴K內(nèi)的畫面發(fā)生變形從而產(chǎn)生所謂的塊噪聲的狀態(tài)。然而,整個圖像的畫面決不會變形,因此能夠獲得圖像的概觀。具體地,具有大量像素的高清晰度圖像增加了將要產(chǎn)生的塊的數(shù)量,因此,可以更容易地獲取整個圖像的情況。
接下來,假設(shè)將JPEG圖像文件41a和JEX圖像文件41b從數(shù)字相機(jī)41傳輸?shù)絇C 43。該PC 43可以通過安裝例如通過CD-ROM、DVD或通信線路提供的軟件44來利用JEX進(jìn)行解碼。因此,JPEG圖像文件41a可以被解碼成普通的顯示圖像43a,并且JEX圖像文件41b也被再現(xiàn)為圖像質(zhì)量比該JPEG圖像文件41a高的顯示圖像43b。
而且,即使對于在PC 42中產(chǎn)生塊噪聲的狀態(tài)下顯示的顯示圖像42b,通過將與顯示圖像42b相對應(yīng)的JEX圖像文件41b傳輸?shù)絇C 43,可以對高質(zhì)量的顯示圖像43b進(jìn)行解碼。
因此,在提高圖像質(zhì)量的同時,減少了數(shù)據(jù)量,此外,即使通過傳統(tǒng)的JPEG解碼處理,也能夠以一定的圖像質(zhì)量級別來再現(xiàn)利用擴(kuò)展JPEG進(jìn)行了編碼的圖像文件,從而提供了優(yōu)異的圖像壓縮方法。
注意,通過以上描述,示出了數(shù)字相機(jī)作為用于產(chǎn)生擴(kuò)展JPEG文件的裝置的示例,但當(dāng)然不限于此。作為用于產(chǎn)生擴(kuò)展JPEG文件的裝置的示例,可以提及圖像采集設(shè)備。該圖像采集設(shè)備包括用于利用電子圖像采集裝置等采集光學(xué)對象圖像來獲取圖像數(shù)據(jù)的裝置或系統(tǒng)。該圖像采集裝置的示例例如包括電子照相機(jī)、攝影機(jī)、具有照相機(jī)的手機(jī)、安裝有照相機(jī)的PC、諸如內(nèi)窺鏡(例如胃鏡)等的醫(yī)療儀器、室內(nèi)/室外監(jiān)視相機(jī)和監(jiān)控系統(tǒng)(用于通過在另一地方對從這些相機(jī)獲得的信號進(jìn)行信號處理來獲得圖像數(shù)據(jù))、用于電子地采集印刷圖像等的掃描儀、用于電子地采集膠片圖像的膠片掃描儀,等等。此外,對于用于產(chǎn)生擴(kuò)展JPEG文件的圖像采集設(shè)備以外的裝置,諸如PC等的計算機(jī)可作為示例。即,在這種情況下,待通過擴(kuò)展JPEG處理進(jìn)行處理的圖像不限于通過拍攝獲得的自然圖像,而是廣泛地包括在計算機(jī)等中產(chǎn)生的計算機(jī)圖形、呈現(xiàn)為位圖等的字符數(shù)據(jù)、通過對各種類型的圖像數(shù)據(jù)進(jìn)行合成或處理而獲得的圖像數(shù)據(jù),等等。因此,能夠產(chǎn)生這種圖像數(shù)據(jù)的裝置廣泛地成為用于產(chǎn)生擴(kuò)展JPEG文件的裝置的目標(biāo)。
此外,諸如PC等的計算機(jī)可以通過安裝和執(zhí)行JEX編碼/解碼軟件而成為能夠通過軟件的方式進(jìn)行JEX處理的裝置,但是,另一方面,通過安裝用于進(jìn)行JEX編碼/解碼的擴(kuò)展板等可以成為能夠通過硬件的方式進(jìn)行JEX處理的裝置。
注意,術(shù)語JEX包括廣義和狹義的定義。對于廣義的定義,將包括JPEG處理以及不包括在JPEG中的處理(例如圖像數(shù)據(jù)的置換等)的整個處理稱為JEX。也就是說,廣義的JEX包括JPEG。另一方面,狹義JEX表示廣義JEX與傳統(tǒng)JPEG之間的差別。在這種情況下,只有與諸如圖像數(shù)據(jù)的置換等的處理相對應(yīng)的部分被稱為JEX。
這些定義涉及用于進(jìn)行JEX編碼/解碼處理的軟件和硬件的提供方法。
具體地說,通過在PC等上安裝獨立的軟件,與廣義的定義相對應(yīng)的JEX編碼軟件或JEX解碼軟件可以進(jìn)行JPEG圖像處理和JEX圖像處理。
另一方面,通過在已經(jīng)安裝有傳統(tǒng)JPEG編碼軟件(基本編碼處理程序)或JPEG解碼軟件(基本解碼處理程序)的PC等上另外安裝JEX編碼軟件或JEX解碼軟件作為外圍軟件或者安裝附加式模塊等,與狹義的定義相對應(yīng)的JEX編碼軟件或JEX解碼軟件除了JPEG圖像處理之外還能進(jìn)行JEX圖像處理。
作為軟件的提供方法,可以選擇性地使用這些定義或者這些定義可以共存。例如,對于沒有JPEG編碼/解碼軟件的用戶,通過向這些用戶提供與廣義的定義相對應(yīng)的JEX編碼/解碼軟件,用戶可以獲得以下的優(yōu)點無需進(jìn)行兩次安裝并且能夠立即處理JPEG圖像和JEX圖像。另一方面,對于具有JPEG編碼/解碼軟件的用戶,通過向這些用戶提供與狹義的定義相對應(yīng)的JEX編碼/解碼軟件,用戶可以獲得以下的優(yōu)點用戶可以通過擴(kuò)展現(xiàn)有軟件來進(jìn)行JEX圖像處理。
這種新標(biāo)準(zhǔn)的問題是難以普及。另一方面,本申請人提出的JEX是上兼容的,包括目前廣泛使用的JPEG,這對于普及JEX是有利的,因為JEX具有多功能性。
此外,可以設(shè)想通過引入例如有償提供JEX編碼軟件但免費發(fā)布JEX解碼軟件的商業(yè)方法來在短期內(nèi)實現(xiàn)廣泛使用。
此外,對于軟件,可以設(shè)想例如提供與廣義的定義相對應(yīng)的JEX編碼/解碼擴(kuò)展板,或者向已經(jīng)具有JPEG編碼/解碼擴(kuò)展板(基本編碼/解碼裝置)的用戶提供與狹義的定義相對應(yīng)的JEX編碼/解碼擴(kuò)展板。
圖27為表示能夠?qū)EX運用于運動圖像的編碼器的結(jié)構(gòu)的框圖,而圖34為表示傳統(tǒng)的運動圖像編碼器的結(jié)構(gòu)的框圖。
該解碼器包括減法器51、JEX處理單元52、頭部信息存儲器53、DCT單元54、量化單元55、逆量化單元56、IDCT單元57、逆JEX處理單元58、加法器59、幀存儲器60、運動校正單元61、可變長度編碼單元62以及合成單元63。
因此,能夠應(yīng)用JEX的運動圖像編碼器為通過向圖34所示的傳統(tǒng)運動圖像編碼器添加JEX處理單元52、頭部信息存儲器53、以及逆JEX處理單元58而獲得的編碼器。此外,圖34所示的合成單元63用于添加諸如標(biāo)記等的信息,而圖27所示的合成器63用于進(jìn)一步添加JEX頭部信息。
減法器51用于從輸入信號中減去以下將描述的預(yù)測信號,并將其作為預(yù)測誤差信號輸出。
JEX處理單元52用于通過與JPEG中的處理的情況相同的方式進(jìn)行像素塊內(nèi)的列置換和行置換。
頭部信息存儲器53用于存儲由JEX處理單元53產(chǎn)生的JEX頭部信息。
DCT 54用于利用DCT對從JEX處理單元52輸出的像素塊進(jìn)行空間頻率變換。
量化單元55用于對從DCT 54輸出的塊數(shù)據(jù)進(jìn)行量化。
隨后的逆量化單元56至運動校正單元61是用于根據(jù)進(jìn)行了量化的塊數(shù)據(jù)產(chǎn)生預(yù)測信號的處理單元。
逆量化單元56用于對從量化單元55輸出的塊數(shù)據(jù)進(jìn)行逆量化。
IDCT 57用于通過對從逆量化單元56輸出的塊數(shù)據(jù)進(jìn)行逆DCT變換來進(jìn)行逆空間頻率變換。
逆JEX處理單元58用于讀出存儲在頭部信息存儲器53中的JEX頭部信息,并在從IDCT 57輸出的像素塊內(nèi)進(jìn)行逆列置換和逆行置換。
加法器59用于對從逆JEX處理單元58輸出的數(shù)據(jù)與從運動校正單元61輸出的預(yù)測信號進(jìn)行相加,并將結(jié)果作為本地解碼信號輸出。
幀存儲器60用于儲存從加法器59輸出的本地解碼信號。
運動校正單元61用于對存儲在幀存儲器60中的本地解碼信號進(jìn)行運動校正。從該運動校正單元61輸出的預(yù)測信號被分別輸出到減法器51和加法器59。
可變長度編碼單元62用于對從量化單元55輸出的塊數(shù)據(jù)進(jìn)行諸如Z字形掃描、Huffman編碼等的處理。
合成單元63用于合成諸如標(biāo)記等的信息、從可變長度編碼單元62輸出的編碼數(shù)據(jù)以及從頭部信息存儲器53讀出的JEX頭部信息數(shù)據(jù),并將結(jié)果作為編碼位串輸出。
注意,在對運動圖像進(jìn)行解碼時,應(yīng)該使用JEX頭部信息以幾乎相同的方式進(jìn)行JEX處理,從而省略對其的詳細(xì)描述。
現(xiàn)在,例如,MPEG文件包括作為幀內(nèi)編碼圖像(圖像數(shù)據(jù))的I圖像、作為幀間前向預(yù)測編碼圖像(差別圖像數(shù)據(jù))的P圖像、以及作為雙向預(yù)測編碼圖像(差別圖像數(shù)據(jù))的B圖像。
通過這種運動圖像結(jié)構(gòu),對于如何將上述置換應(yīng)用于哪個圖像存在多種方法。
例如,可以設(shè)想這樣的方法,其中,通過使用置換的編碼來僅壓縮I圖像,而通過不使用置換的傳統(tǒng)編碼來壓縮其它的P圖像和B圖像。在這種情況下,需要在I圖像的頭部部分中描述如在JPEG的情況下所述的預(yù)處理參數(shù)。采用這種方法尤其可以減少I圖像的碼量。
可以設(shè)想另一種方法,其中,通過使用對I圖像進(jìn)行分析而獲得的置換的編碼來壓縮I圖像,并使用和應(yīng)用于與I圖像相對應(yīng)的像素塊的置換相同的置換對其它的P圖像和B圖像進(jìn)行預(yù)處理。采用這種方法可顯著地減少碼量。
此外,可以對P圖像和B圖像的差別信號像素塊進(jìn)行預(yù)處理,而不是對I圖像進(jìn)行預(yù)處理,這是非常有效的方法。這是因為在差別信號像素塊中,幾乎所有的信號都變?yōu)榻咏?的小值,而只有包括運動的部分變?yōu)檩^大的信號值。因此,例如,通過只重新排列包括具有較大信號值的條目的列或行就可以容易地將具有較大信號值的條目集中在一個位置,可以減少DCT系數(shù)的高頻分量,并且可以減少碼量。此外,P圖像和B圖像包括所有差別信號都接近于0的像素塊,對這些像素塊根本不進(jìn)行諸如DCT的空間頻率變換。因此,對這些塊也不進(jìn)行作為空間頻率變換的預(yù)處理的置換。此外,對于諸如MPEG 4等的運動圖像壓縮,對于各個圖像不描述諸如注釋、用戶數(shù)據(jù)等的頭部信息,但對于包括多個I圖像、P圖像和B圖像的各個組(“視頻對象平面組”)寫入該頭部信息。因此,對于根據(jù)第一實施例的參數(shù),用于多個圖像的預(yù)處理參數(shù)將被集中寫入到該組的頭部部分中。
注意,在利用傳統(tǒng)的MPEG回放進(jìn)行了置換處理的壓縮運動圖像數(shù)據(jù)的情況下,圖像變形太明顯,而不能忽略。因此,在對運動圖像壓縮進(jìn)行置換處理的情況下,前提是通過利用置換處理的擴(kuò)展MPEG解碼器而不是通過傳統(tǒng)的MPEG解碼器來進(jìn)行解碼。例如,優(yōu)選的是能夠在壓縮運動圖像時選擇壓縮模式,并且在選擇壓縮模式時選擇是進(jìn)行置換處理來實現(xiàn)高壓縮比(設(shè)置空間變換模式),還是因為假定通過傳統(tǒng)MPEG進(jìn)行了解碼而不進(jìn)行置換處理(不設(shè)置空間變換模式)。
根據(jù)這種結(jié)構(gòu),通過在與運動圖像相關(guān)的解碼時進(jìn)行JEX處理,可獲得具有更高圖像質(zhì)量和高壓縮比的運動圖像數(shù)據(jù)。
注意,在以上描述中,8×8像素塊數(shù)據(jù)的像素的置換是通過組合行和列的置換來進(jìn)行的。在這種情況下,變換后存在8!×8!種像素布置方式。另一方面,將64個像素設(shè)置到64個像素位置中存在64!種方式。因此,存在行和列的置換的組合不能涵蓋的像素布置方式,因此,應(yīng)該理解,不是總能獲得具有最高壓縮比的像素布置方式。理論上,可以將8×8像素塊表示為64-D向量,以例如通過置換按降序(或升序)對將該向量的分量進(jìn)行排序,利用由Z字形掃描單元11進(jìn)行的相同方法將這樣排序的結(jié)果以Z字形的方式從8×8塊的左上角開始設(shè)置在該8×8塊中,從而最終獲得具有較高壓縮比的像素布置方式。然而,在這種情況下,可以想到,要在頭部部分中描述的JEX頭部信息的大小變得較大,因此,圖像文件的整個大小變大。
根據(jù)這樣的第一實施例,在空間頻率變換之前,在圖像空間內(nèi)對圖像空間進(jìn)行圖像空間變換,這樣,可以抑制進(jìn)行空間頻率變換之后的高頻系數(shù),從而可以進(jìn)行具有高壓縮比的編碼,并且可以進(jìn)行具有高質(zhì)量并且圖像劣化降低的編碼。
因此,采用線性可逆映射作為空間變換,從而可以恢復(fù)圖像,而不會由于解碼時空間變換而丟失數(shù)據(jù)。
此外,在線性可逆映射中,具體地采用線性可逆置換,從而可以高速進(jìn)行算術(shù)處理,而且還不改變像素的平均值和統(tǒng)計值等。
另一優(yōu)點在于,還可以通過傳統(tǒng)的JPEG解碼處理來解碼利用擴(kuò)展JPEG(JEX)編碼的圖像文件,而且,即使在這情況下產(chǎn)生以塊為增量的噪聲,也仍然可以在毫無困難地獲得圖像概觀的級別上再現(xiàn)圖像。
圖35至圖59表示本發(fā)明的第二實施例,圖35為表示擴(kuò)展JPEG編碼器的結(jié)構(gòu)的框圖。
在該第二實施例中,與上述第一實施例相同的部分附加有相同的附圖標(biāo)記,并且省略對它們的描述。將主要只針對不同之處進(jìn)行描述。
根據(jù)上述第一實施例的擴(kuò)展JPEG編碼器進(jìn)行置換作為普通JPEG編碼處理的預(yù)處理,但根據(jù)本第二實施例的擴(kuò)展JPEG編碼器進(jìn)行可逆低通濾波(LPF)處理(該處理也是可逆圖像空間變換)作為普通JPEG編碼處理的預(yù)處理。
具體地說,根據(jù)該第二實施例的擴(kuò)展JPEG編碼器是通過以下處理獲得的編碼器去除第一實施例中的圖1所示結(jié)構(gòu)中的列操作確定單元4和行操作確定單元5,并提供濾波單元14作為空間變換裝置來代替它們。將對編碼進(jìn)行控制所需的控制參數(shù)等從編碼控制單元2輸入到該濾波單元14中。
此外,從編碼控制單元2輸入用于控制由量化表產(chǎn)生單元9產(chǎn)生的量化表的下述比例因子SF等。該比例因子SF也通過量化表產(chǎn)生單元9輸入到合成單元13,并被添加到頭部信息中。
圖36為表示擴(kuò)展JPEG解碼器的結(jié)構(gòu)的框圖。
圖36所示的擴(kuò)展JPEG解碼器用于對圖35所示的擴(kuò)展JPEG編碼器進(jìn)行了編碼的圖像數(shù)據(jù)進(jìn)行解碼。
具體地說,根據(jù)本第二實施例的擴(kuò)展JPEG解碼器是通過以下處理獲得的解碼器去除了第一實施例中的圖2所示結(jié)構(gòu)中的行操作單元31、列操作單元32以及解碼控制單元30,并且提供逆濾波單元34作為逆空間變換裝置來代替它們。將來自頭部解釋器29的用于控制解碼所需的控制參數(shù)等輸入到該逆濾波單元34中。
在該第二實施例中,整個JEX處理的流程在廣義上與第一實施例中的圖3所示的流程相同。
圖37為表示與圖3的步驟S2相關(guān)的JEX編碼處理的概要的流程圖。
第二實施例中的該JEX編碼處理分兩個階段進(jìn)行JEX(LPF)預(yù)處理(步驟S61),其被執(zhí)行用于確定低通濾波所需的控制參數(shù);以及JEX(LPF)主處理(步驟S62),其用于根據(jù)所確定的控制參數(shù)對圖像進(jìn)行低通濾波。
圖38為表示圖37的步驟S61中的JEX(LPF)的細(xì)節(jié)的流程圖。
在開始該處理時,進(jìn)行用戶輸入(步驟S70)和數(shù)據(jù)輸入(步驟S71)。要通過用戶設(shè)置而輸入的項包括被稱為“Choice(選擇)”的設(shè)置項和被稱為“Method(方法)”的設(shè)置項。
后一設(shè)置項Method是用于在著重于提高壓縮比或著重于提高圖像質(zhì)量的情況下以狹義JEX編碼進(jìn)行低通濾波處理之間進(jìn)行選擇的設(shè)置項。這里,在選擇高壓縮比時設(shè)置Method=1,而在選擇高圖像質(zhì)量時設(shè)置Method=0。
前一設(shè)置項Choice表示在Method項選擇的高壓縮比或高圖像質(zhì)量要達(dá)到多高的級別。在選擇Choice=0時,設(shè)置預(yù)定的標(biāo)準(zhǔn)級別,在選擇Choice=1時設(shè)置比標(biāo)準(zhǔn)級別高的級別,而在選擇Choice=2時設(shè)置最高級別。
另一方面,通過數(shù)據(jù)輸入,例如輸入預(yù)先存儲在編碼控制單元2中的基準(zhǔn)塊NTest的數(shù)量。如上所述,以8×8像素塊為增量對圖像進(jìn)行處理,因此在由640×480像素構(gòu)成的VGA圖像的情況下,塊的總數(shù)NTotal為80×60=4800。在該塊總數(shù)NTotal的范圍內(nèi)將基準(zhǔn)塊的數(shù)量NTest設(shè)置為合適的值。
在下式46中示出了根據(jù)NTotal確定基準(zhǔn)塊數(shù)量NTest的方法。
NTest=NTotal(NTotal≤8)max(8,[14NTotal])(NTotal>8)]]>這里,式46中的方括號代表不超過方括號內(nèi)的值的最大整數(shù),max(A,B)表示A和B中的較大值。
在采用該式46時,對于以上VGA圖像的示例,基準(zhǔn)塊數(shù)量NTest為17。
注意,該式46為示例,并且當(dāng)然可以通過其它的方法來確定基準(zhǔn)塊數(shù)量NTest。
接下來,在構(gòu)成圖像的所有8×8像素塊當(dāng)中,隨機(jī)選擇在步驟S71中輸入的基準(zhǔn)塊數(shù)量NTest個的8×8像素塊(步驟S72)。注意,盡管隨機(jī)地從所有像素塊中進(jìn)行選擇,但不必限于此,而是可選擇合適位置處的像素塊。例如,如果在圖像的中心存在主要對象,并且希望針對該主要對象對處理進(jìn)行優(yōu)化,則可以設(shè)想以較高的比率將待選擇的像素塊設(shè)置在圖像中心附近。
隨后,根據(jù)如圖39所示的(η,SF)表,對在步驟S72中選擇的每個8×8像素塊圖像數(shù)據(jù)進(jìn)行包括低通濾波處理的廣義JEX編碼處理(步驟S73)。
圖39為表示根據(jù)設(shè)置項Choice選擇的控制參數(shù)的(η,SF)對的圖表。在該圖39中示出的控制參數(shù)中的η為用于設(shè)置低通濾波的強(qiáng)度的參數(shù)。也就是說,在該第二實施例中,在將8×8像素塊圖像數(shù)據(jù)f(k,l)表示為8行8列的矩陣時,通過乘以如下式47所示的LPF矩陣L(k,η)而來進(jìn)行低通濾波處理。
在該式47中,在沿從左上到右下的方向觀察對角線元素時,第一個出現(xiàn)的1-η設(shè)置在第k行第k列(k=0,…,6)處。這里,η可以取(1/2)>η≥0的范圍內(nèi)的值。注意,排除了η=(1/2),這是因為逆矩陣不存在(不可逆),如可以從以下將描述的式48所示的那樣。此外,排除了η>(1/2),這是因為如果不這樣,則另一像素位置處的像素數(shù)據(jù)將以高于特定像素位置處的像素數(shù)據(jù)自身的比率添加到該特定像素位置處的像素數(shù)據(jù),從而導(dǎo)致過量的低通濾波。
對于該η,在η為0時,矩陣L(k,η)變?yōu)閱挝痪仃?,并且低通濾波效果變?yōu)?,在η接近于0時,該低通濾波效果變得較小,而在η接近于(1/2)時,該低通濾波效果變得較大。
注意,在對像素數(shù)據(jù)f(k,l)左乘LPF矩陣L(k,η)時,進(jìn)行垂直濾波操作(用于減小相鄰行之間的差別的算術(shù)運算),并且在對像素數(shù)據(jù)f(k,l)右乘LPF矩陣L(k,η)時,進(jìn)行水平濾波操作(用于減小相鄰列之間的差別的算術(shù)運算)?,F(xiàn)在,假設(shè)像素數(shù)據(jù)f(k,l)的某一行中的第k列的元素為a,第(k+1)列的元素為b,并且對該像素數(shù)據(jù)右乘LPF矩陣L(k,η)。于是,算術(shù)運算后同一行的第k列的元素變?yōu)?1-η)a+ηb,并且算術(shù)運算后同一行的第(k+1)列的元素變?yōu)棣莂+(1-η)b。因此,與算術(shù)運算前沿水平方向的差別為|a-b|相比,沿水平方向的差別在該算術(shù)運算后變?yōu)?1-2η)|a-b|。因此,考慮到η可以取值的上述范圍1≥(1-2η)>0,可以容易地看到,抑制了沿水平方向的差別。注意,在左乘LPF矩陣L(k,η)的情況下,可以應(yīng)用相同的論證,從而抑制了沿垂直方向的差別。
該低通濾波使DCT變換后的DC系數(shù)保持不變。
此外,使用式48表示用于進(jìn)行逆LPF算術(shù)運算的矩陣。
通過該式48(其為式47的逆矩陣),在沿從左上到右下的方向觀察對角線元素時,第一次出現(xiàn)的因子(1-η)/(1-2η)出現(xiàn)在第k行第k列(k=0,…,6)。
注意,在這些式47和48中示出的矩陣是用于進(jìn)行LPF和逆LPF的矩陣的示例,但不限于此。
在圖39示出的示例中,η的值有5個即,0、(1/8)、(1/6)、(1/5)、和(1/4)。這些是按照實際應(yīng)用設(shè)置的,當(dāng)然這些只是示例,可以采用其它的值作為η。
另一方面,圖39示出的控制參數(shù)內(nèi)的SF為用于與量化表(Q表)相乘來控制量化步長的參數(shù)。在圖39示出的示例中,要取為SF的值有6種,1、(7/8)、(6/8)、(5/8)、(4/8)、和(3/8)。這里,SF=1表示采用原始的量化表本身。對于該比例因子SF,可以進(jìn)行其中將其它值設(shè)為SF的設(shè)置。
在圖39示出的表中,表示有○的(η,SF)對是在設(shè)置項Choice=0時的缺省值。此外,表示有□的(η,SF)對是在設(shè)置項Choice=1時,將針對表示有○的(η,SF)對另外選擇的可選值。此外,表示有△的(η,SF)對是在設(shè)置項Choice=2時,將針對表示有□和○的(η,SF)對另外選擇的可選值。
這樣,對在步驟S72中選擇的NTest個8×8像素塊中的每一個ni(變量ni為在所有基準(zhǔn)8×8像素塊上取值的變量)進(jìn)行廣義JEX編碼處理,該廣義JEX編碼處理包括利用根據(jù)設(shè)置項Choice的值選擇的(η,SF)組合進(jìn)行的低通濾波。這樣,針對每個基準(zhǔn)8×8像素塊數(shù)據(jù)f(k,l)獲得進(jìn)行了低通濾波處理、DCT和Huffman編碼的圖像數(shù)據(jù)。
隨后,利用廣義JEX解碼對編碼圖像數(shù)據(jù)進(jìn)行解碼,從而獲得進(jìn)行了Huffman解碼、逆DCT和逆低通濾波處理的8×8像素塊數(shù)據(jù)f′(k,l)。然后,從編碼前的8×8像素塊數(shù)據(jù)f(k,l)減去進(jìn)行了編碼和解碼的8×8像素塊數(shù)據(jù)f′(k,l),從而獲得根據(jù)每個像素的絕對值的總和。這樣,獲得了差的絕對值的總和,Abs(ni,η,SF)。
此外,將通過廣義JEX編碼處理獲得的Huffman編碼的碼長度與根據(jù)8×8像素塊的頭部信息的位長度相加,從而計算出Bit(ni,η,SF)(步驟S74)。
通過下式49和式50示出的方式利用這樣獲得的Abs(ni,η,SF)和Bit(ni,η,SF)計算出與所有基準(zhǔn)8×8像素塊ni相對應(yīng)的圖像質(zhì)量估計值A(chǔ)bs(η,SF)以及碼長度估計值Bit(η,SF)。
Abs(η,SF):=ΣniAbs(ni,η,SF)]]>[式50]Bit(η,SF):=ΣniBit(ni,η,SF)]]>這里,符號“=”表示代入(substitution)。
圖像質(zhì)量估計值A(chǔ)bs(η,SF)表示其值越小,則圖像質(zhì)量越高,碼長度估計值Bit(η,SF)表示其值越小,則壓縮比越高。
隨后,確定是否已經(jīng)對根據(jù)Choice的值從(η,SF)表中選擇的所有(η,SF)對進(jìn)行了處理(步驟S75),而且如果存在沒有處理的(η,SF)對,則流程返回到步驟S73,其中針對下一個(η,SF)對進(jìn)行處理。
這樣,在步驟S75中,如果確定已經(jīng)對所有的(η,SF)對進(jìn)行了處理,則進(jìn)一步確定Method項是否為1(步驟S76)。
這里,在Method=1(表示已經(jīng)選擇了高壓縮比)的情況下,從所有滿足Abs(0,1)≥Abs(η,SF)的(η,SF)對中選擇使Bit(η,SF)最小的(η1,SF1)對。所施加的條件Abs(0,1)≥Abs(η,SF)是與通過普通JPEG處理的圖像相比圖像質(zhì)量不會劣化的必要條件。注意,如果存在兩個或更多個的(η1,SF1)對使Bit(η,SF)最小,則選擇Abs(η,SF)具有較小值的(η1,SF1)對,從而不僅提高了壓縮比,而且還提高了圖像質(zhì)量。另一方面,如果沒有(η,SF)對滿足Abs(0,1)≥Abs(η,SF),則自動取(0,1),其表示不進(jìn)行低通濾波處理(步驟S77)。
此外,在步驟S76中,如果確定不滿足Method=1(即,此時Method=0),這表示已經(jīng)選擇了高質(zhì)量,則從所有滿足Bit(0,1)≥Bit(η,SF)的(η,SF)對中選擇使Abs(η,SF)最小的(η0,SF0)對。所施加的條件Bit(0,1)≥Bit(η,SF)是數(shù)據(jù)大小不超過使用普通JPEG壓縮的數(shù)據(jù)的大小的必要條件。注意,如果使Abs(η,SF)最小的(η0,SF0)對的數(shù)量超過1,則選擇Bit(η,SF)較小的(η0,SF0)對,從而不僅提高了圖像質(zhì)量,而且提高了壓縮比。另一方面,如果沒有(η,SF)對滿足Bit(0,1)≥Bit(η,SF),則自動取(0,1),其表示不進(jìn)行低通濾波處理(步驟S78)。
在完成步驟S77或步驟S78后,輸出所選擇的(η,SF)對(步驟S79),然后結(jié)束該JEX(LPF)處理。
圖40為表示圖37中的步驟S62的JEX(LPF)主處理的細(xì)節(jié)的流程圖。
該JEX(LPF)主處理用于根據(jù)在圖38中示出的JEX(LPF)預(yù)處理中設(shè)置的(η,SF)對,對整個圖像進(jìn)行低通濾波處理。
在該處理開始時,輸入第n(n=1,…,NTotal)個8×8像素塊f(k,l)(步驟S81)。
隨后,輸入數(shù)據(jù)集DA(步驟S82)。該數(shù)據(jù)集DA為包括前述η、Thc2、Thr2、Mode向量和Pos向量的數(shù)據(jù)集。這里,Thc2為一閾值,其用于確定以下將描述的沿水平方向的差的最大值Vsc是否足夠大而需要應(yīng)用水平濾波操作。同樣地,Thr2為一閾值,其用于確定以下將描述的沿垂直方向的差的最大值Vsr是否足夠大而需要應(yīng)用垂直濾波操作。這里Mode向量為8-D向量,并被設(shè)置成表示是否進(jìn)行了垂直濾波或水平濾波的值。例如,分別而言,“1”為表示垂直濾波操作的值,而“2”為表示水平濾波操作的值。注意,該向量的維數(shù)8表示由垂直濾波操作或水平濾波操作構(gòu)成的低通濾波操作總共進(jìn)行最多8次。如果多次重復(fù)進(jìn)行低通濾波處理,則圖像逐漸被平面化(planarize),從而這里將上限確定為8次以防止過分平面化。注意,當(dāng)然該上限通常不限于8次。Pos向量是記錄了要進(jìn)行垂直濾波操作或水平濾波操作的8×8像素塊的行號或列號的向量。下面將參照圖55對這些Mode向量和Pos向量的具體示例進(jìn)行描述。
接下來,將1代入循環(huán)計數(shù)變量Loop(步驟S83)。這里,如上所述“=”表示代入。
隨后,確定Loop是否大于8(步驟S84),而且如果Loop不大于8,則計算沿水平方向的差的最大值Vsc,以及提供該最大值Vsc的列號k中的最小值kc(步驟S85)。
隨后,計算沿垂直方向的差的最大值Vsr,以及提供該最大值Vsr的行號l中的最小值lr(步驟S86)。
檢查這樣計算的最大值Vsc是否大于最大值Vsr(步驟S87),如果最大值Vsc大于最大值Vsr,則進(jìn)一步確定最大值Vsc是否大于閾值Thc2(步驟S88)。如果Vsc大于閾值Thc2,則如下式51所示的那樣執(zhí)行水平濾波操作,而且設(shè)置Mode(Loop)=1并且Pos(Loop)=kc(步驟S90)。
f(k,l)←[f*L(kr,η)]k,l另一方面,在步驟S87中,如果最大值Vsc等于或小于最大值Vsr,則進(jìn)一步檢查最大值Vsr是否大于閾值Thr2(步驟S89)。如果最大值Vsr大于閾值Thr2,則如下式52所示的那樣執(zhí)行垂直濾波操作,而且設(shè)置Mode(Loop)=2并且Pos(Loop)=lr(步驟S91)。
f(k,l)←[L(kr,η)*f]k,l在完成步驟S90或步驟S91后,如果在步驟S88中最大值Vsc等于或小于閾值Thc2,或者如果在步驟S89中最大值Vsr等于或小于閾值Thr2,則使變量Loop遞增(步驟S92),并且流程返回至步驟S84,其中重復(fù)進(jìn)行上述處理。
這樣,當(dāng)在步驟S84中確認(rèn)變量Loop大于8時,產(chǎn)生頭部信息Phl(n)(步驟S93),輸出頭部信息Phl(n)和進(jìn)行了LPF的f(k,l)(步驟S94),然后結(jié)束該JEX(LPF)主處理。
注意,圖40描述了對一個(第n個)8×8像素塊的處理。不用說,在實際處理中,針對NTotal個8×8像素塊進(jìn)行該處理。
圖41為表示圖40中的步驟S85中的Vsc和kc的計算處理的細(xì)節(jié)的流程圖。
在該處理開始時,計算通過水平移位8×8像素塊f(k,l)而獲得的數(shù)據(jù)(步驟S101)。
隨后,通過從原始數(shù)據(jù)f(k,l)中減去水平移位(左移位)的數(shù)據(jù)并取差的絕對值,來計算差的絕對值(步驟S102)。然而,盡管原始數(shù)據(jù)由8列(k=0,…,7)構(gòu)成,但水平移位的數(shù)據(jù)由7列(k=0,…,6)構(gòu)成,從而針對7列(k=0,…,6)進(jìn)行了計算,所計算的差的絕對值的數(shù)量為7×8=56。
在所計算的差的絕對值中,查找最大值Vsc(步驟S103)。用于查找最大值Vsc的處理可以由下式53所示的表達(dá)式來表示。
Vsc=maxl=0,···,7k=0,···,6|f(k,l)-f(k+1,l)|]]>隨后,查找提供最大值Vsc的列號k中的最小值kc(步驟S104),然后結(jié)束該處理。注意,僅當(dāng)存在兩個或更多個提供最大值Vsc的列號k時,才執(zhí)行步驟S104中的處理,當(dāng)僅存在一個列號k時在不進(jìn)行查找的情況下選擇列號k。
圖42為表示圖40的步驟S86中的Vsr和lr計算處理的細(xì)節(jié)的流程圖。
在該處理開始時,計算通過垂直移位8×8像素塊f(k,l)獲得的數(shù)據(jù)(步驟S105)。
隨后,通過從原始數(shù)據(jù)f(k,l)中減去垂直移位(向上移位)的數(shù)據(jù)并取差的絕對值,來計算差的絕對值(步驟S106)。然而,盡管原始數(shù)據(jù)由8行(k=0,…,7)構(gòu)成,但垂直移位的數(shù)據(jù)由7行(k=0,…,6)構(gòu)成,從而針對7行(k=0,…,6)進(jìn)行了計算,并且所計算的差的絕對值的數(shù)量為7×8=56。
在所計算的差的絕對值中,搜索最大值Vsr(步驟S107)。用于查找該最大值Vsr的處理可由下式54所示的表達(dá)式來表示。
Vsr=maxl=0,···,6k=0,···,7|f(k,l)-f(k,l+1)|]]>隨后,查找提供該最大值Vsr的行號1中的最小值lr(步驟S108),然后結(jié)束該處理。注意,僅當(dāng)存在兩個或更多個提供最大值Vsr的行號1時,才執(zhí)行步驟S108中的處理,當(dāng)僅存在一個行號1時在不進(jìn)行查找的情況下選擇行號1。
圖43為表示JEX(LPF)解碼處理的流程圖。
在該處理開始時,輸入第n個IDCT變換塊f′(k,l)、頭部信息Phl(n)以及表示LPF的強(qiáng)度的參數(shù)η(步驟S111)。
通過將0代入所有的Mode(1)、…、Mode(8)對該8-D向量Mode進(jìn)行初始化(步驟S112)。注意,在圖43中,附加在i前面的符號,即倒置的“A”為表示任意i的符號。
接著,將從頭部信息Phl(n)的第二位直到分隔符“000”的位信息以2位為增量按順序代入到Mode(1)、Mode(2)、…中,而且將從分隔符“000”直到最后的位的位信息以3位為增量按順序代入到Pos(1)、Pos(2)、…中(參見圖44、圖45等)(步驟S113)。
隨后,將1代入表示循環(huán)計數(shù)的變量Loop(步驟S114)。
接下來,確定與循環(huán)計數(shù)相對應(yīng)的Mode向量分量Mode(Loop)是否為2(步驟S115)。如果Mode(Loop)為2,則利用下式55進(jìn)行逆垂直濾波操作(步驟S116)。
f′(k,l)←[L(Pos(Loop),η)-1*f′(k,l)]k,l另一方面,在步驟S115中Mode(Loop)不為2的情況下,然后確定Mode(Loop)是否為1(步驟S117)。
如果Mode(Loop)為1,則利用下式56進(jìn)行逆水平濾波算術(shù)運算(步驟S118)。
f′(k,l)←[f′(k,l)*L(Pos(Loop),η)-1]k,l在完成步驟S116或步驟S118的情況下,使變量Loop遞增(步驟S119),然后確定變量Loop是否大于8(步驟S120)。
在變量Loop為8或小于8的情況下,流程返回到步驟S115,在步驟S115重復(fù)執(zhí)行上述處理。
另一方面,如果變量Loop大于8,或者在步驟S117中Mode(Loop)不為1,則輸出經(jīng)變換的f′(k,l)(步驟S121),結(jié)束該JEX(LPF)解碼。
注意,在圖43中,示出了對一個(第n個)IDCT變換塊的處理,但是不用說,在實際處理中對NTotal個IDCT變換塊進(jìn)行這種處理。
圖44為表示Mode向量和Pos向量的示例的圖表。
圖44所示的示例為其中對一個8×8像素塊進(jìn)行8次LPF處理的示例。在該示例中,僅在i=4或8時,Mode(i)=2才成立,這表明進(jìn)行了垂直濾波操作,所有其它的情況表示進(jìn)行了水平濾波操作。該Mode(i)由每兩個位構(gòu)成。對于每個i進(jìn)行了濾波算術(shù)運算的行號或列號被表示為Pos(i),而且還示出了其位表示。k和l在0到7之間的范圍內(nèi),從而它們中的每一個都被表示為3位的值。
注意,LPF處理最多進(jìn)行8次,但有時進(jìn)行少于8次。例如,假設(shè)LPF處理進(jìn)行了j(7≥j)次,則在Mode(j)后記錄分隔符,而且在該分隔符后記錄Pos(i)、…、Pos(j)。
圖45為表示頭部信息Phl(n)的示例的圖。
如該附圖所示,用于第n個8×8像素塊的頭部信息Phl(n)包括指示符Ind、Mode(i)、分隔符和Pos(i)。
指示符Ind為1位的數(shù)據(jù),其表示數(shù)據(jù)開始位置,從而將數(shù)據(jù)與填充位區(qū)分開,而且對所有的8×8像素塊都設(shè)置為1。
Mode(i)為將圖44中的數(shù)據(jù)“1”或“2”記錄為2位值的部分。
分隔符用于區(qū)分Mode(i)和Pos(i),而且為由3位值表示的0(即,用位表示的“000”)。
Pos(i)為其中按順序記錄圖44所示的位表示的部分。
如果根本沒有進(jìn)行LPF處理,則Phl(n)變?yōu)椤?00”。
圖46為表示用于整個圖像的全局頭部的示例的圖表。
如上述第一實施例那樣,該全局頭部例如記錄在圖24所示的注釋COM部分中,或者記錄在EXIF文件的應(yīng)用標(biāo)記段中,等等。
該全局頭部包括以二進(jìn)制(ASCII數(shù)據(jù))記錄的“JEX”、被記錄為4位值的類別、被記錄為包括3個8位值的值的全局參數(shù)(即,總共24位)、以及用于所有塊的頭部Phl(n),此外,如果需要還添加有填充位。
圖47為表示待記錄在全局頭部的類別中的位值的示例的圖表。
在該示例中,將類別表示為4位值。首先,類別“0000”表示沒有進(jìn)行狹義JEX處理,并且在這種情況下,廣義JEX處理與普通的JPEG處理相同。
接著,類別“0001”表示進(jìn)行了如在第一實施例中描述的置換作為狹義JEX處理。
類別“0010”表示進(jìn)行了在第二實施例中描述的可逆LPF處理作為狹義JEX處理。
類別“0011”表示一起采用了置換和可逆LPF處理作為狹義JEX處理。以下將作為第三實施例來描述這種情況。
注意,可以指定為類別的其它位值是用于其它JEX處理的保留區(qū)域。
圖48為表示圖46所示的全局參數(shù)的第一個8位值的示例的圖表。
這里,記錄了與作為全局參數(shù)的第一個8位值的參數(shù)η相對應(yīng)的位值。例如,對于如圖39所示的η的每個值,分別在η=0時記錄“00000000”為位值,在η=(1/8)時記錄“00000001”為位值,在η=(1/6)時記錄“00000010”為位值,在η=(1/5)時記錄“00000011”為位值,在η=(1/4)時記錄“00000100”為位值。
圖49為表示圖46所示的全局參數(shù)的第二個8位值的示例的圖表。
這里,記錄了與作為全局參數(shù)的第二個8位值的比例因子SF相對應(yīng)的位值。例如,對于如圖39所示的SF的各個值,分別在SF=1時記錄“00000000”為位值,在SF=(7/8)時記錄“00000001”為位值,在SF=(6/8)時記錄“00000010”為位值,在SF=(5/8)時記錄“00000011”為位值,在η=(4/8)時記錄“00000100”為位值,在SF=(3/8)時記錄“00000101”為位值。
注意,圖46所示的全局參數(shù)的第三個8位值為保留區(qū)域。
圖50為表示從圖像數(shù)據(jù)提取的原始8×8像素塊的數(shù)據(jù)示例的圖。
在該圖50中示出的圖像數(shù)據(jù)被劃分為像素值“10”的區(qū)域以及像素值“222”的區(qū)域。其為具有相對強(qiáng)的對比度的圖像數(shù)據(jù)(例如字符數(shù)據(jù)等)。
首先,將參照圖51至圖54對通過普通JPEG來處理圖50所示的圖像數(shù)據(jù)的情況進(jìn)行描述。
圖51為表示對圖50所示的原始8×8像素塊數(shù)據(jù)進(jìn)行電平移位和DCT的結(jié)果的圖表。
此外,圖52為表示圖51所示的塊數(shù)據(jù)在量化后的結(jié)果的圖表。
此外,圖53為表示對圖52所示的塊數(shù)據(jù)依次進(jìn)行逆量化、逆DCT、以及電平移位,并舍入到0至255范圍內(nèi)的數(shù)據(jù)的結(jié)果的圖表。
圖54為表示從圖53所示的進(jìn)行了解碼的像素塊數(shù)據(jù)中減去圖50所示的原始像素塊數(shù)據(jù)的結(jié)果的圖表。
圖54所示的差的絕對值的總和變?yōu)?85,并且JPEG編碼后的碼長度為193位。
另一方面,圖55至圖59表示在利用可逆LPF進(jìn)行JEX處理時的示例。
首先,圖55為表示從頭部信息中提取的模式信息和濾波位置信息的示例的圖表。該圖55中所示的示例與圖44所示的示例相對應(yīng)。
可以根據(jù)要從頭部信息的Mode向量提取的模式信息對算術(shù)運算是垂直濾波算術(shù)運算還是水平濾波算術(shù)運算進(jìn)行區(qū)分,而且還可以根據(jù)要從Pos向量提取的濾波位置kc和lr的信息確定進(jìn)行濾波算術(shù)運算的位置。
接著,圖56為表示對圖50所示的原始8×8像素塊數(shù)據(jù)進(jìn)行圖55所示的8次低通濾波處理的結(jié)果的圖表。從該圖56所示的結(jié)果可以發(fā)現(xiàn),具有像素值“10”的像素較少,而且在整體上減少了高頻部分。注意,如從圖56可以理解的,低通濾波處理后的像素值變?yōu)榫哂行?shù)點的值,這是由于通過浮點算術(shù)運算來執(zhí)行低通濾波處理,從而以較高的精度對像素值進(jìn)行了混和。
隨后,圖57為表示對圖56所示的進(jìn)行了低通濾波的8×8像素塊數(shù)據(jù)進(jìn)行電平移位和DCT的結(jié)果的圖表。如可以看到的那樣,將該圖57與圖51進(jìn)行比較,DC分量在逆低通濾波的作用下保持不變?yōu)椤?16”。此外,可以看到明顯地減小了高頻系數(shù)。
隨后,圖58為表示對圖57所示的塊數(shù)據(jù)進(jìn)行量化的結(jié)果的圖表。
在該示例中,使用被設(shè)置為“1”的比例因子SF(即,使用原始量化表本身)來進(jìn)行量化??梢钥吹?,在比較該圖58所示的結(jié)果與圖52所示的結(jié)果時,具有“0”(零)高頻系數(shù)的部分增加。因此,可以預(yù)期獲得較高的壓縮比。
此外,圖59是其表示對圖58所示的塊數(shù)據(jù)進(jìn)行逆量化、逆DCT和電平移位、并進(jìn)行逆LPF并舍入為0至255范圍內(nèi)的數(shù)據(jù)的結(jié)果的圖表。
從該圖59所示的進(jìn)行了解碼的像素塊數(shù)據(jù)中減去圖50所示的原始像素塊數(shù)據(jù),而且其結(jié)果的絕對值的總和為522。這清楚地表明,與圖53所示的JPEG解碼的結(jié)果(差的絕對值的總和為685)相比,提高了圖像質(zhì)量。
此外,JEX編碼后的碼長度為125位,而且圖45所示的頭部信息的位長度為44位,從而總共為169位。即使包括頭部信息部分,這也小于傳統(tǒng)JPEG編碼的193位的碼長度,因而提供了壓縮比。
根據(jù)這樣的第二實施例,即使通過進(jìn)行可逆低通濾波處理作為可逆圖像空間變換,通常也可以提高與上述第一實施例相同的優(yōu)點。
圖60至圖63表示本發(fā)明的第三實施例,圖60為表示將低通濾波與置換進(jìn)行組合的JEX主處理的示例的流程圖。在該第三實施例中,與上述實施例1和2相同的部分附加有相同的附圖標(biāo)記,從而省略對它們的描述。描述將主要只針對不同之處。
在該第三實施例中,進(jìn)行了這樣的設(shè)置,其中可以選擇性地進(jìn)行如在第一實施例所述的置換以及如在第二實施例中所述的低通濾波處理中的任何有利的一種處理。因此,這表明在一個圖像數(shù)據(jù)中,對一些8×8像素塊進(jìn)行置換,而對其他的8×8像素塊進(jìn)行低通濾波處理。
注意,進(jìn)行該圖60示出的JEX(LPF+置換)主處理,而不是上述第二實施例的圖37所示的步驟S62中的JEX(LPF)主處理。因此,在進(jìn)行該JEX(LPF+置換)主處理時,前提條件是已經(jīng)完成了JEX(LPF)預(yù)處理。
在該處理開始時,計算頭部信息Ph(n)以及基于JEX(置換)進(jìn)行了置換的f(k,l)P,并且還計算差的絕對值的總和Abs(n)以及Huffman碼長度Bit(n)(步驟S131)。
接下來,計算頭部信息Phl(n)以及基于JEX(LPF)進(jìn)行了LPF處理的f(k,l)L,并且還計算差的絕對值的總和Abs(n,η,SF)以及Huffman碼長度Bit(n,η,SF)(步驟S132)。
隨后,確定Method是否為1(步驟S133)。如果Method為1(即,選擇了高壓縮比),則確定置換的Huffman碼長度Bit(n)是否小于LPF的Huffman碼長度Bit(n,η,SF)(步驟S134)。
并且,在步驟S133中,如果Method不為1(即,選擇了高圖像質(zhì)量),則確定置換的差的絕對值的總和Abs(n)是否小于LPF的差的絕對值的總和Abs(n,η,SF)(步驟S135)。
如果在步驟S134中,置換的Huffman碼長度Bit(n)等于或大于LPF的Huffman碼長度Bit(n,η,SF),或者在步驟S135中,置換的差的絕對值的總和Abs(n)等于或大于LPF的差的絕對值的總和Abs(n,η,SF),則輸出經(jīng)LPF處理的f(k,l)以及頭部信息Phl(n)(步驟S136)。
另一方面,如果在步驟S134中,置換的Huffman碼長度Bit(n)小于LPF的Huffman碼長度Bit(n,η,SF),或者在步驟S135中,置換的差的絕對值的總和Abs(n)小于LPF的差的絕對值的總和Abs(n,η,SF),則輸出置換后的f(k,l)以及頭部信息Ph(n)(步驟S137)。
這樣,在進(jìn)行步驟S136或步驟S137后,結(jié)束該JEX(LPF+置換)主處理。
注意,如上所述,對每個8×8像素塊進(jìn)行如圖60所示的處理。
接著,圖61為表示將在圖60的步驟S137中產(chǎn)生的頭部信息的示例的圖表,而圖62表示將在圖60的步驟S136中產(chǎn)生的頭部信息的示例的圖表。
在進(jìn)行置換時產(chǎn)生的頭部信息Ph(n)與第一實施例的圖25所示的頭部信息Ph(n)相同,而在進(jìn)行LPF時產(chǎn)生的頭部信息Phl(n)與第二實施例的圖45所示的頭部信息Phl(n)相同,除了在這兩種情況下緊接著指示符Ind之后記錄類別Cat以外。在圖61和圖62所示的示例中,類別Cat被記錄為1位的信息,分別而言,在進(jìn)行置換處理時,將“0”記錄為位值,而在進(jìn)行LPF處理時,將“1”記錄為位值。
注意,在以上描述中,采用了諸如式47所示的LPF矩陣L(k,η),該LPF矩陣L(k,η)在應(yīng)用于被表示為矩陣的f(k,l)時,對f(k,l)的特定行或特定列具有低通濾波效果。然而,用作LPF的矩陣不限于這樣的矩陣,而是例如可以采用如下式57所示的LPF矩陣LT(χ)。
這里,χ為表示濾波強(qiáng)度的參數(shù),而ξ=1-2χ。此外,對參數(shù)χ施加條件(1/3)>χ≥0。
該LPF矩陣LT(χ)對整個8×8像素塊具有低通濾波效果。其從左側(cè)對f(k,l)進(jìn)行矩陣運算時在行之間具有LPF效果,而從右側(cè)對f(k,l)進(jìn)行矩陣運算時在列之間具有LPF效果。而且,χ的典型值的示例包括(1/8)、(1/6)、(1/4)等。通過將χ限定為大約或等于0并小于(1/3),使得LT(χ)可逆。注意,在采用該LT(χ)的情況下,DC系數(shù)不再是恒定的,而是有一定程度的變化。
圖63為表示在采用上述低通濾波時的頭部信息的示例的圖表。
對于采用上述LPF矩陣LT(χ)乘以總的LPF時的頭部信息Phm(n),可以緊接著指示符Ind(=1)和類別Cat(=1)之后設(shè)置用于數(shù)據(jù)Mode的區(qū)域,并例如將“11”記錄為其位值。
而且,參數(shù)χ被記錄為全局參數(shù),從而其不包括在每個塊的頭部信息Phm(n)內(nèi)。因此,該示例被構(gòu)造為濾波強(qiáng)度對于整個圖像都是恒定的,并且不根據(jù)塊而改變。
根據(jù)所描述的第三實施例,可以提供與實施例1和實施例2相同的優(yōu)點。此外,因為可以針對每個塊選擇JEX置換和JEX LPF中的更合適的處理,從而可以實現(xiàn)較高的圖像質(zhì)量和較高的壓縮比。
此外,通過采用用于對整個圖像進(jìn)行低通濾波的矩陣,使得該處理需要進(jìn)行較少的算術(shù)運算。這使得處理能夠更快,并且降低了該處理所需的算術(shù)運算負(fù)荷。
注意,本發(fā)明不限于上述實施例,并且不用說,在不脫離本發(fā)明的精神和范圍的情況下可以進(jìn)行各種修改和應(yīng)用。
權(quán)利要求
1.一種圖像編碼方法,該圖像編碼方法被應(yīng)用于基本編碼方法,該基本編碼方法包括空間頻率變換步驟,用于利用空間頻率變換將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換為頻率空間內(nèi)的變換系數(shù);以及頭部產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)的數(shù)據(jù)中作為頭部部分,所述圖像編碼方法包括空間變換步驟,用于在空間頻率變換步驟之前對所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于向所述頭部部分添加進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)。
2.根據(jù)權(quán)利要求1所述的圖像編碼方法,其中,所述基本編碼方法還包括編碼步驟,該編碼步驟用于對所述變換系數(shù)進(jìn)行編碼,使得低頻系數(shù)的數(shù)據(jù)量總體上小于高頻系數(shù)的數(shù)據(jù)量;并且其中,在所述空間變換步驟中進(jìn)行的可逆圖像空間變換抑制了由于空間頻率變換而導(dǎo)致的高頻系數(shù)。
3.根據(jù)權(quán)利要求1所述的圖像編碼方法,其中,所述基本編碼方法還包括劃分步驟,該劃分步驟用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)劃分為多個像素塊,并且所述空間頻率變換步驟將在該劃分步驟中劃分的所述像素塊變換到頻率空間中;并且其中,所述空間變換在空間頻率變換步驟之前對所述像素塊中的至少一個像素塊進(jìn)行可逆圖像空間變換。
4.根據(jù)權(quán)利要求3所述的圖像編碼方法,其中,在所述空間變換步驟中,將所述像素塊表示為矩陣M,并且所述可逆空間變換包括M的行置換和列置換中的至少一種。
5.根據(jù)權(quán)利要求3所述的圖像編碼方法,其中,在所述空間變換步驟中,將所述像素塊表示為矩陣M,并且通過可逆線性矩陣運算M→AMB來表示所述可逆空間變換,其中,A和B表示可逆矩陣。
6.根據(jù)權(quán)利要求5所述的圖像編碼方法,其中,所述矩陣A和矩陣B中的一個矩陣為用于通過矩陣運算進(jìn)行矩陣M的行置換的矩陣,而另一個矩陣為用于通過矩陣運算進(jìn)行矩陣M的列置換的矩陣。
7.根據(jù)權(quán)利要求5所述的圖像編碼方法,其中,用于進(jìn)行行置換的矩陣被表示為用于將另一行添加到特定行的矩陣與用于將特定行乘以-1的矩陣的矩陣積;并且其中,用于進(jìn)行列置換的矩陣被表示為用于將另一列添加到特定列的矩陣與用于將特定列乘以-1的矩陣的矩陣積。
8.根據(jù)權(quán)利要求4至6中的任意一項所述的圖像編碼方法,其中,進(jìn)行矩陣M的行之間的置換,使得在行之間的置換后,沿行方向的像素值的總和在列方向上按照降序或升序排列;并且其中,進(jìn)行矩陣M的列之間的置換,使得在列之間的置換后,沿列方向的像素值的總和在行方向上按照降序或升序排列。
9.根據(jù)權(quán)利要求1所述的圖像編碼方法,其中,在所述空間變換步驟中,通過改變所述圖像數(shù)據(jù)或所述差分圖像數(shù)據(jù)中的像素的布置來進(jìn)行所述可逆空間變換。
10.根據(jù)權(quán)利要求1或2所述的圖像編碼方法,其中,在所述空間頻率變換步驟中獲得的所述變換系數(shù)包括與所述圖像數(shù)據(jù)的平均值或所述差分圖像數(shù)據(jù)的平均值成比例的DC系數(shù),并且由此在所述空間變換步驟中進(jìn)行的所述圖像空間變換保持所述DC系數(shù)不變。
11.根據(jù)權(quán)利要求3所述的圖像編碼方法,其中,在所述空間頻率變換步驟中獲得的所述變換系數(shù)包括與所述像素塊的平均值成比例的DC系數(shù),并且由此在所述空間變換中進(jìn)行的所述圖像空間變換保持所述DC系數(shù)不變。
12.一種可應(yīng)用于JPEG編碼處理的圖像編碼方法,該圖像編碼方法包括空間變換步驟,用于在進(jìn)行離散余弦變換之前對至少一個像素塊進(jìn)行可逆圖像空間變換;空間變換參數(shù)提取步驟,用于提取進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù);以及頭部信息添加步驟,用于向JPEG文件的頭部部分添加在所述空間變換參數(shù)提取步驟中提取的空間變換參數(shù)。
13.根據(jù)權(quán)利要求12所述的圖像編碼方法,其中,所述圖像空間變換保持通過進(jìn)行離散余弦變換而獲得的DCT系數(shù)中的DC系數(shù)不變,并增大所述DCT系數(shù)中的低頻AC系數(shù)的幅值。
14.一種對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼的圖像編碼方法,該圖像編碼方法包括空間變換步驟,用于在圖像空間內(nèi)對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆空間變換;空間頻率變換步驟,用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換至頻率空間,從而獲得變換系數(shù);編碼步驟,用于將所述變換系數(shù)編碼為編碼數(shù)據(jù);頭部信息產(chǎn)生步驟,用于向所述編碼數(shù)據(jù)整體地添加進(jìn)行所述空間變換的逆變換所需的信息作為頭部信息;其中,在所述編碼步驟后,低頻系數(shù)側(cè)的數(shù)據(jù)量總體上小于高頻系數(shù)側(cè)的數(shù)據(jù)量;并且其中,所述空間變換步驟總體上抑制了由于所述空間頻率變換而導(dǎo)致的高頻系數(shù)。
15.一種圖像解碼方法,該圖像解碼方法可應(yīng)用于基本解碼方法,該基本解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對根據(jù)編碼圖像數(shù)據(jù)或根據(jù)編碼差分圖像數(shù)據(jù)產(chǎn)生的變換系數(shù)進(jìn)行變換,從而獲得圖像空間數(shù)據(jù),該圖像解碼方法用于對利用根據(jù)權(quán)利要求1所述的圖像編碼方法進(jìn)行了編碼的編碼圖像數(shù)據(jù)或編碼差分圖像數(shù)據(jù)進(jìn)行解碼,所述圖像解碼方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù)對由所述逆空間頻率變換步驟產(chǎn)生的圖像空間數(shù)據(jù)進(jìn)行所述圖像空間變換的逆變換。
16.根據(jù)權(quán)利要求15所述的圖像解碼方法,該圖像解碼方法還包括頭部識別步驟,用于識別是否在所述頭部部分中描述了所述空間變換參數(shù);其中,如果在所述頭部識別步驟中識別到所述空間變換參數(shù),則輸出通過基于所述空間變換參數(shù)進(jìn)行所述逆空間變換步驟而獲得的圖像數(shù)據(jù)或差分圖像數(shù)據(jù),而如果在所述頭部識別步驟中沒有識別到空間變換參數(shù),則輸出在沒有進(jìn)行所述逆空間變換步驟而獲得的圖像數(shù)據(jù)或差分圖像數(shù)據(jù)。
17.一種運動圖像壓縮方法,該運動圖像壓縮方法用于利用基于一個圖像幀內(nèi)的圖像數(shù)據(jù)的幀內(nèi)壓縮和基于多個圖像幀的幀間壓縮,對包括呈時間序列式關(guān)系的多個圖像幀的運動圖像數(shù)據(jù)進(jìn)行編碼,其中,所述幀內(nèi)壓縮可應(yīng)用于基本幀內(nèi)壓縮方法,該基本幀內(nèi)壓縮方法包括劃分步驟,用于將圖像幀劃分為多個像素塊;空間頻率變換步驟,用于對所述像素塊進(jìn)行空間頻率變換以獲得變換系數(shù);以及頭部信息產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于在所述空間頻率變換步驟中獲得的所述變換系數(shù)的數(shù)據(jù),作為頭部部分,所述幀內(nèi)壓縮還包括空間變換步驟,用于在所述空間頻率變換步驟之前對至少一個像素塊進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于將進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)添加到所述頭部部分中。
18.根據(jù)權(quán)利要求17所述的運動圖像壓縮方法,該運動圖像壓縮方法還包括空間變換模式選擇步驟,用于選擇是否進(jìn)行所述空間變換步驟和所述頭部信息添加步驟。
19.一種運動圖像壓縮方法,該運動圖像壓縮方法用于利用基于一個圖像幀內(nèi)的圖像數(shù)據(jù)的幀內(nèi)壓縮和基于多個圖像幀的幀間壓縮,對包括呈時間序列式關(guān)系的多個圖像幀的運動圖像數(shù)據(jù)進(jìn)行編碼,其中,所述幀間壓縮可應(yīng)用于基本幀間壓縮方法,該基本幀間壓縮方法包括劃分步驟,用于將圖像幀劃分為多個像素塊;差值計算步驟,用于通過獲得在該劃分步驟中劃分的所述像素塊中的至少一個像素塊與要進(jìn)行比較的圖像幀內(nèi)的對應(yīng)像素塊之間的差值,來產(chǎn)生差分像素塊;空間頻率變換步驟,用于對所述差分像素塊進(jìn)行空間頻率變換;以及頭部信息產(chǎn)生步驟,用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)獲得的數(shù)據(jù)中作為頭部部分,所述幀間壓縮還包括空間變換,用于在所述空間頻率變換步驟之前對所述差分像素塊中的至少一個差分像素塊進(jìn)行可逆圖像空間變換;以及頭部信息添加步驟,用于將進(jìn)行所述圖像空間的逆變換所需的空間變換參數(shù)添加到所述頭部部分中。
20.根據(jù)權(quán)利要求19所述的運動圖像壓縮方法,該運動圖像壓縮方法還包括空間變換模式選擇步驟,用于選擇是否進(jìn)行所述空間變換步驟和所述頭部信息添加步驟。
21.根據(jù)權(quán)利要求19所述的運動圖像壓縮方法,其中,所述頭部信息產(chǎn)生步驟產(chǎn)生用于包括多個幀的組的頭部部分;并且其中,所述頭部信息添加步驟是用于將所述空間變換參數(shù)添加到對應(yīng)組的頭部部分中的步驟。
22.一種運動圖像解碼方法,該運動圖像解碼方法可應(yīng)用于基本運動圖像解碼方法,該基本運動圖像解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對來自壓縮運動圖像數(shù)據(jù)的變換系數(shù)進(jìn)行變換,從而獲得像素塊的圖像空間數(shù)據(jù),該運動圖像解碼方法用于對通過根據(jù)權(quán)利要求17的運動圖像壓縮方法進(jìn)行了編碼的運動圖像數(shù)據(jù)進(jìn)行解碼,所述運動圖像解壓縮方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少所述空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù),對由所述逆空間頻率變換步驟產(chǎn)生的像素塊進(jìn)行所述圖像空間變換的逆變換。
23.一種運動圖像解壓縮方法,該運動圖像解壓縮方法可應(yīng)用于基本運動圖像解碼方法,該基本運動圖像解碼方法包括逆空間頻率變換步驟,用于利用逆空間頻率變換對來自壓縮運動圖像數(shù)據(jù)的變換系數(shù)進(jìn)行變換,從而獲得差分像素塊的圖像空間數(shù)據(jù),該運動圖像解壓縮方法用于對通過根據(jù)權(quán)利要求19的運動圖像壓縮方法進(jìn)行了編碼的運動圖像數(shù)據(jù)進(jìn)行解碼,所述運動圖像解壓縮方法包括頭部信息讀出步驟,用于從所述頭部部分讀出至少所述空間變換參數(shù);以及逆空間變換步驟,用于根據(jù)在所述頭部信息讀出步驟中讀出的所述空間變換參數(shù),對由所述逆空間頻率變換步驟產(chǎn)生的差分像素塊進(jìn)行所述圖像空間變換的逆變換。
24.一種圖像編碼程序,該圖像編碼程序由計算機(jī)執(zhí)行以對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼,所述圖像編碼程序包括空間變換步驟,用于在圖像空間內(nèi)對所述圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆空間變換;空間頻率變換步驟,用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)從圖像空間變換至頻率空間,從而獲得變換系數(shù);編碼步驟,用于將所述變換系數(shù)編碼為編碼數(shù)據(jù);頭部信息產(chǎn)生步驟,用于向所述編碼數(shù)據(jù)整體地添加進(jìn)行所述空間變換的逆變換所需的信息作為頭部信息。
25.一種圖像編碼裝置,該圖像編碼裝置用于對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行編碼,該圖像編碼裝置包括空間變換單元,用于在圖像空間內(nèi)對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行可逆圖像空間變換;空間頻率變換單元,用于對圖像數(shù)據(jù)或差分圖像數(shù)據(jù)進(jìn)行空間頻率變換,從而獲得變換系數(shù);頭部信息產(chǎn)生器,用于將與圖像數(shù)據(jù)或差分圖像數(shù)據(jù)相關(guān)的信息添加到基于所述變換系數(shù)而獲得的數(shù)據(jù)中;以及頭部信息添加單元,用于將進(jìn)行所述圖像空間變換的逆變換所需的空間變換參數(shù)添加到所述頭部部分中。
26.一種圖像解碼裝置,該圖像解碼裝置用于對通過根據(jù)權(quán)利要求25的圖像編碼裝置進(jìn)行了編碼的編碼數(shù)據(jù)進(jìn)行解碼,所述圖像解碼裝置包括逆空間頻率變換單元,用于在圖像空間中對根據(jù)所述編碼數(shù)據(jù)產(chǎn)生的變換系數(shù)進(jìn)行逆空間頻率變換,從而獲得像素數(shù)據(jù),頭部解釋器,用于從所述頭部部分讀出至少所述空間變換參數(shù);以及逆空間變換單元,用于根據(jù)由所述頭部解釋器讀出的所述空間變換參數(shù)對圖像中的像素數(shù)據(jù)進(jìn)行所述圖像空間變換的逆變換,從而獲得圖像數(shù)據(jù)或差分圖像數(shù)據(jù)。
27.一種圖像編碼/解碼系統(tǒng),該圖像編碼/解碼系統(tǒng)包括根據(jù)權(quán)利要求25所述的圖像編碼裝置;以及根據(jù)權(quán)利要求26所述的圖像解碼裝置。
28.一種擴(kuò)展圖像編碼/解碼系統(tǒng),其包括第一圖像編碼/解碼系統(tǒng),該第一圖像編碼/解碼系統(tǒng)包括第一圖像編碼裝置,該第一圖像編碼裝置包括劃分單元,用于將原始圖像數(shù)據(jù)劃分為多個像素塊;空間頻率變換單元,用于對由所述劃分單元產(chǎn)生的所述像素塊進(jìn)行空間頻率變換,從而獲得變換系數(shù);量化器,用于對來自所述空間頻率變換單元的所述變換系數(shù)進(jìn)行量化,從而產(chǎn)生變換系數(shù)的整數(shù)值;熵編碼器,用于對變換系數(shù)的這些整數(shù)值進(jìn)行熵編碼;以及壓縮圖像文件產(chǎn)生裝置,用于通過將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于所述熵編碼器的結(jié)果而獲得的數(shù)據(jù)中作為頭部部分,來產(chǎn)生第一壓縮圖像文件;第一圖像解碼裝置,該第一圖像解碼裝置包括頭部解釋器,用于從所述第一壓縮圖像文件中讀出所述頭部部分;熵解碼器,用于通過對從所述第一壓縮圖像文件獲得的碼進(jìn)行熵解碼來獲得變換系數(shù)的整數(shù)值;逆量化器,用于對所述熵解碼器產(chǎn)生的變換系數(shù)的整數(shù)值進(jìn)行去量化,從而獲得變換系數(shù);逆空間頻率變換單元,用于通過對來自所述逆量化器的變換系數(shù)進(jìn)行逆空間頻率變換,來獲得以像素塊為單位的像素數(shù)據(jù);以及再現(xiàn)裝置,用于通過將所述像素塊組合到所述原始圖像數(shù)據(jù)中來產(chǎn)生原始圖像數(shù)據(jù);第二圖像編碼裝置,該第二圖像編碼裝置用于產(chǎn)生第二壓縮圖像文件,該第二圖像編碼裝置是通過向所述第一圖像編碼裝置添加以下單元而獲得的空間變換單元,用于在進(jìn)行空間頻率變換之前對所述像素塊進(jìn)行可通過空間變換參數(shù)識別的可逆圖像空間變換;以及頭部信息添加單元,用于將所述空間變換參數(shù)添加到所述頭部部分中;以及第二圖像解碼單元,用于從第二壓縮圖像文件獲取原始圖像數(shù)據(jù),該第二圖像解碼單元是通過向所述第一圖像解碼裝置添加以下單元而獲得的附加頭部信息讀取器,用于從所述頭部部分讀出所述空間變換參數(shù);以及逆空間變換單元,用于根據(jù)由所述附加頭部信息讀取器讀出的空間變換參數(shù)進(jìn)行所述圖像空間變換的逆變換;其中,在要處理的壓縮圖像文件為第二壓縮圖像文件的情況下,所述第一圖像解碼裝置能夠通過忽略在所述第二壓縮圖像文件的頭部部分中描述的空間變換參數(shù)來恢復(fù)與所述原始圖像數(shù)據(jù)不同的數(shù)據(jù);并且其中,在所述附加頭部信息讀取器不能從所述頭部部分讀出所述空間變換參數(shù)的情況下,所述第二圖像解碼裝置通過只進(jìn)行由第一圖像解碼裝置部分進(jìn)行的解碼而不進(jìn)行所述逆空間變換單元進(jìn)行的處理,來恢復(fù)原始圖像數(shù)據(jù)。
29.根據(jù)權(quán)利要求28所述的擴(kuò)展圖像編碼/解碼系統(tǒng),該擴(kuò)展圖像編碼/解碼系統(tǒng)還包括圖像采集裝置,其具有所述第二圖像編碼裝置;以及計算機(jī),其具有所述第一圖像解碼裝置。
30.根據(jù)權(quán)利要求1所述的圖像編碼方法,其中,所述空間變換步驟為用于進(jìn)行可以通過至少一個調(diào)節(jié)參數(shù)進(jìn)行調(diào)節(jié)的圖像空間變換的步驟;并且其中,所述頭部信息添加步驟為用于將所述調(diào)節(jié)參數(shù)添加到所述頭部部分中的步驟。
31.根據(jù)權(quán)利要求30所述的圖像編碼方法,其中,所述基本編碼方法還包括用于將圖像數(shù)據(jù)或差分圖像數(shù)據(jù)劃分為多個像素塊的劃分步驟,并且所述空間頻率變換步驟為用于對在所述劃分步驟中劃分的所述像素塊進(jìn)行空間頻率變換的步驟;并且其中,所述空間變換步驟為用于在進(jìn)行所述空間頻率變換步驟之前對所述像素塊中的至少一個像素塊進(jìn)行可逆圖像空間變換的步驟。
32.根據(jù)權(quán)利要求31所述的圖像編碼方法,其中,在所述圖像變換步驟中,將所述像素塊表示為矩陣M,并且對該矩陣M進(jìn)行使用可逆矩陣A的被表示為M→AM的可逆矩陣運算以及使用可逆矩陣B的被表示為M→MB的可逆矩陣運算中的至少一種可逆矩陣運算。
33.根據(jù)權(quán)利要求32所述的圖像解碼方法,其中,所述矩陣A和矩陣B為用于實現(xiàn)對由所述矩陣M表示的像素塊的空間低通濾波的矩陣。
34.根據(jù)權(quán)利要求33所述的圖像編碼方法,其中,所述調(diào)節(jié)參數(shù)包括用于調(diào)節(jié)所述空間低通濾波的強(qiáng)度的濾波調(diào)節(jié)參數(shù)。
35.根據(jù)權(quán)利要求34所述的圖像編碼方法,其中,所述基本編碼方法還包括量化步驟,用于利用特定的量化寬度對在所述空間頻率變換中獲得的變換系數(shù)進(jìn)行量化;其中,所述頭部產(chǎn)生步驟為用于將與所述圖像數(shù)據(jù)相關(guān)的信息添加到基于所述量化步驟的結(jié)果而獲得的數(shù)據(jù)中作為頭部部分的步驟;并且其中,根據(jù)所述濾波調(diào)節(jié)參數(shù)來調(diào)節(jié)所述量化寬度。
36.根據(jù)權(quán)利要求30所述的圖像編碼方法,其中,在所述空間頻率變換步驟中獲得的所述變換系數(shù)包括與像素塊內(nèi)的圖像數(shù)據(jù)的平均值成比例的DC系數(shù),并且所述空間變換步驟使所述DC系數(shù)保持不變。
37.一種圖像編碼方法,該圖像編碼方法用于選擇性地執(zhí)行以下方法根據(jù)權(quán)利要求6所述的圖像編碼方法;以及根據(jù)權(quán)利要求33所述的圖像編碼方法。
全文摘要
本發(fā)明提供了一種用于圖像編碼/解碼和擴(kuò)展圖像壓縮解壓縮的方法和設(shè)備。本圖像編碼方法等在處理例如JPEG等時在進(jìn)行空間頻率變換之前將像素塊表示為矩陣,計算該矩陣中的列i內(nèi)的像素值的總和數(shù)據(jù)sc(i)以及該矩陣中的行j內(nèi)的像素值的總和數(shù)據(jù)sr(j)(S22),計算的nc(i)和nr(j),以分別使sc(i)和sr(j)以降序排列(S23),并且在認(rèn)為置換合理的預(yù)定條件成立(S24、S28)時,進(jìn)行矩陣的置換(S26、S30),產(chǎn)生包括將該矩陣置換為原始狀態(tài)所需的nc(i)和nr(j)的頭部信息Ph(n)(S32),并將該頭部信息添加到諸如JPEG等的壓縮圖像文件的頭部。
文檔編號H04N7/30GK1977540SQ20058002213
公開日2007年6月6日 申請日期2005年6月27日 優(yōu)先權(quán)日2004年6月29日
發(fā)明者堀江健一, 坂田誠一郎 申請人:奧林巴斯株式會社