编/解码设备和方法、数据处理系统、存储介质及信号的制作方法

文档序号:7583535阅读:122来源:国知局
专利名称:编/解码设备和方法、数据处理系统、存储介质及信号的制作方法
技术领域
本发明涉及编码设备和方法、解码设备和方法、数据处理系统、存储介质以及信号。特别是,本发明涉及不造成解码数据的恶化和不增大数据量而能把信息嵌入数据的编码设备和方法、解码设备和方法、数据处理系统、存储介质以及信号。
嵌入信息而不增大数据量的一种技术例如是把数字音频数据的LSB或最低两个比特变换为待嵌入信息。在这种技术中,利用了数字音频数据的最低一个或两个比特对声音质量没有显著影响的事实,并且数字音频数据的最低一个或两个比特简单地被待嵌入信息所代替。因此,在再现时,嵌入信息的数字音频数据被原样输出,即不把最低一个或两个比特恢复到原始状态。具体来说,由于难于把嵌入了最低一个或两个比特的信息恢复到原始状态,以及最低一个或两个比特不对声音质量有显著影响,所以就输出包含有嵌入信息的数字音频数据。
但是,在上述技术,输出了不同于原始信号的信号。因此,如果信号是音频数据,则对声音质量有影响,如果信号是视频数据,则对图像质量有影响。
本发明的目的是解决上述问题。
为了实现上述目的,本发明提供了按照第二数据编码第一数据的编码设备,该编码设备包括一存储器,用于存储第一数据的至少部分部分;以及一编码部分,通过按照第二数据旋转存储在存储器中的所述至少部分数据而把与第二数据相关的数据嵌入第一数据。
为了实现上述目的,本发明提供了解码其中的第一数据已按照第二数据进行了编码的编码数据的解码设备,该解码设备包括旋转编码数据的至少部分数据的旋转部分;计算被旋转部分旋转的至少部分数据和该至少部分数据的外围数据之间的相关性的相关性计算部分;通过根据相关性计算装置获得的相关性确定被旋转部分旋转的编码数据的至少部分数据的旋转量来解码嵌入编码数据中的第二数据的第二数据解码部分;以及根据第二数据解码部分确定的旋转量把编码数据解码为原始第一数据的第一数据解码部分。


图1是表示应用了本发明的图像传输系统一实施例的方框图。
图2表示本发明中要被编码的物体的图像。
图3A是表示在本发明一实施例中在利用相关性或解码结果编码一图像之前该图像的简要图示。
图3B是表示在本发明一实施例中利用相关性已编码了一图像的结果的简要图示。
图4A是表示在本发明一实施例中利用连续性或解码结果编码一图像之前该图像的简要图示。
图4B是表示在本发明一实施例中利用连续性已编码了一图像的结果的简要图示。
图5A是表示在本发明一实施例中在利用相似性或解码结果编码一图像之前该图像的简要图示。
图5B是表示在本发明一实施例中利用相似性已编码了一图像的结果的简要图示。
图6是表示图1的嵌入编码器3的硬件结构实例的方框图。
图7是表示图6的嵌入编码器3的功能结构实例的方框图。
图8是表示图7的嵌入编码器3的操作的流程图。
图9A是在图8步骤S5的旋转之前的图示。
图9B是表示图8步骤S5的旋转的第一个步骤的图示。
图9C是表示图8步骤S5的旋转的第二个步骤的图示。
图10A是表示在执行嵌入编码器3的处理之前的图像的图示。
图10B是表示在执行了嵌入编码器3的处理之后的图像的图示。
图11是表示图1的解码器6的硬件结构实例的方框图。
图12是表示图11的解码器6的功能结构实例的方框图。
图13A是表示提供给图12的行相关性计算部分46的编码图像的图示。
图13B是表示在图12的行相关性计算部分46中执行旋转操作的状态。
图14是说明图12的解码器6的操作的流程图。
图15A是表示沿图像垂直方向执行旋转操作的一个例子。
图15B是表示沿图像的倾斜方向执行旋转操作的一个例子。
图16A表示安装了执行本发明处理的程序的一个计算机。
图16B表示存储执行本发明处理的程序的各种存储介质。
图16C表示通过卫星或网络在计算机中分配执行本发明处理的程序的原理。
图17是安装了执行本发明处理的程序的计算机一实例的方框图。
以下参看附图描述本发明的编码设备和方法、解码设备和方法、数字处理系统、存储介质以及信号。
图1表示应用了本发明图像传输系统一实施例的示例性结构。术语“系统”指多台设备的逻辑集合,构成的各台设备是否在同一个壳体内与该术语的定义无关。
该图像传输系统包括编码设备10和解码设备20。编码设备10编码例如图像这样的对象,输出编码数据。解码设备20把编码数据解码为原始图像。
图像数据库1存储待编码图像,例如数字图像。存储的图像从图像数据库1中读出,提供给嵌入编码器3。
附加信息数据库2把附加信息,例如数字数据,作为要被嵌入是编码对象的图像中去的信息进行存储。存储的附加信息从附加信息数据库2中读出,也提供给嵌入编码器3。
嵌入编码器3从图像数据库1接收图像,从附加信息数据库2接收附加信息。嵌入编码器3根据附加信息数据库2提供的附加信息以这样一种方式编码图像数据库1提供的图像即解码将利用图像的能量偏差来执行,并输出所获得的图像。就是说,嵌入编码器3通过以这样一种方式把附加信息嵌入图像来编码图像即解码将利用图像的能量偏差来执行,并输出编码数据。嵌入编码器3输出的编码数据记录在例如半导体存储器、磁-光盘、磁盘、光盘、磁带或相变光盘这样的记录介质4上。或者,编码数据作为信号通过例如地面波、卫星信道、CATV(有线电视)网、互联网或公用线路这样的传输介质5进行传输,并传送给记录设备20。
解码设备20是解码器6,它接收经由记录介质4或传输介质5传送来的编码数据。解码器6利用图像的能量偏差把编码数据解码为原始图像和附加信息。解码图像提供给例如监视器(未示出),并在其上显示。解码附加信息是与图像有关的文本数据、音频数据、压缩图像等。
以下说明图1所示嵌入编码器3的嵌入编码和同样示于图1的解码器6的解码的原理。
一般来说,被称为信息的东西具有能量偏差,这种偏差被看作是有用信息。例如,拍摄某一景物得到的图像之所以被人看作是该景物的图像的原因是该图像,例如组成该图像的各个像素的像素值具有对应于该景物的能量偏差。没有能量偏差的图像只是噪声等,是无用信息。
因此,即使有用信息的原始能量偏差比如说因对该信息执行某种处理而被破坏,但通过从被破坏处起恢复原始能量偏差就能够恢复该有用信息。就是说,通过利用信息的原始能量偏差能够把通过编码信息获得的编码数据解码为原始信息。
例如,信息的能量偏差可用相关性、连续性和相似性等来表示。
信息的相关性指各组成元素(在图像的情况下,是组成该图像的各像素、行等)之间的相关性,例如信息的某一组成元素和另一组成元素之间的自相关或距离。相关性的一个例子是一图像的两行间的相关性,它是用对应像素值之间的差的平方和来表示的相关值。
例如,现在假设如图2所示由H行102组成一图像101,一般来说,如图3A所示,图像顶部第一行103和其它每一行之间的相关值在所述其它行靠近第一行103(即位于图2图像较高位置处)时较大,如所示的第M行的相关值201较大,而在所述其它行远离第一行103(即位于图2图像较底位置处)时较小,如所示的第N行的相关值202较小。就是说,有这样的相关值偏差,对于靠近第一行103的行来说,其与第一行103的相关值较大,而对于远离第一行103的行来说,其与第一行103的相关值就较小。
在图2的图像101中,执行交换相对靠近第一行103的第M行104的像素值和相对远离第一行的第N行105的像素值这样的操作。行交换图像101的第一行103和其它行之间的相关值例如如图3B所示。
在行交换图像101中,与靠近第一行103的第M行104的相关值变小,如第M行的相关值203所示,而与远离第一行103的第N行105的相关值变大,如第N行的相关值204所示。
因此,在图3B中,靠近第一行103的行的相关值较大而远离第一行103的行的相关值较小的相关偏差被破坏。但是,利用靠近第一行103的行的相关值较大而远离第一行103的行的相关值较小的相关偏差可把被破坏的图像的相关偏差恢复为原始状态。在图3B中,靠近第一行103的第M行104的相关值小而远离第一行103的第N行105的相关值大的事实显然是反常的,因此应通过互换第M行104和第N行105来恢复原始的相关偏差。通过互换图3B中的第M行104和第N行105就恢复了具有图3A所示相关偏差的图像,即原始图像101。
在以上参看图2、3A和3B进行说明的情形中,图像的编码是通过交换行来实现的。在编码过程中,例如,嵌入编码器3根据附加信息确定应当移动和交换哪些行。另一方面,解码器6通过利用编码图像的相关性将被交换的行移回它们原来的位置而从编码图像、即行交换图像恢复原始图像。此外,与此同时,在解码过程中,解码器6通过例如检测哪些行已被移动和交换来恢复嵌入图像的附加信息。
就信息的连续性来说,假设对于图像的某一行,观察到图4A所示像素值的变化模式为连续的波形301。在与上一行隔开一定距离的另一行中,观察到连续性不同于上一行变化模式的像素值变化模式;同样存在连续性偏差。就是说,当注意某种像素值变化模式时,会发现连续性的偏差,即在一邻近位置存在相同的像素值变化模式,但随着远离该位置,像素值变化模式变得很不相同。
例如,如图4A所示,像素值变化模式为连续的部分波形301被与波形301隔开一定距离的、具有图4B所示不同的像素值变化模式的波形302所代替。
在图4B的情况下,上述连续性偏差被破坏。但是,通过利用彼此相邻部分具有连续的像素值变化模式以及这些像素值变化模式在彼此相邻距离变大时变得很不相同的连续性偏差,能够恢复被破坏的连续性偏差。具体来说,在图4B中,部分波形的像素值变化模式302明显与其它部分的像素值变化模式不同,因此,通过用具有与其它部分的像素值变化模式相同的像素值变化模式的波形代替像素值变化模式302,就能够恢复原始图像的连续性偏差。通过执行这种替换可从图4B所示波形恢复图4A所示波形,即原始波形。
在以上参看图4A和4B进行说明的情形中,图像编码是用与邻近像素值变化模式很不相同的像素值变化模式代替部分波形。例如,在编码过程中,嵌入编码器3根据附加信息确定哪部分波形的像素值变化模式应当有显著的变化和像素值变化模式要显著变化到什么程度。解码器6通过利用相邻像素值变化模式是连续的和这些像素值变化模式在彼此远离时变得很不相同的连续性偏差,就可从编码信号、即从其某部分的像素值变化模式很不相同的波形恢复原始波形。此外,在解码过程中,与此同时,解码器6通过例如检测哪部分波形的像素值变化模式有显著变化和像素值变化模式发生了多大的变化来恢复嵌入的附加信息。
就信息的相似性来说,已知例如拍摄一景物得到的图像的一部分是利用分形、即图像的自相似性(autosimilarity)来产生的。例如,图5A所示大海401和森林402的拍摄图像具有这样的相似性偏差即大海401一部分的像素值变化模式和大海401另一部分的像素值变化模式之间的相似程度较高,但该同一部分的像素值变化模式和与大海401隔开一定距离的森林402中某部分的像素值变化模式之间的相似程度较低。不仅像素值变化模式的相似性如此,形状本身、例如图像的边缘形状模式的相似性也同样如此。
例如,图5A所示大海401的一部分403如图5B所示被森林402的一部分404所代替。
在图5B中,上述相似性偏差被破坏。但是,通过利用相邻像素值变化模式的相似程度较高和这种相似程度随着像素值变化模式彼此远离而减小的相似性偏差,就能够恢复被破坏的相似性偏差。具体来说,在大海401的部分图像变成了森林402的部分图像405的图5B中,大海401一部分和森林402的图像的替代部分405之间的相似程度显然比大海401的图像之内的各部分之间的相似程度低。通过用具有与在部分405周围的大海401的图像的性质相同的性质的图像、即大海401的图像的一部分406来代替变成了森林402的图像的那部分405,就恢复了原始图像的相似性偏差。通过执行这种替换就从图5B所示的图像恢复了图5A所示的图像,即原始图像。
在以上参看图5A和5B说明的情形中,图像编码是用森林402的图像的一部分404代替大海402的图像的一部分403。在编码过程中,例如,嵌入编码器3根据附加信息确定大海401的图像的哪一部分(例如图像上的某一位置)应当用森林402的图像的部分404来代替。解码器6通过利用相邻像素值变化模式的相似程度较高和这种相似程度随着像素值变化模式彼此远离而减小的相似性偏差,就从编码信号、即从具有森林402的图像的部分405的大海401的图像恢复了图5A所示的原始图像。此外,在解码过程中,与此同时,解码器6通过例如检测大海401的图像的哪一部分被森林402的部分图像代替就恢复了嵌入的附加信息。
如上所述,嵌入编码器3根据附加信息对编码对象图像进行编码,使得利用该图像的能量偏差就能够进行解码。解码器6利用图像的能量偏差不需要任何额外解码开销就把编码数据解码为原始图像和附加信息。
由于附加信息被嵌入到编码对象图像,所以得到的编码图像与原始状态不同,不会被认为是有用信息。就是说,实现了对编码对象图像的加密,无任何额外开销。
此外,还实现了完全可逆的数字水印。例如,在普通数字水印中,对图像质量无显著影响的像素值的最低比特被简单地改变成为对应于数字水印的值。但难以将这些最低比特恢复为原始值。因此,改变最低比特作为数字水印在一定程度上降低了解码图像的图像质量。在本发明的嵌入编码中,在利用原始图像的能量偏差解码编码数据的情况下,获得了质量没有降低的原始图像和附加信息。因此,即使把附加信息用作数字水印信息也不会降低解码图像的图像质量。
由于通过把编码数据解码为图像就取出了嵌入的附加信息,所以不需要任何额外开销就提供了次要信息。换句话说,由于把附加信息嵌入图像但不需要通常所需的任何额外开销来提取该附加信息,所以执行嵌入操作获得的编码数据就被压缩了等于该附加信息的量。例如,如果把一半图像作为编码对象而把另一半图像作为附加信息,并把后一半图像嵌入到半个图像中去作为编码对象,就简单地把图像压缩为原始图像的二分之一。
由于编码数据是利用原始图像的能量偏差来解码的,这种能量偏差可以说是一种统计量,所以抗差错能力较强。就是说,实现了编码可靠性高的增强编码。
由于编码数据是利用原始图像的能量偏差来解码的,所以可在能量偏差更具有特性、即对于图像来说在其具有更高活动度和更低冗余度时嵌入更多的附加信息。如上所述,通过嵌入附加信息获得的编码数据被压缩了等于该附加信息的量。就是说,当图像活动度较大和冗余度较小时,压缩比较大。例如,在作为一种普通编码方案的MPEG(运动图像专家组)方案中,当图像活动度较大和冗余度较小时,压缩比通常较小。本发明的嵌入编码方案在这方面与普通编码方案截然不同。
通过把图像作为编码对象和把与图像不同的媒体信息、例如声音作为附加信息,就能够利用声音作为关键码来提供图像。具体来说,在编码设备10侧,把订立合同者发出的声音“芝麻开门(Open sesame)!”作为附加信息嵌入图像之中。在解码设备20侧,使用者必须发出“芝麻开门!”的声音,把该声音与嵌入图像的声音作比较来执行说话人识别。这种说话人识别使得仅当该使用者被确认是订立合同者时才自动地提供图像。可以用声音波形本身以及称作声音的特征参数的东西作为附加信息。
相反地,通过把声音作为编码对象和把与声音不同的媒体信息、例如图像作为附加信息,就能够利用图像作为关键码来提供声音(例如脸部识别之后的声音响应)。具体来说,在编码设备10侧,例如把用户脸部的图像作为对用户的响应嵌入声音之中。在解码设备20侧,拍摄用户的脸部,输出其中被嵌入了与该拍摄图像匹配的脸部图像的声音。这样就实现了发出对各个用户来说为不同的声音响应的声音系统。
还可以把某种媒体的信息嵌入到同种媒体的其它信息之中,例如把一种声音嵌入另一种声音或把一幅图像嵌入另一幅图像。此外,通过嵌入订立合同者的声音和脸部图像,就实现了所谓的双关键码系统,即只有当用户的声音和脸部图像与嵌入图像的声音和脸部图像一致时,才提供该图像。
例如,还可以把构成电视广播信号的比如说彼此同步的图像和声音这两种媒体中的一种嵌入到另一种之中。在这种情况下,可实现所谓的真集成信号,即在这种信号中,不同媒体的信息段彼此集成在一起。
如上所述,在本发明的嵌入编码方案中,当信息的能量偏差呈现更特殊特性时,可在该信息中嵌入更大量的附加信息。因此,例如通过在两项信息中自适应地选择其能量偏差具有更特殊特性的那项信息,而把另一项信息嵌入到该被选定的信息中去,就能够控制整个数据量。就是说,可以使这两项信息中的一项信息容纳另一项信息的数据量。控制整个数据量能够利用与传输线的传输带宽和使用状态以及与传输环境的其它因素兼容的数据量来实现信息传输(即环境自适应网络传输)。
例如,通过把压缩图像嵌入原始图像或通过把抽取的声音嵌入原始声音之中,则实现了不增大数据量就能够产生具有比较低层信息量少的信息量的较高层信息的编码(称为分层编码)。
例如,通过在各原始图像中嵌入用作检索各原始图像的关键码的一图像,就实现了根据关键图像检索原始图像的数据库。
图6表示图1所示嵌入编码器3的示例性硬件结构,这一结构执行嵌入编码,其中把附加信息嵌入图像,使得利用该图像的相关性能够恢复原始图像。
来自图像数据库1的图像传送给帧存储器31。帧存储器31例如逐帧地暂存来自图像数据库1的图像。
CPU(中央处理单元)32执行存储在程序存储器33内的程序,其所执行的控制将使得后面所述的嵌入编码处理可被执行。就是说,CPU32接收附加信息数据库2传送的附加信息,并对整个嵌入编码器进行控制,以便可按照程序把附加信息嵌入存储在帧存储器31的图像之中。具体来说,CPU32例如根据附加信息沿水平方向旋转构成存储在帧存储器31内的图像的一个水平行,即沿水平方向排列的一系列像素,以便其所作的控制能把该附加信息嵌入每一行。被嵌入附加信息的图像被CPU32控制而作为编码数据输出。
程序存储器33由例如ROM(只读存储器)或RAM(随机存取存储器)组成。使CPU32执行嵌入编码处理的计算机程序和必要的数据存储在程序存储器33内。
帧存储器31由多个存储单元组成,以便存储多个帧。在帧存储器31内,存储了来自图像数据库1的图像,存储了作为CPU 32的嵌入编码处理对象的图像,并在嵌入编码处理之后输出一图像,就是说,通过改变存储单元同时输出编码数据。即使来自图像数据库1的图像是运动图像,编码数据也被实时地输出。
图7表示图6的嵌入编码器3的功能结构实例。存储在程序存储器33内的计算机程序由CPU 32执行,以便实现图7所示的功能结构。
如对图6所描述的那样,帧存储器31暂存来自图像数据库1的图像。行滑动部分36从附加信息数据库2读出附加信息,沿水平方向把构成存储在帧存储器31内的图像的一预定行旋转对应于该附加信息的旋转量,以便该附加信息被嵌入该行和作为编码数据被输出。
参看图8的流程图,描述在图7的嵌入编码器3中执行的嵌入编码处理。
存储在图像数据库1内的图像被读出,并被顺序地传送和存储在帧存储器31内。
行滑动部分36在步骤S1读出构成存储在帧存储器31内的图像的一预定行。处理操作到达步骤S2,判断读出的行、即标记行是否是第一行,即一帧图像的最上一行。在步骤S2中,如果标记行是第一行,处理操作就到达步骤S3,行滑动部分36直接输出该第一行作为编码数据,处理操作跳过步骤S4至S6,到达步骤S7。
在步骤S2,如果确认标记行不是第一行,即如果该标记行是第二行之后的某一行,处理操作就到达步骤S4,行滑动部分36从附加信息数据库2中读出要被嵌入标记行的附加信息,处理操作到达步骤S5。在步骤S5,行滑动部分36沿水平方向将标记行旋转对应于在步骤S4读出的附加信息的像素个数。
就是说,例如如图9A所示,假定第N行(N≠1)是标记行。如图9B所示,行滑动部分36沿水平方向的向左或向右、例如向右将第N行滑动等于附加信息值的像素个数。行滑动部分36如图9C所示把第N行因向帧右侧滑动而突出的部分插入第N行的左侧。
在附加信息是图像数据的情况下,不是如上所述把第N行旋转等于附加信息值的像素个数,而是可按照其特征量、即直方图、DR、色散等旋转第N行。
在行滑动部分旋转了标记行后,处理操作到达步骤S6,行滑动部分36在旋转后输出标记行作为编码数据,然后,处理操作到达步骤S7。
在步骤S7,判断没有被读出的图像是否存储在帧存储器31内,如果确认存储了这种图像,处理操作就返回步骤S1,例如读出比标记行低一行的行或新帧的第一行作为新的标记行,然后重复同样的处理。
如果在步骤S7确认没有被读出的图像没有存储在帧存储器31内,就结束嵌入编码处理。
根据上述嵌入编码处理,某一帧的图像被如下地编码成为编码数据就是说,例如,在如图10A所示把10、150、200作为附加信息嵌入图像的情况下,第一行如图10B所示被原样输出,第二行被向右旋转等于第一附加信息值的10个像素。此外,第三行被向右旋转等于第二附加信息值的150个像素。第四行被向右旋转等于第三附加信息值的200个像素。第五行和后面的行被同样向右旋转对应于附加信息的像素个数。
如上所述,在行滑动部分36把构成存储在帧存储器31内的图像的一行向右旋转对应于附加信息的像素个数从而把该附加信息嵌入每一行的情形中,通过执行反向旋转来解码原始图像,这种反向旋转就变成了附加信息。因此,附加信息就被嵌入了图像之中,而图像质量没有降低,数据量也没有增大。
就是说,通过利用图像的相关性、即关于在正确位置处的行的相关性,不需要额外开销就可把作为其中被嵌入了附加信息的行的旋转行反向旋转至正确的位置,并解码了附加信息。因此,在所获得的解码图像中不会出现因嵌入附加信息造成的图像质量的下降。
在编码数据中不存在位于正确位置的行的情况下,就难于如上所述地利用图像的相关性来解码图像和附加信息。在图8的嵌入编码处理中,每帧的第一行直接作为编码数据输出,不嵌入附加信息,即不执行旋转。
图11表示图1的解码器6的硬件的一结构实例,它利用图像的相关性把图7的嵌入编码器3输出的编码数据解码成为原始图像和附加信息。
编码数据、即已被嵌入了附加信息的图像或嵌入图像传送给帧存储器41。帧存储器41以例如帧为单位暂存嵌入图像。帧存储器41的构成也类似于图6的帧存储器31,同样执行存储单元的改变,以便即使嵌入图像是运动图像也能够执行实时处理。
CPU 42执行存储在程序存储器43内的程序,以便完成下述的解码处理。就是说,CPU 42通过利用图像的相关性把存储在帧存储器41内的嵌入图像解码成为原始图像和附加信息。具体来说,CPU 42计算构成嵌入图像的一行关于比其高一行的行的相关值,同时对于例如每一个像素把行向水平方向旋转。CPU 42在相关值为最大值时输出旋转量作为附加信息的解码结果,并执行该旋转量的旋转,以便输出解码图像,即原始图像。
程序存储器43的构成例如类似于图6的程序存储器33,存储使CPU 42执行解码处理的计算机程序等。
图12表示图11的解码器6的一功能结构实例。图12所示的功能结构是由CPU 42执行存储在程序存储器43内的计算机程序来实现的。
帧存储器41如以上参看图11所描述的那样暂存嵌入图像。
行相关性计算部分46读出存储在帧存储器41内的嵌入图像的一预定行,在向左或向右旋转该行一个像素时,行相关性计算部分46计算旋转后该行和比其高一行的行之间的相关值。就是说,如图13A所示,行相关性计算部分46读出在存储在帧存储器41内的嵌入图像中的一待解码行,即一标记行和比该标记行高一行的行,即一关键行,这样称呼该行是因为其是解码标记行的关键。行相关性计算部分46计算标记行和关键行之间的相关值。如图13B所示,行相关性计算部分46把标记行向左或向右旋转一个像素。在图13B中,标记行沿与图9A、图9B和图9C相反的方向向左旋转。行相关性计算部分46计算向左旋转后的标记行和关键行之间的相关值。然后,行相关性计算部分46以同样的方式计算标记行旋转到返回原始位置、即在编码的嵌入图像中的原始位置后关于关键行的相关值。
在此可设想计算各行之间的相关值的各种方法,例如一行的各像素值、例如关键行和标记行之间的对应像素501和502、503和504…的差之和,或差的平方和。此时,随着相关值变小,各行之间的相关性变大。
行相关性计算部分46获得的每种旋转量情况下的标记行和关键行之间的所有相关值提供给旋转量确定部分47。旋转量确定部分47在行相关性计算部分46提供的相关值的基础上确定标记行和关键行之间最大的相关值。旋转量确定部分47确定最大值时的标记行的旋转量为该标记行的最终旋转量,即作为确认的旋转量。该确认的旋转量作为附加信息的解码结果输出,提供给行滑动部分48。
行滑动部分48类似于行相关性计算部分46那样把存储在帧存储器41内的标记行向左旋转由旋转量确定部分47所确定的旋转量,还在旋转后读出标记行和将其作为标记行的解码结果进行输出。
参看图14的流程图描述在图12的解码器6中执行的解码处理。
提供的嵌入图像、即编码图像以例如一帧为单位顺序地存储在帧存储器41内。
在行相关性计算部分46中,在步骤S11读出存储在帧存储器41内的嵌入图像的一预定行作为标记行。处理操作然后到达步骤S12,判断该标记行是否是第一行。在步骤S12,如果标记行是第一行,处理操作就到达步骤S13,行滑动部分48从帧存储器中读出标记行作为第一行,并原样将其输出。处理操作跳过步骤S14至S19,到达步骤S20。即在本实施例中,根据以上的描述,附加信息没有被嵌入第一行,即第一行没有被旋转,所以第一行被原样输出。
在步骤S12,如果标记行不是第一行,即标记行是第二行后的某一行,处理操作就到达步骤S14。在步骤S14,行相关性计算部分46从帧存储器41中读出比该标记行高一行的行作为关键行,处理操作到达步骤S15。在步骤S15,在行相关性计算部分46中,计算标记行和关键行之间的相关值、即行相关值,并将其输出给旋转确定部分47。
在行相关性计算部分46中,例如计算构成标记行的每一像素和关键行的每一像素之间的差之和或平方和作为标记行和关键行之间的相关值。于是,一旦该相关值取最小值,则标记行和关键行之间的相关性就最大。
在步骤S15的处理之后,处理操作到达步骤S16,在行滑动部分48中把标记行向左旋转一个像素。处理操作到达步骤S17,由于标记行在步骤S16中被进行了旋转,所以判断旋转后的标记行的每一像素是否返回了存储在帧存储器41内的标记行的每一像素的位置。
在步骤S17,如果确认旋转后的标记行的每一像素没有返回存储在帧存储器41内的标记行的每一像素的位置,处理操作就返回步骤S15。然后计算旋转后的标记行和关键行之间的相关值,接着重复同样的处理。
在步骤S17,如果确认旋转后的标记行的每一像素已返回存储在帧存储器41内的标记行的每一像素的位置,处理操作就到达步骤S18。在旋转量确定部分47中,根据行相关性计算部分46提供的相关值,确定标记行和关键行之间的最大相关值,把得到最大值时的标记行的旋转量确定为确认的旋转量。旋转量确定部分47把确认的旋转量提供给行滑动部分48,并将其作为嵌入标记行的附加信息的解码结果进行输出,处理操作到达步骤S19。
在步骤S19,在行滑动部分48中,类似于行相关性计算部分46那样把存储在帧存储器41内的标记行向左旋转旋转量确定部分47确定的旋转量。行滑动部分48读出被向左旋转后的标记行,并将其作为该标记行的解码结果输出,处理操作到达步骤S20。
在步骤S20,判断尚未被处理的嵌入图像是否存储在帧存储器41内。在这种图像存储在帧存储器41内的情况下,处理操作返回步骤S11,例如,读出比标记行低一行的行或一帧新嵌入图像的第一行作为新的标记行,随后重复同样的处理。
在步骤S20,如果尚未被处理的嵌入图像被确认为没有存储在帧存储器41内,就结束解码处理。
如上所述,根据本发明的嵌入编码器3和解码器6,由于利用了图像的相关性把作为其中被嵌入了附加信息的图像的编码数据解码为原始图像和附加信息,所以即使没有提供解码的额外开销,也能够把编码数据解码为原始图像和附加信息。于是,解码图像的图像质量不因附加信息的嵌入而降低。
在本实施例中,虽然用相应像素之间差之和或平方和作为标记行和关键行之间的相关值,但相关值不受这种限制。
在本实施例中,由于一行的结构适合于按照附加信息段进行旋转,所以能够嵌入其值在构成一行的像素个数范围内的附加信息。通过采用按照附加信息段旋转多行、例如两行的结构,就能够嵌入其值超出构成一行的像素个数范围的附加信息。
在本实施例中,按照附加信息旋转沿水平方向排列的图像的像素行。但是,例如如图15A所示,还可以旋转沿垂直方向的图像的像素排列,或者如图15B所示,旋转沿倾斜方向的图像的像素排列。还可以进行这样的改进,即旋转沿时间方向排列的预定数目帧中同一位置处的像素排列,或者同时沿水平方向、垂直方向、倾斜方向和时间方向中的至少两个方向执行旋转。
在本实施例中,虽然只有每帧的第一行不被旋转,但也可以例如只有最底行不被旋转。在这种情况下,在解码处理中,利用比标记行低一行的行作为关键行来从较低行的行起顺序地解码标记行。
还可以使每帧的各行中的两行不被旋转。在这种情况下,在解码处理中,利用在标记行之上和之下的行作为关键行来解码旋转的标记行,以便更准确地对其进行解码。
在本实施例中,虽然通过只利用比标记行高一行的行作为关键行来解码标记行,但也可以例如用比标记行高两行或两行以上的行作为关键行。
虽然需花时间进行计算,但也可以不提供关键行而是对所有的行执行旋转。
附加信息没有特别限制,例如图像、声音、文本、计算机程序、控制信号或其它数据都可以使用。如果图像数据库1的图像的一部分是附加信息而其余的图像提供给帧存储器31,则作为附加信息的该部分图像就嵌入该其余的图像部分之中,于是实现了图像的压缩。
虽然本发明的实施例是对于图像进行压缩,但也可以对预定时间的声音的数据行进行旋转。
虽然本实施例设计成在CPU 32或42的控制下,执行计算机程序来执行嵌入编码处理或解码处理,但也可以用专用硬件来执行处理。
在本实施例中,虽然在CPU 32或42的控制下被执行的计算机程序存储在程序存储器33或43内,但也可以通过例如半导体存储器、磁带、磁盘、光盘、磁光盘或相变光盘等的记录介质将计算机程序作为信号来提供,或通过传输媒介、例如因特网、地面波、卫星信道、公共网络或CATV(有线电视)网络将计算机程序作为信号来提供。
参看图16A、16B和图16C,对记录了计算机程序的记录介质进行说明,这种记录介质的使用使得上述计算机程序被装入到计算机,成为可被计算机执行的状态并作为信号通过传输介质提供给计算机。
如图16A所示,程序预先被记录在硬盘602或半导体存储器603上作为计算机601中的内置记录介质。
或者,如图16B所示,程序被暂时或永久地记录在例如软盘611、CD-ROM(光盘只读存储器)612、MO(磁光)盘613、DVD(数字通用盘)614、磁盘615或半导体存储器616这样的记录介质上。
除了从上述记录介质把程序装入计算机的情况外,如图16C所示,还可以利用进行数字卫星广播的人造卫星622以无线方式从下载站621把程序传送给计算机601,或利用诸如LAN(局域网)或因特网这样的网络631以有线方式从下载站621把程序传送给计算机601。
本发明的执行各种处理的程序中的各个步骤不必沿流程图给出的顺序执行,它们可以包括并行或单独地被执行的处理,例如并行处理或按对象的处理。
图17表示图16A和图16C的计算机601的一结构实例。
如图17所示,计算机601具有内置CPU(中央处理单元)642。输入/输出接口645通过总线641与CPU 642连接。当用户通过输入/输出接口645把指令输入给由键盘、鼠标等构成的输入部分647时,CPU 642就按照该指令执行存储在相应于图16A的半导体存储器603的ROM(只读存储器)643内的程序。图8或图14的流程图被作为本程序来执行。或者,CPU 642装载存储在硬盘602上的程序,由卫星622或网络631传送的程序被通信部分648接收,并被装入硬盘602,或者把从软盘611、CD-ROM 612、MO盘613、DV D614、磁盘615或固定在驱动器649上的半导体存储器616中读出的、已被装入到硬盘602的程序读入RAM(随机存取存储器)644,并执行该程序。在需要时,CPU 642通过例如输入/输出接口645把处理结果输出给由LCD(液晶显示器)构成的显示部分646。
权利要求
1.一种按照第二数据编码第一数据的编码设备,包括存储所述第一数据的至少部分数据的存储装置;通过按照所述第二数据旋转存储在所述存储装置内的所述至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据的编码装置。
2.如权利要求1所述的编码装置,还包括输入所述第一数据和所述第二数据的输入装置。
3.如权利要求1所述的编码装置,其中所述第一数据是由多个像素数据组成的图像数据;所述存储装置存储在所述第一图像数据上沿预定方向排列的像素数据序列;以及所述编码装置按照所述第二数据沿所述预定方向对存储在所述存储装置内的所述像素数据序列执行旋转操作,以使与所述第二数据相关的所述数据嵌入所述第一图像数据中。
4.如权利要求3所述的编码设备,其中,所述编码装置按照所述第二数据沿所述预定方向旋转在所述第一图像数据上沿所述预定方向和以所述图像数据帧排列的所述像素数据序列。
5.如权利要求3所述的编码设备,其中,所述编码装置按照所述第二数据沿水平方向对在所述第一图像数据上沿所述水平方向排列的一行像素执行旋转操作。
6.如权利要求1所述的编码设备,其中,所述编码装置对所述第一数据的旋转对所述第一数据的一部分来说被禁止。
7.如权利要求3所述的编码设备,其中,所述编码装置沿所述预定方向与对应于所述第二数据的值的像素个数成比例地旋转所述第一图像数据。
8.一种按照第二数据编码第一数据的编码方法,包括存储所述第一数据的至少部分数据的步骤;通过按照所述第二数据旋转所述存储的至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据的编码步骤。
9.如权利要求8所述的编码方法,还包括输入所述第一数据和所述第二数据的步骤。
10.如权利要求8所述的编码方法,其中所述第一数据是由多个像素数据组成的图像数据;在所述存储步骤中,存储在所述第一图像数据上沿预定方向排列的像素数据序列;以及在所述编码步骤中,按照所述第二数据沿所述预定方向对所述存储的像素数据序列执行旋转操作,以使与所述第二数据相关的所述数据嵌入所述第一图像数据中。
11.如权利要求10所述的编码方法,其中在所述编码步骤中,按照所述第二数据沿所述预定方向旋转在所述第一图像数据上沿所述预定方向和以所述图像数据帧排列的所述像素数据序列。
12.如权利要求10所述的编码方法,其中在所述编码步骤中,按照所述第二数据沿水平方向对在所述第一图像数据上沿所述水平方向排列的一行像素执行旋转操作。
13.如权利要求8所述的编码方法,在所述编码步骤中,对所述第一数据的旋转对所述第一数据的一部分来说被禁止。
14.如权利要求10所述的编码方法,其中在所述编码步骤中,沿所述预定方向与对应于所述第二数据的值的像素个数成比例地旋转所述第一图像数据。
15.一种解码其中的第一数据已按照第二数据进行了编码的编码数据的解码设备,包括旋转装置,旋转所述编码数据的至少部分数据相关性计算装置,计算被所述旋转装置旋转的所述至少部分数据和所述至少部分数据的周围数据之间的相关性;第二数据解码装置,通过根据所述相关性计算装置获得的所述相关性确定被所述旋转装置旋转的所述编码数据的所述至少部分数据的旋转量来解码嵌入所述编码数据的所述第二数据;以及第一数据解码装置,根据由所述第二数据解码装置确定的所述旋转量解码所述编码数据为所述原始第一数据。
16.如权利要求15所述的解码设备,其中,所述第二数据解码装置对于所述旋转量的每一个不同的值获得所述至少被旋转的部分数据和所述至少部分数据的所述周围数据之间的多个相关值,并在所述相关值为最大值时确定所述旋转量。
17.如权利要求15所述的解码设备,其中,所述第一数据是由多个像素数据组成的图像数据,并且,所述旋转装置沿所述水平方向旋转在所述编码数据上沿水平方向排列的一行像素数据。
18.如权利要求15所述的解码设备,其中,所述旋转装置执行的旋转对所述编码数据的一部分来说是被禁止的。
19.如权利要求15所述的解码设备,其中,所述第二数据解码装置确定被所述旋转装置旋转的所述编码数据的所述至少部分数据的旋转量,把对应于所述旋转量的值作为所述第二数据。
20.一种解码其中的第一数据已按照第二数据进行了编码的编码数据的解码方法,包括旋转所述编码数据的至少部分数据的步骤;计算所述被旋转的至少部分数据和所述至少部分数据的周围数据之间的相关性的步骤;通过根据所述相关性确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量来解码嵌入所述编码数据的所述第二数据的步骤;以及根据所述被确定的旋转量解码所述编码数据为所述原始第一数据的步骤。
21.如权利要求20所述的解码方法,其中,在解码所述第二数据的所述步骤中,对于所述旋转量的每一个不同的值,获得所述被旋转的至少部分数据和所述至少部分数据的所述周围数据之间的多个相关值,并在所述相关值为最大值时确定所述旋转量。
22.如权利要求20所述的解码方法,其中,所述第一数据是由多个像素数据组成的图像数据,以及在所述旋转步骤中,沿水平方向旋转在所述编码数据上沿所述水平方向排列的一行像素数据。
23.如权利要求20所述的解码方法,其中,在所述旋转步骤中执行的旋转对所述编码数据一部分来说是被禁止的。
24.如权利要求20所述的解码方法,其中,在解码所述第二数据的所述步骤中,确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量,把对应于所述旋转量的值作为所述第二数据。
25.一种按照第二数据编码第一数据以及解码所述编码数据的数据处理系统,包括存储装置,存储所述第一数据的至少部分数据;编码装置,通过按照所述第二数据旋转存储在所述存储装置内的所述至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据;旋转装置,旋转所述编码数据的至少部分数据;相关性计算装置,计算被所述旋转装置旋转的所述至少部分数据和所述至少部分数据的周围数据之间的相关性;第二数据解码装置,通过根据所述相关性计算装置获得的所述相关性确定被所述旋转装置旋转的所述编码数据的所述至少部分数据的旋转量来解码嵌入所述编码数据的所述第二数据;以及第一数据解码装置,根据由所述第二数据解码装置确定的所述旋转量解码所述编码数据为所述原始第一数据。
26.一种存储按照第二数据编码第一数据的计算机可控程序的存储介质,所述程序包括存储所述第一数据的至少部分数据的步骤;通过按照所述第二数据旋转所述存储的至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据的编码步骤。
27.如权利要求26所述的存储介质,其中,所述程序还包括输入所述第一数据和所述第二数据的步骤。
28.如权利要求26所述的存储介质,其中所述第一数据是由多个像素数据组成的图像数据;在所述存储步骤中,存储在所述第一图像数据上沿预定方向排列的像素数据序列;以及在所述编码步骤中,按照所述第二数据沿所述预定方向对所述存储的像素数据序列执行旋转操作,以使与所述第二数据相关的所述数据嵌入所述第一图像数据中。
29.如权利要求28所述的存储介质,其中,在所述编码步骤中,按照所述第二数据沿所述预定方向旋转在所述第一图像数据上沿所述预定方向和以所述图像数据帧排列的所述像素数据序列。
30.如权利要求28所述的存储介质,其中,在所述编码步骤中,按照所述第二数据沿水平方向对在所述第一图像数据上沿所述水平方向排列的一行像素执行旋转操作。
31.如权利要求26所述的存储介质,其中,在所述编码步骤中,对所述第一数据的旋转对所述第一数据的一部分来说被禁止。
32.如权利要求28所述的存储介质,其中,在所述编码步骤中,沿所述预定方向与对应于所述第二数据的值的像素个数成比例地旋转所述第一图像数据。
33.一种存储用于解码其中的第一数据已按照第二数据进行了编码的编码数据的计算机可控程序的存储介质,所述程序包括旋转所述编码数据的至少部分数据的步骤;计算所述被旋转的至少部分数据和所述至少部分数据的周围数据之间的相关性的步骤;通过根据所述相关性确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量来解码嵌入所述编码数据的所述第二数据的步骤;以及根据所述被确定的旋转量解码所述编码数据为所述原始第一数据的步骤。
34.如权利要求33所述的存储介质,其中,在解码所述第二数据的所述步骤中,对于所述旋转量的每一个不同的值,获得所述被旋转的至少部分数据和所述至少部分数据的所述周围数据之间的多个相关值,并在所述相关值为最大值时确定所述旋转量。
35.如权利要求33所述的存储介质,其中,所述第一数据是由多个像素数据组成的图像数据,以及在所述旋转步骤中,沿水平方向旋转在所述编码数据上沿所述水平方向排列的一行像素数据。
36.如权利要求33所述的存储介质,其中,在所述旋转步骤中执行的旋转对所述编码数据的一部分来说是被禁止的。
37.如权利要求33所述的存储介质,其中,在解码所述第二数据的所述步骤中,确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量,把对应于所述旋转量的值作为所述第二数据。
38.一种包括按照第二数据编码第一数据的计算机可控程序的信号,所述程序包括存储所述第一数据的至少部分数据的步骤;通过按照所述第二数据旋转所述存储的至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据的编码步骤。
39.如权利要求38所述的信号,其中所述程序还包括输入所述第一数据和所述第二数据的步骤。
40.如权利要求38所述的信号,其中所述第一数据是由多个像素数据组成的图像数据;在所述存储步骤中,存储在所述第一图像数据上沿预定方向排列的像素数据序列;以及在所述编码步骤中,按照所述第二数据沿所述预定方向对存储在所述存储装置内的所述像素数据序列执行旋转操作,以使与所述第二数据相关的所述数据嵌入所述第一图像数据中。
41.如权利要求40所述的信号,其中,在所述编码步骤中,按照所述第二数据沿所述预定方向旋转在所述第一图像数据上沿所述预定方向和以所述图像数据帧排列的所述像素数据序列。
42.如权利要求40所述的信号,其中,在所述编码步骤中,按照所述第二数据沿水平方向对在所述第一图像数据上沿所述水平方向排列的一行像素执行旋转操作。
43.如权利要求38所述的信号,其中,在所述编码步骤中对所述第一数据的旋转对所述第一数据的一部分来说被禁止。
44.如权利要求40所述的信号,其中,在所述编码步骤中,沿所述预定方向与对应于所述第二数据的值的像素个数成比例地旋转所述第一图像数据。
45.一种包括用于解码其中的第一数据已按照第二数据进行了编码的编码数据的解码方法的信号,所述解码方法包括旋转所述编码数据的至少部分数据的步骤;计算所述被旋转的至少部分数据和所述至少部分数据的周围数据之间的相关性的步骤;通过根据所述相关性确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量来解码嵌入所述编码数据的所述第二数据的步骤;以及根据所述被确定的旋转量解码所述编码数据为所述原始第一数据的步骤。
46.如权利要求45所述的信号,其中,在解码所述第二数据的所述步骤中,对于所述旋转量的每一个不同的值,获得所述被旋转的至少部分数据和所述至少部分数据的所述周围数据之间的多个相关值,并在所述相关值为最大值时确定所述旋转量。
47.如权利要求45所述的信号,其中,所述第一数据是由多个像素数据组成的图像数据,以及在所述旋转步骤中,沿水平方向旋转在所述编码数据上沿所述水平方向排列的一行像素数据。
48.如权利要求45所述的信号,其中,在所述旋转步骤中执行的旋转对所述编码数据的一部分来说是被禁止的。
49.如权利要求45所述的信号,其中,在解码所述第二数据的所述步骤中,确定在所述旋转步骤中被旋转的所述编码数据的所述至少部分数据的旋转量,把对应于所述旋转量的值作为所述第二数据。
50.一种包括利用计算机可控程序按照第二数据进行了编码的第一数据的信号,所述程序包括存储所述第一数据的至少部分数据的步骤;通过按照所述第二数据旋转所述存储的至少部分数据来把与所述第二数据相关的数据嵌入所述第一数据的编码步骤。
51.如权利要求50所述的信号,其中所述程序还包括输入所述第一数据和所述第二数据的步骤。
52.如权利要求50所述的信号,其中所述第一数据是由多个像素数据组成的图像数据;在所述存储步骤中,存储在所述第一图像数据上沿预定方向排列的像素数据序列;以及在所述编码步骤中,按照所述第二数据沿所述预定方向对存储在所述存储装置内的所述像素数据序列执行旋转操作,以使与所述第二数据相关的所述数据嵌入所述第一图像数据中。
53.如权利要求52所述的信号,其中,在所述编码步骤中,按照所述第二数据沿所述预定方向旋转在所述第一图像数据上沿所述预定方向和以所述图像数据帧排列的所述像素数据序列。
54.如权利要求52所述的信号,其中,在所述编码步骤中,按照所述第二数据沿水平方向对在所述第一图像数据上沿所述水平方向排列的一行像素执行旋转操作。
55.如权利要求50所述的信号,其中,在所述编码步骤中对所述第一数据的旋转对所述第一数据的一部分来说被禁止。
56.如权利要求52所述的信号,其中,在所述编码步骤中,沿所述预定方向与对应于所述第二数据的值的量成比例地旋转所述第一图像数据。
全文摘要
本发明涉及不降低第一数据的质量而把第二数据嵌入第一数据的编码设备和不降低质量而把编码数据解码成原始第一数据的解码设备。本发明提供了包括存储第一数据的至少部分数据的存储器的编码设备,该设备通过按照第二数据旋转存储在该存储器内的该至少部分数据而把第二数据嵌入第一数据;解码设备旋转被嵌入了第二数据的编码数据的至少部分数据,计算关于周围数据的相关值,以便按照由相关值确定的旋转量解码原始第一数据和第二数据。
文档编号H04N7/26GK1256589SQ9912390
公开日2000年6月14日 申请日期1999年10月7日 优先权日1998年10月7日
发明者近藤哲二郎, 田中健司, 渡边义教 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1