CN1242619C - 编码装置和方法、解码装置和方法、以及数据处理系统 - Google Patents
编码装置和方法、解码装置和方法、以及数据处理系统 Download PDFInfo
- Publication number
- CN1242619C CN1242619C CNB991259904A CN99125990A CN1242619C CN 1242619 C CN1242619 C CN 1242619C CN B991259904 A CNB991259904 A CN B991259904A CN 99125990 A CN99125990 A CN 99125990A CN 1242619 C CN1242619 C CN 1242619C
- Authority
- CN
- China
- Prior art keywords
- data
- pixel value
- changing
- delta
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/467—Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Editing Of Facsimile Originals (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
本发明涉及用于不会使第一数据变坏的将第二数据嵌入第一数据的编码装置,及相应的解码装置。该编码装置根据第一数据的至少部分数据的频率分布,确定变化对象数据和变化数据,并通过根据第二数据,进行从变化对象数据到变化数据的变化,将第二数据嵌入第一数据。该解码装置,根据嵌入第二数据的编码数据的至少部分数据的频率分布,确定变化对象数据和变化数据,并将编码数据解码成原始第一数据,并通过从变化数据恢复到变化对象数据,恢复嵌入编码数据的第二数据。
Description
技术领域
本发明涉及编码装置和方法,解码装置和方法,数据处理系统,存储介质以及信号。具体地说,本发明涉及允许将信息嵌入到数据中,并且不会导致解码数据变坏,也不会导致数据量增加的编码装置和方法,解码装置和方法,数据处理系统,存储介质以及信号。
背景技术
不增加数据量的嵌入信息技术的一个例子是,数字音频数据的LSB(最低有效位)或者最低2位被转换成要嵌入的信息。在这种技术方案中,利用了数字音频数据的最低一位或最低多位对声音质量影响不大的事实,并简单地将数字音频数据的最低一位或最低多位替换为要嵌入的信息。因此,在重放时,嵌入信息的数字音频数据按照其实际状态输出,即没有将最低一位或最低多个位恢复到原始状态。这就是说,数字音频数据以在其中嵌有信息的状态输出,因为难于将最低一位或最低多位嵌入的信息恢复到原始状态,而最低一位或最低多位对声音质量影响不大。
然而在上述的技术方案中,输出了与原始信号不同的信号。因此,当信号为音频数据时,就对声音质量产生影响;当信号为视频数据时,就对图像质量产生影响。
发明内容
本发明的目的是解决上述的问题。
为了达到上述目的,本发明提供一种用于根据第二数据编码具有连续频率曲线形状的第一数据的编码装置,该装置包括用于存储第一数据的存储器,和编码部分,该编码部分通过根据第二数据重排存储在存储器中的第一数据,将与第二数据相关的数据嵌入第一数据。
为了达到上述目的,本发明提供一种用于对根据第二数据编码具有连续频率曲线形状的第一数据产生的编码数据进行解码的解码装置,该解码装置包括用于计算编码数据的第一部分数据与第二部分数据之间的相关性的相关性计算部分;和解码部分,该解码部分通过根据相关性计算部分计算的相关性,移动编码数据的第一部分数据和第二部分数据,并且根据所述移动恢复嵌入编码数据的第二数据,将编码数据解码成原始的第一数据。
附图说明
附图的简要说明如下:
图1是方框图,示出了使用本发明的图像传输系统的实施例;
图2示出了在本发明中作为编码对象的图像;
图3A是示意图,示出了本发明实施例中,在利用相关性对图像进行编码之前的状态或解码结果;
图3B是示意图,示出了本发明实施例中,利用相关性对图像进行编码得到的结果;
图4A示出了本发明实施例中,在利用连续性对图像进行编码之前的状态或解码结果;
图4B示出了本发明实施例中,利用连续性对图像进行编码得到的结果;
图5A示出了本发明实施例中,在利用相似性对图像进行编码之前的状态或解码结果;
图5B示出了本发明实施例中,利用相似性对图像进行编码得到的结果;
图6是方框图,示出了图1所示嵌入编码器3的硬件配置实例;
图7是方框图,示出了图6所示嵌入编码器3的功能配置实例;
图8是流程图,示出了由图7所示嵌入编码器3执行的操作;
图9示出了实际图像的像素值频率分布。
图10A示出编码对象帧中变化对象像素值的分布。
图10B示出编码对象帧中变化对象像素值和变化值的分布。
图11示出了图1中解码器6的配置实例。
图12示出了图11所示解码器6的功能配置实例。
图13的流程图,说明图12的解码器6中执行的解码处理。
图14A示出一种变化对象像素值的频率分布。
图14B示出另一种变化对象像素值的频率分布。
图15A示出一种不连续的像素值频率分布。
图15B示出另一种不连续的像素值频率分布。
图16示出了图6中嵌入编码器3的功能配置的第二个实例。
图17的流程图,说明在图16的嵌入编码器3中执行的嵌入编码处理。
图18示出了解码器6的功能配置实例,该解码器对由图16中嵌入编码器3输出的编码数据进行解码。
图19的流程图,说明在图18的解码器6中执行的解码处理。
图20A示出编码对象像素与参考像素之间差数据的一种情况。
图20B示出编码对象像素与参考像素之间差数据的另一种情况。
图21说明,为了计算具有上述参照图20A和20B说明的表达式的差数据,在图16所示的差计算部分71中执行的差计算处理。
图22说明,为了恢复具有上述参照图20A和20B说明的表达式的差数据C,在图18所示的差恢复部分81中执行的差恢复处理。
图23A示出了某个一帧图像的像素值的频率分布。
图23B示出图23A中图像a的差数据的频率分布。
图24A示出了另一个一帧图像的像素值的频率分布。
图24B示出图24A中图像b的差数据的频率分布。
图25示出了图16中差计算部分71的配置实例,用于无需任何判断或转移(branching)步骤,计算具有上述表达式的差数据。
图26说明,为了计算对编码对象像素的差数据,在图25所示的差计算部分71中执行的差计算处理。
图27示出了图18中差恢复部分81的配置实例,用于无需任何判断或转移步骤,将具有上述表示式的差数据恢复成原始像素值。
图28说明,为了将差数据恢复成原始像素值,在图27所示的差恢复部分81中执行的差恢复处理。
图29A至29C说明,计算机程序记录在其上的记录介质和通过传输媒体提供到计算机的信号,它们用于建立一种状态,使用于执行上述操作序列的程序被安装到计算机中,并成为可以由计算机执行的程序。
图30示出了图29A和29C中所示的计算机601的配置实例。
具体实施方式
下面将参照附图说明根据本发明的编码装置和方法,解码装置和方法,数字处理系统,存储介质以及信号。
图1示出了使用本发明的图像传输系统实施例的配置。术语“系统”表示多个装置的逻辑集合,而这些构成装置是否包含在同一个机体内是与该术语的定义不相干的。
该图像传输系统包括编码装置10和解码装置20。编码装置10对诸如图像的编码对象进行编码,并输出编码的数据。解码装置20将编码的数据解码成原始图像。
图像数据库1存储要编码的图像,例如数字图像。存储的图像从图像数据1中读出,提供到嵌入的编码器3。
附加信息数据库2存储附加信息,诸如数字数据,作为要嵌入到作为编码对象的图像中的信息。存储的附加信息从附加信息数据库2中读出,也提供到嵌入编码器3。
嵌入编码器3接收来自图像数据库1的图像和来自附加信息数据库2的附加信息。根据由附加信息数据库2提供的附加信息,嵌入编码器3以将来利用图像的能量偏差来执行解码的方式,对由图像数据库1提供的图像进行编码,并输出结果图像。也就是说,以将来利用图像的能量偏差来执行解码的方式,嵌入编码器3通过将附加信息嵌入图像,对图像进行编码,并输出编码的数据。由嵌入编码器3输出的编码数据记录在记录介质4上,例如半导体存储器、磁光盘、磁盘、光盘、磁带或相变盘。或者,编码数据作为一种信号通过传输媒体5进行传输,例如地波、卫星信道、CATV(有线电视)网络、互联网或公用线路,并提供到解码装置20。
解码装置20是解码器6,接收通过记录介质4或传输媒体5提供的编码数据。通过利用图像的能量偏差(energy deviation),解码器6将编码数据解码成原始图像和附加信息。解码的图像被提供到例如监视器(未示出),并在其上显示。解码的附加信息是与该图像相关的文本数据、音频数据、压缩图像等。
下面将说明,图1中所示嵌入编码器3中嵌入编码的原理,和也在图1中所示的解码器6中解码的原理。
总的来说,通常所说的信息具有能量偏差或熵,而该偏差被认为是重要信息。例如,通过对某个景物照相得到的图像被人识别为该景物图像的原因是,例如由各个像素的像素值构成的该图像具有与该景物对应的能量偏差。没有能量偏差的图像就是噪声等,并且是无用的信息。
因此,即使由于对重要信息执行某种操作,便重要信息的原始能量偏差变成如不连续的,也能够通过从断续的能量偏差恢复到原始能量偏差来恢复该重要信息。换句话说,利用信息的原始能量偏差,由信息编码得到的编码数据能够被解码成原始信息。
信息的能量偏差例如由相关性、连续性、相似性等表示。
信息的相关性是指构成元素(在图像的情况下,即构成图像的像素、线等)之间的相关性,例如,信息的某个构成元素与另一个构成元素之间的自动相关性(auto-correlation)或距离。相关性的一个例子是图像的两条线之间的相关性,该相关性是由对应像素值之间的差的平方和表示的相关值。
例如图2中所示,现在假设由H条线102构成图像101。一般地,如图3A中所示,当线离第一线103比较近时(即位于图2图像的较高处),如由相关值201与第M线表示的,从图像顶部的第一行线(第一线)103与每条其他线之间的相关值就比较大;当线离第一线103比较远时(即位于图2图像的较低处),如由相关值202与第N线表示的,由图像顶部的第一行线(第一线)103与每条其他线之间的相关值就比较小。也就是说,存在相关值的偏差,对于距离第一线103比较近的线,其与第一线103的相关值就比较大;对距离第一线103比较远的线,其与第一线103的相关值就比较小。
在图2的图像101中,执行下列操作,将和第一线103相对较近的第M线104的像素值与和第一线103相对较远的第N线105的像素值互换。例如图3B中示出了在线互换图像101中第一线103与其他线之间的相关值。
在线互换图像101中,与接近第一线103的第M线104的相关值变小,由相关值203与第M线表示;与远离第一线103的第N线105的相关值变大,由相关值204与第N线表示。
因此在图3B中,对离第一线103比较近的线,相关值比较大,对离第一线103比较远的线,相关值比较小的这种相关性偏差的现象被破坏。但是,利用对离第一线103比较近的线,相关值比较大,对离第一线103比较远的线,相关值比较小这种相关性偏差,可以将这种破坏的图像相关性的偏差修复到原始状态。在图3B中,与接近第一线103的第M线104的相关值变小,而与远离第一线103的第N线105的相关值变大,这种情况显然是不自然的(A),因此通过将第M线104与第N线105彼此互换,就可以恢复相关性的原始偏差。具有如图3A中所示的相关性偏差的图像,即原始图像101,可以通过将图3B中第M线104与第N线105彼此互换得到恢复。
在上面参照附图2、3A和3B说明的情况下,通过线互换对图像进行编码。例如在编码操作中,根据附加信息,嵌入编码器3确定哪些线应当移动,或哪些线应当彼此互换。另一方面,解码器6利用编码图像的相关性,通过移动互换的线到其原始位置,从编码图像,即线互换图像恢复原始图像。另外,在解码操作的同时,通过例如检测哪些线被移动了或哪些线被彼此互换了,解码器6恢复嵌入图像的附加信息。
至于信息的连续性,假定对于图像的某条线,观察到如图4A中所示的波形301,其中像素值的变化图形是连续的。在远离上述线的另一条线上,观测的像素值变化图形在连续性上与上述线的变化图形是不同的,还存在着连续性的偏差。也就是说,当注意某个像素值变化图形时,就会发现连续性的偏差,即相似的像素值变化图形存在于相邻的部分中,而当位置变远时,像素值变化图形就变得非常不同了。
例如,如图4A中所示的波形301的一部分,其中像素值变化图形是连续的,该部分被远离波形301的波形302替换,并且如图4B中所示具有不同的像素值变化图形。
在图4B的情况下,上述连续性的偏差被破坏。但是利用彼此相邻部分具有连续的像素值变化图形,而当它们彼此相距越远时,像素值变化图形就变得越不同这个连续性偏差特性,可以修复连续性的断续偏差。具体地说在图4B中,波形的一部分的像素值变化图形302显然不同于其他部分的像素值变化图形,因此通过用具有与其他部分的像素值变化图形相似的像素值变化图形的波形来替换像素值变化图形302,就可以恢复原始图像的连续性偏差。图4A中所示的波形,即原始波形可由图4B中所示的波形通过执行上述的替换得到恢复。
在上面参照附图4A和4B说明的情况下,图像编码是用与相邻像素值变化图形非常不同的像素值变化图形来替换部分波形。例如在编码中,根据附加信息,嵌入编码器3确定波形的哪个部分应当在像素值变化图形上作大的变化,以及像素值变化图形应当在多大的程度上变化。利用相邻的像素值变化图形是连续的,而当它们彼此相距越远时,像素值变化图形就变得越不同这个连续性偏差特性,解码器6从编码信号,即具有非常不同的像素值变化图形部分的波形恢复原始波形。另外,在解码操作的同时,解码器6通过例如检测波形的哪个部分在像素值变化图形上有大的变化,以及像素值变化图形在多大的程度上变化了,恢复嵌入的附加信息。
至于信息的相似性,已知利用图像的分形(fractal),即自相似性来产生例如通过对景物照相得到的图像部分。例如,图5A中所示海401和森林402的照片图像具有相似性偏差,海401某个部分的像素值变化图形与海401其他部分的像素值变化图形之间的相似性是高的;而同一部分的像素值变化图形与远离海401的森林402部分的像素值变化图形之间的相似性是低的。对于诸如除像素值变化图形之外的图像部分的边缘形状图形,其自身形状的相似性也有同样的情况。
例如图5B中所示,图5A中所示海401的部分403被森林402的部分替换。
在图5B中,上述相似性的偏差被破坏。但是利用相邻像素值变化图形在相似性上是高的,而当像素值变化图形彼此相距越远时,相似性就变得越低这个相似性偏差特性,可以修复被破坏的相似性偏差。具体地说在图5B中,海401图像的某个部分由森林402图像的部分405构成,海401中一部分与森林402图像替换的部分405之间的相似性,显然低于海401图像之中各部分之间的相似性。通过用上述部分405周围具有与海401图像特性相似的图像,即海401图像的部分406,替换由森林402图像构成的部分405,来恢复原始图像的相似性偏差。通过执行这种替换,从图5B中所示的图像恢复图5A中所示的图像,即原始图像。
在上面参照附图5A和5B说明的情况下,图像编码是用森林402图像的部分404替换海401图像的部分403。例如在编码中,嵌入编码器3根据附加信息确定海401图像的哪个部分(例如图上的一个位置)应当被森林402图像的部分404替换。利用相邻像素值变化图形在相似性上是高的,而当像素值变化图形彼此相距越远时,相似性就变得越低这个编码信号的相似性偏差特性,解码器6从编码信号,即具有森林402图像的部分405的海401图像恢复图5A中所示的原始图像。另外,在解码操作的同时,解码器6通过例如检测海401图像的哪个部分是被森林402图像的部分替换,来恢复嵌入的附加信息。
如上所述,嵌入编码器3根据附加信息对编码图像进行编码,因此利用图像的能量偏差执行解码。通过利用图像的能量偏差,无需解码开销(overhead),解码器6就可以将编码数据解码成原始图像和附加信息。
因为附加信息被嵌入编码对象图像,结果编码图像变成与原始状态不同,并且作为重要信息也变成不可识别的。也就是说,无需开销就可以实现对编码对象图像的加密。
另外,实现了完全可逆的数字水印操作。例如在现有的数字水印操作中,对图像质量影响不大的最低几位像素值被简单地变成与数字水印对应的值。但是难于将最低几位恢复到原始值。因此改变作为数字水印的最低几位将导致解码图像的图像质量变坏。在本发明的嵌入编码中,在利用原始图像的能量偏差来对编码数据进行解码的情况下,可以得到无变坏的原始图像和附加信息。因此,即使附加信息用作数字水印信息,解码图像的图像质量也不会变坏。
因为通过将编码数据解码成图像来检出嵌入的附加信息,所以无需开销就可以提供边信息(side information)。换句话说,因为无须任何开销附加信息就被嵌入图像,而这种开销对检出附加信息通常是必需的,所以作为嵌入结果得到的编码数据被压缩了与附加信息对应的数量。例如,如果图像的一半由编码对象构成,而另一半由附加信息构成,并且如果图像的后一半被嵌入作为编码对象的那一半图像中,该图像就被简单地压缩成原始图像的1/2。
因为利用原始图像的能量偏差对编码数据进行解码,而能量偏差可以说是统计量,所以抗误差性较高。也就是说,实现了编码时抗错性(robustness)高的抗错编码。
因为利用原始图像的能量偏差对编码数据进行解码,所以当能量偏差更具特性时,即在图像的情况下,当图像的活动度(activity)比较高时,或者其冗余度比较低时,就能够嵌入更多的附加信息。如上所述,作为附加信息嵌入结果得到的编码数据被压缩了与附加信息对应的数量。也就是说,当图像的活动度比较高,或者其冗余度比较低时,压缩比就比较大。例如,在作为现有编码方案的MPEG(运动图像专家组)方案中,当图像的活动度比较高,或者其冗余度比较低时,压缩比基本上是比较低的。在这方面,本发明的嵌入编码方案与现有编码方案是非常不同的。
通过使图像成为编码对象,并且采用不同于图像媒体的信息,例如声音作为附加信息,可以用声音作为密钥提供图像。具体地说,在编码装置10侧,由订户发出的声音,例如“芝麻开门!”,被用作附加信息嵌入图像。在解码装置20侧,让用户发出声音“芝麻开门!”,通过将用户的声音与嵌在图像中的声音进行比较,执行发声者识别。只有当用户被识别为订户时,发声者识别才允许图像的自动显示。声音波形本身,以及所谓的声音特性参数,都可以像声音一样用作附加信息。
通过使声音成为编码对象,并且使用不同于声音媒体的信息,例如图像作为附加信息,可以用图像作为密钥提供声音(例如面部识别之后的声音响应)。具体地说,在编码装置10侧,例如将用户面部的图像嵌入作为对用户的响应的声音中。在解码装置20侧,用户的面部被摄像,其中嵌有符合被摄图像的面部图像的声音被输出。用这种方法,实现了对各个用户作出不同的声音响应的声音响应系统。
还可以将某种媒体的信息嵌入相同媒体的另一个信息,例如将一个声音嵌入另一个声音,或者将一个图像嵌入另一个图像。另外,通过嵌入订户的声音和面部图像,可以实现所谓双密钥系统,在该系统中只有当用户的声音和面部图像与嵌入图像的声音和面部图像相符时,才能显示图像。
例如,还可以将构成电视广播信号的图像与声音之一,例如同步地彼此嵌入到对方。在这种情况下,可以实现真综合信号(ture integrated signal),其中不同媒体的信息段被彼此综合。
在如上所述本发明的嵌入编码方案中,当信息的能量偏差更具有特征时,可以嵌入信息的附加信息就更多。因此,通过例如自适应地选择两段信息之中具有更多特征的能量偏差的一段信息,并将另一段信息嵌入所选择的那段信息中,可以控制总数据量。也就是说,能够使两段信息之一吸收另一段的信息量。控制总数据量使得能够使用这样一种数据量进行信息传输,该数据量适应传输带宽以及传输线的使用状态和传输环境的其他因素(即环境自适应网络传输)。
例如,通过将压缩的图像嵌入原始图像,或者通过将抽取的声音嵌入原始声音,无需增加数据量,就能实现一种编码,在该编码中生成与较底层信息相比具有更小信息量的较高层信息(所谓分层编码)。
例如,通过将用作搜索每个原始图像的密钥的图像嵌入每个原始图像,实现了根据密钥图像来搜索图像的数据库。
图6示出了图1所示执行嵌入编码的嵌入编码器3的硬件配置实例,在嵌入编码中附加信息被嵌入图像,以便能够利用图像的相关性来恢复原始图像。
来自图像数据库1的图像提供到帧存储器3l。帧存储器31例如以逐帧方式暂存由图像数据库1提供的图像。
CPU(中央处理单元)32执行存储在程序存储器33中的程序并进行控制,以便执行(下面要说明的)嵌入编码操作。也就是说,CPU32接收从附加信息数据库2提供的附加信息,并根据程序来控制整个嵌入编码器3,以便将附加信息嵌入到存储在帧存储器31中的图像中。具体地说,CPU32执行控制,以便按照例如以逐列方式的附加信息(列:像素的垂直排列),通过重排存储在帧存储器31中构成图像的各像素位置,将附加信息嵌入每一列中。CPU32执行控制,以便输出其中嵌有附加信息的图像作为编码数据。
例如使用ROM(只读存储器)或RAM(随机存取存储器),程序存储器33存储计算机程序,以便使CPU32执行嵌入编码操作。
为了能够存储多个帧,帧存储器31由多个存储体(bank)组成。通过在各存储体之间进行切换,帧存储器31同时执行从图像数据库1提供的图像的存储,作为CPU32执行嵌入编码操作的对象的图像的存储,以及输出由嵌入编码操作产生的图像,即编码数据。即使由图像数据库1提供的图像是运动图像,编码数据也以实时方式输出。
图7示出了图6所示嵌入编码器3的功能配置实例。通过CPU32执行存储在程序存储器33中的计算机程序,实现图7中所示的功能配置。
图7中所示的帧存储器31、存储器34和输出缓存器35分别与如上参照图6说明的那些部分相同。
频率分布计算部分41例如以逐帧方式计算存储在帧存储器31中的编码对象图像的像素值的频率分布,并将其提供到变化对象像素值/变化值确定部分42。根据频率分布计算部分41提供的像素值的频率分布,按照来自存储在帧存储器31中的构成编码对象图像的像素值之中的附加信息(即变化对象像素值),变化对象像素值/变化值确定部分42确定要变化的像素值,并且还确定应当由变化对象像素值所改变到的值(即变化值)。变化对象像素值/变化值确定部分42将确定的变化对象像素值和变化值提供到像素值变化部分43。像素值变化部分43以预定次序,例如以光栅扫描次序,读出存储在帧存储器31中构成编码对象帧的像素值。如果读出的像素值不等于变化对象像素值,像素值变化部分43按照其原样将其提供到输出缓存器35,并且将其存储在其中对应的地址上。如果读出的像素值等于变化对象像素值,像素值变化部分43读出存储在存储器34中的附加信息,并按照该附加信息,将像素值由变化对象像素值改变成变化值,或者保留该像素值不作改变。像素值变化部分43将结果像素值提供到输出缓存器35,并且使其存储在其中对应的地址上。
下面将参照图8的流程图,说明图7的嵌入编码器3中执行的嵌入编码处理。
存储的图像从图像数据库1中读出,顺序提供到帧存储器31,并在其中存储。存储的附加信息从附加信息数据库1中读出,顺序提供到存储器34,并在其中存储。
在步骤S1中,频率分布计算部分41读出存储在帧存储器31中构成一个编码对象帧的像素值,并计算其频率分布。
图9示出了实际图像的像素值频率分布。图9示出了由R、G和B分量信号构成的一帧图像的R分量频率分布,每种分量信号都被分配8位。如上所述R分量信号被分配8位,因此能够在0到255共256个值的范围内取像素值。然而在图9中,没有像素具有250或更大像素值。从图9可以明显看出,一般地说在图像中,像素值(在该实例中,每个像素值为0到255之一)并不都以相似的数目存在,有的像素值以大的数量存在,而有的像素值根本不存在。然而一般地说,像素值的频率分布是连续变化的。
由频率分布计算部分41计算的像素值的频率分布被提供到变化对象像素值/变化值确定部分42。当变化对象像素值/变化值确定部分42接收像素值频率分布时,处理进行到步骤S2,变化对象像素值/变化值确定部分42根据频率分布,从存储在帧存储器31中构成编码对象图像的像素值中确定变化对象像素值,以及确定应当从变化对象像素值所改变到的变化值。例如,变化对象像素值/变化值确定部分42由频率分布检测具有最高频率的像素值,并确定该检测出的像素值作为变化对象像素值。另外,变化对象像素值/变化值确定部分42由频率分布检测频率为0的像素值,并确定该检测出的像素值作为变化值。如果有多个频率为0的像素值,变化对象像素值/变化值确定部分42例如选择这些像素值之一,并确定其作为变化值。
在该实施例中,附加信息被嵌入变化对象像素值。为了增加可以被嵌入的附加信息的数据量,变化对象像素值/变化值确定部分42使用具有最高频率的像素值作为变化对象像素值。然而,作为变化对象像素值要被使用的像素值,并不限于具有最高频率的像素值。
当在变化对象像素值/变化值确定部分42中,变化对象像素值和变化值被确定时,它们被提供到像素值变化部分43。
当接收变化对象像素值和变化值时,在步骤S3中,像素值变化部分43读出存储在帧存储器31中构成编码对象帧的最左上角像素值。然后处理进行到步骤S4,像素值变化部分43判断在步骤S3中读出的像素值是否等于变化对象像素值。如果判断出读出的像素值不等于变化对象像素值,处理就跳过步骤S5至S7,进行到步骤S8。在步骤S8中,像素值按照其原样被提供到输出缓存器35,并且被写入在其中对应的地址上。
如果在步骤S4中,像素值变化部分43判断出,在步骤S3中读出的像素值等于变化对象像素值,处理进行到步骤S5,其中像素值变化部分43从存储器34读出附加信息,处理进行到步骤S6。假定在步骤S5中,附加信息是例如以逐位方式读出的。
在步骤S6中,像素值变化部分43判断在步骤S5中读出的1位附加信息等于“0”还是等于“1”。如果在步骤S6中,像素值变化部分43判断出附加信息比如说是“0”和“1”中的“0”,处理就跳过步骤S7,进行到步骤S8。在步骤S8中,像素值变化部分43将变化目标像素值按照其原样提供到输出缓存器35,并且将其写入其中对应的地址上。也就是说,通过像素值变化部分43不改变等于变化对象像素值的像素值,附加信息“0”被嵌入具有变化对象像素值的像素中。
如果在步骤S6中,像素值变化部分43判断出,附加信息比如说是“0”和“1”中的“1”,处理就进行到步骤S7,其中像素值变化部分43将像素值由变化对象像素值改变成变化值。然后处理进行到步骤S8,像素值变化部分43将在步骤7中所改变到的变化值提供到输出缓存器35,并且将其写入其中对应的地址上。也就是说,通过像素值变化部分43改变等于变化对象像素值的像素值,附加信息“1”被嵌入具有变化对象像素值的像素中。
在执行步骤S8之后,处理进行到步骤S9,其中判断作为编码对象的帧的所有像素是否已经被读出。如果在步骤S9中判断出,作为编码对象的帧的所有像素还并未完全被读出,处理返回到步骤S3,其中读出要根据光栅扫描顺序接着被处理的像素值。然后重复与上述相同的操作。
如果在步骤S9中判断出,作为当前编码对象的帧的所有像素都已经被读出,处理进行到步骤S10,其中读出存储在输出缓存器35的嵌有附加信息的帧作为编码数据,并且将其输出。然后处理进行到步骤S11,其中判断在帧存储器31是否存储有要接着被处理的帧。如果判断出存储着这种帧,处理返回到步骤S1,将存储的帧用作编码对象,重复与上述相同的操作。
如果在步骤S11中判断出,在帧存储器31中没有存储要接着被处理的帧,嵌入编码处理就结束。
根据上述的嵌入编码处理,某个帧的图像以下列方式被编码成编码数据。
例如,如果在编码对象帧中,变化对象像素值以由图10A标记“·”标示的方式分布,就以下述方式按光栅扫描次序处理变化对象像素值,即将位于对应于附加信息“0”的位置的部分变化对象像素值原样保留,而将位于对应于附加信息“1”的位置的其他部分改变成变化值,该变化值如由图10B标记“×”所标示的,是在图10A的图像中不存在的像素值(即在频率曲线中具有频率为0的像素值)。
如上所述,嵌入编码器3通过根据附加信息将变化对象像素值,即存储在帧存储器31中构成图像的像素值之中具有最高频率的像素值,改变成一变化值,即在该图像中不存在的像素值,而嵌入附加信息。利用图像的连续性(即构成该图像的像素值的频率分布连续性),通过将变化值改变成原始变化对象像素值,其中嵌有附加信息的编码数据被解码成原始图像和附加信息。因此既没有损坏图像的图像质量,也没有增加数据量,附加信息就被嵌入到图像中。
也就是说,利用图像的连续性,即构成图像像素值的频率分布连续性,无需任何开销,被像素值变化部分43所改变到的像素值就能够被解码成原始像素值。通过检测变化值和变化对象像素值,能够恢复附加信息。因此,结果解码图像不会由于嵌入附加信息而损坏图像质量。
在没有在编码对象帧中不存在的像素值的情况下,如果从变化对象像素值改变像素值,难于将变化后的像素值与原始存在于编码对象帧中并具有相同值的像素值区别开。考虑到这种情况,如果根据在图8嵌入编码处理的步骤S1中由频率分布计算部分41计算的频率分布,变化对象像素值/变化值确定部分42发现没有在编码对象帧中不存在的像素值,则像素值变化部分43不将附加信息嵌入该帧,并通过使用下一帧作为编码对象帧,接着进行判断。
图11示出了图1中解码器6的配置实例,利用图像的连续性,该解码器将由图7的嵌入编码器3输出的编码数据解码成原始图像和附加信息。
编码数据,即嵌入附加信息的图像(即嵌入图像),被提供到输入缓存器51。输入缓存器51以例如逐帧的方法暂存嵌入图像。通过以与如图6中所示帧存储器31相同的方式进行配置,经过存储体转换,即使是运动图像,输入缓存器51也能够以实时方式处理嵌入图像。
通过执行存储在程序存储器53中的程序,CPU52执行解码操作(下面将说明)。也就是说,利用图像的连续性,CPU52将存储在输入缓存器51中的嵌入图像解码成原始图像和附加信息。具体地说,CPU52通过从存储在输入缓存器51中的解码目标帧中检测变化对象像素值和变化值,恢复附加信息,并通过将变化值变成变化对象像素值,恢复原始图像。
程序存储器53以例如图6中所示程序存储器33相同的方式进行配置,它存储计算机程序和必要的数据,以便使CPU52执行解码操作。
帧存储器54以例如逐帧方式存储由CPU52恢复的图像,并将其输出。存储器55暂存由CPU52恢复的附加信息,并将其输出。
图12示出了图11所示解码器6的功能配置实例。通过CPU52执行存储在程序存储器53中的计算机程序,实现图12中所示的功能配置。
图12中所示的输入缓存器51、帧存储器54和存储器55分别与如上参照图11说明的那些部分相同。
频率分布计算部分61读出存储在输入缓存器51中的构成解码目标嵌入图像帧的像素值,计算频率分布,并将其提供到变化对象像素值/变化值确定部分62。变化对象像素值/变化值确定部分62查找变化对象像素值和变化值的像素值,它们是根据从频率分布计算部分61提供的像素值频率分布,在嵌入编码器3中从构成嵌入图像的像素值之中确定的,并将它们提供到像素值变化部分63。像素值变化部分63从变化对象像素值/变化值确定部分62的输出识别变化对象像素值和变化值。像素值变化部分63通过检测存储在输入缓存器51中的解码对象嵌入图像帧的变化对象像素值和变化值,来恢复嵌入在嵌入图像中的附加信息,并将恢复的附加信息提供到存储器55。然后,通过改变已进行的变化,从嵌入图像的变化值变为变化对象像素值,像素值变化部分63将嵌入图像解码成原始图像,并将解码图像提供到帧存储器54。
下面将参照图13的流程图,说明图12的解码器6中执行的解码处理。
输入缓存器51例如以逐帧方式顺序存储向其提供的嵌入图像(即编码数据)。
在步骤S21中,频率分布计算部分61读出存储在输入缓存器51中的解码对象嵌入图像帧,并确定构成该帧的像素值的频率分布。该频率分布被提供到变化对象像素值/变化值确定部分62。
当接收来自频率分布计算部分61的频率分布时,变化对象像素值/变化值确定部分62在步骤S22中根据该频率分布,查找由嵌入编码器3确定的变化对象像素值和变化值。
也就是说,如果假定,构成已经编码成嵌入图像的原始图像的像素值具有例如图14A中所示的连续频率分布,嵌入编码器3就将最高频率像素值P1确定为变化对象像素值。在图14A中,像素值可以取的范围是0至MAX,原始图像不会有像素值为小于或等于Pmin或者大于或等于Pmax的像素值(0<Pmin<Pmax<MAX)。
如果嵌入编码操作是由嵌入编码器3以下述方法执行的,某个小于或等于Pmin并且不存在于原始图像中的像素值P2被确定为变化值,所得的嵌入图像的像素值具有例如图14B所示的频率分布。变化对象像素值P1的频率变得明显低于附近像素值(即两例的相邻像素值)的频率,并且反过来,变化值P2的频率变得明显高于附近像素值的频率。
例如,如果按像素值增加的次序,像素值n的频率与像素值n+1的频率之差[(像素值n的频率)-(像素值n+1的频率),即频率差]被计算出,就如图15A中所示,在变化对象像素值P1的邻近(即当n=P1和n+1=P1时),频率差变得非常大,然后又变得非常小(即变得不连续)。或者,如图15B中所示,在变化值P2的邻近(即当n=P2和n+1=P2时),频率差变得非常小,然后又变得非常大(即变得不连续)。
因此,通过搜索频率差,能够查找由嵌入编码器3确定的变化对象像素值和变化值。按照这种方法,根据嵌入图像像素值的频率分布,变化对象像素值/变化值确定部分62查找由嵌入编码器3确定的变化对象像素值和变化值。
回到图13,变化对象像素值/变化值确定部分62将由嵌入编码器3确定的变化对象像素值和变化值输出到像素值变化部分63。然后处理进行到步骤S23。
在步骤S23中,像素值变化部分63读出存储在输入缓存器51中构成解码目标嵌入图像帧的最左上边像素的值。然后处理进行到步骤S24,像素值变化部分63对读出的像素值执行判断。如果在步骤S24中判断出,读出的像素值既不是变化对象像素值,也不是变化值,处理进行到步骤S28,其中像素值变化部分63将该像素值提供到帧存储器54,并将其存储在其中对应的地址上。因为在既不是变化对象像素值也不是变化值的像素中没有嵌入附加信息,所以对它不解码。
如果像素值变化部分63在步骤S24中判断出,读出的像素值等于变化对象像素值,则处理进行到步骤S25,其中作为附加信息的解码结果,像素值变化部分63将“0”和“1”中的“0”(与变化对象像素值对应),提供到存储器55,并将其存储在其中。然后处理进行到步骤S28,其中像素值变化部分63按照其原样将变化对象像素值提供到存储器54,并将其存储在其中对应的地址上。
如果像素值变化部分63在步骤S24中判断出,读出的像素值等于变化值,处理进行到步骤S26,其中像素值变化部分63将像素值从变化值改变为变化对象像素值,即原始像素值。处理进行到步骤S27,其中作为附加信息的解码结果,像素值变化部分63将“0”和“1”中的“1”(与变化值对应),提供到存储器55,并将其存储在其中。然后处理进行到步骤S28,其中像素值变化部分63将变化对象像素值(在步骤S26中像素值从变化值改变成该值),提供到存储器54,并将其存储在其中相应的地址上。
执行步骤S28以后,处理进行到步骤S29,其中判断在当前是解码目标的嵌入图像帧的所有像素是否都已经被读出。如果在步骤S29中判断出,作为当前解码目标的嵌入图像帧的所有像素还没有完全被读出,处理进行到步骤S23,其中读出下一步要根据光栅扫描次序处理的像素值。然后重复与上述相同的操作。
如果在步骤S29中判断出,作为当前解码目标的嵌入图像的所有像素都已经被读出,分别存储在帧存储器54和存储器55中的一个帧的解码图像和附加信息被读出和输出。然后处理进行到步骤S30,判断下面要被处理的嵌入图像帧是否存储在输入缓存器51中。如果判断出存储着上述的帧,处理返回到步骤S21,并将该帧用作解码对象,重复与上述相同的操作。
如果在步骤S30中判断出,下面要被处理的嵌入图像帧没有存储在输入缓存器51中,解码操作就结束了。
如上所述,利用图像的连续性,解码器6对附加信息被嵌入原始图像中的作为图像的编码数据和附加信息进行解码。因此不用任何解码开销,也能够将编码数据解码成原始图像和附加信息。因此也不会由于附加信息的嵌入,导致解码图像的任何变差。
在该实施例中,在嵌入编码处理中,根据附加信息,像素值变化部分43使像素值仍等于变化对象像素值,或者将其从变化对象像素值改变成变化值。但是当有2个或多个编码对象图像中不存在的像素值时,可以根据附加信息,使用例如这些像素值中的2个作为第一变化值和第二变化值,并且让像素值变化部分43将像素值从变化对象像素值改变成第一或第二变化值。当像素值变化部分43使像素值仍等于变化对象像素值,或者将其从变化对象像素值改变成变化值时,出现1个编码对象图像中不存在的像素值就足够了。另一方面,当像素值变化部分43将像素值从变化对象像素值改变成第一或第二变化值时,必须有2个或多个编码对象图像中不存在的像素值。在像素值变化部分43将像素值从变化对象像素值改变成第一或第二变化值的情况下,变化对象像素值在嵌入图像中消失。因此在解码器6中,根据嵌入图像的频率分布,更精确地查找变化对象像素值。
当有多个编码对象图像中不存在的像素值时,像素值变化部分43能够将所有多个像素值用作变化值,并且根据附加信息,将像素值从变化对象像素值改变成上述的变化值中的一个。在这种情况下,对每个像素嵌入2位或多位附加信息。
虽然在该实施例的嵌入编码处理中,编码对象图像的像素值是按照光栅扫描次序处理的,但是扫描的次序并不限于线扫描次序。也就是说,因为唯一的要求是要经频率分布计算的像素值被读出,所以可以沿到方向或斜线方向处理像素值。
虽然在该实施例中,频率分布计算部分41是以逐帧方式确定频率分布的,但也可以用其他方式确定频率分布。例如,一个帧可以分成几个块,频率分布可以用逐块方式确定,或者频率分布可以用多帧方式确定。
虽然在该实施例中,解码器6查找由嵌入编码器3确定的变化对象像素值和变化值,但是变化对象像素值和变化值可以作为开销(overhead)包括在嵌入图像中,因为它们是很少量的数据。
例如,当嵌入编码的目标图像是由R、G和B分量信号构成的彩色图像时,能够由嵌入编码器3对R、G和B中的每一个执行嵌入编码操作。
对于附加信息的类型没有特殊的限制。例如,图像、声音、文本、计算机程序、控制信号和其他种类的数据都可以用作附加信息。如果在图像数据库1中图像的一部分被用作附加信息,其余部分被提供到帧存储器31,用作附加信息的图像的部分嵌入其余部分中,因此实现了图像压缩。
虽然在该实施例中,处理的目标是图像,但它也可以是声音等,也就是说,它可以是任何具有连续频率曲线(histogram)形状的媒体。
虽然在该实施例中,附加信息本身被嵌入了,但是附加信息的特性参数,例如频率曲线、DR、方差等都可以被嵌入。
图16示出了图6中嵌入编码器3的功能配置的第二个实例。图16中与图7的相对应部分的那些部分被标以与其相同的附图标号,对其的说明将适当简略。也就是说,图16的嵌入编码器3是以与图7相同的方式配置的,除了前者另外具有差计算部分71以外。
差计算部分71使用与存储在帧存储器31中的构成编码对象图像的每个像素在空间上或时间上相接近的像素来作为参考像素,计算每个目标像素值与参考像素值之间的差相对应的差数据,并将该差存储在帧存储器31中。
例如,差计算部分71使用位于紧靠在构成编码对象图像每个像素的左面的像素来作为参考像素,从每个目标像素值减去参考像素的像素值,并在帧存储器31中存储减法结果作为差数据。因此在图16的实施例中,在频率分布计算部分41、变化对象像素值/变化值确定部分42和像素值变化部分43中,对由上述差数据构成的图像(即差图像)执行上述嵌入编码处理。
下面将参照图17的流程图,说明在图16的嵌入编码器3中执行的嵌入编码处理。
在图16的嵌入编码器3中,首先在步骤S40中,差计算部分71从每个像素减去一个位于紧靠在构成存储在帧存储器31中的编码对象图像每个像素的左面的像素的像素值,并且存储减法结果作为差数据。
在步骤S41至S51中,分别执行与图8所示步骤S1至S11中执行的操作相同的操作,从而对差数据,执行与上述参照图8说明的处理相同的嵌入编码处理,并将附加信息嵌入。
通过将附加信息嵌入由从目标像素值减去参考像素的像素值得到的差数据,而不是嵌入目标像素值本身,就能够由嵌入编码器3执行更高效的嵌入编码。
下面将对此进行说明。在上述实例中,差计算部分71使用位于紧靠在构成图像的每个像素左面的像素作为参考像素,并通过从每个目标像素值减去参考像素的像素值,计算差数据。因为相邻像素的像素值之间的差一般很小,所以差数据集中在接近为0的范围中。
当附加信息被嵌入差数据时,具有最高频率构成变化对象像素值的差数据数量,要比在将附加信息嵌入像素值本身的情况下的数量大得多。大量附加信息能够被嵌入上述极大数量的差数据中。
图18示出了解码器6的功能配置实例,该解码器对由图16中嵌入编码器3输出的编码数据进行解码。图18中与图12的相对应部分的那些部分被标以与其相同的附图标号,对其的说明将适当简略。也就是说,图18的解码器6是以与图12相同的方式配置的,除了前者新增设了差恢复部分81。
差恢复部分81将由存储在帧存储器54中的差数据构成的差图像恢复成原始图像。差恢复部分81将在计算每个差数据时用作参考像素的那个像素的像素值,加到存储在帧存储器54中的每个差数据,并且将所得相加值写入帧存储器54中作为原始像素值。
下面将参照图19的流程图,说明在图18的解码器6中执行的解码处理。
在图18的解码器6中,在步骤S61至S60中,对通过以上述的方式将附加信息嵌入差图像产生的编码数据,分别执行与图13所示步骤S21至S30中执行的操作相同的操作。在步骤S69与步骤S70之间执行的步骤S71中,差恢复部分71将存储在帧存储器54中的差数据恢复成原始像素值,并将其写入帧存储器54。
如上所述,由图16中嵌入编码器3输出的编码数据是附加信息嵌入差数据的编码数据。每个差数据被写入帧存储器54,作为对编码数据执行与图13中所示相应步骤S21至S28相同的步骤S61至S68的结果。在步骤S71中,差恢复部分81将在计算差数据时用作参考像素的那个像素的像素值,加到差数据上,并且将所得相加值写入帧存储器54中作为原始像素值。每个被写入帧存储器54的原始像素值,不仅作为图像的解码结果输出,而且在恢复位于紧靠在该原始像素值右边的像素的差数据时用作参考像素。
上述的解码处理实现了将大量附加信息嵌入其中的图像解码成原始图像以及解码附加信息。
由等式C=A-B得出差数据C,其中A表示嵌入编码对象像素的像素值,B表示位于紧靠在编码对象像素左边的参考像素的像素值。
如果构成编码对象图像的每个像素由N位表示,作为像素值之间简单的差的差数据C由最大为N+1位表示。例如,如果每个像素由8位表示,即作为0至255范围中的值,像素之间的简单差具有-255至+255范围中的值,并需要9位表示这样的值。差数据的位数大于原始像素值的位数的事实意味着嵌入编码对象数据量的增加,因此不是最好的。
如果每个差数据被表示为例如图20A和20B中所示,就能够避免上述位数的增加。
如果参考像素值B小于或等于编码对象像素值A,就从编码对象像素值A中减去参考像素值B,所得相减值本身形成差数据C。例如图20A中所示,如果编码对象像素值A是200,参考像素值B是10,200-10=190形成差数据C。
另一方面,如图20B中所示,如果参考像素值B大于编码对象像素值A,就从编码对象像素值A中减去参考像素值B,并将某个值加到所得相减值上,相加结果形成差数据C。也就是说,当每个像素值由N位表示时,2N被加到通过从编码对象像素值A中减去参考像素值B得到的相减值上,相加结果形成差数据C。例如图20B中所示,如果每个像素值由8位表示,编码对象像素值A和参考像素值B分别为10和200,10-200+28=66形成差数据C。
以上述方式计算的差数据的位数保持与原始像素值的位数相同。如果原始像素由N位表示,差数据也由N位表示。因此,能够避免嵌入编码对象数据量的增加。
以下述的方式,如上所述的差数据C被恢复成原始像素值(即编码对象像素值)A。
首先将差数据C加到参考像素值B上,得到相加值。如果像素值由N位表示,并且如果相加值小于或等于2N-1,相加值本身形成原始像素值A的恢复结果。
另一方面,如果差数据C和参考像素值B的相加值大于2N-1,就从相加值减去2N,结果相减值形成原始像素值A的恢复结果。
如上所述,无须增加位数,就能够表示某个像素值A与另一个像素值B之间的差,并且该差能够恢复成原始像素值A。
下面将参照流程图21说明,为了计算具有上述参照图20A和20B说明的表达式的差数据,在图16所示的差计算部分71中执行的差计算处理。
在差计算处理中,首先在步骤S81中判断,编码对象像素的像素值A是否大于或等于(或大于)参考像素的像素值B。如果在步骤S81中判断出,像素值A大于或等于像素值B,就从像素值A减去像素值B,输出所得相减值作为差数据C,并写入帧存储器31。
另一方面,如果在步骤S81中判断出,像素值A不大于或等于(或不大于)象素值B,处理进行到步骤S84,其中从像素值A减去像素值B。接着在步骤S84中,如果N位被赋值于像素值,2N被加到像素值A和B的相减值上,输出所得相加值作为差数据C,并写入帧存储器31。
下面将参照流程图22说明,为了恢复具有上述参照图20A和20B说明的表达式的差数据C,在图18所示的差恢复部分81中执行的差恢复处理。
在差恢复处理中,首先在步骤S91中,差数据C被加到在计算差数据C时用作参考像素(在本实施例中,紧靠在对应差数据C像素左边的像素)的像素的像素值B上,以便得到相加值A′。然后处理进行到步骤S92,其中如果N位被赋值于像素值,判断在步骤S91中计算的相加值A′是否小于或等于2N-1。如果在步骤S92中判断出,相加值A′小于或等于2N-1,处理进行到步骤S93,其中相加值A′本身被输出作为原始像素值A,并写入帧存储器54。
另一方面,如果在步骤S92中判断出,相加值A′不小于或等于2N-1(即相加值大于由N位表示的值),处理进行到步骤S94,其中从相加值A′减去2N,所得相减值形成原始像素值A。然后处理进行到步骤S95,其中差恢复部分81输出原始像素值A,并将其写入帧存储器54。
利用具有上述表达式的差数据,能够执行高效的嵌入编码,同时又能避免由于计算像素值之差导致的数据量增加。
具有上述表达式的差数据集中在接近0至2N-1的范围中。具体地说,图23A示出了某个一帧图像的像素值的频率分布。如果差计算部分71对该图像计算差数据,差数据应当具有图23B中所示的频率分布。图24A示出了另一个一帧图像的像素值的频率分布。如果差计算部分71对该图像计算差数据,差数据应当具有图243中所示的频率分布。应当指出,8位被赋值于图23A和图23B以及图24A和24B中的像素值。
一般地说,相邻像素的像素值彼此接近,因此具有很小的差。因此,具有上面参照图20A和20B所述表达式的差数据集中在接近0至255(=28-1)的范围中。
因此,能够嵌入大量的附加信息,同时又能避免由于差计算部分71进行差计算导致的数据量增加。也就是说,当嵌入编码器3将附加信息嵌入差数据时,具有最高频率形成变化对象像素值的差数据量远大于附加信息嵌入像素值本身的情况。在图23B和24B的每个实施例中,差数据的频率分布中最高频率接近像素值的频率分布中最高频率的10倍。嵌入编码器3能够将大量的附加信息嵌入极大数量的差数据中。
在图21中的差计算处理中计算差数据时,以及在图22差恢复处理中将差数据恢复成原始像素值时,根据例如各像素值之间的数量关系来转移(branch)处理。对数量关系的判断以及转移步骤,需要比算术运算和逻辑操作更多的处理时间。因此,希望无需上述判断或转移步骤,就能计算具有上述表示式的差数据。
图25示出了图16中差计算部分71的配置实例,用于无需任何判断或转移(branching)步骤,计算具有上述表达式的差数据。假定例如8位被赋值于构成编码对象图像的像素。
编码对象像素被提供到各运算器91,对该编码对象像素,要在存储在帧存储器31中的构成该编码对象图像的各像素之间计算差数据。用于在计算差数据时用作参考像素的像素(在本实施例中,即紧靠在编码对象像素左边的像素)被提供到运算器92。
不仅将上述编码对象像素提供到运算器91,而且将赋值于编码对象像素的由N位表示的数目中的最大数加1(即2N,下面称为位最大值)提供到运算器91。在本实施例中,因为编码对象像素的位数N为8,所以(28-1)+1=256被提供到运算器91。运算器91将编码对象像素值A和位最大值加在一起,并将所得相加值输出到运算器92。
运算器92从运算器91的输出中减去参考像素值,并将所得相减值提供到AND(与)门93的一个输入端。
位最大值减1(即由N位表示的数目的最大值,2N-1)作为掩蔽(mask)值被提供到与门93的另一个输入端,用于掩蔽除了运算器92输出的较低N位以外的位。与门93以逐位方式对运算器92的输出和掩蔽值进行与操作,从而提取运算器92输出的较低N位,并将该较低N位作为对编码对象像素的差数据输出。在该实施例中,因为编码对象像素的位数N为8,所以255作为掩蔽值被提供到与门93。因此,与门93输出运算器92输出的较低8位作为差数据。
下面将参照流程图26说明,为了计算对编码对象像素的差数据,在图25所示的差计算部分71中执行的差计算处理。
在差计算部分71中,首先在步骤S101中,运算器91将编码对象像素值和位最大值256(=2N)加在一起,并将所得相加值输出到运算器92。然后处理进行到步骤S102,其中运算器92从运算器91提供的相加值减去参考像素值,并将所得相减值输出到与门93。在步骤S103中,与门93用掩蔽值255掩蔽由运算器92提供的相减值(即以逐位方式对相减值和掩蔽值进行与操作),从而提取从运算器92输出的相减值的较低N位。该低N位作为对编码对象像素的差数据输出,并写入帧存储器31。差计算处理就结束了。
在图26的差计算处理中,所有存储在帧存储器31中的编码对象像素都被顺序处理。
在上述的差计算处理中,根据等式diff=(2N+data-ref)&(2N-1)计算N位差数据“diff”,其中“data”、“ref”和“diff”分别表示编码对象像素值、参考像素值和差数据,符号“&”表示逐位与操作。因此,无需任何判断或转移步骤,差计算部分71就能够计算差数据“diff”。也就是说,无需增加位数,差计算部分71就能够高速地计算差数据。
图27示出了图18中差恢复部分81的配置实例,用于无需任何判断或转移步骤,将具有上述表示式的差数据恢复成原始像素值。
存储在帧存储器54中的差数据,以及在计算差数据时用作参考像素值已经恢复的像素值都被提供到运算器101。或者,参考像素值也可以是在编码时没有作为差数据的密钥数据。运算器101将差数据和参考像素值加在一起,并且将所得相加值提供到与门102的一个输入端。
位最大值减1(即由N位表示的数目的最大值,2N-1)作为掩蔽值被提供到与门102的另一个输入端,用于掩蔽除了运算器101输出的较低N位以外的位。与门102以逐位方式对运算器101的输出和掩蔽值进行与操作,从而提取运算器101输出的较低N位,并将该较低N位作为差数据的恢复像素值输出。在该实施例中,因为如上所述位最大值为256(=28),所以255作为掩蔽值被提供到与门102。因此,与门102输出运算器101输出较低8位作为恢复像素值。
下面将参照流程图28说明,为了将差数据恢复成原始像素值,在图27所示的差恢复部分81中执行的差恢复处理。
在差恢复部分81中,首先在步骤S111中,运算器101将差数据和参考像素值加在一起,并将所得相加值提供到与门102。在步骤S112中,与门102用掩蔽值掩蔽由运算器101提供的相加值(即以逐位方式对相加值和掩蔽值进行与操作),从而提取从运算器101输出的相加值的较低N位。该较低N位作为恢复的像素值,即差数据的恢复原始像素值输出,并写入帧存储器54。差恢复处理就结束了。
所有存储在帧存储器54中的差数据都要顺序经过图28的差恢复处理。
在上述的差恢复处理中,根据等式data=(diff+ref)&(2N-1)来恢复N位原始像素值“data”,其中“data”、“ref”和“diff”分别表示原始像素值、参考像素值和差数据。因此,无需任何判断或转移步骤,差恢复部分81就能够高速地将其中不会产生位数增加的差数据“diff”,恢复成原始像素值“data”。
下面参照图29A至29C说明,计算机程序记录在其上的记录介质和通过传输媒体提供到计算机的信号,它们用于建立一种状态,使用于执行上述操作序列的程序被安装到计算机中,并成为可以由计算机执行的程序。
如图29A中所示,程序被预先记录在作为计算机601内装记录介质的硬盘602或半导体存储器603上。
或者如图29B中所示,程序被暂时或永久地记录在以下记录介质上,例如软盘611、CD-ROM(只读存储光盘)612、MO(磁光)盘613、DVD(数字通用盘)614、磁盘615或半导体存储器616。
除了从上述记录介质将程序安装在计算机中的方法以外,如图29C中所示,还能够通过用于数字卫星广播的人造卫星622,将程序从下载网址621无线地传输到计算机601,或者通过网络631,例如LAN(局域网)或互联网将程序从下载网址621有线地传输到计算机601,并将其安装到计算机601中,使其存储在例如计算机601内装的硬盘602中。
并不总是必须按照流程图所述的次序以时间上串行的方式,来执行为了执行本发明各种处理的每种处理的程序所描述的步骤,本发明还包括其中的步骤是以并行或单独方式执行的处理(即并行处理和对象(处理)。
图30示出了图29A和29C中所示的计算机601的配置实例。
如图30中所示,计算机601装有CPU(中央处理机)642。输入/输出接口645通过总线641连接到CPU 642。当通过输入/输出接口645接收由用户操纵输入部件647,例如键盘或鼠标器产生的指令时,CPU 642根据该指令执行存储在与图29A中半导体存储器603对应的ROM(只读存储器)634中的程序。作为该程序,执行图8、13、17、19、21、22、26或28中所示的流程。或者,CPU 642将程序装入RAM(随机存取存储器),所述程序是指存储在硬盘602中的程序,通过卫星622或网络631传输、由通信部件648接收并安装在硬盘602中的程序,或者从装在驱动器615中的软盘611、CD-ROM 612、MO盘613、DVD 614、磁盘615或半导体存储器616中读出并安装在硬盘602中的程序,并且执行该程序。例如当需要时,CPU 642通过输入/输出接口645,将处理结果输出到显示部件646,例如LCD(液晶显示器)。
虽然在上述实施例中,通过使CPU32和52分别执行计算机程序来执行嵌入编码操作和解码操作,但是这些操作能够通过专用硬件执行。
虽然在第二实施例中,差计算部分71计算某个像素的差数据时是将位于紧靠在目标像素左边的像素用作参考像素的,但是参考像素可以是其他像素,例如先前帧中在相同位置上的像素,或者在运动补偿后先前帧中位于相同位置上的像素。
当差计算部分71将位于紧靠在对其要计算差数据的像素左边的像素用作参考像素时,能够通过例如假定具有像素值为“0”的像素存在于最左边像素的左边来计算最左边像素的差数据。
Claims (17)
1.一种用于根据第二数据对具有连续频率曲线形状的第一数据编码的编码装置,其中包括:
频率分布计算装置,用于计算第一数据的频率分布;
确定装置,用于根据所述频率分布,从第一数据之中确定变化对象数据,并且用于根据所述频率分布,确定要从变化对象数据改变到的变化数据;和
编码装置,用于分别根据第二数据的各个二进制位的二进制值,而将第一数据中的各变化对象数据改变或不改变为变化数据,
其中,第一数据是由多个像素数据构成的图像数据。
2.根据权利要求1的编码装置,还包括用于存储第一数据和第二数据的存储器。
3.根据权利要求1的编码装置,其中:所述确定装置确定在第一数据的频率分布中具有最高频率的数据作为变化对象数据。
4.根据权利要求1的编码装置,其中:所述确定装置确定在第一数据的频率分布中具有频率为0的数据作为变化数据。
5.根据权利要求1的编码装置,其中:所述确定装置确定多个变化数据。
6.一种用于根据第二数据对具有连续频率曲线形状的第一数据进行编码的编码方法,其中包括步骤:
计算第一数据的频率分布;
根据频率分布,从第一数据之中确定变化对象数据,并且根据所述频率分布,确定要从变化对象数据变化到的变化数据;和
通过分别根据第二数据的各个二进制位的二进制值,而将第一数据中的各变化对象数据改变或不改变为变化数据,
其中,第一数据是由多个像素数据构成的图像数据。
7.根据权利要求6的编码方法,还包括步骤:读出第一数据和第二数据。
8.根据权利要求6的编码方法,其中:所述确定步骤确定在第一数据的频率分布中具有最高频率的数据作为变化对象数据。
9.根据权利要求6的编码方法,其中:所述确定步骤确定在第一数据的频率分布中具有频率为0的数据作为变化数据。
10.根据权利要求6的编码方法,其中:所述确定步骤确定多个变化数据。
11.一种用于对根据第二数据对具有连续频率曲线形状的第一数据编码而产生的编码数据进行解码的解码装置,其中已分别根据第二数据的各个二进制位的二进制值,而将第一数据中的各变化对象数据改变或不改变为变化数据,该解码装置包括:
频率分布计算装置,用于计算所述编码数据的频率分布;
确定装置,用于根据所述频率分布,从所述编码数据之中,确定变化对象数据和已经从变化对象数据改变到的变化数据;和
解码装置,用于通过进行从变化数据到变化对象数据的变化,将编码数据解码成原始第一数据,并且根据变化数据和变化对象数据的出现,分别为第二数据的各个二进制位赋予不同的二进制值,从而恢复嵌入所述编码数据的第二数据,
其中,第一数据是由多个像素数据构成的图像数据。
12.根据权利要求11的解码装置,其中:所述确定装置从所述编码数据之中,确定在频率分布变化不连续处的数据作为变化对象数据或变化数据。
13.根据权利要求11的解码装置,其中:所述确定装置确定多个变化数据。
14.一种用于对根据第二数据对具有连续频率曲线形状的第一数据编码而产生的编码数据进行解码的解码方法,其中已分别根据第二数据的各个二进制位的二进制值,而将第一数据中的各变化对象数据改变或不改变为变化数据,该解码方法包括步骤:
计算所述编码数据的频率分布;
根据所述频率分布,从编码数据之中,确定变化对象数据和已经从变化对象数据改变到的变化数据;和
通过进行从变化数据到变化对象数据的变化,将编码数据解码成原始第一数据,并且根据变化数据和变化对象数据的出现,分别为第二数据的各个二进制位赋予不同的二进制值,从而恢复嵌入编码数据的第二数据,
其中,第一数据是由多个像素数据构成的图像数据。
15.根据权利要求14的解码方法,其中:所述确定步骤从所述编码数据之中,确定在频率分布变化不连续处的数据作为变化对象数据或变化数据。
16.根据权利要求14的解码方法,其中:所述确定步骤确定多个变化数据。
17.一种数据处理系统,用于根据第二数据将具有连续频率曲线形状的第一数据编码成编码数据并解码该编码数据,其中包括:
第一频率分布计算装置,用于计算第一数据的频率分布;
第一确定装置,用于根据由第一频率分布计算装置计算的频率分布,从第一数据之中确定变化对象数据,并且用于确定要从变化对象数据变化到的变化数据;
编码装置,用于分别根据第二数据的各个二进制位的二进制值,而将第一数据中的各变化对象数据改变或不改变为变化数据;
第二频率分布计算装置,用于计算所述编码数据的频率分布;
第二确定装置,用于根据由第二频率分布计算装置计算的频率分布,从编码数据之中确定变化对象数据,以及已经从变化对象数据变化到的变化数据;和
解码装置,用于通过进行从变化数据到变化对象数据的变化,将编码数据解码成原始第一数据,并且根据变化数据和变化对象数据的出现,分别为第二数据的各个二进制位赋予不同的二进制值,从而恢复嵌入在所述编码数据中的第二数据,
其中,第一数据是由多个像素数据构成的图像数据。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP285309/1998 | 1998-10-07 | ||
JP28530998 | 1998-10-07 | ||
JP285309/98 | 1998-10-07 | ||
JP129919/1999 | 1999-05-11 | ||
JP12991999 | 1999-05-11 | ||
JP129919/99 | 1999-05-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1259828A CN1259828A (zh) | 2000-07-12 |
CN1242619C true CN1242619C (zh) | 2006-02-15 |
Family
ID=26465179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB991259904A Expired - Fee Related CN1242619C (zh) | 1998-10-07 | 1999-10-07 | 编码装置和方法、解码装置和方法、以及数据处理系统 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0993194B1 (zh) |
KR (1) | KR100711012B1 (zh) |
CN (1) | CN1242619C (zh) |
DE (1) | DE69943073D1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3651319B2 (ja) | 1999-07-16 | 2005-05-25 | 日本ビクター株式会社 | 電子透かし情報記録方法、再生方法、及び電子透かし情報記録装置、再生装置 |
US6931536B2 (en) * | 2001-03-06 | 2005-08-16 | Macrovision Corporation | Enhanced copy protection of proprietary material employing multiple watermarks |
EP2568463A1 (en) * | 2011-09-08 | 2013-03-13 | Thomson Licensing | Methods and devices for protecting digital objects through format preserving coding |
GB2527607B (en) * | 2014-06-27 | 2016-10-05 | Gurulogic Microsystems Oy | Encoder, decoder and method |
CN104581120A (zh) * | 2015-01-23 | 2015-04-29 | 深圳超多维光电子有限公司 | 图像信息保存方法、保存装置、立体图像生成方法和装置 |
KR101963557B1 (ko) * | 2017-08-31 | 2019-03-28 | 주식회사 알고리고 | 이종 데이터 임베딩을 이용한 전기차 전력 수요 예측 장치 |
KR101963558B1 (ko) * | 2017-08-31 | 2019-03-28 | 주식회사 알고리고 | 어텐션 매트릭스를 이용한 전기차 전력 수요 예측 장치 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3136760B2 (ja) * | 1991-08-08 | 2001-02-19 | 松下電器産業株式会社 | チップ型3端子コンデンサ |
JPH0635828A (ja) * | 1992-07-17 | 1994-02-10 | Matsushita Electric Ind Co Ltd | 処理分岐方法 |
JPH0762764A (ja) * | 1993-08-31 | 1995-03-07 | Matsushita Electric Works Ltd | 構築材、構築材ユニット、ブロック構築体及びブロック構 築体の施工方法 |
KR970008408A (ko) * | 1995-07-31 | 1997-02-24 | 배순훈 | 광로 조절 장치의 다층 배선 평탄화 방법 |
JP3649537B2 (ja) | 1996-11-27 | 2005-05-18 | 日本アイ・ビー・エム株式会社 | データハイディング方法及びデータ抽出方法 |
CA2227381C (en) * | 1997-02-14 | 2001-05-29 | Nec Corporation | Image data encoding system and image inputting apparatus |
JP3775508B1 (ja) * | 2005-03-10 | 2006-05-17 | 株式会社リコー | 半導体装置の製造方法及び半導体装置 |
KR100635828B1 (ko) * | 2005-04-25 | 2006-10-19 | 엘지전자 주식회사 | 청소용 로봇의 청소 주행방법 |
-
1999
- 1999-10-06 KR KR1019990043067A patent/KR100711012B1/ko not_active IP Right Cessation
- 1999-10-07 DE DE69943073T patent/DE69943073D1/de not_active Expired - Lifetime
- 1999-10-07 CN CNB991259904A patent/CN1242619C/zh not_active Expired - Fee Related
- 1999-10-07 EP EP99307915A patent/EP0993194B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1259828A (zh) | 2000-07-12 |
KR100711012B1 (ko) | 2007-04-25 |
EP0993194A2 (en) | 2000-04-12 |
EP0993194A3 (en) | 2001-04-18 |
EP0993194B1 (en) | 2010-12-29 |
KR20000028879A (ko) | 2000-05-25 |
DE69943073D1 (de) | 2011-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1193620C (zh) | 视频编码器的运动估计方法及系统 | |
CN1213382C (zh) | 用于从多值图象提取划线的设备 | |
CN1301492C (zh) | 图像处理装置 | |
CN1910931A (zh) | 视频编码方法及装置、视频解码方法及装置、其程序及记录该程序的记录介质 | |
CN1535024A (zh) | 视频编码设备、方法和程序及视频解码设备、方法和程序 | |
CN1180627C (zh) | 图像编码/解码方法,图像编码装置和图像解码装置 | |
CN1477852A (zh) | 图像处理设备、图像处理方法以及图像处理程序的存储介质 | |
CN1496100A (zh) | 电子水印嵌入装置、电子水印检测装置、及其方法和记录媒体 | |
CN1487725A (zh) | 信息埋入装置、编码装置、更改检测装置及其方法 | |
CN1612614A (zh) | 帧内预测编码方法 | |
CN1557099A (zh) | 图像编码装置、图像编码方法、图像解码装置、图像解码方法和通信装置 | |
CN1212561A (zh) | 图象处理方法、图象处理装置、和数据存储媒体 | |
CN1231100A (zh) | 图像编码器、图像解码器、和图像处理器及其方法 | |
CN1627786A (zh) | 图像处理系统以及图像处理方法 | |
CN1172537C (zh) | 活动图象解码方法、活动图象解码装置及程序记录媒体 | |
CN1242619C (zh) | 编码装置和方法、解码装置和方法、以及数据处理系统 | |
CN1311692C (zh) | 动态矢量检出装置以及动态矢量检出方法 | |
CN1240225C (zh) | 图像编码装置以及图像编码方法 | |
CN1227624C (zh) | 物体领域信息产生方法和设备 | |
CN1238645A (zh) | 图象处理装置、图象处理方法、图象数据结构和数据存储介质 | |
CN1777287A (zh) | 图像解码装置、程序、方法、及图像编码装置、程序、方法 | |
CN1932836A (zh) | 网格方向、比例、变换和调制估算 | |
CN1833449A (zh) | 发送装置、图像处理系统、图像处理方法、程序及记录媒体 | |
CN1115054C (zh) | 图像信号编码、解码装置及方法 | |
CN1816129A (zh) | 记录装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060215 Termination date: 20131007 |