專利名稱:數(shù)據(jù)處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理裝置,尤其涉及一種能夠?qū)⑿畔⑶度雸D像中而 不降低解碼后的圖像的質(zhì)量或增加數(shù)據(jù)總量的數(shù)據(jù)處理裝置。
背景技術(shù):
用于將信息嵌入數(shù)據(jù)中而不增加數(shù)據(jù)總量的方法是存在的,例如,將數(shù) 字音頻數(shù)據(jù)的最低比特或低級(jí)的兩個(gè)比特變?yōu)橐磺度氲男畔?。該方法利?低級(jí)比特對(duì)聲音質(zhì)量的影響并不是很明顯這樣的事實(shí),簡(jiǎn)單地用要被嵌入的 信息取代數(shù)字音頻數(shù)據(jù)的低級(jí)比特。因此,當(dāng)數(shù)字音頻數(shù)據(jù)被回放時(shí),含有 嵌入其中的信息的數(shù)字音頻數(shù)據(jù)并不恢復(fù)低級(jí)比特而被輸出。即,因?yàn)閷⒑?有嵌入信息的低級(jí)比特恢復(fù)為原始數(shù)字音頻數(shù)據(jù)是困難的,并且低級(jí)比特并 不太影響聲音的質(zhì)量,所以該含有嵌入信息的數(shù)字音頻數(shù)據(jù)被輸出。
依據(jù)上述方法,然而,與原始數(shù)據(jù)不同的數(shù)據(jù)被輸出。因此,當(dāng)該數(shù)據(jù) 是音頻數(shù)據(jù)時(shí),將對(duì)聲音質(zhì)量產(chǎn)生很大的影響,而當(dāng)該數(shù)據(jù)是視頻數(shù)據(jù)時(shí), 將對(duì)圖像質(zhì)量產(chǎn)生很大的影響。
發(fā)明內(nèi)容
本發(fā)明是針對(duì)上述情況而發(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ā)明的第 一存儲(chǔ)介質(zhì)存儲(chǔ)這樣一個(gè)程序第 一數(shù)據(jù)被編碼以輸出 編碼的數(shù)據(jù),以及,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的一部分,以便將第二數(shù) 據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第 一數(shù)據(jù)處理裝置、第 一數(shù)據(jù)處理方法以及第 一存儲(chǔ)介質(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ā)明的第二存儲(chǔ)介質(zhì)存儲(chǔ)這樣一個(gè)程序生成用于編碼第一數(shù)據(jù) 的編碼表,基于第二數(shù)據(jù)修改生成的編碼表以生成修改的編碼表,以及基于 修改的編碼表編碼第 一數(shù)據(jù),以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理裝置、第二數(shù)據(jù)處理方法以及第二存儲(chǔ)介質(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ā)明的第三存儲(chǔ)介質(zhì)存儲(chǔ)這樣一個(gè)程序基于編碼表暫定地解碼 通過將第二數(shù)據(jù)嵌入第 一數(shù)據(jù)中所編碼的嵌入編碼的數(shù)據(jù),以輸出暫定的解 碼的數(shù)據(jù),基于暫定的解碼的數(shù)據(jù)生成暫定的編碼表,基于編碼表和暫定的 編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解碼的數(shù)據(jù),以及通過比較編碼表和 暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第三數(shù)據(jù)處理裝置、第三數(shù)據(jù)處理方法以及第三存儲(chǔ)介質(zhì), 基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的 數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù)。另外,基于暫定的解碼的數(shù)據(jù)生成暫定的 編碼表,以及基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解 碼的數(shù)據(jù)。比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四數(shù)據(jù)處理裝置包括暫定的解碼部件,用于依據(jù)輸入 參數(shù)來修改通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)所編碼的嵌入編碼的數(shù)據(jù)的一部 分,以及基于編碼表暫定地解碼嵌入編碼的數(shù)據(jù)的一部分,以生成暫定的解 碼的數(shù)據(jù);再編碼部件,用于將暫定的解碼的數(shù)據(jù)再次進(jìn)行編碼以輸出再編 碼的數(shù)據(jù);以及解碼部件,用于通過比較嵌入編碼的數(shù)據(jù)和再編碼的數(shù)據(jù)來 確定輸入?yún)?shù),輸出基于編碼表暫定解碼已經(jīng)基于該輸入?yún)?shù)被部分修改過 的嵌入編碼的數(shù)據(jù)所獲得的暫定的解碼的數(shù)據(jù),作為第一解碼的數(shù)據(jù),以及 用于獲得相應(yīng)于該輸入?yún)?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ì)存儲(chǔ)這樣一個(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ù)處理方法以及第四存儲(chǔ)介質(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ù);以及^務(wù)改部件,用于基于第二數(shù)據(jù) 修改壓縮編碼規(guī)則;其中編碼部件依據(jù)被修改部件修改了的壓縮編碼規(guī)則壓 縮編碼第 一數(shù)據(jù),因此生成嵌入第二lt據(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ā)明的第五存儲(chǔ)介質(zhì)存儲(chǔ)這樣一種程序依據(jù)編碼規(guī)則編碼第一 數(shù)據(jù)以輸出編碼的數(shù)據(jù),基于第二數(shù)據(jù)修改編碼規(guī)則,依據(jù)被修改了的編碼 規(guī)則編碼第 一數(shù)據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理裝置、第五數(shù)據(jù)處理方法以及第五存儲(chǔ)介質(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ù)中而獲得的嵌入壓 縮的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則壓縮編碼的壓縮的數(shù)據(jù)并獲得第二數(shù)據(jù); 以及,第二解碼部件,用于解碼該壓縮的數(shù)據(jù)以獲得第一數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理方法是這樣一種方法解碼通過將第二數(shù)據(jù)
嵌入到通過壓縮編碼第 一數(shù)據(jù)所獲得的壓縮數(shù)據(jù)中而獲得的嵌入壓縮的數(shù) 據(jù),以獲得依據(jù)熵編碼規(guī)則壓縮編碼的壓縮的數(shù)據(jù)并荻得第二數(shù)據(jù),以及, 解碼該壓縮的數(shù)據(jù)以獲得第 一數(shù)據(jù)。
依據(jù)本發(fā)明的第六存儲(chǔ)介質(zhì)存儲(chǔ)這樣一種程序解碼通過將第二數(shù)據(jù)嵌 入第 一數(shù)據(jù)中所獲得的嵌入編碼的數(shù)據(jù),以獲得依據(jù)熵編碼規(guī)則編碼的編碼 的數(shù)據(jù)并獲得第二數(shù)據(jù),以及解碼該編碼的數(shù)據(jù)以獲得第 一數(shù)據(jù)。
依據(jù)本發(fā)明的第六數(shù)據(jù)處理裝置、數(shù)據(jù)處理方法以及存儲(chǔ)介質(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è)方框圖,示出了可變長(zhǎng)度編碼單元23的結(jié)構(gòu)的舉例。 圖4(A)-圖4(F)是可變長(zhǎng)度解碼的示意圖。
圖5示出像素值的出現(xiàn)頻率和分配給像素值的碼的碼長(zhǎng)之間的關(guān)聯(lián)的圖。
圖6示出了 Huffman(霍夫曼)表的舉例。
圖7(A)-圖7(C)示出了根據(jù)像素值的發(fā)生頻率而分配的碼以及碼的轉(zhuǎn)換。 圖8示出了嵌入編碼的數(shù)據(jù)的舉例。
圖9(A)-圖(9D)示出了一種用于將嵌入編碼的數(shù)據(jù)恢復(fù)為原始編碼的數(shù) 據(jù)的方法。
圖10是一個(gè)流程圖,示出了嵌入編碼處理過程。 圖ll是一個(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è)方框圖,示出了可變長(zhǎng)度解碼單元56和可變長(zhǎng)度解碼單元 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(A)-圖31(B)示出了確定單元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í)被指作附加信息)嵌入圖像中。嵌入壓縮編碼器ll 依據(jù)預(yù)定的編碼規(guī)則編碼該圖像(數(shù)字圖像數(shù)據(jù))用于壓縮,并基于附加信 息(數(shù)字?jǐn)?shù)據(jù))修改或破壞該編碼規(guī)則,從而嵌入附加信息以產(chǎn)生嵌入編碼 的數(shù)據(jù)用于輸出。從嵌入壓縮編碼器ll輸出的嵌入編碼的數(shù)據(jù)被記錄在例如 一個(gè)半導(dǎo)體存儲(chǔ)器、磁光碟、磁盤、光盤、磁帶或相變型磁盤的記錄介質(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的用于編碼的圖像的一部分也可被用作 附加信息。即,可以向嵌入壓縮編碼器ll提供圖像的一部分作為附加信息, 同時(shí)提供圖像的剩余部分作為要被編碼的數(shù)據(jù)。
圖2示出了圖1中所示的嵌入壓縮編碼器11的結(jié)構(gòu)的舉例。
幀存儲(chǔ)器21例如基于幀,存儲(chǔ)提供給嵌入壓縮編碼器11的圖像數(shù)據(jù)。 附加信息存儲(chǔ)器22存儲(chǔ)提供給嵌入壓縮編碼器11的附加信息。
可變長(zhǎng)度編碼單元23對(duì)存儲(chǔ)在幀存儲(chǔ)器21中的圖像數(shù)據(jù)應(yīng)用可變長(zhǎng)度 編碼或熵(entr叩y)編碼例如霍夫曼編碼,并向編碼規(guī)則破壞單元25提供所得 的編碼的數(shù)據(jù)。可變長(zhǎng)度編碼單元23以下面描述的方式在霍夫曼編碼的處理
過程中生成霍夫曼表并將該霍夫曼表提供給轉(zhuǎn)換表生成單元24。另外,可變
長(zhǎng)度編碼單元23向多路復(fù)用器(MUX) 26提供有關(guān)該霍夫曼表的信息,這 將在獲得對(duì)轉(zhuǎn)換表生成單元24輸出的霍夫曼表的過程中用到。
轉(zhuǎn)換表生成單元24基于存儲(chǔ)在附加信息存儲(chǔ)器22中的附加信息,生成 用于轉(zhuǎn)換從可變長(zhǎng)度編碼單元23提供的霍夫曼表中的碼的轉(zhuǎn)換表。即該霍夫 曼表定義了要被霍夫曼編碼的值(這里指圖像的像素值)和具有不同碼長(zhǎng)的 碼(編碼的數(shù)據(jù))之間的關(guān)聯(lián),以及轉(zhuǎn)換表生成單元24生成轉(zhuǎn)換表,用于將 霍夫曼表中的碼轉(zhuǎn)換為基于附加信息的碼。轉(zhuǎn)換表生成單元24所生成的轉(zhuǎn)換 表被提供給編碼規(guī)則破壞單元25。
編碼規(guī)則破壞單元25基于附加信息修改或破壞可變長(zhǎng)度編碼單元23中 的編碼規(guī)則,從而嵌入附加信息。即,編碼規(guī)則破壞單元25依據(jù)轉(zhuǎn)換表生成 單元24基于附加信息所生成的轉(zhuǎn)換表轉(zhuǎn)換(處理)從可變長(zhǎng)度編碼單元23 輸出的編碼的數(shù)據(jù)(碼),從而依據(jù)可變長(zhǎng)度編碼單元23的被破壞的編碼規(guī) 則產(chǎn)生編碼的數(shù)據(jù)。依據(jù)被破壞的編碼規(guī)則所編碼的編碼的數(shù)據(jù)從編碼規(guī)則 破壞單元25向多路復(fù)用器26提供,作為通過將附加信息嵌入原始編碼的數(shù) 據(jù)中所獲得的嵌入編碼的數(shù)據(jù)。
多路復(fù)用器26將來自編碼規(guī)則破壞單元25的嵌入編碼的數(shù)據(jù)和來自可 變長(zhǎng)度編碼單元23的有關(guān)霍夫曼表的信息多路復(fù)用,并輸出該多路復(fù)用后的 數(shù)據(jù)。如參考圖l所述的,該多路復(fù)用后的數(shù)據(jù)通過記錄介質(zhì)3或傳輸介質(zhì) 4提供給解碼裝置2。
圖3示出了圖2中的可變長(zhǎng)度編碼單元23的結(jié)構(gòu)的舉例。
存儲(chǔ)在圖2中的幀存儲(chǔ)器21中的圖像數(shù)據(jù)的每一 幀例如以時(shí)間順序被順 序考慮,被考慮的幀的圖像數(shù)據(jù)被讀出。被考慮的幀的圖像數(shù)據(jù)被提供給頻 率表生成單元31和編碼單元34。
該頻率表生成單元31對(duì)于向它提供的組成被考慮的幀的像素,生成頻率 表,表中每個(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è)具有一定碼長(zhǎng)的碼,像素值的發(fā)生頻率越高,分配的碼的碼長(zhǎng)越短, (像素值的發(fā)生頻率越低,分配的碼的碼長(zhǎng)越長(zhǎng))。該霍夫曼表被提供給編碼 單元34和圖2中的轉(zhuǎn)換表生成單元24。
光柵掃描的順序,并將被考慮的像素的像素值轉(zhuǎn)換為霍夫曼表生成單元33所 提供的霍夫曼表中相應(yīng)的碼,并將其輸出作為編碼的數(shù)據(jù)。
在如上所構(gòu)成的可變長(zhǎng)度編碼單元23中,頻率表生成單元31對(duì)于被考 慮的幀生成頻率表,并將其提供給霍夫曼樹生成單元32?;舴蚵鼧渖蓡卧?32基于頻率表生成單元31所提供的頻率表生成霍夫曼樹,并將其提供給霍 夫曼表生成單元33。該霍夫曼表生成單元33基于霍夫曼樹生成單元32所提 供的霍夫曼樹生成霍夫曼表,并將其提供給編碼單元34。編碼單元34將被 考慮的幀中的每個(gè)像素值轉(zhuǎn)換為霍夫曼表中像素值相應(yīng)的碼,并將其輸出作 為編碼的數(shù)據(jù)。
現(xiàn)在將參考圖4進(jìn)一步描述可變長(zhǎng)度編碼單元23中的可變長(zhǎng)度編碼處理 過程。
例如假定圖4(A)中所示的頻率表已經(jīng)在頻率表生成單元31中生成。圖 4(A)示出了像素值[O]、 [l]、 [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"
或"l"分配給所選擇的兩個(gè)像素值中具有最低的發(fā)生頻率的像素值,例如將
"O"分配給所選擇的兩個(gè)像素值中具有最低的發(fā)生頻率的像素值,將"l,,分配
給另一個(gè)。霍夫曼樹生成單元32將所選擇的兩個(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ā)生頻率。另外,對(duì)于選擇的兩個(gè)像素值[4]和[3],比特"0,,被分 配給具有較低的發(fā)生頻率的像素值[4],比特"l"被分配給具有較高的發(fā)生頻率 的像素值[3]。
在圖4(B)至圖4(E)中,表示發(fā)生頻率的數(shù)字示出在圓括號(hào)中。 如果所選擇的兩個(gè)像素值的發(fā)生頻率相同,可以將比特"r或"o"分配給
任何一個(gè)像素值。然而,比特"r,或"o"分配給哪個(gè)像素必須預(yù)定義,例如將
比特"o"分配給較小的像素值。
霍夫曼樹生成單元32重復(fù)相同的處理過程直到實(shí)現(xiàn)會(huì)聚為單個(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的像素值[l]和具有發(fā)生頻 率5的像素值[O]被選擇,于是像素值[1]和像素值
形成節(jié)點(diǎn)#3。另外,如 圖4(D)所示,節(jié)點(diǎn)#3的發(fā)生頻率被設(shè)置為9(4+5),以及比特"O"和"l"分別被 分配給像素值[l]和像素值[O]。
從圖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)斜的發(fā)生頻率被設(shè)置為15(6+9),以及比特"O"和'T,分別被分配給節(jié) 點(diǎn)#2和節(jié)點(diǎn)#3。
圖4(E)中所示的狀態(tài)中可知,節(jié)點(diǎn)已經(jīng)被會(huì)聚為單個(gè)節(jié)點(diǎn)#4,于是完成 霍夫曼樹。霍夫曼樹生成單元32向霍夫曼表生成單元33提供該霍夫曼樹。
霍夫曼表生成單元33通過從會(huì)聚節(jié)點(diǎn)向像素值方向跟蹤該霍夫曼樹,而 識(shí)別分配給每個(gè)像素值的碼。
更詳細(xì)地講,例如,圖4(E)中所示的霍夫曼樹被從節(jié)點(diǎn)弁4向像素值[O] 的方向跟蹤,分配給節(jié)點(diǎn)(或像素值)的比特序列被發(fā)現(xiàn)為"0,,—"0,,—"0"。 因此,霍夫曼表生成單元33識(shí)別分配給像素值
的碼為"000"。同樣,圖4(E) 中所示的霍夫曼樹被從節(jié)點(diǎn)糾向像素值[1]的方向跟蹤,分配給節(jié)點(diǎn)(或像素 值)的比特序列被發(fā)現(xiàn)為"0"—"0,,—"1"。因此,霍夫曼表生成單元33識(shí)別分 配給像素值[i ]的碼為"oo r 。
相似地,霍夫曼表生成單元33識(shí)別分配給每個(gè)像素值的碼,因此生成表 示像素值和碼之間的關(guān)聯(lián)的霍夫曼表。因此,從圖4(E)所示的霍夫曼樹生成 圖4(F)所示的霍夫曼表。
可變長(zhǎng)度編碼單元23可以可替換地以美國(guó)專利第5021782號(hào)所公布的方 式執(zhí)行可變長(zhǎng)度編碼。
在圖4(E)中所示的霍夫曼表中,碼"11"、 "10"、 "01"、 "001"以及"000" 被分別分配給具有5、 4、 3、 2以及1的發(fā)生頻率的像素值[O]、 [l]、 [2]、 [3] 以及[4]。因此,基本上較短碼長(zhǎng)的碼分配給較高的發(fā)生頻率的像素值。
在圖4(E)中所示的霍夫曼表中,盡管像素值[O]、 [l]、 [2]、 [3]以及[4〗具 有不同的發(fā)生頻率,兩個(gè)比特的碼被分配給具有較高發(fā)生頻率的像素值[O]、 [l]、 [2],而三個(gè)比特的碼被分配給具有相對(duì)較低的發(fā)生頻率的像素值[3]和[4]。
如上所述,在霍夫曼表中,具有相同碼長(zhǎng)的碼有時(shí)被分配給具有不同發(fā) 生頻率的像素值。像素值的發(fā)生頻率和分配給像素值的碼長(zhǎng)之間的關(guān)系一般 如圖5所示。
參考圖5,假定n比特的碼被分配給x像素值(x是不超過2n的整數(shù)), 分配給x像素值的n比特的碼的模式數(shù)目是X!(!表示階乘),基于上述生成霍 夫曼樹的規(guī)則,僅采用其中一個(gè)。
即使對(duì)于x像素值分配的n比特碼的模式被修改,碼的總量并不增加。 即,在霍夫曼表中,即使n比特碼取代另一個(gè)n比特碼被分配給像素值,分 配的碼長(zhǎng)仍然為n比特,因此碼的總量并不增加。
另外,即使分配給x像素值的n比特碼的模式被修改,碼分配的模式例 如基于x像素值的發(fā)生頻率可以被恢復(fù)。
從以上可知,即使霍夫曼表中分配給像素值的相同長(zhǎng)度的比特碼的模式 被修改,即,盡管可變長(zhǎng)度編碼的編碼規(guī)則被破壞,碼的總量并不增加,被 修改的分配模式可以恢復(fù)為原始的模式。
這意味著,通過基于一些信息修改分配給像素值的碼的模式,可以嵌入 信息而不增加數(shù)據(jù)的總量,同時(shí)能夠使嵌入的信息被解碼而沒有額外的開銷。
圖6示出了對(duì)于8比特(0至255 )表示的像素值所產(chǎn)生的霍夫曼表的舉 例。圖6中,除了像素值和分配給像素值的碼,也示出了每個(gè)像素值的發(fā)生 頻率。
參考圖6,例如,對(duì)于從[12]至[18]的7個(gè)^(象素值,9比特的碼^L分配給 這7個(gè)像素值的每一個(gè),因此對(duì)于這7個(gè)像素值存在9比特碼的7!種分配 模式。因此,通過修改對(duì)于這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"、
"iiooiioor,、 "iioiiooo"、 "oiiioioir,以及"oioooioio,,分別被分配給像素
值[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中對(duì)于其它像素 值的分配碼沒有修改。
同樣對(duì)于分配其它碼長(zhǎng)的碼的像素值,可以基于附加信息修改碼分配的 模式。圖8示出了基于附加信息,圖6所示的碼分配模式已經(jīng)修改的組成編 碼的數(shù)據(jù)的其它編碼的數(shù)據(jù)的舉例。圖8示出了嵌入編碼的數(shù)據(jù)和通過依據(jù) 圖6中所示的霍夫曼表,可變長(zhǎng)度解碼該嵌入編碼的數(shù)據(jù)所獲得的解碼的像 素值(通過依據(jù)在獲得編碼的數(shù)據(jù)過程中所使用的霍夫曼表,解碼嵌入編碼 的數(shù)據(jù)所獲得的像素值)。
參考圖8,例如對(duì)于從[12]至[18]的7個(gè)像素值,如果嵌入編碼的數(shù)據(jù)依
據(jù)圖6所示的霍夫曼表被解碼,獲得圖9所示的解碼的像素值。即,將通過 依據(jù)編碼時(shí)所用的霍夫曼表解碼嵌入編碼的數(shù)據(jù)而獲得的像素值指作嵌入解
碼的像素值,碼"1匪1001"、 "110111010"、 "110100001"、 "110111111"、
"oioooioio"、 "iioiiooo"以及"o 111 oi oi r分別被可變長(zhǎng)度解碼為嵌入解碼
的像素值[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)中的
不一致,更具體地講,它們分別與可變長(zhǎng)度編碼之前的像素值[15]、 [12]、 [18]、 [16]以及[17]—致。
然而,由于原始像素值[12]至[18]的發(fā)生頻率(可變長(zhǎng)度編碼之前)和通 過可變長(zhǎng)度解碼所獲得的像素值[12]至[18]的發(fā)生頻率應(yīng)當(dāng)彼此一致,如果可 變長(zhǎng)度編碼之前和可變長(zhǎng)度解碼之后的發(fā)生頻率有所不同的話,將是不正常 的(奇怪的)。
因此,通過將圖7(A)中所示的原始像素值的發(fā)生頻率與圖9(B)中所示的 嵌入解碼的像素值的發(fā)生頻率進(jìn)行比較,以及通過檢測(cè)匹配的發(fā)生頻率,可 以將已經(jīng)基于附加信息被修改的碼(可變長(zhǎng)度碼)的分配模式,恢復(fù)為原始 模式。即,嵌入編碼的數(shù)據(jù)可以被恢復(fù)為依據(jù)霍夫曼表編碼的編碼的數(shù)據(jù)。 另外,嵌入的附加信息可以基于當(dāng)嵌入編碼的數(shù)據(jù)被恢復(fù)為編碼的數(shù)據(jù)時(shí)所 修改的碼的分配模式被解碼,以及同樣可以通過可變長(zhǎng)度解碼所恢復(fù)的編碼 的數(shù)據(jù)而獲得原始的像素值。
更具體地講,通過將圖7(A)中所示的原始像素值的發(fā)生頻率與圖9(B)中 所示的嵌入解碼的像素值的發(fā)生頻率進(jìn)行比較,嵌入解碼的像素值[15]、 [13]、 [14]、 [12]、 [17]、 [18]以及[16]的發(fā)生頻率可以被分別檢測(cè)與原始像素值[12] 之[18]的發(fā)生頻率一致。
因此,從中可以獲得嵌入解碼的像素值[15]、 [13〗、[14]、 [12]、 [17]、 [18]
以及[i6]的嵌入編碼的數(shù)據(jù)"iiooiioor、 "iioiiioio"、 "iioioooor,、 "iioiimr、 "oioooioio"、 " iioiiooo,,以及"oiiioioir,可以被確定為在嵌
入附加信息之前,圖6中所示的霍夫曼表中分配給原始像素值[12]至[18]的碼
"iioiiim"、 "iioiiioio"、 "iioioooor 、 "iiooiioor,、 "iioiiooo"、 "oiiioioir以及"oioooioio"。
因此,通過轉(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) 所示,通過可變長(zhǎng)度解碼恢復(fù)的編碼的數(shù)據(jù),可以獲得原始的像素值。
圖2中所示的嵌入壓縮編碼器ll執(zhí)行如上所述的不增加數(shù)據(jù)總量的嵌入 編碼處理并能夠沒有額外開銷地進(jìn)行解碼。
現(xiàn)在將參考圖10所示的流程圖,進(jìn)一步描述圖2中所示的嵌入壓縮編碼
器11所執(zhí)行的嵌入編碼處理過程。
在步驟S1中,可變長(zhǎng)度編碼單元23對(duì)來自幀存儲(chǔ)器21的被考慮的幀內(nèi) 的每個(gè)像素的像素值進(jìn)行可變長(zhǎng)度編碼,并向編碼規(guī)則破壞單元25輸出結(jié)果 編碼的數(shù)據(jù)。另外,在步驟S1中的可變長(zhǎng)度編碼中,可變長(zhǎng)度編碼單元23 (圖3)向多路復(fù)用器26輸出頻率表生成單元31所生成的頻率表作為有關(guān) 霍夫曼表的信息,并也向轉(zhuǎn)換表生成單元24輸出霍夫曼表生成單元33所生 成的霍夫曼表。
然后,在步驟S2中,轉(zhuǎn)換表生成單元24基于從附加信息存儲(chǔ)器22所提 供的附加信息,修改從可變長(zhǎng)度編碼單元23提供的霍夫曼表中的具有相同碼 長(zhǎng)的碼的分配模式,并執(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)換表,將從可變長(zhǎng)度編碼單元23提供的編 碼的數(shù)據(jù)轉(zhuǎn)換為嵌入編碼的數(shù)據(jù),并將所得的嵌入編碼的數(shù)據(jù)提供給多路復(fù) 用器26。
在步驟S4中,多路復(fù)用器26將從編碼規(guī)則破壞單元25提供的被考慮的 幀的嵌入編碼的數(shù)據(jù)以及從可變長(zhǎng)度編碼單元23提供的有關(guān)霍夫曼表的信 息多路復(fù)用并輸出。該然后,處理進(jìn)行至步驟S5。
在步驟S5中,確定是否在幀存儲(chǔ)器21中存儲(chǔ)有被考慮的幀的下一幀。 如果在步驟S5中確定在幀存儲(chǔ)器21中存儲(chǔ)有被考慮的幀的下一幀,對(duì)于要 被考慮的新一幀,處理返回到步驟S1,重復(fù)相同的處理過程。
如果在步驟S5中確定在幀存儲(chǔ)器21中沒有存儲(chǔ)下一幀,則退出嵌入編 碼處理過程。
現(xiàn)在,將參考圖11中的流程圖,進(jìn)一步描述被圖2中的轉(zhuǎn)換表生成單元 24在圖10中所示的步驟S2中執(zhí)行的轉(zhuǎn)換表生成處理。
在轉(zhuǎn)換表生成處理過程中,開始在步驟SH中,轉(zhuǎn)換表生成單元24考慮 從可變長(zhǎng)度編碼單元23所提供的霍夫曼表中的碼的特定碼長(zhǎng),識(shí)別具有被考 慮的碼長(zhǎng)的碼的數(shù)目。即,轉(zhuǎn)換表生成單元24識(shí)別具有與被考慮的碼長(zhǎng)的相 同碼長(zhǎng)的碼的數(shù)目。
在步驟S12中,轉(zhuǎn)換表生成單元24基于在步驟Sll中所識(shí)別的具有被
考慮的碼長(zhǎng)的碼的數(shù)目,計(jì)算可以嵌入在具有被考慮的碼長(zhǎng)的碼中的附加信 息的比特?cái)?shù)。即,將具有被考慮的碼長(zhǎng)的碼的數(shù)目表示為X,轉(zhuǎn)換表生成單
元24通過計(jì)算y^nt[log2(x!)],可以獲得可被嵌入的附加信息的比特?cái)?shù)y。
然后,處理進(jìn)行至步驟S13,轉(zhuǎn)換表生成單元24從附加信息存儲(chǔ)單元22 讀取步驟S12中所計(jì)算的y比特?cái)?shù)的附加信息。然后,處理進(jìn)行至步驟S14。 在步驟S14中,轉(zhuǎn)換表生成單元24基于在步驟S13中從附加信息存儲(chǔ)器22 讀取的附加信息,生成對(duì)于具有被考慮的碼長(zhǎng)的碼的轉(zhuǎn)換表。即,轉(zhuǎn)換表生 成單元24基于y比特附加信息,修改分配給像素值的具有被考慮的碼長(zhǎng)的x 碼的分配模式,因此,生成對(duì)于具有被考慮的碼長(zhǎng)的碼的轉(zhuǎn)換表,該轉(zhuǎn)換表 中,修改前的碼與修改后的碼彼此相關(guān)。
然后,在步驟S15中,轉(zhuǎn)換表生成單元24確定是否還有附加信息存儲(chǔ)在 附加信息存儲(chǔ)器22中,如果確定沒有信息,轉(zhuǎn)換表生成單元24向編碼規(guī)則 破壞單元25 (圖2)輸出至今所生成的轉(zhuǎn)換表。然后,退出該轉(zhuǎn)換表生成處 理。
如果在步驟S15中確定還有附加信息存儲(chǔ)在附加信息存儲(chǔ)器22中,處理 進(jìn)行至步驟S16,轉(zhuǎn)換表生成單元24確定是否已經(jīng)對(duì)霍夫曼表中的每個(gè)碼長(zhǎng) 的碼生成轉(zhuǎn)換表。如果確定生成還沒有完成,處理返回步驟Sll。在這種情 況下,在步驟Sll中,沒有生成轉(zhuǎn)換表的碼長(zhǎng)中的一個(gè)被選擇作為要被考慮 的新的碼長(zhǎng),然后重復(fù)相同的處理。
如果在步驟S16中確定已經(jīng)對(duì)霍夫曼表中的每個(gè)碼長(zhǎng)的碼生成了轉(zhuǎn)換 表,則退出該轉(zhuǎn)換表生成處理。
下面將參考圖12進(jìn)一步描述被圖2所示的編碼規(guī)則破壞單元25在圖10 的步驟S3中所執(zhí)行的編碼的數(shù)據(jù)轉(zhuǎn)換處理。
如上所述,可變長(zhǎng)度編碼單元23按照光柵掃描的順序考慮被考慮的幀內(nèi) 的每個(gè)像素,并可變長(zhǎng)度編碼被考慮的像素的像素值,順序輸出所得的編碼 的數(shù)據(jù)。將可變長(zhǎng)度編碼單元23對(duì)于被考慮的像素輸出的編碼的數(shù)據(jù)稱為被 考慮的編碼的數(shù)據(jù),開始,在步驟S21中,編碼規(guī)則破壞單元25識(shí)別被考慮 的編碼的數(shù)據(jù)的碼長(zhǎng)。然后,處理進(jìn)行至步驟S22。
在步驟S22中,編碼規(guī)則破壞單元25依據(jù)與被考慮的編碼的數(shù)據(jù)的碼長(zhǎng) 相關(guān)的轉(zhuǎn)換表,轉(zhuǎn)換步驟S21中識(shí)別的被考慮的編碼的數(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)換可變長(zhǎng)度編碼單元 23中的可變長(zhǎng)度編碼所產(chǎn)生的編碼的數(shù)據(jù),產(chǎn)生嵌入附加信息的嵌入編碼的 數(shù)據(jù)??商鎿Q地,例如,可變長(zhǎng)度編碼單元23也可以生成其中像素值和碼的 關(guān)聯(lián)已經(jīng)被修改的霍夫曼表(下文中當(dāng)用到時(shí)被指作修改的霍夫曼表),并使 用修改的霍夫曼表同時(shí)執(zhí)行可變長(zhǎng)度編碼和嵌入附加信息。即,可變長(zhǎng)度編 碼單元23可以基于破壞的編碼規(guī)則執(zhí)行可變長(zhǎng)度編碼。
圖13示出了執(zhí)行這樣的嵌入編碼處理的嵌入壓縮編碼器11的結(jié)構(gòu)的舉 例。圖中相應(yīng)于圖2和圖3中所示的部分用相同的數(shù)字標(biāo)記,以及它們的描 述將在下文中省略。圖13中所示的嵌入壓縮編碼器11不包括編碼規(guī)則破壞 單元25;相反,編碼規(guī)則破壞單元41被包括在可變長(zhǎng)度編碼單元23中。除 此之外,嵌入壓縮編碼器11的結(jié)構(gòu)與圖2中所示的相同。
對(duì)于編碼規(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)霍夫曼表的信息,并 向可變長(zhǎng)度解碼單元52和編碼規(guī)則恢復(fù)單元55提供每幀的嵌入編碼的數(shù)據(jù), 同時(shí)向可變長(zhǎng)度解碼單元52、逆轉(zhuǎn)換表生成單元54以及可變長(zhǎng)度解碼單元 56提供有關(guān)霍夫曼表的信息。
可變長(zhǎng)度解碼單元52順序考慮來自多路分解器51的嵌入編碼的數(shù)據(jù)和
有關(guān)霍夫曼表的信息的每一幀,并基于組成有關(guān)被考慮的幀相關(guān)的霍夫曼表
的信息的頻率表,以如在圖3所示的可變長(zhǎng)度編碼單元23中的相同的方式,
生成霍夫曼表,并將其提供給逆轉(zhuǎn)換表生成單元54。
從組成有關(guān)霍夫曼表的信息的頻率表所生成的霍夫曼表和在可變長(zhǎng)度編
碼單元23中用于可變長(zhǎng)度編碼的霍夫曼表是相同的,并在下文中被指作真霍
夫曼表。用于獲得真霍夫曼表的組成有關(guān)霍夫曼表的信息的頻率表將在下文 中被指作真頻率表。
然后,可變長(zhǎng)度解碼單元52依椐真霍夫曼表,可變長(zhǎng)度解碼被考慮的幀 的嵌入編碼的數(shù)據(jù),并將所得的解碼的像素值即嵌入解碼的像素值提供給霍 夫曼表生成單元53。
霍夫曼表生成單元53生成用于可變長(zhǎng)度編碼從可變長(zhǎng)度解碼單元52提 供的被考慮的幀的嵌入解碼的像素值的霍夫曼表,并向逆轉(zhuǎn)換表生成單元54 提供生成霍夫曼表的處理過程中所生成的霍夫曼表和頻率表。
霍夫曼表生成單元53所生成的霍夫曼表被用于可變長(zhǎng)度編碼嵌入解碼 的像素值(通過依據(jù)真霍夫曼表可變長(zhǎng)度解碼嵌入編碼的數(shù)據(jù)而獲得的),基 本上并不能正確地解碼編碼的數(shù)據(jù)。因此,從嵌入解碼的像素值所獲得的霍 夫曼表將在下文中相對(duì)于真霍夫曼表被指作假霍夫曼表。用于獲得假霍夫曼 表的頻率表在下文中相對(duì)于真頻率表被指作假頻率表。
逆轉(zhuǎn)換表生成單元54基于從可變長(zhǎng)度解碼單元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向可變長(zhǎng)度解碼單元56輸出恢復(fù) 的編碼的數(shù)據(jù)并也輸出作為解碼的附加信息的已被解碼的附加信息。
可變長(zhǎng)度解碼單元56從多路分解器51提供的有關(guān)霍夫曼表的信息生成
真霍夫曼表,并基于真霍夫曼表可變長(zhǎng)度解碼從編碼規(guī)則恢復(fù)單元55提供的
編碼的數(shù)據(jù),并輸出所得的解碼的像素值。
圖15示出了圖14中所示的可變長(zhǎng)度解碼單元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中所示的可變長(zhǎng)度解碼單元56與圖15中所示的可變長(zhǎng)度解碼單元 52具有相同的結(jié)構(gòu)。
圖16示出了圖14中所示的霍夫曼表生成單元53的結(jié)構(gòu)的舉例。
在霍夫曼表生成單元53中,從可變長(zhǎng)度解碼單元52輸出的嵌入解碼的 像素值被提供給頻率表生成單元71。頻率表生成單元71、霍夫曼樹生成單元 72以及霍夫曼表生成單元73分別執(zhí)行如圖3中所示的頻率表生成單元31、 霍夫曼樹生成單元32以及霍夫曼表生成單元33相同的處理。
因此,頻率表生成單元71生成假頻率表,即用于被考慮的幀的嵌入解碼 的像素值的頻率表(而不是用于原始像素值的頻率表),并將其提供給逆轉(zhuǎn)換 表生成單元54 (圖14 )?;舴蚵砩蓡卧?3生成假霍夫曼表,即用于要被 考慮的幀的嵌入解碼的像素值轉(zhuǎn)換為具有與其發(fā)生頻率一致的碼長(zhǎng)的碼(不 是用于原始的像素值的霍夫曼表),并將其提供給逆轉(zhuǎn)換表生成單元54。
圖17示出了圖14中所示的逆轉(zhuǎn)換表生成單元54的結(jié)構(gòu)的舉例。
如上所述,對(duì)于逆轉(zhuǎn)換表生成單元54,提供真霍夫曼表、真頻率表、假 霍夫曼表、假頻率表?;谶@些表,逆轉(zhuǎn)換表生成單元54依據(jù)真霍夫曼表識(shí) 別嵌入編碼的數(shù)據(jù)和編碼的數(shù)據(jù)之間的關(guān)聯(lián),并生成定義關(guān)聯(lián)的逆轉(zhuǎn)換表, 如參考圖6至圖9所述的。
向碼關(guān)聯(lián)單元82提供真霍夫曼表和假霍夫曼表,同時(shí)向比較單元81提 供真頻率表和假頻率表。
和假頻率表中相同發(fā)生頻率的像素值。另外,比較單元81生成像素值關(guān)聯(lián)表,
在該表中,在真頻率表和假頻率表中有相同發(fā)生頻率的像素值彼此相關(guān),并
將其提供給碼關(guān)聯(lián)單元82。
碼關(guān)聯(lián)單元82對(duì)于從比較單元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)霍夫曼表的信息,將對(duì)于每幀的嵌入編碼的數(shù)據(jù)提供給可變長(zhǎng)度解碼單元 52和編碼規(guī)則恢復(fù)單元55,同時(shí)將有關(guān)霍夫曼表的信息提供給可變長(zhǎng)度解碼 單元52、逆轉(zhuǎn)換表生成單元54以及可變長(zhǎng)度解碼單元56。
在步驟S31中,可變長(zhǎng)度解碼單元52順序考慮從多路分解器51輸出的 嵌入編碼的數(shù)據(jù)的每一幀和有關(guān)霍夫曼表的信息,并可變長(zhǎng)度解碼被考慮的 幀的嵌入編碼的數(shù)據(jù)。
更具體地講,可變長(zhǎng)度解碼單元52根據(jù)組成有關(guān)被考慮的幀的霍夫曼表 的信息生成霍夫曼表(真霍夫曼表),并將其提供給逆轉(zhuǎn)換表生成單元54。 另外,可變長(zhǎng)度解碼單元52依據(jù)真霍夫曼表,可變長(zhǎng)度解碼被考慮的幀的嵌 入編碼的數(shù)據(jù),并將所得的嵌入解碼的像素值提供給霍夫曼表生成單元53。
然后,處理進(jìn)行至步驟S32,在步驟S32中,霍夫曼表生成單元53從可 變長(zhǎng)度解碼單元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è)碼長(zhǎng)的嵌入編碼的數(shù)據(jù)和編碼的數(shù)據(jù)之間的關(guān)聯(lián),
解碼嵌入在嵌入編碼的數(shù)據(jù)中的附加信息,并輸出所得的解碼的附加信息。
另外,在步驟S35中,編碼規(guī)則恢復(fù)單元55通過參考逆轉(zhuǎn)換表,將從多 路分解器51提供的嵌入編碼的數(shù)據(jù)轉(zhuǎn)換為編碼的數(shù)據(jù)并將其提供給可變長(zhǎng) 度解碼單元56。
可變長(zhǎng)度解碼單元56從多路分解器51提供的有關(guān)霍夫曼表的信息生成 真霍夫曼表,并基于真霍夫曼表可變長(zhǎng)度解碼從編碼規(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)霍夫曼表的信息的霍夫曼表必須被這樣生成即,通 過參考霍夫曼表,分配相同碼長(zhǎng)的碼(編碼的數(shù)據(jù))的像素值的發(fā)生頻率可 被識(shí)別彼此是較高還是較低(依據(jù)能夠這樣的識(shí)別的規(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)于該碼的重心 矢量所表示的像素值相對(duì)于原始像素值的誤差(下文中當(dāng)用到時(shí)被指作VQ 殘余)、以及用于矢量量化的碼本被輸出作為編碼的數(shù)據(jù)。
更具體地講,要被編碼的圖像數(shù)據(jù)被提供給幀存儲(chǔ)器101,幀存儲(chǔ)器101 例如基于幀順序存儲(chǔ)提供給它的圖像數(shù)據(jù)。
碼本生成單元102順序考慮存儲(chǔ)在幀存儲(chǔ)器101中的圖像數(shù)據(jù)的每一幀, 并從組成被考慮的每一幀的每個(gè)像素的像素值,例如通過被稱為L(zhǎng)GB算法生 成要被用于彩色空間內(nèi)的矢量量化的碼本。該碼本被提供給矢量量化單元103 并被輸出作為編碼的數(shù)據(jù)(部分)。
矢量量化單元103從幀存儲(chǔ)器101讀取被考慮的幀,并順序考慮組成被 考慮的幀的每個(gè)像素,例如以光柵掃描的順序。矢量量化單元103使用從碼 本生成單元102提供的碼本,矢量量化被考慮的像素的像素值,并輸出所得 的VQ碼和VQ殘余作為編碼的數(shù)據(jù)(部分)。
如圖22中所示,在如上所構(gòu)建的編碼單元91中,碼本生成單元102從 組成被考慮的幀的每個(gè)像素的像素值,生成碼本,并將其提供給矢量量化單 元103。矢量量化單元103使用從碼本生成單元102提供的碼本,矢量量化 被考慮的像素的像素值。
即,矢量量化單元103從碼本^r測(cè)表示與被考慮的像素的像素值所表示 的RGB空間上的點(diǎn)距離最短的點(diǎn)的重心矢量,并輸出表示該重心矢量的VQ 碼。另外,矢量量化單元103計(jì)算VQ碼所表示的重心矢量和相應(yīng)于被考慮 的像素的像素值所表示的RGB空間上的點(diǎn)的矢量之間的差異,并輸出該結(jié)果 差異作為VQ殘余。
然后,編碼單元91輸出這樣獲得的對(duì)于被考慮的幀中的每個(gè)像素的碼 本,VQ碼以及VQ殘余作為與被考慮的幀有關(guān)的編碼的數(shù)據(jù)。
圖23示出了在編碼單元91如圖21所示構(gòu)建的情況下,圖19中所示的 嵌入單元92的結(jié)構(gòu)的舉例。
從編碼單元91輸出的被考慮的幀的VQ碼、VQ殘余以及碼本分別被提 供并存儲(chǔ)在VQ碼存儲(chǔ)器111、 VQ殘余存儲(chǔ)器112以及碼本存儲(chǔ)器113中。
分別存儲(chǔ)在VQ碼存儲(chǔ)器111以及碼本存儲(chǔ)器113中的VQ碼和碼本被 從中讀取并提供給壓縮單元115。
行循環(huán)單元114順序考慮被考慮的幀內(nèi)的每一行,例如從上至下,并讀 取存儲(chǔ)在VQ殘余存儲(chǔ)器112中的被考慮的行的VQ殘余。另外,將組成被 考慮的行的像素的數(shù)目表示為x,行循環(huán)單元114接收int[log2X]表示的比特 數(shù)的附加信息,以及如圖24所示,要被考慮的行的VQ殘余向右循環(huán)相應(yīng)于 附加信息的比特?cái)?shù),從而將附加信息嵌入在被考慮的行中。即,對(duì)于被考慮 的行上的像素,行循環(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)考慮存儲(chǔ)在幀存儲(chǔ)器101中的預(yù)定的幀,在
步驟S51中,被考慮的幀中的每個(gè)像素如上所述被矢量量化編碼。通過矢量 量化被考慮的幀所獲得的組成編碼的數(shù)據(jù)的VQ碼、VQ殘余以及碼本#1提供 給嵌入單元92。
在嵌入單元92中(圖23),從編碼單元91輸出的與被考慮的幀有關(guān)的 VQ碼、VQ殘余以及碼本分別被提供并存儲(chǔ)在VQ碼存儲(chǔ)器111、 VQ殘余存 儲(chǔ)器112以及碼本存儲(chǔ)器113中。在步驟S52中,行循環(huán)單元114確定是否 在VQ殘余存儲(chǔ)器112中存儲(chǔ)其VQ殘余的所有的被考慮的幀的行已經(jīng)被處 理。
如果在步驟S52中確定在VQ殘余存儲(chǔ)器112中存儲(chǔ)其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殘余存儲(chǔ)器112中存儲(chǔ)其VQ殘余的所有 的被考慮的幀的行已經(jīng)全部被處理,則處理進(jìn)行至步驟S54,在步驟S54中, 壓縮單元115讀取存儲(chǔ)在VQ碼存儲(chǔ)器111中的被考慮幀的VQ碼,也讀取 存儲(chǔ)在碼本存儲(chǔ)器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ù),從而獲得編碼的凄t據(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ī)則對(duì)從編碼規(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的控制下,向編碼夫見則恢復(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,對(duì)于要被解碼的嵌入編碼的數(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碼存儲(chǔ)器133、 VQ殘余存儲(chǔ)器134以及碼本 存儲(chǔ)器135。
VQ碼存儲(chǔ)器133、 VQ殘余存儲(chǔ)器134以及碼本存儲(chǔ)器135基于幀分別 存儲(chǔ)來自擴(kuò)展單元132的VQ碼、VQ殘余、以及碼本。
行循環(huán)單元136順序考慮存儲(chǔ)在VQ殘余存儲(chǔ)器134中的幀的每一行, 例如從上至下,并讀取存儲(chǔ)在VQ殘余存儲(chǔ)器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殘余,與存儲(chǔ)在VQ存儲(chǔ)器133和存儲(chǔ)在碼本存儲(chǔ)器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從 碼本檢測(cè)相應(yīng)于VQ碼的重心矢量,并向加法單元142 l是供該重心矢量。除 了從逆矢量量化單元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輸出的暫定的解碼的像素值被提供給存儲(chǔ)器151。存儲(chǔ)器151臨時(shí)存儲(chǔ)暫 定的解碼的附加信息和暫定的解碼的像素值,并在真/假確定單元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é)果控制從存儲(chǔ)器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成分為簡(jiǎn)化描述被表示為IO的倍數(shù),例如,分別帶有102、 103和99的R、 G和B成分的像素值(下文中當(dāng)用到時(shí)被表示為像素值(102, 103, 99))具 有對(duì)于重心矢量(IOO, 100, IOO)的最短的距離,因此被矢量量化為與重心 矢量(IOO, 100, IOO)相關(guān)的VQ碼。例如,讓與重心矢量(IOO, 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碼O有關(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)通過對(duì)VQ殘余(2, 3, - 1 )以上述描述的方式應(yīng)用行循環(huán)而嵌入 附加信息時(shí),對(duì)于不同像素所獲得的VQ殘余值被分配作為VQ碼0和與VQ 殘余(2, 3, - 1)有關(guān)的像素之間的VQ殘余。如果例如不同像素的VQ殘 余值如圖31(B)所示為(10, 11, 12),通過將重心矢量(100, 100, 100)與 VQ殘余(IO, 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成分被表示為IO的倍數(shù),對(duì)于像素值(110, 111, 112)具有最短的距 離的重心矢量是(110, 110, 110)。因此,例如假定表示重心矢量是(110, 110, llO)的VQ碼是l,像素值(110, 111, 112)被矢量量化為VQ碼1 和VQ殘余(O, 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碼存儲(chǔ)器133、 VQ殘余存儲(chǔ)器134以及碼本存儲(chǔ)器135。
然后,在步驟S72中,確定單元123(圖30)的真/假確定單元154控制參 數(shù)控制器124(圖26)以設(shè)置一個(gè)特定的參數(shù)值,并將此參數(shù)值提供給編碼規(guī)則 恢復(fù)單元121。
每次在步驟S72中執(zhí)行對(duì)于每一幀的每一行的處理時(shí),真/假確定單元 154例如順序設(shè)置范圍為0至一行中的像素?cái)?shù)的整數(shù)作為參數(shù)值。
當(dāng)編碼〗見則恢復(fù)單元121收到來自參數(shù)控制器124的參數(shù)時(shí),在步驟S73 中,行循環(huán)單元136要被考慮的行的VQ殘余向左循環(huán)相應(yīng)于參數(shù)的像素?cái)?shù)。 并將左循環(huán)的VQ殘余,與存儲(chǔ)在VQ存儲(chǔ)器133中的被考慮的行的VQ碼 以及存儲(chǔ)在碼本存儲(chǔ)器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輸出的暫定的解碼的像素值被存儲(chǔ) 于存儲(chǔ)器151中。另外,在步驟S75中,在確定單元123中,編碼單元152 矢量量化從解碼單元122提供的暫定的解碼的像素值,并向比較單元153提 供所得的暫定VQ碼和暫定VQ殘余。
比較單元153對(duì)于被考慮的行的每個(gè)像素,將從編碼單元152提供的暫 定的VQ碼和組成暫定的編碼的lt據(jù)的VQ碼進(jìn)行比較,并也將從編碼單元152提供的暫定的VQ殘余和組成暫定的編碼的數(shù)據(jù)的VQ殘余進(jìn)行比較,并 將比較的結(jié)果4是供給真/假確定單元154。在步驟S76中,真/假確定單元154 對(duì)于被考慮的行的每個(gè)像素,確定暫定的VQ碼是否與組成暫定的編碼的數(shù) 據(jù)的VQ碼一致,以及暫定的VQ殘余是否與組成暫定的編碼的數(shù)據(jù)的VQ 殘余一致。如果確定其中一個(gè)或兩者均對(duì)于一個(gè)或多個(gè)像素不一致,即,如 果在前一步S72設(shè)置的參數(shù)值與附加信息不一致,處理返還至步驟S72,設(shè) 置一個(gè)新的參數(shù),重復(fù)相同的處理。
如果在步驟S76中確定對(duì)于被考慮的行的每個(gè)像素,暫定的VQ碼與組 成暫定的編碼的數(shù)據(jù)的VQ碼一致,以及暫定的VQ殘余與組成暫定的編碼 的數(shù)據(jù)的VQ殘余一致,即。如果在前一步S72設(shè)置的參數(shù)值與附加信息一 致,以及如果編碼的數(shù)據(jù)已被恢復(fù),原始附加信息已被正確解碼作為暫定的 解碼的附加信息,處理進(jìn)行至步驟S77,在步驟S77中,確定單元154控制 存儲(chǔ)器51分別輸出其存儲(chǔ)的對(duì)于被考慮的行的每個(gè)像素的暫定的解碼的像 素值和暫定的解碼的附加信息,作為正確解碼的像素值和正確解碼的附加信 息。然后,處理進(jìn)行至步驟S78。
在步驟S78中,確定是否存在下一個(gè)要被解碼的行。如果確定存在下一 行,處理返回步驟S72,用要被處理的下一行作為要被考慮的新一行重復(fù)相 同的處理。
如果在步驟S78中確定不存在要被解碼的下一行,則退出解碼處理。 圖32所示的解碼處理對(duì)于每一幀執(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ù)的總量。
本申請(qǐng)已經(jīng)在美國(guó)提出,專利申請(qǐng)?zhí)枮榈?9/636138號(hào), 一種基于例如 圖像的相關(guān)性,用于在圖像中嵌入附加信息的方法。依據(jù)提出的方法,例如 組成幀的行基于附加信息被交換,基于這樣的事實(shí)即原始幀中的相鄰的行之 間彼此高度相關(guān),已經(jīng)基于附加信息被交換的幀的行被恢復(fù)至其原始的位置。 根據(jù)情況,基于相關(guān)性的方法在嵌入附加信息的過程中并不總是成功的。即,
簡(jiǎn)單地,關(guān)于嵌入附加信息的幀的行,基于相關(guān)性的方法將行的相鄰的行與 被考慮的行高度相關(guān)的行交換,直到所有的行被恢復(fù)為原始位置。然而,在 一些圖像中,與被考慮的行最相關(guān)的行并不一定是被考慮的行的相鄰行。當(dāng) 通過嵌入附加信息而交換這樣的行時(shí),行不能基于相關(guān)性被恢復(fù)至其原始位 置,抑制了附加信息被嵌入。
為此,上述方法并不能解決這樣的解碼失敗。
在圖26所示的實(shí)施例中,解碼器12僅包括編碼規(guī)則恢復(fù)單元121和解 碼單元122對(duì)的單個(gè)行,通過順序改變從參數(shù)控制器124輸出的參數(shù)而順序 獲得與各個(gè)參數(shù)值有關(guān)的暫定的編碼的數(shù)據(jù);然而,例如如圖33所示,解碼 器12可以包括編碼規(guī)則恢復(fù)單元121,至12lM和解碼單元122,至122m的M 行,分別對(duì)每個(gè)編碼規(guī)則恢復(fù)單元121m(m= 1,2,…,M)提供不同的參數(shù)值,于 是可以同時(shí)獲得分別與參數(shù)值有關(guān)的暫定的編碼的數(shù)據(jù)。
另外,盡管在上述舉例中圖19所示的編碼單元91執(zhí)行矢量量化,編碼 單元91可以執(zhí)行例如預(yù)測(cè)編碼而不是矢量量化。在這種情況下,嵌入單元 92被能夠通過處理與基于附加信息的預(yù)測(cè)編碼相關(guān)的預(yù)測(cè)殘余而嵌入編碼的 數(shù)據(jù)。
另外,盡管在上述舉例中,通過基于附加信息循環(huán)每行的VQ殘余而嵌 入附加信息,附加信息也可以通過例如循環(huán)表示VQ殘余的值的比特序列而 被嵌入。
另夕卜,盡管在上述舉例中,碼本被生成并包括在基于幀的編碼的數(shù)據(jù)中,
碼本可以預(yù)先生成并存儲(chǔ)在每個(gè)嵌入壓縮編碼器11和解碼器12中。另外,
碼本可以基于多個(gè)幀,或基于幀的預(yù)定字段生成。
上述處理過程可以以硬件或軟件方式實(shí)現(xiàn)。當(dāng)處理過程以軟件方式實(shí)現(xiàn)
時(shí),在例如通用計(jì)算機(jī)中安裝組成軟件的程序。
圖34示出了安裝用于執(zhí)行上述處理過程的程序的計(jì)算機(jī)結(jié)構(gòu)的舉例。 程序可被預(yù)先存儲(chǔ)在計(jì)算機(jī)內(nèi)的記錄介質(zhì)中,如硬盤205或ROM 203。 可替換地,程序可以被臨時(shí)或永久地存儲(chǔ)(記錄)在如軟盤、CD-ROM(光
盤只讀存儲(chǔ)器)、MO (磁光)盤、DVD (數(shù)字多用光盤)、磁盤、或半導(dǎo)體存
儲(chǔ)器的可拆卸存儲(chǔ)介質(zhì)211中。
如果沒有如上所述將程序安裝在計(jì)算機(jī)的可拆卸存儲(chǔ)介質(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)等,CPU 202依據(jù)命令,才丸行存儲(chǔ)在 ROM(只讀存儲(chǔ)器)203中的程序??商鎿Q地,CPU 202將存儲(chǔ)在石更盤205中的 程序、通過衛(wèi)星或網(wǎng)絡(luò)傳送通過通信單元208接收并存儲(chǔ)在硬盤205中的程 序、或從安裝在驅(qū)動(dòng)209中的可拆卸記錄介質(zhì)211讀取并安裝在硬盤205中 的程序裝載到RAM (隨機(jī)訪問存儲(chǔ)器)204中用于執(zhí)行。CPU202依據(jù)上述 流程圖執(zhí)行這樣的處理,或被上述方框圖所示的結(jié)構(gòu)執(zhí)行處理。CPU 202如 要求地,通過如輸入/輸出接口 210,向包括LCD(液晶顯示器)、揚(yáng)聲器等的 輸出單元206輸出處理的結(jié)果,通過通信單元208將其發(fā)送,將其記錄在硬 盤205上等等。
在本說明書中,計(jì)算機(jī)上用于執(zhí)行各種處理的組成程序的處理步驟不一 定以流程圖所示的順序被順序執(zhí)行,可以以并行或單獨(dú)執(zhí)行(如并行處理或 基于對(duì)象處理)。
該程序可以通過單個(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ù)處理方法以及第 一存儲(chǔ)介質(zhì), 第一數(shù)據(jù)被編碼以輸出編碼的數(shù)據(jù)。然后,基于第二數(shù)據(jù)修改編碼的數(shù)據(jù)的 一部分,以便將第二數(shù)據(jù)嵌入編碼的數(shù)據(jù)中。
依據(jù)本發(fā)明的第二數(shù)據(jù)處理裝置、第二數(shù)據(jù)處理方法以及第二存儲(chǔ)介質(zhì), 生成用于編碼第一數(shù)據(jù)的編碼表,以及,基于第二數(shù)據(jù)修改編碼^^成部件 所生成的編碼表以生成修改的編碼表。然后,基于修改的編碼表編碼第一數(shù) 據(jù)以生成嵌入第二數(shù)據(jù)的嵌入編碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第五數(shù)據(jù)處理裝置、第五數(shù)據(jù)處理方法以及第五存儲(chǔ)介質(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ù)處理方法以及第三存儲(chǔ)介質(zhì), 基于編碼表暫定地解碼通過將第二數(shù)據(jù)嵌入第一數(shù)據(jù)中所編碼的嵌入編碼的 數(shù)據(jù),以輸出暫定的解碼的數(shù)據(jù)。另外,基于暫定的解碼的數(shù)據(jù)生成暫定的 編碼表,以及基于編碼表和暫定的編碼表解碼嵌入編碼的數(shù)據(jù)以獲得第一解 碼的數(shù)據(jù)。比較編碼表和暫定的編碼表以獲得第二解碼的數(shù)據(jù)。
依據(jù)本發(fā)明的第四數(shù)據(jù)處理裝置、第四數(shù)據(jù)處理方法以及第四存儲(chǔ)介質(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ù)處理方法以及存儲(chǔ)介質(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ù),以獲得依據(jù)熵編碼規(guī)則壓縮編碼的壓縮的數(shù)據(jù)并獲得第二數(shù)據(jù);以及第二解碼部件,用于解碼該壓縮的數(shù)據(jù)以獲得第一數(shù)據(jù),其中,所述第一解碼部件解碼嵌入壓縮的數(shù)據(jù),以獲得依據(jù)所述熵編碼規(guī)則可變長(zhǎng)度壓縮編碼的壓縮的數(shù)據(jù),其中在所述熵編碼規(guī)則中,基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率來分配一定長(zhǎng)度的壓縮數(shù)據(jù)。
2. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件基于第一數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率和通過 可變長(zhǎng)度解碼嵌入壓縮的數(shù)據(jù)而獲得的解碼的數(shù)據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻 率,修改與第一數(shù)據(jù)中的被分配相同的長(zhǎng)度的壓縮的數(shù)據(jù)的每個(gè)數(shù)據(jù)值相關(guān) 的編碼的數(shù)據(jù),從而將嵌入壓縮的數(shù)據(jù)恢復(fù)為依據(jù)熵編碼規(guī)則可變長(zhǎng)度壓縮 編碼的壓縮的數(shù)據(jù)。
3. 如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中,所述第一解碼部件包括轉(zhuǎn)換表生成部件,用于基于第一數(shù)據(jù)中每 個(gè)數(shù)據(jù)值的發(fā)生頻率和通過可變長(zhǎng)度解碼嵌入壓縮的數(shù)據(jù)而獲得的解碼的數(shù) 據(jù)中每個(gè)數(shù)據(jù)值的發(fā)生頻率,生成用于轉(zhuǎn)換編碼表中的壓縮數(shù)據(jù)的轉(zhuǎn)換表, 所述編碼表用于可變長(zhǎng)度壓縮編碼第 一 數(shù)據(jù)為壓縮的數(shù)據(jù)。
4. 如權(quán)利要求1所述的數(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ù)。
文檔編號(hào)H04N1/387GK101355699SQ200810095569
公開日2009年1月28日 申請(qǐng)日期2001年10月12日 優(yōu)先權(quán)日2000年10月19日
發(fā)明者太田浩二, 安藤一隆, 近藤哲二郎 申請(qǐng)人:索尼公司