專利名稱:數(shù)據(jù)處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理裝置,尤其涉及一種能夠?qū)⑿畔⑶度雸D像中而不降低解碼后的圖像的質(zhì)量或增加數(shù)據(jù)總量的數(shù)據(jù)處理裝置。
背景技術(shù):
用于將信息嵌入數(shù)據(jù)中而不增加數(shù)據(jù)總量的方法是存在的,例如,將數(shù)字音頻數(shù)據(jù)的最低比特或低級的兩個(gè)比特變?yōu)橐磺度氲男畔?。該方法利用低級比特對聲音質(zhì)量的影響并不是很明顯這樣的事實(shí),簡單地用要被嵌入的信息取代數(shù)字音頻數(shù)據(jù)的低級比特。因此,當(dāng)數(shù)字音頻數(shù)據(jù)被回放時(shí),含有嵌入其中的信息的數(shù)字音頻數(shù)據(jù)并不恢復(fù)低級比特而被輸出。即,因?yàn)閷⒑星度胄畔⒌牡图壉忍鼗謴?fù)為原始數(shù)字音頻數(shù)據(jù)是困難的,并且低級比特并不太影響聲音的質(zhì)量,所以該含有嵌入信息的數(shù)字音頻數(shù)據(jù)被輸出。
依據(jù)上述方法,然而,與原始數(shù)據(jù)不同的數(shù)據(jù)被輸出。因此,當(dāng)該數(shù)據(jù)是音頻數(shù)據(jù)時(shí),將對聲音質(zhì)量產(chǎn)生很大的影響,而當(dāng)該數(shù)據(jù)是視頻數(shù)據(jù)時(shí),將對圖像質(zhì)量產(chǎn)生很大的影響。
發(fā)明內(nèi)容
本發(fā)明是針對上述情況而發(fā)明的,它能夠使信息被嵌入進(jìn)如圖像中而不降低圖像的質(zhì)量或增加數(shù)據(jù)總量。
依據(jù)本發(fā)明的第一數(shù)據(jù)處理裝置包括編碼部件,用于編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及嵌入部件,用于通過基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,而將第二數(shù)據(jù)嵌入從編碼部件輸出的編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第一數(shù)據(jù)處理方法是這樣一種方法第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù),以及,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第一存儲介質(zhì)存儲這樣一個(gè)程序第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù),以及,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第一數(shù)據(jù)處理裝置、第一數(shù)據(jù)處理方法以及第一存儲介質(zhì),第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,于是將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理裝置包括編碼表生成部件,用于生成用于編碼第一數(shù)據(jù)的編碼表;修改的編碼表生成部件,用于基于第二數(shù)據(jù)修改編碼表生成部件所生成的編碼表以生成修改的編碼表;以及,嵌入編碼的數(shù)據(jù)生成部件,用于基于修改的編碼表編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理方法是這樣一種方法生成用于編碼第一數(shù)據(jù)的編碼表,基于第二數(shù)據(jù)修改生成的編碼表以生成修改的編碼表,以及基于修改的編碼表編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第二存儲介質(zhì)存儲這樣一個(gè)程序生成用于編碼第二數(shù)據(jù)的編碼表,基于第二數(shù)據(jù)修改生成的編碼表以生成修改的編碼表,以及基于修改的編碼表編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理裝置、第二數(shù)據(jù)處理方法以及第二存儲介質(zhì),生成用于編碼第一數(shù)據(jù)的編碼表,以及基于第二數(shù)據(jù)修改編碼表生成部件所生成的編碼表以生成修改的編碼表。然后基于修改的編碼表編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第三數(shù)據(jù)處理裝置包括暫定的解碼部件,用于基于編碼表暫定的解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù);暫定的編碼表生成部件,用于基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表;第一解碼的數(shù)據(jù)獲得部件,用于基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù);以及第二解碼的數(shù)據(jù)獲得部件,用于通過比較編碼表和暫定的編碼表獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第三數(shù)據(jù)處理方法是這樣一種方法基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù),基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù),以及通過比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第三存儲介質(zhì)存儲這樣一個(gè)程序基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù),基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù),以及通過比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第三數(shù)據(jù)處理裝置、第三數(shù)據(jù)處理方法以及第三存儲介質(zhì),基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù)。另外,基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,以及基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù)。比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四數(shù)據(jù)處理裝置包括暫定的解碼部件,用于依據(jù)輸入?yún)?shù)修改通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表將其暫定地解碼以生成暫定的解碼的數(shù)據(jù);再編碼部件,用于將暫定的解碼的數(shù)據(jù)再次進(jìn)行編碼以輸出再編碼的數(shù)據(jù);以及解碼部件,用于通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),以及用于獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四處理方法是這樣一種方法依據(jù)輸入?yún)?shù)修改通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表將其暫定地解碼以生成暫定的解碼的數(shù)據(jù),將暫定的解碼的數(shù)據(jù)再次進(jìn)行編碼以輸出再編碼的數(shù)據(jù),以及通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù)作為第一解碼的數(shù)據(jù),并且還獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四處理介質(zhì)存儲這樣一個(gè)程序依據(jù)輸入?yún)?shù)修改通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表將其暫定的解碼以生成暫定的解碼的數(shù)據(jù),將暫定的解碼的數(shù)據(jù)再次進(jìn)行編碼以輸出再編碼的數(shù)據(jù),以及將暫定的解碼的數(shù)據(jù)再編碼以輸出再編碼的數(shù)據(jù)。通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),并且獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四數(shù)據(jù)處理裝置、第四數(shù)據(jù)處理方法以及第四存儲介質(zhì),依據(jù)輸入?yún)?shù)修改通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表將其暫定的解碼以生成暫定的解碼的數(shù)據(jù)。另外,將暫定的解碼的數(shù)據(jù)再編碼以輸出再編碼的數(shù)據(jù)。通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),以及用于獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理裝置包括編碼部件,用于依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及修改部件,用于基于第二數(shù)據(jù)修改編碼規(guī)則;其中編碼部件依據(jù)被修改部件修改了的編碼規(guī)則編碼第一數(shù)據(jù),因此生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理方法是這樣一種方法依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù),基于第二數(shù)據(jù)修改編碼規(guī)則,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五存儲介質(zhì)存儲這樣一種程序依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù),基于第二數(shù)據(jù)修改編碼規(guī)則,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理裝置、第五數(shù)據(jù)處理方法以及第五存儲介質(zhì),依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼規(guī)則,以及,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理裝置包括第一解碼部件,用于解碼通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù);以及,第二解碼部件,用于解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理方法是這樣一種方法解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù),以及,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的第六存儲介質(zhì)存儲這樣一種程序解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù),以及解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及存儲介質(zhì),解碼通過將第二數(shù)據(jù)嵌入在第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù)。另外,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)包括一個(gè)編碼裝置,該編碼裝置包括編碼部件,用于依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及修改部件,用于基于第二數(shù)據(jù)修改編碼規(guī)則;其中編碼部件依據(jù)被修改部件修改了的編碼規(guī)則編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù),該數(shù)據(jù)處理系統(tǒng)也包括一個(gè)解碼裝置,該解碼裝置包括第一解碼部件,用于解碼嵌入編碼的數(shù)據(jù)以獲得依據(jù)編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù);以及,第二解碼部件,用于解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng)在編碼裝置中,依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼規(guī)則,以及依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。在解碼裝置中,解碼嵌入編碼的數(shù)據(jù)以獲得依據(jù)編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù)。然后,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
圖1示出了依據(jù)本發(fā)明的實(shí)施例的嵌入壓縮/解碼系統(tǒng)的結(jié)構(gòu)的舉例。
圖2是一個(gè)方框圖,示出了嵌入壓縮編碼器11的結(jié)構(gòu)的第一舉例。
圖3是一個(gè)方框圖,示出了可變長度編碼單元23的結(jié)構(gòu)的舉例。
圖4是可變長度解碼的示意圖。
圖5示出了像素值的出現(xiàn)頻率和分配給像素值的碼的碼長之間的關(guān)聯(lián)的圖。
圖6示出了Huffman(霍夫曼)表的舉例。
圖7示出了根據(jù)像素值的發(fā)生頻率而分配的碼以及碼的轉(zhuǎn)換。
圖8示出了嵌入編碼的數(shù)據(jù)的舉例。
圖9示出了一種用于將嵌入編碼的數(shù)據(jù)恢復(fù)為原始編碼的數(shù)據(jù)的方法。
圖10是一個(gè)流程圖,示出了嵌入編碼處理過程。
圖11是一個(gè)流程圖,示出了轉(zhuǎn)換表生成處理過程。
圖12是一個(gè)流程圖,示出了編碼的數(shù)據(jù)轉(zhuǎn)換處理過程。
圖13是一個(gè)方框圖,示出了嵌入壓縮編碼器11的結(jié)構(gòu)的第二個(gè)舉例。
圖14是一個(gè)方框圖,示出了解碼器12的結(jié)構(gòu)的第一個(gè)舉例。
圖15是一個(gè)方框圖,示出了可變長度解碼單元56和可變長度解碼單元56的結(jié)構(gòu)的舉例。
圖16是一個(gè)方框圖,示出了霍夫曼表生成單元53的結(jié)構(gòu)的舉例。
圖17是一個(gè)方框圖,示出了逆轉(zhuǎn)換表生成單元54的結(jié)構(gòu)的舉例。
圖18是一個(gè)流程圖,示出了解碼的處理過程。
圖19是一個(gè)方框圖,示出了嵌入壓縮編碼器11的結(jié)構(gòu)的第三個(gè)舉例。
圖20是一個(gè)流程圖,示出了嵌入編碼處理的過程。
圖21是一個(gè)方框圖,示出了編碼單元91的結(jié)構(gòu)的舉例。
圖22示出了被矢量量化的編碼的示意圖。
圖23是一個(gè)方框圖,示出了嵌入單元92的結(jié)構(gòu)的舉例。
圖24示出了通過行循環(huán)嵌入附加信息的示意圖。
圖25是一個(gè)流程圖,示出了嵌入編碼的處理過程。
圖26是一個(gè)方框圖,示出了解碼器12的結(jié)構(gòu)的第二個(gè)舉例。
圖27是一個(gè)流程圖,示出了解碼的處理過程。
圖28是一個(gè)方框圖,示出了編碼規(guī)則恢復(fù)單元121的結(jié)構(gòu)的舉例。
圖29是一個(gè)方框圖,示出了解碼單元122的結(jié)構(gòu)的舉例。
圖30是一個(gè)方框圖,示出了確定單元123的結(jié)構(gòu)的舉例。
圖31示出了確定單元123所進(jìn)行的處理過程。
圖32是一個(gè)流程圖,示出了解碼的處理過程。
圖33是一個(gè)方框圖,示出了解碼器12的結(jié)構(gòu)的第三個(gè)舉例。
圖34是一個(gè)方框圖,示出了依據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)結(jié)構(gòu)的舉例。
具體實(shí)施例方式
圖1示出了依據(jù)本發(fā)明的實(shí)施例的嵌入壓縮/解碼系統(tǒng)(系統(tǒng)指多個(gè)裝置的邏輯組合,與組成裝置是否位于一個(gè)包裝內(nèi)無關(guān))的結(jié)構(gòu)的舉例。
該嵌入壓縮/解碼系統(tǒng)包括一個(gè)編碼裝置1和一個(gè)解碼裝置2。該編碼裝置1編碼例如一幅要被編碼的圖像,以及該解碼裝置2將編碼的結(jié)果解碼為原始圖像。
該編碼裝置1包括嵌入壓縮編碼器11。嵌入壓縮編碼器11編碼圖像并將信息(下文中當(dāng)用到時(shí)被指作附加信息)嵌入圖像中。嵌入壓縮編碼器11依據(jù)預(yù)定的編碼規(guī)則編碼該圖像(數(shù)字圖像數(shù)據(jù))用于壓縮,并基于附加信息(數(shù)字?jǐn)?shù)據(jù))修改或破壞該編碼規(guī)則,從而嵌入附加信息以產(chǎn)生嵌入編碼的數(shù)據(jù)用于輸出。從嵌入壓縮編碼器11輸出的嵌入編碼的數(shù)據(jù)被記錄在例如一個(gè)半導(dǎo)體存儲器、磁光碟、磁盤、光盤、磁帶或相變型磁盤的記錄介質(zhì)3上,或通過例如地面波、衛(wèi)星鏈路、CATV(有線電視)網(wǎng)絡(luò)、因特網(wǎng)或公共網(wǎng)絡(luò)的傳輸介質(zhì)4被發(fā)送,并這樣被提供給解碼裝置2。
解碼裝置2包括通過記錄介質(zhì)3或傳輸介質(zhì)4接收提供的嵌入編碼的數(shù)據(jù)的解碼器12。該解碼器12將嵌入編碼的數(shù)據(jù)恢復(fù)為依據(jù)預(yù)定的編碼規(guī)則編碼的編碼的數(shù)據(jù),從而解碼嵌入其中的附加信息并解碼編碼的數(shù)據(jù)為原始圖像。該解碼圖像被提供給沒示出的監(jiān)視器或其它相似的裝置并顯示。
應(yīng)當(dāng)理解,所述附加信息可以包括例如伴隨原始圖像的文本數(shù)據(jù)或聲音數(shù)據(jù),縮小的圖像版本等,并且還可以包括與原始圖像不相關(guān)的數(shù)據(jù)。即,任意數(shù)據(jù)(包括程序)可被用作附加信息。
另外,提供給嵌入壓縮編碼器11的用于編碼的圖像的一部分也可被用作附加信息。即,可以向嵌入壓縮編碼器11提供圖像的一部分作為附加信息,同時(shí)提供圖像的剩余部分作為要被編碼的數(shù)據(jù)。
圖2示出了圖1中所示的嵌入壓縮編碼器11的結(jié)構(gòu)的舉例。
幀存儲器21例如基于幀,存儲提供給嵌入壓縮編碼器11的圖像數(shù)據(jù)。附加信息存儲器22存儲提供給嵌入壓縮編碼器11的附加信息。
可變長度編碼單元23對存儲在幀存儲器21中的圖像數(shù)據(jù)應(yīng)用可變長度編碼或熵(entropy)編碼例如霍夫曼編碼,并向編碼規(guī)則破壞單元25提供所得的編碼的數(shù)據(jù)??勺冮L度編碼單元23以下面描述的方式在霍夫曼編碼的處理過程中生成霍夫曼表并將該霍夫曼表提供給轉(zhuǎn)換表生成單元24。另外,可變長度編碼單元23向多路復(fù)用器(MUX)26提供有關(guān)該霍夫曼表的信息,這將在獲得對轉(zhuǎn)換表生成單元24輸出的霍夫曼表的過程中用到。
轉(zhuǎn)換表生成單元24基于存儲在附加信息存儲器22中的附加信息,生成用于轉(zhuǎn)換從可變長度編碼單元23提供的霍夫曼表中的碼的轉(zhuǎn)換表。即該霍夫曼表定義了要被霍夫曼編碼的值(這里指圖像的像素值)和具有不同碼長的碼(編碼的數(shù)據(jù))之間的關(guān)聯(lián),以及轉(zhuǎn)換表生成單元24生成轉(zhuǎn)換表,用于將霍夫曼表中的碼轉(zhuǎn)換為基于附加信息的碼。轉(zhuǎn)換表生成單元24所生成的轉(zhuǎn)換表被提供給編碼規(guī)則破壞單元25。
編碼規(guī)則破壞單元25基于附加信息修改或破壞可變長度編碼單元23中的編碼規(guī)則,從而嵌入附加信息。即,編碼規(guī)則破壞單元25依據(jù)轉(zhuǎn)換表生成單元24基于附加信息所生成的轉(zhuǎn)換表轉(zhuǎn)換(處理)從可變長度編碼單元23輸出的編碼的數(shù)據(jù)(碼),從而依據(jù)可變長度編碼單元23的被破壞的編碼規(guī)則產(chǎn)生編碼的數(shù)據(jù)。依據(jù)被破壞的編碼規(guī)則所編碼的編碼的數(shù)據(jù)從編碼規(guī)則破壞單元25向多路復(fù)用器26提供,作為通過將附加信息嵌入原始編碼的數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù)。
多路復(fù)用器26將來自編碼規(guī)則破壞單元25的嵌入編碼的數(shù)據(jù)和來自可變長度編碼單元23的有關(guān)霍夫曼表的信息多路復(fù)用,并輸出該多路復(fù)用后的數(shù)據(jù)。如參考圖1所述的,該多路復(fù)用后的數(shù)據(jù)通過記錄介質(zhì)3或傳輸介質(zhì)4提供給解碼裝置2。
圖3示出了圖2中的可變長度編碼單元23的結(jié)構(gòu)的舉例。
存儲在圖2中的幀存儲器21中的圖像數(shù)據(jù)的每一幀例如以時(shí)間順序被順序考慮,被考慮的幀的圖像數(shù)據(jù)被讀出。被考慮的幀的圖像數(shù)據(jù)被提供給頻率表生成單元31和編碼單元34。
該頻率表生成單元31對于向它提供的組成被考慮的幀的像素,生成頻率表,表中每個(gè)像素值與其發(fā)生的頻率相關(guān),并將該頻率表提供給霍夫曼樹生成單元32。該頻率表也從頻率表生成單元31向圖3中所示的多路復(fù)用器26提供作為有關(guān)霍夫曼表的信息。
盡管在圖3的實(shí)施例中該頻率表被用作有關(guān)霍夫曼表的信息,有關(guān)霍夫曼表的信息并不明確地限于能夠獲得下面將描述的霍夫曼表生成單元33所生成的霍夫曼表的信息。因此,該有關(guān)霍夫曼表的信息可以是例如霍夫曼表生成單元33所生成的霍夫曼表本身以及頻率表。
霍夫曼樹生成單元32基于頻率表生成單元31所提供的頻率表生成霍夫曼樹,并將其提供給霍夫曼表生成單元33。該霍夫曼表生成單元33基于霍夫曼樹生成單元32所提供的霍夫曼樹生成霍夫曼表。即,霍夫曼表生成單元33生成霍夫曼表,在該表中,被考慮的幀中的像素值根據(jù)其發(fā)生頻率每個(gè)被分配一個(gè)具有一定碼長的碼,像素值的發(fā)生頻率越高,分配的碼的碼長越短,(像素值的發(fā)生頻率越低,分配的碼的碼長越長)。該霍夫曼表被提供給編碼單元34和圖2中的轉(zhuǎn)換表生成單元24。
編碼單元34按順序考慮向其提供的被考慮的幀中的每個(gè)像素,例如,以光柵掃描的順序,并將被考慮的像素的像素值轉(zhuǎn)換為霍夫曼表生成單元33所提供的霍夫曼表中相應(yīng)的碼,并將其輸出作為編碼的數(shù)據(jù)。
在如上所構(gòu)成的可變長度編碼單元23中,頻率表生成單元31對于被考慮的幀生成頻率表,并將其提供給霍夫曼樹生成單元32?;舴蚵鼧渖蓡卧?2基于頻率表生成單元31所提供的頻率表生成霍夫曼樹,并將其提供給霍夫曼表生成單元33。該霍夫曼表生成單元33基于霍夫曼樹生成單元32所提供的霍夫曼樹生成霍夫曼表,并將其提供給編碼單元34。編碼單元34將被考慮的幀中的每個(gè)像素值轉(zhuǎn)換為霍夫曼表中像素值相應(yīng)的碼,并將其輸出作為編碼的數(shù)據(jù)。
現(xiàn)在將參考圖4進(jìn)一步描述可變長度編碼單元23中的可變長度編碼處理過程。
例如假定圖4(A)中所示的頻率表已經(jīng)在頻率表生成單元31中生成。圖4(A)示出了像素值
、[1]、[2]、[3]以及[4]分別在被考慮的幀中發(fā)生了5次、4次、3次、2次以及1次。
關(guān)于圖4(A)中的頻率表,霍夫曼樹生成單元32基于每個(gè)像素的發(fā)生頻率,以從下至上的方式生成霍夫曼樹,例如圖4(B)至圖4(E)所示的。
更具體地講,霍夫曼樹生成單元32從頻率表中選擇兩個(gè)具有最低的發(fā)生頻率的像素值,從而形成一個(gè)節(jié)點(diǎn)。另外,霍夫曼樹生成單元32將比特“0”或“1”分配給所選擇的兩個(gè)像素值中具有最低的發(fā)生頻率的像素值,例如將“0”分配給所選擇的兩個(gè)像素值中具有最低的發(fā)生頻率的像素值,將“1”分配給另一個(gè)?;舴蚵鼧渖蓡卧?2將所選擇的兩個(gè)像素值的發(fā)生頻率的和分配給所選擇的兩個(gè)像素值所形成的節(jié)點(diǎn),作為該節(jié)點(diǎn)的發(fā)生頻率。
因此,在圖4(A)所示的頻率表中,具有發(fā)生頻率1的像素值[4]以及具有發(fā)生頻率2的像素值[3]被選擇形成節(jié)點(diǎn)#1,如圖4(B)所示,3(1+2)被分配作為節(jié)點(diǎn)#1的發(fā)生頻率。另外,對于選擇的兩個(gè)像素值[4]和[3],比特“0”被分配給具有較低的發(fā)生頻率的像素值[4],比特“1”被分配給具有較高的發(fā)生頻率的像素值[3]。
在圖4(B)至圖4(E)中,表示發(fā)生頻率的數(shù)字示出在圓括號中。
如果所選擇的兩個(gè)像素值的發(fā)生頻率相同,可以將比特“1”或“0”分配給任何一個(gè)像素值。然而,比特“1”或“0”分配給哪個(gè)像素必須預(yù)定義,例如將比特“0”分配給較小的像素值。
霍夫曼樹生成單元32重復(fù)相同的處理過程直到實(shí)現(xiàn)會聚為單個(gè)節(jié)點(diǎn)。
因此,從圖4(B)中所示的狀態(tài)可知,每個(gè)具有發(fā)生頻率3的節(jié)點(diǎn)#1和像素值[2]被選擇,于是如圖4(C)所示,節(jié)點(diǎn)#1和像素值[2]形成節(jié)點(diǎn)#2。另外,節(jié)點(diǎn)#2的發(fā)生頻率被設(shè)置為6(3+3),以及比特“0”和“1”分別被分配給節(jié)點(diǎn)#1和像素值[2]。
從圖4(C)中所示的狀態(tài)可知,具有發(fā)生頻率4的像素值[1]和具有發(fā)生頻率5的像素值
被選擇,于是像素值[1]和像素值
形成節(jié)點(diǎn)#3。另外,如圖4(D)所示,節(jié)點(diǎn)#3的發(fā)生頻率被設(shè)置為9(4+5),以及比特“0”和“1”分別被分配給像素值[1]和像素值
。
從圖4(D)中所示的狀態(tài)可知,具有發(fā)生頻率6的節(jié)點(diǎn)#2和具有發(fā)生頻率9的節(jié)點(diǎn)#3被選擇,于是節(jié)點(diǎn)#2和節(jié)點(diǎn)#3形成節(jié)點(diǎn)#4。另外,如圖4(E)所示,節(jié)點(diǎn)#4的發(fā)生頻率被設(shè)置為15(6+9),以及比特“0”和“1”分別被分配給節(jié)點(diǎn)#2和節(jié)點(diǎn)#3。
圖4(E)中所示的狀態(tài)中可知,節(jié)點(diǎn)已經(jīng)被會聚為單個(gè)節(jié)點(diǎn)#4,于是完成霍夫曼樹?;舴蚵鼧渖蓡卧?2向霍夫曼表生成單元33提供該霍夫曼樹。
霍夫曼表生成單元33通過從會聚節(jié)點(diǎn)向像素值方向跟蹤該霍夫曼樹,而識別分配給每個(gè)像素值的碼。
更詳細(xì)地講,例如,圖4(E)中所示的霍夫曼樹被從節(jié)點(diǎn)#4向像素值
的方向跟蹤,分配給節(jié)點(diǎn)(或像素值)的比特序列被發(fā)現(xiàn)為“0”→“0”→“0”。因此,霍夫曼表生成單元33識別分配給像素值
的碼為“000”。同樣,圖4(E)中所示的霍夫曼樹被從節(jié)點(diǎn)#4向像素值[1]的方向跟蹤,分配給節(jié)點(diǎn)(或像素值)的比特序列被發(fā)現(xiàn)為“0”→“0”→“1”。因此,霍夫曼表生成單元33識別分配給像素值[1]的碼為“001”。
相似地,霍夫曼表生成單元33識別分配給每個(gè)像素值的碼,因此生成表示像素值和碼之間的關(guān)聯(lián)的霍夫曼表。因此,從圖4(E)所示的霍夫曼樹生成圖4(F)所示的霍夫曼表。
可變長度編碼單元23可以可替換地以美國專利第5021782號所公布的方式執(zhí)行可變長度編碼。
在圖4(E)中所示的霍夫曼表中,碼“11”、“10”、“01”、“001”以及“000”被分別分配給具有5、4、3、2以及1的發(fā)生頻率的像素值
、[1]、[2]、[3]以及[4]。因此,基本上較短碼長的碼分配給較高的發(fā)生頻率的像素值。
在圖4(E)中所示的霍夫曼表中,盡管像素值
、[1]、[2]、[3]以及[4]具有不同的發(fā)生頻率,兩個(gè)比特的碼被分配給具有較高發(fā)生頻率的像素值
、[1]、[2],而三個(gè)比特的碼被分配給具有相對較低的發(fā)生頻率的像素值[3]和[4]。
如上所述,在霍夫曼表中,具有相同碼長的碼有時(shí)被分配給具有不同發(fā)生頻率的像素值。像素值的發(fā)生頻率和分配給像素值的碼長之間的關(guān)系一般如圖5所示。
參考圖5,假定n比特的碼被分配給x像素值(x是不超過2n的整數(shù)),分配給x像素值的n比特的碼的模式數(shù)目是X!(!表示階乘),基于上述生成霍夫曼樹的規(guī)則,僅采用其中一個(gè)。
即使對于x像素值分配的n比特碼的模式被修改,碼的總量并不增加。即,在霍夫曼表中,即使n比特碼取代另一個(gè)n比特碼被分配給像素值,分配的碼長仍然為n比特,因此碼的總量并不增加。
另外,即使分配給x像素值的n比特碼的模式被修改,碼分配的模式例如基于x像素值的發(fā)生頻率可以被恢復(fù)。
從以上可知,即使霍夫曼表中分配給像素值的相同長度的比特碼的模式被修改,即,盡管可變長度編碼的編碼規(guī)則被破壞,碼的總量并不增加,被修改的分配模式可以恢復(fù)為原始的模式。
這意味著,通過基于一些信息修改分配給像素值的碼的模式,可以嵌入信息而不增加數(shù)據(jù)的總量,同時(shí)能夠使嵌入的信息被解碼而沒有額外的開銷。
圖6示出了對于8比特(0至255)表示的像素值所產(chǎn)生的霍夫曼表的舉例。圖6中,除了像素值和分配給像素值的碼,也示出了每個(gè)像素值的發(fā)生頻率。
參考圖6,例如,對于從[12]至[18]的7個(gè)像素值,9比特的碼被分配給這7個(gè)像素值的每一個(gè),因此對于這7個(gè)像素值存在9比特碼的7!種分配模式。因此,通過修改對于這7個(gè)像素值所分配的9比特碼的模式,可以嵌入int[log27!]比特的信息。Int[]表示不超過[]中的值的最大整數(shù)值。
圖7(A)示出了圖6中所示的像素值[12]至[18]的各個(gè)發(fā)生頻率,以及圖7(B)示出了分別分配給圖6的像素值[12]至[18]的9比特碼。
假定圖7(B)中所示的碼分配基于int[log27!]比特內(nèi)的附加信息,如圖7(C)中所示的被修改。
更具體地講,在圖7(B)中,碼“110111111”、“110111010”、“110100001”、“110011001”、“11011000”、“011101011”以及“010001010”分別被分配給像素值[12]至[18]。在圖7(C)中,分配被修改于是分配給像素值[12]的碼“110111111”現(xiàn)在被分配給像素值[15],分配給像素值[15]的碼“110011001”現(xiàn)在被分配給像素值[12],分配給像素值[16]的碼“11011000”現(xiàn)在被分配給像素值[17],分配給像素值[17]的碼“011101011”現(xiàn)在被分配給像素值[18],分配給像素值[18]的碼“010001010”現(xiàn)在被分配給像素值[16]。圖7中對于其它像素值的分配碼沒有修改。
同樣對于分配其它碼長的碼的像素值,可以基于附加信息修改碼分配的模式。圖8示出了基于附加信息,圖6所示的碼分配模式已經(jīng)修改的組成編碼的數(shù)據(jù)的其它編碼的數(shù)據(jù)的舉例。圖8示出了嵌入編碼的數(shù)據(jù)和通過依據(jù)圖6中所示的霍夫曼表,可變長度解碼該嵌入編碼的數(shù)據(jù)所獲得的解碼的像素值(通過依據(jù)在獲得編碼的數(shù)據(jù)過程中所使用的霍夫曼表,解碼嵌入編碼的數(shù)據(jù)所獲得的像素值)。
參考圖8,例如對于從[12]至[18]的7個(gè)像素值,如果嵌入編碼的數(shù)據(jù)依據(jù)圖6所示的霍夫曼表被解碼,獲得圖9所示的解碼的像素值。即,將通過依據(jù)編碼時(shí)所用的霍夫曼表解碼嵌入編碼的數(shù)據(jù)而獲得的像素值指作嵌入解碼的像素值,碼“110011001”、“110111010”、“110100001”、“110111111”、“010001010”、“11011000”以及“011101011”分別被可變長度解碼為嵌入解碼的像素值[15]、[13]、[14]、[12]、[18]、[16]以及[17]。
圖9(B)示出了嵌入解碼的像素值[12]至[18]的發(fā)生頻率的計(jì)數(shù)。由于圖6的霍夫曼表中所示的分配給像素值[12]至[18]的碼,被如圖7(B)和圖7(C)所示的修改了,所以像素值[12]、[15]以及[16]至[18]的發(fā)生頻率與圖7(A)中的不一致,更具體地講,它們分別與可變長度編碼之前的像素值[15]、[12]、[18]、[16]以及[17]一致。
然而,由于原始像素值[12]至[18]的發(fā)生頻率(可變長度編碼之前)和通過可變長度解碼所獲得的像素值[12]至[18]的發(fā)生頻率應(yīng)當(dāng)彼此一致,如果可變長度編碼之前和可變長度解碼之后的發(fā)生頻率有所不同的話,將是不正常的(奇怪的)。
因此,通過將圖7(A)中所示的原始像素值的發(fā)生頻率與圖9(B)中所示的嵌入解碼的像素值的發(fā)生頻率進(jìn)行比較,以及通過檢測匹配的發(fā)生頻率,可以將已經(jīng)基于附加信息被修改的碼(可變長度碼)的分配模式,恢復(fù)為原始模式。即,嵌入編碼的數(shù)據(jù)可以被恢復(fù)為依據(jù)霍夫曼表編碼的編碼的數(shù)據(jù)。另外,嵌入的附加信息可以基于當(dāng)嵌入編碼的數(shù)據(jù)被恢復(fù)為編碼的數(shù)據(jù)時(shí)所修改的碼的分配模式被解碼,以及同樣可以通過可變長度解碼所恢復(fù)的編碼的數(shù)據(jù)而獲得原始的像素值。
更具體地講,通過將圖7(A)中所示的原始像素值的發(fā)生頻率與圖9(B)中所示的嵌入解碼的像素值的發(fā)生頻率進(jìn)行比較,嵌入解碼的像素值[15]、[13]、[14]、[12]、[17]、[18]以及[16]的發(fā)生頻率可以被分別檢測與原始像素值[12]之[18]的發(fā)生頻率一致。
因此,從中可以獲得嵌入解碼的像素值[15]、[13]、[14]、[12]、[17]、[18]以及[16]的嵌入編碼的數(shù)據(jù)“110011001”、“110111010”、“110100001”、“110111111”、“010001010”、“11011000”以及“011101011”可以被確定為在嵌入附加信息之前,圖6中所示的霍夫曼表中分配給原始像素值[12]至[18]的碼“110111111”、“110111010”、“110100001”、“110011001”、“11011000”、“011101011”以及“010001010”。
因此,通過轉(zhuǎn)換嵌入編碼的數(shù)據(jù)于是圖7(A)中所示的原始像素值的發(fā)生頻率與圖9(B)中所示的嵌入解碼的像素值的發(fā)生頻率一致,如圖9(C)所示,依據(jù)圖6中所示的霍夫曼表編碼的編碼的數(shù)據(jù)可被恢復(fù),以及可以基于嵌入編碼的數(shù)據(jù)和恢復(fù)的編碼的數(shù)據(jù)之間的關(guān)聯(lián),解碼附加信息。另外,如圖9(D)所示,通過可變長度解碼恢復(fù)的編碼的數(shù)據(jù),可以獲得原始的像素值。
圖2中所示的嵌入壓縮編碼器11執(zhí)行如上所述的不增加數(shù)據(jù)總量的嵌入編碼處理并能夠沒有額外開銷地進(jìn)行解碼。
現(xiàn)在將參考圖10所示的流程圖,進(jìn)一步描述圖2中所示的嵌入壓縮編碼器11所執(zhí)行的嵌入編碼處理過程。
在步驟S1中,可變長度編碼單元23對來自幀存儲器21的被考慮的幀內(nèi)的每個(gè)像素的像素值進(jìn)行可變長度編碼,并向編碼規(guī)則破壞單元25輸出結(jié)果編碼的數(shù)據(jù)。另外,在步驟S1中的可變長度編碼中,可變長度編碼單元23(圖3)向多路復(fù)用器26輸出頻率表生成單元31所生成的頻率表作為有關(guān)霍夫曼表的信息,并也向轉(zhuǎn)換表生成單元24輸出霍夫曼表生成單元33所生成的霍夫曼表。
然后,在步驟S2中,轉(zhuǎn)換表生成單元24基于從附加信息存儲器22所提供的附加信息,修改從可變長度編碼單元23提供的霍夫曼表中的具有相同碼長的碼的分配模式,并執(zhí)行轉(zhuǎn)換表生成處理,用于生成關(guān)聯(lián)修改前的碼和修改后的碼的轉(zhuǎn)換表。該轉(zhuǎn)換表從轉(zhuǎn)換表生成單元24提供給編碼規(guī)則破壞單元25。
在步驟S3中,編碼規(guī)則破壞單元25執(zhí)行編碼的數(shù)據(jù)轉(zhuǎn)換處理,用于依據(jù)從轉(zhuǎn)換表生成單元24提供的轉(zhuǎn)換表,將從可變長度編碼單元23提供的編碼的數(shù)據(jù)轉(zhuǎn)換為嵌入編碼的數(shù)據(jù),并將所得的嵌入編碼的數(shù)據(jù)提供給多路復(fù)用器26。
在步驟S4中,多路復(fù)用器26將從編碼規(guī)則破壞單元25提供的被考慮的幀的嵌入編碼的數(shù)據(jù)以及從可變長度編碼單元23提供的有關(guān)霍夫曼表的信息多路復(fù)用并輸出。該然后,處理進(jìn)行至步驟S5。
在步驟S5中,確定是否在幀存儲器21中存儲有被考慮的幀的下一幀。如果在步驟S5中確定在幀存儲器21中存儲有被考慮的幀的下一幀,對于要被考慮的新一幀,處理返回到步驟S1,重復(fù)相同的處理過程。
如果在步驟S5中確定在幀存儲器21中沒有存儲下一幀,則退出嵌入編碼處理過程。
現(xiàn)在,將參考圖11中的流程圖,進(jìn)一步描述被圖2中的轉(zhuǎn)換表生成單元24在圖10中所示的步驟S2中執(zhí)行的轉(zhuǎn)換表生成處理。
在轉(zhuǎn)換表生成處理過程中,開始在步驟S11中,轉(zhuǎn)換表生成單元24考慮從可變長度編碼單元23所提供的霍夫曼表中的碼的特定碼長,識別具有被考慮的碼長的碼的數(shù)目。即,轉(zhuǎn)換表生成單元24識別具有與被考慮的碼長的相同碼長的碼的數(shù)目。
在步驟S12中,轉(zhuǎn)換表生成單元24基于在步驟S11中所識別的具有被考慮的碼長的碼的數(shù)目,計(jì)算可以嵌入在具有被考慮的碼長的碼中的附加信息的比特?cái)?shù)。即,將具有被考慮的碼長的碼的數(shù)目表示為x,轉(zhuǎn)換表生成單元24通過計(jì)算y=int[log2(x!)],可以獲得可被嵌入的附加信息的比特?cái)?shù)y。
然后,處理進(jìn)行至步驟S13,轉(zhuǎn)換表生成單元24從附加信息存儲單元22讀取步驟S12中所計(jì)算的y比特?cái)?shù)的附加信息。然后,處理進(jìn)行至步驟S14。在步驟S14中,轉(zhuǎn)換表生成單元24基于在步驟S13中從附加信息存儲器22讀取的附加信息,生成對于具有被考慮的碼長的碼的轉(zhuǎn)換表。即,轉(zhuǎn)換表生成單元24基于y比特附加信息,修改分配給像素值的具有被考慮的碼長的x碼的分配模式,因此,生成對于具有被考慮的碼長的碼的轉(zhuǎn)換表,該轉(zhuǎn)換表中,修改前的碼與修改后的碼彼此相關(guān)。
然后,在步驟S15中,轉(zhuǎn)換表生成單元24確定是否還有附加信息存儲在附加信息存儲器22中,如果確定沒有信息,轉(zhuǎn)換表生成單元24向編碼規(guī)則破壞單元25(圖2)輸出至今所生成的轉(zhuǎn)換表。然后,退出該轉(zhuǎn)換表生成處理。
如果在步驟S15中確定還有附加信息存儲在附加信息存儲器22中,處理進(jìn)行至步驟S16,轉(zhuǎn)換表生成單元24確定是否已經(jīng)對霍夫曼表中的每個(gè)碼長的碼生成轉(zhuǎn)換表。如果確定生成還沒有完成,處理返回步驟S11。在這種情況下,在步驟S11中,沒有生成轉(zhuǎn)換表的碼長中的一個(gè)被選擇作為要被考慮的新的碼長,然后重復(fù)相同的處理。
如果在步驟S16中確定已經(jīng)對霍夫曼表中的每個(gè)碼長的碼生成了轉(zhuǎn)換表,則退出該轉(zhuǎn)換表生成處理。
下面將參考圖12進(jìn)一步描述被圖2所示的編碼規(guī)則破壞單元25在圖10的步驟S3中所執(zhí)行的編碼的數(shù)據(jù)轉(zhuǎn)換處理。
如上所述,可變長度編碼單元23按照光柵掃描的順序考慮被考慮的幀內(nèi)的每個(gè)像素,并可變長度編碼被考慮的像素的像素值,順序輸出所得的編碼的數(shù)據(jù)。將可變長度編碼單元23對于被考慮的像素輸出的編碼的數(shù)據(jù)稱為被考慮的編碼的數(shù)據(jù),開始,在步驟S21中,編碼規(guī)則破壞單元25識別被考慮的編碼的數(shù)據(jù)的碼長。然后,處理進(jìn)行至步驟S22。
在步驟S22中,編碼規(guī)則破壞單元25依據(jù)與被考慮的編碼的數(shù)據(jù)的碼長相關(guān)的轉(zhuǎn)換表,轉(zhuǎn)換步驟S21中識別的被考慮的編碼的數(shù)據(jù),并向多路復(fù)用器26(圖2)輸出作為嵌入編碼的數(shù)據(jù)。
然后,處理進(jìn)行至步驟S23,編碼規(guī)則破壞單元25選擇下一個(gè)編碼的數(shù)據(jù)作為要被考慮的新的編碼的數(shù)據(jù)。然后,處理進(jìn)行至步驟S21,重復(fù)相同的處理。
如果在步驟S23中確定下一個(gè)編碼的數(shù)據(jù)不存在,則退出該編碼的數(shù)據(jù)轉(zhuǎn)換處理。
圖2中所示的嵌入壓縮編碼器11通過依據(jù)轉(zhuǎn)換表轉(zhuǎn)換可變長度編碼單元23中的可變長度編碼所產(chǎn)生的編碼的數(shù)據(jù),產(chǎn)生嵌入附加信息的嵌入編碼的數(shù)據(jù)??商鎿Q地,例如,可變長度編碼單元23也可以生成其中像素值和碼的關(guān)聯(lián)已經(jīng)被修改的霍夫曼表(下文中當(dāng)用到時(shí)被指作修改的霍夫曼表),并使用修改的霍夫曼表同時(shí)執(zhí)行可變長度編碼和嵌入附加信息。即,可變長度編碼單元23可以基于破壞的編碼規(guī)則執(zhí)行可變長度編碼。
圖13示出了執(zhí)行這樣的嵌入編碼處理的嵌入壓縮編碼器11的結(jié)構(gòu)的舉例。圖中相應(yīng)于圖2和圖3中所示的部分用相同的數(shù)字標(biāo)記,以及它們的描述將在下文中省略。圖13中所示的嵌入壓縮編碼器11不包括編碼規(guī)則破壞單元25;相反,編碼規(guī)則破壞單元41被包括在可變長度編碼單元23中。除此之外,嵌入壓縮編碼器11的結(jié)構(gòu)與圖2中所示的相同。
對于編碼規(guī)則破壞單元41,提供從霍夫曼表生成單元33輸出的霍夫曼表以及從轉(zhuǎn)換表生成單元24輸出的轉(zhuǎn)換表。
編碼規(guī)則破壞單元41將與霍夫曼表中的像素值相關(guān)的碼(編碼的數(shù)據(jù))修改為與轉(zhuǎn)換表中的碼相關(guān)的嵌入編碼的數(shù)據(jù),因此將從霍夫曼表生成單元33輸出的霍夫曼表修改為其中像素值與嵌入編碼的數(shù)據(jù)相關(guān)的修改的霍夫曼表。該修改的霍夫曼表被提供給編碼單元34,編碼單元34依據(jù)修改的霍夫曼表轉(zhuǎn)換像素值。
因此,在圖13中,編碼單元34輸出嵌入編碼的數(shù)據(jù)。
圖14示出了在嵌入壓縮編碼器11如圖2或圖13所示的情況下,圖1中所示的解碼器12的結(jié)構(gòu)的舉例。
多路分解器(DEMUX)51基于幀,將從圖2或圖13所示的嵌入壓縮編碼器11所提供的數(shù)據(jù)多路分解為嵌入編碼的數(shù)據(jù)和有關(guān)霍夫曼表的信息,并向可變長度解碼單元52和編碼規(guī)則恢復(fù)單元55提供每幀的嵌入編碼的數(shù)據(jù),同時(shí)向可變長度解碼單元52、逆轉(zhuǎn)換表生成單元54以及可變長度解碼單元56提供有關(guān)霍夫曼表的信息。
可變長度解碼單元52順序考慮來自多路分解器51的嵌入編碼的數(shù)據(jù)和有關(guān)霍夫曼表的信息的每一幀,并基于組成有關(guān)被考慮的幀相關(guān)的霍夫曼表的信息的頻率表,以如在圖3所示的可變長度編碼單元23中的相同的方式,生成霍夫曼表,并將其提供給逆轉(zhuǎn)換表生成單元54。
從組成有關(guān)霍夫曼表的信息的頻率表所生成的霍夫曼表和在可變長度編碼單元23中用于可變長度編碼的霍夫曼表是相同的,并在下文中被指作真霍夫曼表。用于獲得真霍夫曼表的組成有關(guān)霍夫曼表的信息的頻率表將在下文中被指作真頻率表。
然后,可變長度解碼單元52依據(jù)真霍夫曼表,可變長度解碼被考慮的幀的嵌入編碼的數(shù)據(jù),并將所得的解碼的像素值即嵌入解碼的像素值提供給霍夫曼表生成單元53。
霍夫曼表生成單元53生成用于可變長度編碼從可變長度解碼單元52提供的被考慮的幀的嵌入解碼的像素值的霍夫曼表,并向逆轉(zhuǎn)換表生成單元54提供生成霍夫曼表的處理過程中所生成的霍夫曼表和頻率表。
霍夫曼表生成單元53所生成的霍夫曼表被用于可變長度編碼嵌入解碼的像素值(通過依據(jù)真霍夫曼表可變長度解碼嵌入編碼的數(shù)據(jù)而獲得的),基本上并不能正確地解碼編碼的數(shù)據(jù)。因此,從嵌入解碼的像素值所獲得的霍夫曼表將在下文中相對于真霍夫曼表被指作假霍夫曼表。用于獲得假霍夫曼表的頻率表在下文中相對于真頻率表被指作假頻率表。
逆轉(zhuǎn)換表生成單元54基于從可變長度解碼單元52所提供的真霍夫曼表和組成從多路分解器51提供的有關(guān)霍夫曼表的信息的真頻率表以及從霍夫曼表生成單元53提供的假霍夫曼表和假頻率表,生成用于將嵌入編碼的數(shù)據(jù)轉(zhuǎn)換為原始編碼的數(shù)據(jù)的逆轉(zhuǎn)換表。即,逆轉(zhuǎn)換表生成單元54生成與圖2(或圖13)中所示的轉(zhuǎn)換表生成單元24所生成的轉(zhuǎn)換表相同的逆轉(zhuǎn)換表。該逆轉(zhuǎn)換表被提供給編碼規(guī)則恢復(fù)單元55。
編碼規(guī)則恢復(fù)單元55依據(jù)從逆轉(zhuǎn)換表生成單元54提供的逆轉(zhuǎn)換表,將從多路分解器51提供的嵌入編碼的數(shù)據(jù)恢復(fù)(解碼)為依據(jù)組成編碼規(guī)則的真霍夫曼表所編碼的編碼的數(shù)據(jù)。另外,編碼規(guī)則恢復(fù)單元55基于嵌入編碼的數(shù)據(jù)和恢復(fù)的編碼的數(shù)據(jù)之間的關(guān)聯(lián)即逆轉(zhuǎn)換表,解碼嵌入在嵌入編碼的數(shù)據(jù)中的附加信息。編碼規(guī)則恢復(fù)單元55向可變長度解碼單元56輸出恢復(fù)的編碼的數(shù)據(jù)并也輸出作為解碼的附加信息的已被解碼的附加信息。
可變長度解碼單元56從多路分解器51提供的有關(guān)霍夫曼表的信息生成真霍夫曼表,并基于真霍夫曼表可變長度解碼從編碼規(guī)則恢復(fù)單元55提供的編碼的數(shù)據(jù),并輸出所得的解碼的像素值。
圖15示出了圖14中所示的可變長度解碼單元52的結(jié)構(gòu)的舉例。
從多路分解器51輸出的嵌入編碼的數(shù)據(jù)被提供給解碼單元63,從多路分解器51輸出的組成有關(guān)霍夫曼表的信息的頻率表被提供給霍夫曼樹生成單元61。
霍夫曼樹生成單元61與圖3所示的霍夫曼樹生成單元32相似地,根據(jù)被考慮的幀有關(guān)的頻率表生成霍夫曼樹,并將其提供給霍夫曼表生成單元62。
霍夫曼表生成單元62與圖3所示的霍夫曼表生成單元33相似地,基于從霍夫曼樹生成單元61提供的霍夫曼樹,生成霍夫曼表,并將其提供給解碼單元63。
解碼單元63依據(jù)從霍夫曼表生成單元62提供的霍夫曼表,將提供給它的嵌入編碼的數(shù)據(jù)解碼為像素值(嵌入解碼的像素值),并輸出結(jié)果。
圖14中所示的可變長度解碼單元56與圖15中所示的可變長度解碼單元52具有相同的結(jié)構(gòu)。
圖16示出了圖14中所示的霍夫曼表生成單元53的結(jié)構(gòu)的舉例。
在霍夫曼表生成單元53中,從可變長度解碼單元52輸出的嵌入解碼的像素值被提供給頻率表生成單元71。頻率表生成單元71、霍夫曼樹生成單元72以及霍夫曼表生成單元73分別執(zhí)行如圖3中所示的頻率表生成單元31、霍夫曼樹生成單元32以及霍夫曼表生成單元33相同的處理。
因此,頻率表生成單元71生成假頻率表,即用于被考慮的幀的嵌入解碼的像素值的頻率表(而不是用于原始像素值的頻率表),并將其提供給逆轉(zhuǎn)換表生成單元54(圖14)?;舴蚵砩蓡卧?3生成假霍夫曼表,即用于要被考慮的幀的嵌入解碼的像素值轉(zhuǎn)換為具有與其發(fā)生頻率一致的碼長的碼(不是用于原始的像素值的霍夫曼表),并將其提供給逆轉(zhuǎn)換表生成單元54。
圖17示出了圖14中所示的逆轉(zhuǎn)換表生成單元54的結(jié)構(gòu)的舉例。
如上所述,對于逆轉(zhuǎn)換表生成單元54,提供真霍夫曼表、真頻率表、假霍夫曼表、假頻率表?;谶@些表,逆轉(zhuǎn)換表生成單元54依據(jù)真霍夫曼表識別嵌入編碼的數(shù)據(jù)和編碼的數(shù)據(jù)之間的關(guān)聯(lián),并生成定義關(guān)聯(lián)的逆轉(zhuǎn)換表,如參考圖6至圖9所述的。
向碼關(guān)聯(lián)單元82提供真霍夫曼表和假霍夫曼表,同時(shí)向比較單元81提供真頻率表和假頻率表。
比較單元81比較真頻率表和假頻率表以檢測對于每個(gè)碼長在真頻率表和假頻率表中相同發(fā)生頻率的像素值。另外,比較單元81生成像素值關(guān)聯(lián)表,在該表中,在真頻率表和假頻率表中有相同發(fā)生頻率的像素值彼此相關(guān),并將其提供給碼關(guān)聯(lián)單元82。
碼關(guān)聯(lián)單元82對于從比較單元81提供的像素值關(guān)聯(lián)表中彼此相關(guān)的像素值,搜索真霍夫曼表和假霍夫曼表,并且分別使與像素值關(guān)聯(lián)的各個(gè)碼彼此相關(guān)聯(lián),從而生成逆轉(zhuǎn)換表,該逆轉(zhuǎn)換表被提供給編碼規(guī)則恢復(fù)單元55。
現(xiàn)在將參考圖18中的流程圖描述圖14中所示的解碼器12所執(zhí)行的解碼處理過程。
多路分解器51將提供給它的數(shù)據(jù)多路多路分解為嵌入編碼的數(shù)據(jù)和有關(guān)霍夫曼表的信息,將對于每幀的嵌入編碼的數(shù)據(jù)提供給可變長度解碼單元52和編碼規(guī)則恢復(fù)單元55,同時(shí)將有關(guān)霍夫曼表的信息提供給可變長度解碼單元52、逆轉(zhuǎn)換表生成單元54以及可變長度解碼單元56。
在步驟S31中,可變長度解碼單元52順序考慮從多路分解器51輸出的嵌入編碼的數(shù)據(jù)的每一幀和有關(guān)霍夫曼表的信息,并可變長度解碼被考慮的幀的嵌入編碼的數(shù)據(jù)。
更具體地講,可變長度解碼單元52根據(jù)組成有關(guān)被考慮的幀的霍夫曼表的信息生成霍夫曼表(真霍夫曼表),并將其提供給逆轉(zhuǎn)換表生成單元54。另外,可變長度解碼單元52依據(jù)真霍夫曼表,可變長度解碼被考慮的幀的嵌入編碼的數(shù)據(jù),并將所得的嵌入解碼的像素值提供給霍夫曼表生成單元53。
然后,處理進(jìn)行至步驟S32,在步驟S32中,霍夫曼表生成單元53從可變長度解碼單元52提供的被考慮的幀的嵌入解碼的像素值生成頻率表(假頻率表),并從假頻率表生成假霍夫曼表。該假頻率表和假霍夫曼表被提供給逆轉(zhuǎn)換表生成單元54。
在步驟S33中,逆轉(zhuǎn)換表生成單元54基于真霍夫曼表、組成有關(guān)霍夫曼表的信息的真頻率表、假霍夫曼表和假頻率表,如上參考圖17所述的生成逆轉(zhuǎn)換表,并將其提供給編碼規(guī)則恢復(fù)單元55。
在步驟S34中,編碼規(guī)則恢復(fù)單元55通過參考從逆轉(zhuǎn)換表生成單元54提供的逆轉(zhuǎn)換表中的每個(gè)碼長的嵌入編碼的數(shù)據(jù)和編碼的數(shù)據(jù)之間的關(guān)聯(lián),解碼嵌入在嵌入編碼的數(shù)據(jù)中的附加信息,并輸出所得的解碼的附加信息。
另外,在步驟S35中,編碼規(guī)則恢復(fù)單元55通過參考逆轉(zhuǎn)換表,將從多路分解器51提供的嵌入編碼的數(shù)據(jù)轉(zhuǎn)換為編碼的數(shù)據(jù)并將其提供給可變長度解碼單元56。
可變長度解碼單元56從多路分解器51提供的有關(guān)霍夫曼表的信息生成真霍夫曼表,并基于真霍夫曼表可變長度解碼從編碼規(guī)則恢復(fù)單元55提供的編碼的數(shù)據(jù),并輸出所得的解碼的像素值。
然后,處理進(jìn)行至步驟S37,在該步驟中,確定是否已經(jīng)從多路分解器51輸出新一幀的嵌入編碼的數(shù)據(jù)和有關(guān)霍夫曼表的信息。如果確定它們已經(jīng)隨下一個(gè)要被考慮的幀被輸出,處理返回步驟S31,重復(fù)相同的處理。
如果在步驟S37中確定沒有從多路分解器51輸出新一幀的嵌入編碼的數(shù)據(jù)和有關(guān)霍夫曼表的信息,則退出解碼程序。
如上所述,霍夫曼表本身可被用作有關(guān)霍夫曼表的信息而不是頻率表。在那種情況下,組成有關(guān)霍夫曼表的信息的霍夫曼表必須被這樣生成即,通過參考霍夫曼表,分配相同碼長的碼(編碼的數(shù)據(jù))的像素值的發(fā)生頻率可被識別彼此是較高還是較低(依據(jù)能夠這樣的識別的規(guī)則)。
另外,盡管在上述舉例中基于幀生成霍夫曼表,可替換地,也可基于字段或基于兩個(gè)或多個(gè)幀生成霍夫曼表。
另外,可以例如使用預(yù)定圖像數(shù)據(jù)預(yù)先生成霍夫曼表,于是嵌入壓縮編碼器11和解碼器12依據(jù)預(yù)先生成的霍夫曼表執(zhí)行處理。在這種情況下,然而,如果從要被處理的圖像數(shù)據(jù)生成的霍夫曼表與從預(yù)定的圖像數(shù)據(jù)生成的霍夫曼表不一致,則解碼器12將不能將嵌入編碼的數(shù)據(jù)恢復(fù)為編碼的數(shù)據(jù)。因此,要被嵌入的附加信息必須被限于這樣的圖像數(shù)據(jù),即從中可以獲得與從預(yù)定的圖像數(shù)據(jù)所生成的相同的霍夫曼表。
圖19示出了圖1中示出的嵌入壓縮編碼器11的結(jié)構(gòu)的另一個(gè)舉例。
要被編碼的圖像數(shù)據(jù)被提供給編碼單元91。編碼單元91依據(jù)預(yù)定的編碼規(guī)則編碼該圖像數(shù)據(jù),并向嵌入單元92輸出所得的編碼的數(shù)據(jù)。
附加信息被提供給嵌入單元92。嵌入單元92基于附加信息處理從編碼單元91提供的編碼的數(shù)據(jù),以獲得依據(jù)破壞的編碼規(guī)則編碼的編碼的數(shù)據(jù),從而將附加信息嵌入在編碼的數(shù)據(jù)中。
現(xiàn)在將參考圖20中的流程圖描述圖19中所示的嵌入壓縮編碼器11所執(zhí)行的處理過程(嵌入編碼處理)。
要被編碼的圖像數(shù)據(jù)例如基于幀被提供給編碼單元91。編碼單元91順序考慮每一幀,并在步驟S41中,依據(jù)預(yù)定的編碼規(guī)則編碼被考慮的幀的圖像數(shù)據(jù)。編碼單元91然后向嵌入單元92輸出所得的編碼的數(shù)據(jù)。
在步驟S42中,嵌入單元92基于附加信息修改或破壞編碼單元91中的編碼規(guī)則,從而嵌入附加信息。即,嵌入單元92基于附加信息處理從編碼單元91提供的編碼的數(shù)據(jù),以獲得依據(jù)破壞的編碼規(guī)則編碼的編碼的數(shù)據(jù),從而將附加信息嵌入在編碼的數(shù)據(jù)中。另外,該嵌入單元輸出通過將附加信息嵌入在編碼的數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù)。然后,處理進(jìn)行至步驟S43。
在步驟S43中,編碼單元91確定是否存在要被編碼的下一幀。如果確定作為要被考慮的新一幀的下一幀存在,處理返回步驟S41,重復(fù)相同的處理。
如果在步驟S43中確定不存在要被編碼的下一幀,則退出嵌入編碼處理過程。
圖21示出了圖19中所示的編碼單元91的結(jié)構(gòu)的舉例。
圖21中所示的編碼單元91中,例如,如果組成圖像數(shù)據(jù)的像素值以RGB(紅、綠和藍(lán))表示,每個(gè)像素值在RGB彩色空間被矢量量化,表示重心(centroid)矢量的碼(下文中當(dāng)用到時(shí)被指作VQ碼)、相應(yīng)于該碼的重心矢量所表示的像素值相對于原始像素值的誤差(下文中當(dāng)用到時(shí)被指作VQ殘余)、以及用于矢量量化的碼本被輸出作為編碼的數(shù)據(jù)。
更具體地講,要被編碼的圖像數(shù)據(jù)被提供給幀存儲器101,幀存儲器101例如基于幀順序存儲提供給它的圖像數(shù)據(jù)。
碼本生成單元102順序考慮存儲在幀存儲器101中的圖像數(shù)據(jù)的每一幀,并從組成被考慮的每一幀的每個(gè)像素的像素值,例如通過被稱為LGB算法生成要被用于彩色空間內(nèi)的矢量量化的碼本。該碼本被提供給矢量量化單元103并被輸出作為編碼的數(shù)據(jù)(部分)。
矢量量化單元103從幀存儲器101讀取被考慮的幀,并順序考慮組成被考慮的幀的每個(gè)像素,例如以光柵掃描的順序。矢量量化單元103使用從碼本生成單元102提供的碼本,矢量量化被考慮的像素的像素值,并輸出所得的VQ碼和VQ殘余作為編碼的數(shù)據(jù)(部分)。
如圖22中所示,在如上所構(gòu)建的編碼單元91中,碼本生成單元102從組成被考慮的幀的每個(gè)像素的像素值,生成碼本,并將其提供給矢量量化單元103。矢量量化單元103使用從碼本生成單元102提供的碼本,矢量量化被考慮的像素的像素值。
即,矢量量化單元103從碼本檢測表示與被考慮的像素的像素值所表示的RGB空間上的點(diǎn)距離最短的點(diǎn)的重心矢量,并輸出表示該重心矢量的VQ碼。另外,矢量量化單元103計(jì)算VQ碼所表示的重心矢量和相應(yīng)于被考慮的像素的像素值所表示的RGB空間上的點(diǎn)的矢量之間的差異,并輸出該結(jié)果差異作為VQ殘余。
然后,編碼單元91輸出這樣獲得的對于被考慮的幀中的每個(gè)像素的碼本,VQ碼以及VQ殘余作為與被考慮的幀有關(guān)的編碼的數(shù)據(jù)。
圖23示出了在編碼單元91如圖21所示構(gòu)建的情況下,圖19中所示的嵌入單元92的結(jié)構(gòu)的舉例。
從編碼單元91輸出的被考慮的幀的VQ碼、VQ殘余以及碼本分別被提供并存儲在VQ碼存儲器111、VQ殘余存儲器112以及碼本存儲器113中。
分別存儲在VQ碼存儲器111以及碼本存儲器113中的VQ碼和碼本被從中讀取并提供給壓縮單元115。
行循環(huán)單元114順序考慮被考慮的幀內(nèi)的每一行,例如從上至下,并讀取存儲在VQ殘余存儲器112中的被考慮的行的VQ殘余。另外,將組成被考慮的行的像素的數(shù)目表示為x,行循環(huán)單元114接收int[log2x]表示的比特?cái)?shù)的附加信息,以及如圖24所示,要被考慮的行的VQ殘余向右循環(huán)相應(yīng)于附加信息的比特?cái)?shù),從而將附加信息嵌入在被考慮的行中。即,對于被考慮的行上的像素,行循環(huán)主要改變了通過矢量量化所獲得的像素的VQ殘余,即用于矢量量化的編碼規(guī)則被改變或破壞了。通過破壞該編碼規(guī)則,嵌入附加信息。
然后,行循環(huán)單元114向壓縮單元115提供嵌入附加信息的被考慮的行的VQ殘余。
壓縮單元115基于空間關(guān)聯(lián)或熵的偏置將提供給它的VQ碼、VQ殘余以及碼本壓縮,并向多路復(fù)用器116輸出壓縮的結(jié)果。多路復(fù)用器116將壓縮的VQ碼、VQ殘余以及碼本多路復(fù)用在一起用于輸出。
現(xiàn)在將參考圖25的流程圖,描述在編碼單元91如圖21所示地構(gòu)建以及嵌入單元92如圖23所示地構(gòu)建的情況下,被圖19中所示的嵌入壓縮編碼器11所執(zhí)行的處理過程(嵌入編碼程序)。
在編碼單元91中(圖21)考慮存儲在幀存儲器101中的預(yù)定的幀,在步驟S51中,被考慮的幀中的每個(gè)像素如上所述被矢量量化編碼。通過矢量量化被考慮的幀所獲得的組成編碼的數(shù)據(jù)的VQ碼、VQ殘余以及碼本被提供給嵌入單元92。
在嵌入單元92中(圖23),從編碼單元91輸出的與被考慮的幀有關(guān)的VQ碼、VQ殘余以及碼本分別被提供并存儲在VQ碼存儲器111、VQ殘余存儲器112以及碼本存儲器113中。在步驟S52中,行循環(huán)單元114確定是否在VQ殘余存儲器112中存儲其VQ殘余的所有的被考慮的幀的行已經(jīng)被處理。
如果在步驟S52中確定在VQ殘余存儲器112中存儲其VQ殘余的所有的被考慮的幀的行沒有全部被處理,則行循環(huán)單元114選擇沒有被處理的被考慮的幀最上面一行作為要被考慮的新的行。然后,處理進(jìn)行至步驟S53。
在步驟S53中,行循環(huán)單元114要被考慮的行中的每個(gè)具有VQ殘余作為其像素值的像素向右循環(huán)相應(yīng)于附加信息的像素?cái)?shù),從而將附加信息嵌入在被考慮的行中,并向壓縮單元115提供該結(jié)果。然后,處理返回至步驟S52,重復(fù)相同的處理。
如果在步驟S52中確定在VQ殘余存儲器112中存儲其VQ殘余的所有的被考慮的幀的行已經(jīng)全部被處理,則處理進(jìn)行至步驟S54,在步驟S54中,壓縮單元115讀取存儲在VQ碼存儲器111中的被考慮幀的VQ碼,也讀取存儲在碼本存儲器113中的碼本。在步驟S54中,壓縮單元115壓縮VQ碼和碼本以及從行循環(huán)單元提供的嵌入附加信息的VQ殘余,并將結(jié)果提供給多路復(fù)用器116。
在步驟S55中,多路復(fù)用器116將壓縮單元115提供的壓縮的VQ碼、VQ殘余以及碼本多路復(fù)用在一起用于輸出。然后,處理進(jìn)行至步驟S56。
在步驟S56中,確定是否在編碼單元91中存在要被編碼的下一幀。如果確定下一幀存在,用要被編碼的下一幀作為要被考慮的新一幀,處理返回步驟S51,重復(fù)相同的處理。
如果在步驟S56中確定不存在要被編碼的下一幀,則退出嵌入編碼處理。
圖26示出了在嵌入壓縮編碼器11如圖19所示構(gòu)建時(shí),圖1的解碼器12的結(jié)構(gòu)的舉例。
從圖19所示的嵌入單元92輸出的嵌入編碼的數(shù)據(jù)被提供給編碼規(guī)則恢復(fù)單元121。
該編碼規(guī)則恢復(fù)單元121將嵌入編碼的數(shù)據(jù)恢復(fù)(解碼)為依據(jù)圖19所示的編碼單元91中的編碼規(guī)則編碼的編碼的數(shù)據(jù),從而解碼嵌入在嵌入編碼的數(shù)據(jù)中的附加信息。
即,該編碼規(guī)則恢復(fù)單元121基于從參數(shù)控制器124提供的參數(shù),處理嵌入編碼的數(shù)據(jù),從而獲得編碼的數(shù)據(jù)的候選(下文中當(dāng)用到時(shí)被指作暫定的編碼的數(shù)據(jù))。另外,該編碼規(guī)則恢復(fù)單元121基于用于將嵌入編碼的數(shù)據(jù)恢復(fù)為暫定的編碼的數(shù)據(jù)的操作,獲得嵌入在嵌入編碼的數(shù)據(jù)中的附加信息的候選(下文中被指作暫定的解碼的附加信息)。該暫定的編碼的數(shù)據(jù)被提供給解碼單元122和確定單元123,同時(shí)暫定的解碼的附加信息被提供給確定單元123。
解碼單元122基于圖19所示的編碼單元91中的編碼規(guī)則對從編碼規(guī)則恢復(fù)單元121提供的暫定的編碼的數(shù)據(jù)執(zhí)行解碼,從而獲得原始像素值的候選(在下文中當(dāng)用到時(shí)被指作暫定的解碼的像素值)。該暫定的解碼的像素值被提供給確定單元123。
確定單元123控制參數(shù)控制器以向編碼規(guī)則恢復(fù)單元121提供一個(gè)或多個(gè)參數(shù)值,并從分別根據(jù)一個(gè)或多個(gè)參數(shù)值所獲得的暫定的解碼的像素值確定一個(gè)正確的暫定的解碼的像素值(與原始的像素值一致)。另外,確定單元123從一個(gè)或多個(gè)從編碼規(guī)則恢復(fù)單元121提供的、分別與一個(gè)或多個(gè)暫定的解碼的像素值有關(guān)的暫定的解碼的附加信息中,選擇與正確的解碼的像素值有關(guān)的暫定的解碼的附加信息作為正確的解碼的附加信息,并分別輸出正確的解碼的像素值和暫定的解碼的附加信息作為像素值和附加信息的解碼的最終結(jié)果(解碼的像素值和解碼的附加信息)。
參數(shù)控制器124在確定單元123的控制下,向編碼規(guī)則恢復(fù)單元121提供用于處理嵌入編碼的數(shù)據(jù)的參數(shù)。
現(xiàn)在將參考圖27中的流程圖,描述圖26中所示的解碼器12所執(zhí)行的處理過程。
開始,在步驟S61中,確定單元123控制參數(shù)控制器124以設(shè)置提供給編碼規(guī)則恢復(fù)單元121的參數(shù)。因此,參數(shù)控制器124在確定單元123的控制下,向編碼規(guī)則恢復(fù)單元121提供參數(shù)。
在步驟S62中,編碼規(guī)則恢復(fù)單元121基于從參數(shù)控制器124提供的參數(shù),處理嵌入編碼的數(shù)據(jù),將其轉(zhuǎn)換為暫定的編碼的數(shù)據(jù),并向解碼單元122和確定單元123提供該暫定的編碼的數(shù)據(jù)。另外,編碼規(guī)則恢復(fù)單元121基于用于將嵌入編碼的數(shù)據(jù)恢復(fù)為暫定的編碼的數(shù)據(jù)的操作,即從參數(shù)控制器124提供的參數(shù),解碼嵌入在嵌入編碼的數(shù)據(jù)中的附加信息,并將結(jié)果提供給確定單元123作為暫定的解碼的附加信息。
在步驟S63中,解碼單元122基于圖19所示的編碼單元91中的編碼規(guī)則解碼從編碼規(guī)則恢復(fù)單元121提供的暫定的編碼的數(shù)據(jù),并向確定單元123提供所得的像素值作為暫定的解碼的像素值。
在步驟S64中,確定單元123確定從解碼單元122提供的暫定的解碼的像素值是否是正確的解碼結(jié)果(與原始的像素值一致)。如果確定不一致,處理返回至步驟S61。在這種情況下,在步驟S61中,確定單元123設(shè)置一個(gè)新的值作為從參數(shù)控制器124輸出的參數(shù),并重復(fù)相同的處理。
如果在步驟S64中確定暫定的解碼的像素值是一個(gè)正確的解碼結(jié)果,則處理進(jìn)行至步驟S65,在步驟S65中,確定單元123輸出該暫定的解碼的像素值作為組成原始的像素值的解碼所得的解碼的像素值。另外,確定單元123輸出與解碼的像素值有關(guān)的暫定的解碼的附加信息,作為組成嵌入的附加信息的解碼所得的解碼的附加信息。然后,處理進(jìn)行至步驟S66。
在步驟S66中,確定是否還有要被解碼的嵌入編碼的數(shù)據(jù)。如果確定有,處理返回步驟S61,對于要被解碼的嵌入編碼的數(shù)據(jù)重復(fù)相同的處理。
如果在步驟S66中確定不存在要被解碼的嵌入編碼的數(shù)據(jù),則退出解碼處理。
圖28示出了在圖19所示的嵌入單元92被如圖23所示的構(gòu)建時(shí),圖26中所示的編碼規(guī)則恢復(fù)單元121的結(jié)構(gòu)的舉例。
從圖23所示的多路復(fù)用器116輸出的數(shù)據(jù)被提供給多路分解器131。該多路分解器131將提供給它的數(shù)據(jù)多路多路分解為壓縮的VQ碼、VQ殘余、以及碼本,并將它們提供給擴(kuò)展單元132。該擴(kuò)展單元132擴(kuò)展從多路分解器131提供的壓縮的VQ碼、VQ殘余、以及碼本,并分別將擴(kuò)展的VQ碼、VQ殘余、以及碼本提供給VQ碼存儲器133、VQ殘余存儲器134以及碼本存儲器135。
VQ碼存儲器133、VQ殘余存儲器134以及碼本存儲器135基于幀分別存儲來自擴(kuò)展單元132的VQ碼、VQ殘余、以及碼本。
行循環(huán)單元136順序考慮存儲在VQ殘余存儲器134中的幀的每一行,例如從上至下,并讀取存儲在VQ殘余存儲器134中被考慮的行的VQ殘余。另外,將組成被考慮的行的像素?cái)?shù)表示為x,行循環(huán)單元136接收一個(gè)范圍從0至x的整數(shù),作為來自參數(shù)控制器124(圖26)的參數(shù),并要被考慮的行的VQ殘余向左循環(huán)相應(yīng)于參數(shù)的像素?cái)?shù)。行循環(huán)單元136在循環(huán)后輸出每一行的VQ殘余,與存儲在VQ存儲器133和存儲在碼本存儲器135中的碼本一起,作為暫定的編碼的數(shù)據(jù)。
另外,行循環(huán)單元136將從參數(shù)控制器124提供的參數(shù)值輸出作為暫定的解碼的附加信息。
圖29示出了當(dāng)圖19所示的編碼單元91如圖21構(gòu)建時(shí),圖26所示的解碼單元122的結(jié)構(gòu)的舉例。
解碼單元122通過基于組成從編碼規(guī)則恢復(fù)單元121提供的編碼的數(shù)據(jù)的幀的VQ碼、VQ殘余、以及碼本的矢量量化,解碼的像素值。
即,向逆矢量量化單元141提供VQ碼和碼本。逆矢量量化單元141從碼本檢測相應(yīng)于VQ碼的重心矢量,并向加法單元142提供該重心矢量。除了從逆矢量量化單元141提供的重心矢量,組成VQ殘余的差異矢量也提供給加法單元142。加法單元142將重心矢量和差異矢量相加。加法單元142輸出通過加法所獲得的具有如R、G和B值的矢量成分的像素值作為暫定的解碼的像素值。
圖30示出了當(dāng)編碼規(guī)則恢復(fù)單元121和解碼單元122分別如圖28和圖29構(gòu)建時(shí),圖26所示的確定單元123的結(jié)構(gòu)的舉例。
從編碼規(guī)則恢復(fù)單元121輸出的暫定的解碼的附加信息和從解碼單元122輸出的暫定的解碼的像素值被提供給存儲器151。存儲器151臨時(shí)存儲暫定的解碼的附加信息和暫定的解碼的像素值,并在真/假確定單元154的控制下讀取暫定的解碼的附加信息和暫定的解碼的像素值,并分別將它們輸出作為解碼的附加信息和解碼的像素值。
包括在從編碼規(guī)則恢復(fù)單元121輸出的暫定的編碼的數(shù)據(jù)中的碼本以及從解碼單元122輸出的暫定的解碼的像素值被提供給編碼單元152。編碼單元152與圖19所示的編碼單元91相似地編碼暫定的解碼的像素值。即,編碼單元152使用從編碼規(guī)則恢復(fù)單元121提供的碼本,矢量量化暫定的解碼的像素值,并向比較單元153提供所得的VQ碼和VQ殘余。通過矢量量化暫定的解碼的像素值所獲得的VQ碼和VQ殘余在下文中當(dāng)用到時(shí)要被分別指作暫定的VQ碼和暫定的VQ殘余。
除了從編碼單元152輸出的暫定的VQ碼和暫定的VQ殘余之外,還向比較單元153提供包括在從編碼規(guī)則恢復(fù)單元121輸出的暫定的編碼的數(shù)據(jù)中的VQ碼和VQ殘余。比較單元153將暫定的VQ碼和暫定的編碼的數(shù)據(jù)中的VQ碼進(jìn)行比較,并也將暫定的VQ殘余和暫定的編碼的數(shù)據(jù)中的VQ殘余進(jìn)行比較,并將比較的結(jié)果提供給真/假確定單元154。
真/假確定單元154控制參數(shù)控制器124以向編碼規(guī)則恢復(fù)單元121提供用于行循環(huán)的比特?cái)?shù)作為參數(shù)。另外,真/假確定單元154基于從比較單元153提供的暫定的VQ碼和暫定的編碼的數(shù)據(jù)中的VQ碼的比較結(jié)果,以及暫定的VQ殘余和暫定的編碼的數(shù)據(jù)中的VQ殘余的比較結(jié)果,確定暫定的解碼的像素值是否是一個(gè)正確的解碼值,并基于確定的結(jié)果控制從存儲器151的暫定的解碼的像素值和暫定的解碼的附加信息的讀取。
現(xiàn)在將參考圖31描述圖30所示的真/假確定單元154的如是否暫定的解碼的像素值是一個(gè)正確的解碼所得的確定原理。
由于編碼單元91(圖19)執(zhí)行RGB空間的矢量量化,用于矢量量化的重心矢量由三個(gè)成分組成,命名為R、B和G成分。將由R、B和G成分組成的重心矢量表示為(R,G,B),并假定碼本中的重心矢量的每個(gè)R、B和G成分為簡化描述被表示為10的倍數(shù),例如,分別帶有102、103和99的R、G和B成分的像素值(下文中當(dāng)用到時(shí)被表示為像素值(102,103,99))具有對于重心矢量(100,100,100)的最短的距離,因此被矢量量化為與重心矢量(100,100,100)相關(guān)的VQ碼。例如,讓與重心矢量(100,100,100)相關(guān)的VQ碼為0。
在這種情況下,從像素值(102,103,99)減去重心矢量(100,100,100)產(chǎn)生VQ殘余(2,3,-1)。因此,像素值(102,103,99)被編碼為VQ碼0和VQ殘余(2,3,-1)。
通過逆矢量量化組成編碼單元91所獲得的編碼的數(shù)據(jù)的VQ碼0和VQ殘余(2,3,-1),如圖31(A)所示,與VQ碼0有關(guān)的重心矢量(100,100,100)和VQ殘余(2,3,-1)被相加以產(chǎn)生像素值(102,103,99),并從而正確地解碼以獲得原始的像素值。
另外,通過再次矢量量化解碼的像素值(102,103,99),如圖31(A)所示,再次獲得VQ碼0和VQ殘余(2,3,-1)。
如上所述,通過解碼組成編碼的數(shù)據(jù)的VQ碼和VQ殘余以獲得正確的解碼結(jié)果,以及再編碼(這里是矢量量化)和解碼該結(jié)果,編碼獲得的VQ碼和VQ殘余分別與組成編碼的數(shù)據(jù)的VQ碼和VQ殘余一致。
組成編碼單元91中所獲得的編碼的數(shù)據(jù)的VQ碼0和VQ殘余(2,3,-1),當(dāng)通過對VQ殘余(2,3,-1)以上述描述的方式應(yīng)用行循環(huán)而嵌入附加信息時(shí),對于不同像素所獲得的VQ殘余值被分配作為VQ碼0和與VQ殘余(2,3,-1)有關(guān)的像素之間的VQ殘余。如果例如不同像素的VQ殘余值如圖31(B)所示為(10,11,12),通過將重心矢量(100,100,100)與VQ殘余(10,11,12)相加,VQ碼0和VQ殘余(10,11,12)被解碼為像素值(110,111,112),沒有正確地解碼為原始像素值(102,103,99)。
因此,盡管非正確解碼的像素值(110,111,112)被再次矢量量化,如圖31(B)所示,結(jié)果VQ碼和VQ殘余分別與組成編碼的數(shù)據(jù)的VQ碼和VQ殘余不一致。
更具體地講,在這種情況下,由于假定碼本中的重心矢量的每個(gè)R、B和G成分被表示為10的倍數(shù),對于像素值(110,111,112)具有最短的距離的重心矢量是(110,110,110)。因此,例如假定表示重心矢量是(110,110,110)的VQ碼是1,像素值(110,111,112)被矢量量化為VQ碼1和VQ殘余(0,1,2)(=(110,111,112)-(110,110,110))。在這種情況下,VQ碼和VQ殘余均與組成原始編碼的數(shù)據(jù)的VQ碼和VQ殘余(10,11,12)不一致。
如上所述,如果依據(jù)圖28所示的行循環(huán)單元136中的參數(shù)而用于循環(huán)的像素?cái)?shù)與附加信息不一致,即,如果暫定的編碼的數(shù)據(jù)與嵌入附加信息之前的編碼的數(shù)據(jù)不一致,通過再編碼從暫定的編碼的數(shù)據(jù)獲得的暫定的解碼的像素值而獲得的VQ碼和VQ殘余分別與組成暫定的編碼的數(shù)據(jù)的VQ碼和VQ殘余不一致,因此通過解碼暫定的編碼的數(shù)據(jù)而獲得的暫定的解碼的像素值可以被確定為非正確解碼的結(jié)果。
另一方面,如果依據(jù)圖28所示的行循環(huán)單元136中的參數(shù)而用于循環(huán)的像素?cái)?shù)與附加信息相一致,即,如果暫定的編碼的數(shù)據(jù)與嵌入附加信息之前的編碼的數(shù)據(jù)相一致,通過再編碼從暫定的編碼的數(shù)據(jù)獲得的暫定的解碼的像素值而獲得的VQ碼和VQ殘余分別與組成暫定的編碼的數(shù)據(jù)的VQ碼和VQ殘余相一致,因此通過解碼暫定的編碼的數(shù)據(jù)而獲得的暫定的解碼的像素值可以被確定為正確解碼的結(jié)果。
現(xiàn)在將參考圖32描述在編碼規(guī)則恢復(fù)單元121、解碼單元122以及確定單元123分別如圖28至圖30所示構(gòu)建的情況下,圖26中所示的解碼器12所執(zhí)行的解碼處理。
在解碼處理中,解碼恢復(fù)單元規(guī)則121的多路分解器131多路分解提供給它的數(shù)據(jù)為壓縮的VQ碼、VQ殘余以及碼本,并將它們提供給擴(kuò)展單元132。在步驟S71中,該擴(kuò)展單元132擴(kuò)展從多路分解器131提供的壓縮的VQ碼、VQ殘余、以及碼本,并分別將擴(kuò)展的VQ碼、VQ殘余、以及碼本提供給VQ碼存儲器133、VQ殘余存儲器134以及碼本存儲器135。
然后,在步驟S72中,確定單元123(圖30)的真/假確定單元154控制參數(shù)控制器124(圖26)以設(shè)置一個(gè)特定的參數(shù)值,并將此參數(shù)值提供給編碼規(guī)則恢復(fù)單元121。
每次在步驟S72中執(zhí)行對于每一幀的每一行的處理時(shí),真/假確定單元154例如順序設(shè)置范圍為0至一行中的像素?cái)?shù)的整數(shù)作為參數(shù)值。
當(dāng)編碼規(guī)則恢復(fù)單元121收到來自參數(shù)控制器124的參數(shù)時(shí),在步驟S73中,行循環(huán)單元136要被考慮的行的VQ殘余向左循環(huán)相應(yīng)于參數(shù)的像素?cái)?shù)。并將左循環(huán)的VQ殘余,與存儲在VQ存儲器133中的被考慮的行的VQ碼以及存儲在碼本存儲器135中的碼本一起,作為暫定的編碼的數(shù)據(jù)提供給解碼單元122。另外,行循環(huán)單元136向確定單元123提供用于被考慮的行的循環(huán)的像素?cái)?shù)作為暫定的解碼的附加信息。
在步驟S74中,解碼單元122基于組成編碼規(guī)則恢復(fù)單元121所提供的暫定的編碼的數(shù)據(jù)的VQ碼、VQ殘余、以及碼本,執(zhí)行逆矢量量化,因此解碼被考慮的行的像素值,并向確定單元123提供所得的暫定的解碼的像素值。
在確定單元123(圖30)中,從編碼規(guī)則恢復(fù)單元121輸出的暫定的解碼的附加信息以及從編碼規(guī)則恢復(fù)單元121輸出的暫定的解碼的像素值被存儲于存儲器151中。另外,在步驟S75中,在確定單元123中,編碼單元152矢量量化從解碼單元122提供的暫定的解碼的像素值,并向比較單元153提供所得的暫定VQ碼和暫定VQ殘余。
比較單元153對于被考慮的行的每個(gè)像素,將從編碼單元152提供的暫定的VQ碼和組成暫定的編碼的數(shù)據(jù)的VQ碼進(jìn)行比較,并也將從編碼單元152提供的暫定的VQ殘余和組成暫定的編碼的數(shù)據(jù)的VQ殘余進(jìn)行比較,并將比較的結(jié)果提供給真/假確定單元154。在步驟S76中,真/假確定單元154對于被考慮的行的每個(gè)像素,確定暫定的VQ碼是否與組成暫定的編碼的數(shù)據(jù)的VQ碼一致,以及暫定的VQ殘余是否與組成暫定的編碼的數(shù)據(jù)的VQ殘余一致。如果確定其中一個(gè)或兩者均對于一個(gè)或多個(gè)像素不一致,即,如果在前一步S72設(shè)置的參數(shù)值與附加信息不一致,處理返還至步驟S72,設(shè)置一個(gè)新的參數(shù),重復(fù)相同的處理。
如果在步驟S76中確定對于被考慮的行的每個(gè)像素,暫定的VQ碼與組成暫定的編碼的數(shù)據(jù)的VQ碼一致,以及暫定的VQ殘余與組成暫定的編碼的數(shù)據(jù)的VQ殘余一致,即。如果在前一步S72設(shè)置的參數(shù)值與附加信息一致,以及如果編碼的數(shù)據(jù)已被恢復(fù),原始附加信息已被正確解碼作為暫定的解碼的附加信息,處理進(jìn)行至步驟S77,在步驟S77中,確定單元154控制存儲器51分別輸出其存儲的對于被考慮的行的每個(gè)像素的暫定的解碼的像素值和暫定的解碼的附加信息,作為正確解碼的像素值和正確解碼的附加信息。然后,處理進(jìn)行至步驟S78。
在步驟S78中,確定是否存在下一個(gè)要被解碼的行。如果確定存在下一行,處理返回步驟S72,用要被處理的下一行作為要被考慮的新一行重復(fù)相同的處理。
如果在步驟S78中確定不存在要被解碼的下一行,則退出解碼處理。
圖32所示的解碼處理對于每一幀執(zhí)行。
如上所述,用于獲得編碼的數(shù)據(jù)的編碼規(guī)則基于附加信息被破壞(修改),以及依據(jù)破壞的編碼規(guī)則編碼的嵌入編碼的數(shù)據(jù)被以一種預(yù)定的方式處理,從而獲得暫定的編碼的數(shù)據(jù)。該暫定的編碼的數(shù)據(jù)被解碼,確定是否編碼解碼的結(jié)果產(chǎn)生與暫定的編碼的數(shù)據(jù)相同的數(shù)據(jù),于是在編碼規(guī)則破壞之前的編碼的數(shù)據(jù)被恢復(fù)(解碼)。因此,通過利用編碼規(guī)則的破壞和恢復(fù),可以嵌入并解碼的附加信息而不增加編碼的數(shù)據(jù)的總量。
本申請已經(jīng)在美國提出,專利申請?zhí)枮榈?9/636138號,一種基于例如圖像的相關(guān)性,用于在圖像中嵌入附加信息的方法。依據(jù)提出的方法,例如組成幀的行基于附加信息被交換,基于這樣的事實(shí)即原始幀中的相鄰的行之間彼此高度相關(guān),已經(jīng)基于附加信息被交換的幀的行被恢復(fù)至其原始的位置。根據(jù)情況,基于相關(guān)性的方法在嵌入附加信息的過程中并不總是成功的。即,簡單地,關(guān)于嵌入附加信息的幀的行,基于相關(guān)性的方法將行的相鄰的行與被考慮的行高度相關(guān)的行交換,直到所有的行被恢復(fù)為原始位置。然而,在一些圖像中,與被考慮的行最相關(guān)的行并不一定是被考慮的行的相鄰行。當(dāng)通過嵌入附加信息而交換這樣的行時(shí),行不能基于相關(guān)性被恢復(fù)至其原始位置,抑制了附加信息被嵌入。
為此,上述方法并不能解決這樣的解碼失敗。
在圖26所示的實(shí)施例中,解碼器12僅包括編碼規(guī)則恢復(fù)單元121和解碼單元122對的單個(gè)行,通過順序改變從參數(shù)控制器124輸出的參數(shù)而順序獲得與各個(gè)參數(shù)值有關(guān)的暫定的編碼的數(shù)據(jù);然而,例如如圖33所示,解碼器12可以包括編碼規(guī)則恢復(fù)單元1211至121M和解碼單元1221至122M的M行,分別對每個(gè)編碼規(guī)則恢復(fù)單元121m(m=1,2,…,M)提供不同的參數(shù)值,于是可以同時(shí)獲得分別與參數(shù)值有關(guān)的暫定的編碼的數(shù)據(jù)。
另外,盡管在上述舉例中圖19所示的編碼單元91執(zhí)行矢量量化,編碼單元91可以執(zhí)行例如預(yù)測編碼而不是矢量量化。在這種情況下,嵌入單元92被能夠通過處理與基于附加信息的預(yù)測編碼相關(guān)的預(yù)測殘余而嵌入編碼的數(shù)據(jù)。
另外,盡管在上述舉例中,通過基于附加信息循環(huán)每行的VQ殘余而嵌入附加信息,附加信息也可以通過例如循環(huán)表示VQ殘余的值的比特序列而被嵌入。
另外,盡管在上述舉例中,碼本被生成并包括在基于幀的編碼的數(shù)據(jù)中,碼本可以預(yù)先生成并存儲在每個(gè)嵌入壓縮編碼器11和解碼器12中。另外,碼本可以基于多個(gè)幀,或基于幀的預(yù)定字段生成。
上述處理過程可以以硬件或軟件方式實(shí)現(xiàn)。當(dāng)處理過程以軟件方式實(shí)現(xiàn)時(shí),在例如通用計(jì)算機(jī)中安裝組成軟件的程序。
圖34示出了安裝用于執(zhí)行上述處理過程的程序的計(jì)算機(jī)結(jié)構(gòu)的舉例。
程序可被預(yù)先存儲在計(jì)算機(jī)內(nèi)的記錄介質(zhì)中,如硬盤205或ROM203。
可替換地,程序可以被臨時(shí)或永久地存儲(記錄)在如軟盤、CD-ROM(光盤只讀存儲器)、MO(磁光)盤、DVD(數(shù)字多用光盤)、磁盤、或半導(dǎo)體存儲器的可拆卸存儲介質(zhì)211中。
如果沒有如上所述將程序安裝在計(jì)算機(jī)的可拆卸存儲介質(zhì)211中,該程序可以通過用于數(shù)字衛(wèi)星廣播的人造衛(wèi)星從下載站通過無線方式傳送至計(jì)算機(jī),或通過LAN(局域網(wǎng))或因特網(wǎng)通過有線鏈接傳送至計(jì)算機(jī),以使計(jì)算機(jī)接收通過通信單元208這樣傳送的程序,并然后將此程序安裝在內(nèi)部硬盤205中。
計(jì)算機(jī)包括CPU(中央處理單元)202。輸入/輸出接口210通過總線201連接到CPU202。通過輸入/輸出接口210響應(yīng)用戶在輸入單元207上的操作的命令輸入包括鍵盤、鼠標(biāo)、麥克風(fēng)等,CPU202依據(jù)命令,執(zhí)行存儲在ROM(只讀存儲器)203中的程序??商鎿Q地,CPU202將存儲在硬盤205中的程序、通過衛(wèi)星或網(wǎng)絡(luò)傳送通過通信單元208接收并存儲在硬盤205中的程序、或從安裝在驅(qū)動209中的可拆卸記錄介質(zhì)211讀取并安裝在硬盤205中的程序裝載到RAM(隨機(jī)訪問存儲器)204中用于執(zhí)行。CPU202依據(jù)上述流程圖執(zhí)行這樣的處理,或被上述方框圖所示的結(jié)構(gòu)執(zhí)行處理。CPU202如要求地,通過如輸入/輸出接口210,向包括LCD(液晶顯示器)、揚(yáng)聲器等的輸出單元206輸出處理的結(jié)果,通過通信單元208將其發(fā)送,將其記錄在硬盤205上等等。
在本說明書中,計(jì)算機(jī)上用于執(zhí)行各種處理的組成程序的處理步驟不一定以流程圖所示的順序被順序執(zhí)行,可以以并行或單獨(dú)執(zhí)行(如并行處理或基于對象處理)。
該程序可以通過單個(gè)計(jì)算機(jī)或使用多個(gè)計(jì)算機(jī)的分布式處理執(zhí)行。另外,該程序可以被傳送或在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行,盡管在實(shí)施例中圖像數(shù)據(jù)被編碼,要被編碼的數(shù)據(jù)并不限于圖像數(shù)據(jù),可以使用如音頻數(shù)據(jù)和計(jì)算機(jī)程序的各種數(shù)據(jù)。
工業(yè)應(yīng)用性依據(jù)本發(fā)明的第一數(shù)據(jù)處理裝置、第一數(shù)據(jù)處理方法以及第一存儲介質(zhì),第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理裝置、第二數(shù)據(jù)處理方法以及第二存儲介質(zhì),生成用于編碼第一數(shù)據(jù)的編碼表,以及,基于第二數(shù)據(jù)修改編碼表生成部件所生成的編碼表以生成修改的編碼表。然后,基于修改的編碼表編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理裝置、第五數(shù)據(jù)處理方法以及第五存儲介質(zhì),依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼規(guī)則,以及,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
因此,可以嵌入第二數(shù)據(jù)而不增加數(shù)據(jù)總量。
依據(jù)本發(fā)明的第三數(shù)據(jù)處理裝置、第三數(shù)據(jù)處理方法以及第三存儲介質(zhì),基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù)。另外,基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,以及基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù)。比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四數(shù)據(jù)處理裝置、第四數(shù)據(jù)處理方法以及第四存儲介質(zhì),依據(jù)輸入?yún)?shù)修改通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及,基于編碼表將其暫定的解碼以生成暫定的解碼的數(shù)據(jù)。另外,將暫定的解碼的數(shù)據(jù)再編碼以輸出再編碼的數(shù)據(jù)。通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),并且獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及存儲介質(zhì),解碼通過將第二數(shù)據(jù)嵌入在第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù)。另外,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
因此,可以正確地解碼第一和第二數(shù)據(jù)。
依據(jù)本發(fā)明的數(shù)據(jù)處理系統(tǒng),在編碼裝置中,依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼規(guī)則,以及依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。在解碼裝置中,解碼嵌入編碼的數(shù)據(jù)以獲得依據(jù)編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù)。然后,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。因此,可以嵌入第二數(shù)據(jù)而不增加通過編碼第一數(shù)據(jù)而獲得的編碼的數(shù)據(jù)的總量。另外,嵌入第二數(shù)據(jù)的數(shù)據(jù)可以被正確地解碼以獲得第一和第二數(shù)據(jù)。
權(quán)利要求
1.一種數(shù)據(jù)處理裝置,包括編碼部件,用于編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及嵌入部件,用于通過基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,而將第二數(shù)據(jù)嵌入從所述編碼部件輸出的編碼的數(shù)據(jù)中。
2.如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中所述編碼部件包括編碼表生成部件,用于統(tǒng)計(jì)地分析包括在第一數(shù)據(jù)中的數(shù)據(jù)值以生成用于將所述數(shù)據(jù)值編碼為編碼的數(shù)據(jù)的編碼表;以及編碼的數(shù)據(jù)輸出部件,用于通過基于所述編碼表生成部件所生成的編碼表編碼第一數(shù)據(jù),產(chǎn)生并輸出編碼的數(shù)據(jù)。
3,如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中所述嵌入部件包括轉(zhuǎn)換表生成部件,用于基于第二數(shù)據(jù),生成用于轉(zhuǎn)換所述編碼表生成部件所生成的編碼表中的編碼的數(shù)據(jù)的轉(zhuǎn)換表;以及嵌入編碼的數(shù)據(jù)生成部件,用于基于所述轉(zhuǎn)換表生成部件所生成的轉(zhuǎn)換表,轉(zhuǎn)換從所述編碼的數(shù)據(jù)輸出部件輸出的編碼的數(shù)據(jù),以產(chǎn)生嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
4.如權(quán)利要求3所述的數(shù)據(jù)處理裝置,其中所述編碼表生成部件包括頻率表生成部件,用于生成并輸出表示包括在第一數(shù)據(jù)中的每個(gè)數(shù)據(jù)值的頻率的頻率表;霍夫曼樹生成部件,用于基于從所述頻率表生成部件輸出的頻率表,生成并輸出霍夫曼樹;以及霍夫曼表生成部件,用于基于所述霍夫曼樹生成部件所生成的霍夫曼樹,生成關(guān)聯(lián)每個(gè)數(shù)據(jù)值和編碼的數(shù)據(jù)的霍夫曼表;并且,所述編碼的數(shù)據(jù)輸出部件通過基于所述霍夫曼表生成部件所生成的霍夫曼表編碼第一數(shù)據(jù),產(chǎn)生并輸出編碼的數(shù)據(jù)。
5.如權(quán)利要求4所述的數(shù)據(jù)處理裝置,其中所述轉(zhuǎn)換表生成部件包括模式數(shù)目檢測部件,用于檢測所述霍夫曼表生成部件所生成的霍夫曼表中每個(gè)碼長的編碼的數(shù)據(jù)的模式數(shù)目;以及信息總量檢測部件,用于基于所述模式數(shù)目檢測部件所檢測的模式數(shù)目,檢測可以嵌入霍夫曼表中每個(gè)碼長的編碼的數(shù)據(jù)中的信息總量;并且,所述轉(zhuǎn)換表生成部件生成并輸出轉(zhuǎn)換表,在轉(zhuǎn)換表中,已經(jīng)基于與信息總量檢測部件所檢測的信息總量一致的第二數(shù)據(jù)的一部分而被修改的霍夫曼表中的每個(gè)碼長的編碼的數(shù)據(jù),與修改之前的每個(gè)碼長的編碼的數(shù)據(jù)互相關(guān)聯(lián)。
6.如權(quán)利要求5所述的數(shù)據(jù)處理裝置,其中,所述嵌入編碼的數(shù)據(jù)生成部件包括碼長檢測部件,用于檢測從所述編碼的數(shù)據(jù)輸出部件輸出的編碼的數(shù)據(jù)中,被考慮的編碼的數(shù)據(jù)的碼長;并且,所述嵌入編碼的數(shù)據(jù)生成部件,基于與所述碼長檢測部件所檢測的碼長相關(guān)的轉(zhuǎn)換表,將被考慮的編碼的數(shù)據(jù)轉(zhuǎn)換為嵌入編碼的數(shù)據(jù)用于輸出。
7.如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中,所述編碼的數(shù)據(jù)輸出部件包括量化部件,用于輸出通過基于編碼表量化包括在第一數(shù)據(jù)中的數(shù)據(jù)值而產(chǎn)生的量化碼,并且,量化誤差表示量化碼和數(shù)據(jù)值之間的誤差。
8.如權(quán)利要求7所述的數(shù)據(jù)處理裝置,其中,所述嵌入部件通過基于第二數(shù)據(jù)修改量化誤差的一部分,而將第二數(shù)據(jù)嵌入從所述量化部件輸出的編碼的數(shù)據(jù)。
9.如權(quán)利要求8所述的數(shù)據(jù)處理裝置,其中,所述編碼表生成部件包括碼本生成部件,用于生成并輸出包括表示包括在第一數(shù)據(jù)中的數(shù)據(jù)值的代表性矢量的矢量量化碼的碼本;所述量化部件包括矢量量化部件,用于基于所述碼本生成部件所生成的碼本,矢量量化包括在第一數(shù)據(jù)中的每個(gè)數(shù)據(jù)值,以輸出矢量量化碼,以及用于檢測并輸出表示數(shù)據(jù)值和矢量量化碼所表示的代表性矢量之間的差異的矢量量化誤差;并且,所述嵌入部件通過基于第二數(shù)據(jù)修改矢量量化誤差的一部分,將第二數(shù)據(jù)嵌入從所述矢量量化部件輸出的編碼的數(shù)據(jù)中。
10.如權(quán)利要求8所述的數(shù)據(jù)處理裝置,其中,所述嵌入部件通過基于第二數(shù)據(jù)循環(huán)矢量量化誤差的一部分,將第二數(shù)據(jù)嵌入從所述矢量量化部件輸出的編碼的數(shù)據(jù)中。
11.一種數(shù)據(jù)處理裝置,包括編碼表生成部件,用于生成用于編碼第一數(shù)據(jù)的編碼表;修改的編碼表生成部件,用于基于第二數(shù)據(jù)修改由所述編碼表生成部件所生成的編碼表,以生成修改的編碼表;以及嵌入編碼的數(shù)據(jù)生成部件,用于基于修改的編碼表編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
12.如權(quán)利要求11所述的數(shù)據(jù)處理裝置,其中,所述編碼表生成部件,統(tǒng)計(jì)地分析包括在第一數(shù)據(jù)中的數(shù)據(jù)值,以生成用于將所述數(shù)據(jù)值編碼為編碼的數(shù)據(jù)的編碼表。
13.如權(quán)利要求12所述的數(shù)據(jù)處理裝置,其中所述修改的編碼表生成部件包括轉(zhuǎn)換表生成部件,用于基于第二數(shù)據(jù),生成用于轉(zhuǎn)換所述編碼表生成部件所生成的編碼表中的編碼的數(shù)據(jù)的轉(zhuǎn)換表,并且,所述修改的編碼表生成部件通過基于所述轉(zhuǎn)換表生成部件所生成的轉(zhuǎn)換表轉(zhuǎn)換編碼表的一部分而生成修改的編碼表。
14.如權(quán)利要求13所述的數(shù)據(jù)處理裝置,其中,所述編碼表生成部件包括頻率表生成部件,用于生成并輸出表示包括在第一數(shù)據(jù)中的每個(gè)數(shù)據(jù)值的頻率的頻率表;霍夫曼樹生成部件,用于基于從所述頻率表生成部件輸出的頻率表,生成并輸出霍夫曼樹;以及霍夫曼表生成部件,用于基于所述霍夫曼樹生成部件所生成的霍夫曼樹,生成關(guān)聯(lián)每個(gè)數(shù)據(jù)值和編碼的數(shù)據(jù)的霍夫曼表;并且,所述修改的編碼表生成部件通過轉(zhuǎn)換所述霍夫曼表生成部件所生成的霍夫曼表的一部分,而生成修改的霍夫曼表。
15.如權(quán)利要求14所述的數(shù)據(jù)處理裝置,其中,所述轉(zhuǎn)換表生成部件包括模式數(shù)目檢測部件,用于檢測所述霍夫曼表生成部件所生成的霍夫曼表中每個(gè)碼長的編碼的數(shù)據(jù)的模式數(shù)目;以及信息總量檢測部件,用于基于所述模式數(shù)目檢測部件所檢測的模式數(shù)目,檢測可以嵌入霍夫曼表中碼長的編碼的數(shù)據(jù)中的信息總量;并且,所述轉(zhuǎn)換表生成部件生成并輸出轉(zhuǎn)換表,在轉(zhuǎn)換表中,已經(jīng)基于與信息總量檢測部件所檢測的信息總量一致的第二數(shù)據(jù)的一部分而被修改的霍夫曼表中的每個(gè)碼長的編碼的數(shù)據(jù),與修改之前的每個(gè)碼長的編碼的數(shù)據(jù)互相關(guān)聯(lián)。
16.如權(quán)利要求15所述的數(shù)據(jù)處理裝置,其中,所述嵌入編碼的數(shù)據(jù)生成部件,基于所述修改的編碼表生成部件所生成的修改的霍夫曼表,將第一數(shù)據(jù)轉(zhuǎn)換為嵌入編碼的數(shù)據(jù)用于輸出。
17.一種數(shù)據(jù)處理裝置,包括暫定的解碼部件,用于基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù);暫定的編碼表生成部件,用于基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表;第一解碼的數(shù)據(jù)獲得部件,用于基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù);以及第二解碼的數(shù)據(jù)獲得部件,用于通過比較編碼表和暫定的編碼表獲得第二解碼的數(shù)據(jù)。
18.如權(quán)利要求17所述的數(shù)據(jù)處理裝置,其中,所述暫定的解碼部件包括霍夫曼樹生成部件,用于基于與嵌入編碼的數(shù)據(jù)一起輸入的頻率表,生成霍夫曼樹;以及霍夫曼表生成部件,用于基于所述霍夫曼樹生成部件所生成的霍夫曼樹,生成關(guān)聯(lián)第一數(shù)據(jù)中的數(shù)據(jù)值和編碼的數(shù)據(jù)的霍夫曼表;并且,所述暫定的解碼部件基于霍夫曼表,解碼嵌入編碼的數(shù)據(jù)以輸出嵌入解碼的數(shù)據(jù)。
19.如權(quán)利要求18所述的數(shù)據(jù)處理裝置,其中,所述暫定的編碼表生成部件包括另一頻率表生成部件,用于基于嵌入解碼的數(shù)據(jù),生成表示嵌入解碼的數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率的頻率表;另一霍夫曼樹生成部件,用于基于所述另一頻率表生成部件所生成的另一頻率表,生成另一霍夫曼樹;以及另一霍夫曼表生成部件,用于基于所述另一霍夫曼樹生成部件所生成的另一霍夫曼樹,生成關(guān)聯(lián)第一數(shù)據(jù)中的數(shù)據(jù)值和嵌入編碼的數(shù)據(jù)的霍夫曼表。
20.如權(quán)利要求19所述的數(shù)據(jù)處理裝置,還包括比較部件,用于比較頻率表和另一頻率表中的頻率,以生成彼此關(guān)聯(lián)的相同數(shù)據(jù)值的數(shù)據(jù)值關(guān)聯(lián)表;以及轉(zhuǎn)換表生成部件,用于基于霍夫曼表和另一霍夫曼表,生成關(guān)于分別由所述比較部件所生成的數(shù)據(jù)值關(guān)聯(lián)表彼此關(guān)聯(lián)的數(shù)據(jù)值有關(guān)的編碼的數(shù)據(jù)和嵌入編碼的數(shù)據(jù)的修改的表;其中,所述第二解碼的數(shù)據(jù)獲得部件,基于轉(zhuǎn)換表中編碼的數(shù)據(jù)和嵌入編碼的數(shù)據(jù)之間的關(guān)聯(lián),獲得第二解碼的數(shù)據(jù)。
21.如權(quán)利要求20所述的數(shù)據(jù)處理裝置,其中,所述第一解碼的數(shù)據(jù)獲得部件包括編碼的數(shù)據(jù)輸出部件,用于基于轉(zhuǎn)換表中編碼的數(shù)據(jù)和嵌入編碼的數(shù)據(jù)之間的關(guān)聯(lián),將嵌入編碼的數(shù)據(jù)轉(zhuǎn)換為編碼的數(shù)據(jù),以及用于輸出該編碼的數(shù)據(jù),并且,所述第一解碼的數(shù)據(jù)獲得部件,基于霍夫曼表解碼從所述編碼的數(shù)據(jù)輸出部件輸出的編碼的數(shù)據(jù),以獲得第一解碼的數(shù)據(jù)。
22.一種數(shù)據(jù)處理裝置,包括暫定的解碼部件,用于依據(jù)輸入?yún)?shù)修改通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表將其暫定地解碼以生成暫定的解碼的數(shù)據(jù);再編碼部件,用于將暫定的解碼的數(shù)據(jù)再次進(jìn)行編碼以輸出再編碼的數(shù)據(jù);以及解碼部件,用于通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),以及用于獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
23.如權(quán)利要求22所述的數(shù)據(jù)處理裝置,其中,所述暫定的解碼部件基于參數(shù),修改包括量化碼和量化誤差的編碼的數(shù)據(jù)的量化誤差,并基于編碼表暫定地解碼編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù)。
24.如權(quán)利要求23所述的數(shù)據(jù)處理裝置,其中,所述暫定的解碼部件基于參數(shù),循環(huán)包括矢量量化碼和矢量量化誤差的編碼的數(shù)據(jù)的矢量量化誤差的一部分,并基于碼本暫定地將其解碼,以輸出暫定的解碼的數(shù)據(jù)。
25.如權(quán)利要求24所述的數(shù)據(jù)處理裝置,其中,所述暫定的解碼部件包括逆矢量量化部件,用于基于碼本解碼矢量量化碼,以輸出逆矢量量化數(shù)據(jù);以及加法部件,用于將循環(huán)的矢量量化誤差與從所述逆矢量量化部件輸出的逆矢量量化數(shù)據(jù)相加,以獲得暫定的解碼的數(shù)據(jù)。
26.如權(quán)利要求24所述的數(shù)據(jù)處理裝置,其中,所述再編碼部件包括再矢量量化部件,用于基于碼本,執(zhí)行矢量量化以檢測表示最接近暫定的解碼的數(shù)據(jù)的代表性矢量的暫定的矢量量化碼,以及用于檢測表示暫定的解碼的數(shù)據(jù)和矢量量化碼所表示的代表性矢量之間的差異的暫定的矢量量化差異。
27.如權(quán)利要求26所述的數(shù)據(jù)處理裝置,其中所述解碼部件包括比較部件,用于比較矢量量化碼和暫定的矢量量化碼,以及用于比較矢量量化誤差和暫定的矢量量化誤差,并且,當(dāng)所述比較部件的比較結(jié)果一致時(shí),所述解碼部件輸出相應(yīng)于代表性矢量量化誤差被循環(huán)的移動量的參數(shù)的第二解碼的數(shù)據(jù),也輸出暫定的解碼的數(shù)據(jù)作為第一解碼的數(shù)據(jù),然而,當(dāng)比較結(jié)果不一致時(shí),所述解碼部件修改代表性矢量量化誤差被循環(huán)的移動量的參數(shù),并將其提供給所述暫定的解碼部件。
28.如權(quán)利要求22所述的數(shù)據(jù)處理裝置,包括多個(gè)所述暫定的解碼部件,對其分別輸入不同的參數(shù),其中,所述解碼部件依照嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)之間的比較結(jié)果,選擇多個(gè)所述暫定的解碼部件中的一個(gè),輸出從所選擇的一個(gè)所述暫定的解碼部件輸出的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),并也輸出相應(yīng)于輸入至所選擇的一個(gè)所述解碼部件的參數(shù)的第二解碼的數(shù)據(jù)。
29.一種數(shù)據(jù)處理裝置,包括編碼部件,用于依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及修改部件,用于基于第二數(shù)據(jù)修改編碼規(guī)則;其中所述編碼部件依據(jù)被所述修改部件修改了的編碼規(guī)則編碼第一數(shù)據(jù),因此生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
30.如權(quán)利要求29所述的數(shù)據(jù)處理裝置,其中,所述編碼部件依據(jù)一種編碼規(guī)則執(zhí)行可變長度編碼,在該編碼規(guī)則中,每個(gè)包括在第一數(shù)據(jù)中的數(shù)據(jù)值被分配一個(gè)具有基于該數(shù)據(jù)值的發(fā)生頻率的碼長的編碼的數(shù)據(jù)。
31.如權(quán)利要求30所述的數(shù)據(jù)處理裝置,其中,所述修改部件基于第二數(shù)據(jù),修改與分配相同長度的編碼的數(shù)據(jù)的數(shù)據(jù)值有關(guān)的編碼的數(shù)據(jù)。
32.如權(quán)利要求31所述的數(shù)據(jù)處理裝置,其中,所述修改部件基于第二數(shù)據(jù),修改編碼表中與分配相同長度的編碼的數(shù)據(jù)的數(shù)據(jù)值有關(guān)的編碼的數(shù)據(jù),其中,在所述編碼表中,關(guān)聯(lián)每個(gè)數(shù)據(jù)值和基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率而分配給該數(shù)據(jù)值的編碼的數(shù)據(jù),從而,修改編碼表以生成修改的表,并且,所述編碼部件通過依據(jù)修改的編碼表,編碼第一數(shù)據(jù)而生成嵌入編碼的數(shù)據(jù)。
33.如權(quán)利要求29所述的數(shù)據(jù)處理裝置,其中,所述修改部件基于第二數(shù)據(jù),處理通過量化第一數(shù)據(jù)的量化碼和量化誤差輸出,于是量化碼和量化誤差引起了不匹配,并且,所述編碼部件輸出處理的量化碼和量化誤差作為嵌入編碼的數(shù)據(jù)。
34.如權(quán)利要求29所述的數(shù)據(jù)處理裝置,其中,所述第一數(shù)據(jù)是圖像數(shù)據(jù)。
35.一種數(shù)據(jù)處理裝置,包括第一解碼部件,用于解碼通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù);以及第二解碼部件,用于解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
36.如權(quán)利要求35所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件解碼嵌入編碼的數(shù)據(jù),以獲得依據(jù)一種熵編碼規(guī)則可變長度編碼的編碼的數(shù)據(jù),其中在所述編碼規(guī)則中,基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率分配一定長度的編碼數(shù)據(jù)。
37.如權(quán)利要求36所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率和通過可變長度解碼嵌入編碼的數(shù)據(jù)而獲得的解碼的數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率,修改與第一數(shù)據(jù)中的被分配相同的長度的編碼的數(shù)據(jù)的每個(gè)數(shù)據(jù)值相關(guān)的編碼的數(shù)據(jù),從而將嵌入編碼的數(shù)據(jù)恢復(fù)為依據(jù)熵編碼規(guī)則可變長度編碼的編碼的數(shù)據(jù)。
38.如權(quán)利要求37所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件包括轉(zhuǎn)換表生成部件,用于基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率和通過可變長度解碼嵌入編碼的數(shù)據(jù)而獲得的解碼的數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率,生成用于將用于可變長度編碼第一數(shù)據(jù)的編碼表中編碼的數(shù)據(jù)轉(zhuǎn)換為編碼的數(shù)據(jù)。
39.如權(quán)利要求35所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件解碼嵌入編碼的數(shù)據(jù)解碼,以獲得暫定的編碼的數(shù)據(jù),所述第二解碼部件解碼暫定的編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù),所述數(shù)據(jù)處理部件還包括確定部件,用于確定暫定的解碼的數(shù)據(jù)是否正確。
40.如權(quán)利要求39所述的數(shù)據(jù)處理裝置,其中,所述確定部件通過依據(jù)熵編碼規(guī)則編碼暫定的解碼的數(shù)據(jù),來確定該暫定的解碼的數(shù)據(jù)是否正確。
41.如權(quán)利要求40所述的數(shù)據(jù)處理裝置,其中,所述確定部件通過比較通過依據(jù)熵編碼規(guī)則編碼暫定的解碼的數(shù)據(jù)而獲得的再編碼的數(shù)據(jù)和暫定的編碼的數(shù)據(jù),確定暫定的解碼的數(shù)據(jù)是否正確。
42.如權(quán)利要求39所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件解碼嵌入編碼的數(shù)據(jù),該嵌入編碼的數(shù)據(jù)是通過基于第二數(shù)據(jù)處理包括通過量化第一數(shù)據(jù)所獲得的量化碼和量化誤差的編碼的數(shù)據(jù)的量化誤差而獲得的,并且,通過處理該量化誤差而獲得暫定的編碼的數(shù)據(jù)。
43.如權(quán)利要求42所述的數(shù)據(jù)處理裝置,其中,所述確定部件通過比較組成暫定的編碼的數(shù)據(jù)的量化碼和量化誤差和再量化碼和再量化誤差,來確定組成暫定的編碼的數(shù)據(jù)的量化碼和量化誤差是否正確,所述再量化碼和再量化誤差是通過再量化通過解碼該量化碼和量化誤差所獲得的暫定的解碼的數(shù)據(jù)而獲得的。
44.如權(quán)利要求35所述的數(shù)據(jù)處理裝置,其中所述第一數(shù)據(jù)為圖像數(shù)據(jù)。
45.一種數(shù)據(jù)處理系統(tǒng),包括編碼部件,用于依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù);以及修改部件,用于基于第二數(shù)據(jù)修改編碼規(guī)則;其中,所述編碼部件依據(jù)被所述修改部件修改了的編碼規(guī)則編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù),所述數(shù)據(jù)處理系統(tǒng)還包括一個(gè)解碼裝置,該解碼裝置包括第一解碼部件,用于解碼嵌入編碼的數(shù)據(jù)以獲得依據(jù)編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù);以及第二解碼部件,用于解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
46.一種數(shù)據(jù)處理方法,包括步驟編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù),以及基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
47.一種數(shù)據(jù)處理方法,包括步驟生成用于編碼第一數(shù)據(jù)的編碼表,基于第二數(shù)據(jù)修改所生成的編碼表,以生成修改的編碼表,以及,基于修改的編碼表編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
48.一種數(shù)據(jù)處理方法,包括步驟基于一編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中而編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù),基于該暫定地解碼的數(shù)據(jù)生成暫定的編碼表,基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù),以獲得第一解碼的數(shù)據(jù),以及,比較編碼表和暫定地編碼表,以獲得第二解碼的數(shù)據(jù)。
49.一種數(shù)據(jù)處理方法,包括步驟依據(jù)一輸入的參數(shù)修改通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中而編碼的嵌入編碼的數(shù)據(jù)一部分,并基于編碼表暫定地解碼該部分,以輸出暫定地解碼的數(shù)據(jù),該暫定地解碼的數(shù)據(jù)被再編碼,以輸出再編碼的數(shù)據(jù),以及,通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)確定參數(shù),輸出通過基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),并且還獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
50.一種數(shù)據(jù)處理方法,包括步驟依據(jù)編碼規(guī)則編碼第一數(shù)據(jù)以輸出編碼的數(shù)據(jù),以及,基于第二數(shù)據(jù)修改編碼規(guī)則,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
51.一種數(shù)據(jù)處理方法,包括步驟解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù),以及,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
52.一種存儲程序的存儲介質(zhì),其中,第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù),并且,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
53.一種存儲程序的存儲介質(zhì),其中,生成用于編碼第一數(shù)據(jù)的編碼表,基于第二數(shù)據(jù)修改生成的編碼表,以生成修改的編碼表,并且,基于修改的編碼表編碼第一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
54.一種存儲程序的存儲介質(zhì),其中,基于一編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù),基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù),以及通過比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
55.一種存儲程序的存儲介質(zhì),其中,依據(jù)一輸入?yún)?shù)修改通過嵌入第二數(shù)據(jù)在第一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù)的一部分,以及基于編碼表暫定地解碼該部分,以生成暫定的解碼的數(shù)據(jù),將暫定的解碼的數(shù)據(jù)再編碼以輸出再編碼的數(shù)據(jù),以及,通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來確定參數(shù),輸出通過基于編碼表暫定解碼已經(jīng)基于該參數(shù)被部分修改過的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),并且獲得相應(yīng)于該參數(shù)的第二解碼的數(shù)據(jù)。
56.一種存儲程序的存儲介質(zhì),其中,依據(jù)編碼規(guī)則編碼第一數(shù)據(jù),以輸出編碼的數(shù)據(jù),基于第二數(shù)據(jù)修改編碼規(guī)則,以及,依據(jù)被修改了的編碼規(guī)則編碼第一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
57.一種存儲程序的存儲介質(zhì),其中,解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼的數(shù)據(jù)并獲得第二數(shù)據(jù),以及,解碼該編碼的數(shù)據(jù)以獲得第一數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)處理裝置。附加信息被嵌入通過編碼圖像數(shù)據(jù)所獲得的編碼的數(shù)據(jù)中,而不增加編碼的數(shù)據(jù)的總量,并且,嵌入附加信息的數(shù)據(jù)被正確地解碼為圖像數(shù)據(jù)和附加信息。嵌入壓縮編碼器11依據(jù)預(yù)定的編碼規(guī)則編碼圖像數(shù)據(jù),基于附加信息破壞編碼規(guī)則,從而嵌入附加信息。解碼器12將通過嵌入附加信息所獲得的嵌入編碼的數(shù)據(jù)恢復(fù)為依據(jù)編碼規(guī)則編碼的編碼的數(shù)據(jù),從而解碼附加信息,也將編碼的數(shù)據(jù)解碼為圖像數(shù)據(jù)。
文檔編號H03M7/30GK1397137SQ01804259
公開日2003年2月12日 申請日期2001年10月12日 優(yōu)先權(quán)日2000年10月19日
發(fā)明者近藤哲二郎, 安藤一隆, 太田浩二 申請人:索尼公司