数据处理装置的制作方法

文档序号:7691927阅读:250来源:国知局
专利名称:数据处理装置的制作方法
技术领域
本发明涉及一种数据处理装置,尤其涉及一种能够将信息嵌入图像中而 不降低解码后的图像的质量或增加数据总量的数据处理装置。
背景技术
用于将信息嵌入数据中而不增加数据总量的方法是存在的,例如,将数 字音频数据的最低比特或低级的两个比特变为要被嵌入的信息。该方法利用 低级比特对声音质量的影响并不是很明显这样的事实,简单地用要被嵌入的 信息取代数字音频数据的低级比特。因此,当数字音频数据被回放时,含有 嵌入其中的信息的数字音频数据并不恢复低级比特而被输出。即,因为将含 有嵌入信息的低级比特恢复为原始数字音频数据是困难的,并且低级比特并 不太影响声音的质量,所以该含有嵌入信息的数字音频数据被输出。
依据上述方法,然而,与原始数据不同的数据被输出。因此,当该数据 是音频数据时,将对声音质量产生很大的影响,而当该数据是视频数据时, 将对图像质量产生很大的影响。

发明内容
本发明是针对上述情况而发明的,它能够使信息被嵌入进如图像中而不 降低图像的质量或增加数据总量。
依据本发明的第一数据处理装置包括编码部件,用于压缩编码第一数 据以输出压缩的数据;以及嵌入部件,用于通过基于第二数据修改压缩的数 据的一部分,而将第二数据嵌入从编码部件输出的压缩的数据中。
依据本发明的第一数据处理方法是这样一种方法第一数据被压缩编码 以输出压缩的数据,以及,基于第二数据修改压缩的数据的一部分,以便将 第二数据嵌入压缩的数据中。
依据本发明的第 一存储介质存储这样一个程序第 一数据被编码以输出 编码的数据,以及,基于第二数据修改编码的数据的一部分,以便将第二数 据嵌入编码的数据中。
依据本发明的第 一数据处理装置、第 一数据处理方法以及第 一存储介质, 第一数据被编码以输出编码的数据。然后,基于第二数据修改编码的数据的 一部分,于是将第二数据嵌入编码的数据中。
依据本发明的第二数据处理装置包括编码表生成部件,用于生成用于 编码第一数据的编码表;修改的编码表生成部件,用于基于第二数据修改编 码表生成部件所生成的编码表以生成修改的编码表;以及,嵌入编码的数据 生成部件,用于基于修改的编码表编码第一数据以生成嵌入第二数据的嵌入 编码的数据。
依据本发明的第二数据处理方法是这样一种方法生成用于编码第一数 据的编码表,基于第二数据修改生成的编码表以生成修改的编码表,以及基 于修改的编码表编码第一数据,以生成嵌入第二数据的嵌入编码的数据。
依据本发明的第二存储介质存储这样一个程序生成用于编码第一数据 的编码表,基于第二数据修改生成的编码表以生成修改的编码表,以及基于 修改的编码表编码第 一数据,以生成嵌入第二数据的嵌入编码的数据。
依据本发明的第二数据处理装置、第二数据处理方法以及第二存储介质, 生成用于编码第一数据的编码表,以及基于第二数据修改编码表生成部件所 生成的编码表以生成修改的编码表。然后基于修改的编码表编码第一数据以 生成嵌入第二数据的嵌入编码的数据。
依据本发明的第三数据处理装置包括暂定的解码部件,用于基于编码 表暂定的解码通过将第二数据嵌入第 一数据中所编码的嵌入编码的数据,以 输出暂定的解码的数据;暂定的编码表生成部件,用于基于暂定的解码的数 据生成暂定的编码表;第一解码的数据获得部件,用于基于编码表和暂定的 编码表解码嵌入编码的数据以获得第 一解码的数据;以及第二解码的数据获 得部件,用于通过比较编码表和暂定的编码表获得第二解码的数据。
依据本发明的第三数据处理方法是这样一种方法基于编码表暂定地解 码通过将第二数据嵌入第 一数据中所编码的嵌入编码的数据,以输出暂定的 解码的数据,基于暂定的解码的数据生成暂定的编码表,基于编码表和暂定 的编码表解码嵌入编码的数据以获得第一解码的数据,以及通过比较编码表 和暂定的编码表以获得第二解码的数据。
依据本发明的第三存储介质存储这样一个程序基于编码表暂定地解码 通过将第二数据嵌入第 一数据中所编码的嵌入编码的数据,以输出暂定的解 码的数据,基于暂定的解码的数据生成暂定的编码表,基于编码表和暂定的 编码表解码嵌入编码的数据以获得第一解码的数据,以及通过比较编码表和 暂定的编码表以获得第二解码的数据。
依据本发明的第三数据处理装置、第三数据处理方法以及第三存储介质, 基于编码表暂定地解码通过将第二数据嵌入第一数据中所编码的嵌入编码的 数据,以输出暂定的解码的数据。另外,基于暂定的解码的数据生成暂定的 编码表,以及基于编码表和暂定的编码表解码嵌入编码的数据以获得第一解 码的数据。比较编码表和暂定的编码表以获得第二解码的数据。
依据本发明的第四数据处理装置包括暂定的解码部件,用于依据输入 参数来修改通过将第二数据嵌入第一数据所编码的嵌入编码的数据的一部 分,以及基于编码表暂定地解码嵌入编码的数据的一部分,以生成暂定的解 码的数据;再编码部件,用于将暂定的解码的数据再次进行编码以输出再编 码的数据;以及解码部件,用于通过比较嵌入编码的数据和再编码的数据来 确定输入参数,输出基于编码表暂定解码已经基于该输入参数被部分修改过 的嵌入编码的数据所获得的暂定的解码的数据,作为第一解码的数据,以及 用于获得相应于该输入参数的第二解码的数据。
依据本发明的第四处理方法是这样一种方法依据输入参数修改通过将 第二数据嵌入第一数据中所编码的嵌入编码的数据的一部分,以及基于编码 表将其暂定地解码以生成暂定的解码的数据,将暂定的解码的数据再次进行
编码以输出再编码的数据,以及通过比较嵌入编码的数据和再编码的数据来 确定参数,输出基于编码表暂定解码已经基于该参数被部分修改过的嵌入编 码的数据所获得的暂定的解码的数据作为第 一解码的数据,并且还获得相应 于该参数的第二解码的数据。
依据本发明的第四处理介质存储这样一个程序依据输入参数修改通过 嵌入第二数据在第一数据中所编码的嵌入编码的数据的一部分,以及基于编 码表将其暂定的解码以生成暂定的解码的数据,将暂定的解码的数据再次进 行编码以输出再编码的数据,以及将暂定的解码的数据再编码以输出再编码
的数据。通过比较嵌入编码的数据和再编码的数据来确定参数,输出基于编 码表暂定解码已经基于该参数被部分修改过的嵌入编码的数据所获得的暂定 的解码的数据,作为第一解码的数据,并且获得相应于该参数的第二解码的 数据。
依据本发明的第四数据处理装置、第四数据处理方法以及第四存储介质, 依据输入参数修改通过嵌入第二数据在第 一数据中所编码的嵌入编码的数据 的一部分,以及基于编码表将其暂定的解码以生成暂定的解码的数据。另夕卜, 将暂定的解码的数据再编码以输出再编码的数据。通过比较嵌入编码的数据 和再编码的数据来确定参数,输出基于编码表暂定解码已经基于该参数被部 分修改过的嵌入编码的数据所获得的暂定的解码的数据,作为第 一解码的数 据,以及用于获得相应于该参数的第二解码的数据。
依据本发明的第五数据处理装置包括编码部件,用于依据压缩编码规 则压缩编码第一数据以输出压缩的数据;以及^务改部件,用于基于第二数据 修改压缩编码规则;其中编码部件依据被修改部件修改了的压缩编码规则压 缩编码第 一数据,因此生成嵌入第二lt据的嵌入压缩的数据。
依据本发明的第五数据处理方法是这样一种方法依据压缩编码规则压 缩编码第一数据以输出压缩的数据,基于第二数据修改压缩编码规则,依据 被修改了的压縮编码规则压缩编码第 一数据以生成嵌入第二数据的嵌入压缩 的数据。
依据本发明的第五存储介质存储这样一种程序依据编码规则编码第一 数据以输出编码的数据,基于第二数据修改编码规则,依据被修改了的编码 规则编码第 一数据以生成嵌入第二数据的嵌入编码的数据。
依据本发明的第五数据处理装置、第五数据处理方法以及第五存储介质, 依据编码规则编码第一数据以输出编码的数据。然后,基于第二数据修改编 码规则,以及,依据被修改了的编码规则编码第一数据以生成嵌入第二数据 的嵌入编码的数据。
依据本发明的第六数据处理装置包括第一解码部件,用于解码通过将 第二数据嵌入到通过压缩编码第 一数据所获得的压缩数据中而获得的嵌入压 缩的数据,以获得依据熵编码规则压缩编码的压缩的数据并获得第二数据; 以及,第二解码部件,用于解码该压缩的数据以获得第一数据。
依据本发明的第六数据处理方法是这样一种方法解码通过将第二数据
嵌入到通过压缩编码第 一数据所获得的压缩数据中而获得的嵌入压缩的数 据,以获得依据熵编码规则压缩编码的压缩的数据并荻得第二数据,以及, 解码该压缩的数据以获得第 一数据。
依据本发明的第六存储介质存储这样一种程序解码通过将第二数据嵌 入第 一数据中所获得的嵌入编码的数据,以获得依据熵编码规则编码的编码 的数据并获得第二数据,以及解码该编码的数据以获得第 一数据。
依据本发明的第六数据处理装置、数据处理方法以及存储介质,解码通 过将第二数据嵌入在第 一数据中所获得的嵌入编码的数据,以获得依据熵编 码规则编码的编码的数据并获得第二数据。另外,解码该编码的数据以获得 第一数据。
依据本发明的数据处理系统包括一个编码装置,该编码装置包括编码部
件,用于依据压缩编码规则压缩编码第一数据以输出压缩的数据;以及修改 部件,用于基于第二数据修改压缩编码规则;其中编码部件依据被修改部件 修改了的压缩编码规则压缩编码第一数据,以生成嵌入第二数据的嵌入编码 的数据,该数据处理系统也包括一个解码装置,该解码装置包括第一解码部 件,用于解码嵌入压缩的数据以获得依据压缩编码规则压缩编码的压缩的数 据并获得第二数据;以及,第二解码部件,用于解码该压缩的数据以获得第 一数据。
依据本发明的数据处理系统在编码装置中,依据压缩编码规则压缩编码 第一数据以输出压缩的数据。然后,基于第二数据修改压缩编码规则,以及 依据被修改了的压缩编码规则压缩编码第一数据以生成嵌入第二数据的嵌入 压缩的数据。在解码装置中,解码嵌入压缩的数据以获得依据压缩编码规则 压缩编码的压缩的数据并获得第二数据。然后,解码该压缩的数据以获得第 一数据。


图1示出了依据本发明的实施例的嵌入压缩/解码系统的结构的举例。 图2是一个方框图,示出了嵌入压缩编码器11的结构的第一举例。 图3是一个方框图,示出了可变长度编码单元23的结构的举例。 图4(A)-图4(F)是可变长度解码的示意图。
图5示出像素值的出现频率和分配给像素值的码的码长之间的关联的图。
图6示出了 Huffman(霍夫曼)表的举例。
图7(A)-图7(C)示出了根据像素值的发生频率而分配的码以及码的转换。 图8示出了嵌入编码的数据的举例。
图9(A)-图(9D)示出了一种用于将嵌入编码的数据恢复为原始编码的数 据的方法。
图10是一个流程图,示出了嵌入编码处理过程。 图ll是一个流程图,示出了转换表生成处理过程。 图12是一个流程图,示出了编码的数据转换处理过程。 图13是一个方框图,示出了嵌入压缩编码器11的结构的第二个举例。 图14是一个方框图,示出了解码器12的结构的第一个举例。 图15是一个方框图,示出了可变长度解码单元56和可变长度解码单元 56的结构的举例。
图16是一个方框图,示出了霍夫曼表生成单元53的结构的举例。 图17是一个方框图,示出了逆转换表生成单元54的结构的举例。 图18是一个流程图,示出了解码的处理过程。
图19是一个方框图,示出了嵌入压缩编码器11的结构的第三个举例。
图20是一个流程图,示出了嵌入编码处理的过程。
图21是一个方框图,示出了编码单元91的结构的举例。
图22示出了被矢量量化的编码的示意图。
图23是一个方框图,示出了嵌入单元92的结构的举例。
图24示出了通过行循环嵌入附加信息的示意图。
图25是一个流程图,示出了嵌入编码的处理过程。
图26是一个方框图,示出了解码器12的结构的第二个举例。
图27是一个流程图,示出了解码的处理过程。
图28是一个方框图,示出了编码规则恢复单元121的结构的举例。
图29是一个方框图,示出了解码单元122的结构的举例。
图30是一个方框图,示出了确定单元123的结构的举例。
图31(A)-图31(B)示出了确定单元123所进行的处理过程。
图32是一个流程图,示出了解码的处理过程。
图33是一个方框图,示出了解码器12的结构的第三个举例。
图34是一个方框图,示出了依据本发明的实施例的计算机结构的举例。
具体实施例方式
图1示出了依据本发明的实施例的嵌入压缩/解码系统(系统指多个装置 的逻辑组合,与组成装置是否位于一个包装内无关)的结构的举例。
该嵌入压缩/解码系统包括一个编码装置1和一个解码装置2。该编码装 置1编码例如一幅要被编码的图像,以及该解码装置2将编码的结果解码为 原始图像。
该编码装置1包括嵌入压缩编码器11。嵌入压缩编码器11编码图像并 将信息(下文中当用到时被指作附加信息)嵌入图像中。嵌入压缩编码器ll 依据预定的编码规则编码该图像(数字图像数据)用于压缩,并基于附加信 息(数字数据)修改或破坏该编码规则,从而嵌入附加信息以产生嵌入编码 的数据用于输出。从嵌入压缩编码器ll输出的嵌入编码的数据被记录在例如 一个半导体存储器、磁光碟、磁盘、光盘、磁带或相变型磁盘的记录介质3
上,或通过例如地面波、卫星链路、CATV(有线电视)网络、因特网或公共网 络的传输介质4被发送,并这样被提供给解码装置2。
解码装置2包括通过记录介质3或传输介质4接收提供的嵌入编码的数 据的解码器12。该解码器12将嵌入编码的数据恢复为依据预定的编码规则 编码的编码的数据,从而解码嵌入其中的附加信息并解码编码的数据为原始 图像。该解码图像被提供给没示出的监视器或其它相似的装置并显示。
应当理解,所述附加信息可以包括例如伴随原始图像的文本数据或声音 数据,缩小的图像版本等,并且还可以包括与原始图像不相关的数据。即, 任意数据(包括程序)可被用作附加信息。
另外,提供给嵌入压缩编码器11的用于编码的图像的一部分也可被用作 附加信息。即,可以向嵌入压缩编码器ll提供图像的一部分作为附加信息, 同时提供图像的剩余部分作为要被编码的数据。
图2示出了图1中所示的嵌入压缩编码器11的结构的举例。
帧存储器21例如基于帧,存储提供给嵌入压缩编码器11的图像数据。 附加信息存储器22存储提供给嵌入压缩编码器11的附加信息。
可变长度编码单元23对存储在帧存储器21中的图像数据应用可变长度 编码或熵(entr叩y)编码例如霍夫曼编码,并向编码规则破坏单元25提供所得 的编码的数据。可变长度编码单元23以下面描述的方式在霍夫曼编码的处理
过程中生成霍夫曼表并将该霍夫曼表提供给转换表生成单元24。另外,可变
长度编码单元23向多路复用器(MUX) 26提供有关该霍夫曼表的信息,这 将在获得对转换表生成单元24输出的霍夫曼表的过程中用到。
转换表生成单元24基于存储在附加信息存储器22中的附加信息,生成 用于转换从可变长度编码单元23提供的霍夫曼表中的码的转换表。即该霍夫 曼表定义了要被霍夫曼编码的值(这里指图像的像素值)和具有不同码长的 码(编码的数据)之间的关联,以及转换表生成单元24生成转换表,用于将 霍夫曼表中的码转换为基于附加信息的码。转换表生成单元24所生成的转换 表被提供给编码规则破坏单元25。
编码规则破坏单元25基于附加信息修改或破坏可变长度编码单元23中 的编码规则,从而嵌入附加信息。即,编码规则破坏单元25依据转换表生成 单元24基于附加信息所生成的转换表转换(处理)从可变长度编码单元23 输出的编码的数据(码),从而依据可变长度编码单元23的被破坏的编码规 则产生编码的数据。依据被破坏的编码规则所编码的编码的数据从编码规则 破坏单元25向多路复用器26提供,作为通过将附加信息嵌入原始编码的数 据中所获得的嵌入编码的数据。
多路复用器26将来自编码规则破坏单元25的嵌入编码的数据和来自可 变长度编码单元23的有关霍夫曼表的信息多路复用,并输出该多路复用后的 数据。如参考图l所述的,该多路复用后的数据通过记录介质3或传输介质 4提供给解码装置2。
图3示出了图2中的可变长度编码单元23的结构的举例。
存储在图2中的帧存储器21中的图像数据的每一 帧例如以时间顺序被顺 序考虑,被考虑的帧的图像数据被读出。被考虑的帧的图像数据被提供给频 率表生成单元31和编码单元34。
该频率表生成单元31对于向它提供的组成被考虑的帧的像素,生成频率 表,表中每个像素值与其发生的频率相关,并将该频率表提供给霍夫曼树生 成单元32。该频率表也从频率表生成单元31向图3中所示的多路复用器26 提供作为有关霍夫曼表的信息。
尽管在图3的实施例中该频率表^^皮用作有关霍夫曼表的信息,有关霍夫 曼表的信息并不明确地限于能够获得下面将描述的霍夫曼表生成单元33所 生成的霍夫曼表的信息。因此,该有关霍夫曼表的信息可以是例如霍夫曼表生成单元33所生成的霍夫曼表本身以及频率表。
霍夫曼树生成单元32基于频率表生成单元31所提供的频率表生成霍夫 曼树,并将其提供给霍夫曼表生成单元33。该霍夫曼表生成单元33基于霍 夫曼树生成单元32所提供的霍夫曼树生成霍夫曼表。即,霍夫曼表生成单元 33生成霍夫曼表,在该表中,被考虑的帧中的像素值根据其发生频率每个被 分配一个具有一定码长的码,像素值的发生频率越高,分配的码的码长越短, (像素值的发生频率越低,分配的码的码长越长)。该霍夫曼表被提供给编码 单元34和图2中的转换表生成单元24。
光栅扫描的顺序,并将被考虑的像素的像素值转换为霍夫曼表生成单元33所 提供的霍夫曼表中相应的码,并将其输出作为编码的数据。
在如上所构成的可变长度编码单元23中,频率表生成单元31对于被考 虑的帧生成频率表,并将其提供给霍夫曼树生成单元32。霍夫曼树生成单元 32基于频率表生成单元31所提供的频率表生成霍夫曼树,并将其提供给霍 夫曼表生成单元33。该霍夫曼表生成单元33基于霍夫曼树生成单元32所提 供的霍夫曼树生成霍夫曼表,并将其提供给编码单元34。编码单元34将被 考虑的帧中的每个像素值转换为霍夫曼表中像素值相应的码,并将其输出作 为编码的数据。
现在将参考图4进一步描述可变长度编码单元23中的可变长度编码处理 过程。
例如假定图4(A)中所示的频率表已经在频率表生成单元31中生成。图 4(A)示出了像素值[O]、 [l]、 [2]、 [3]以及[4]分别在被考虑的帧中发生了 5次、 4次、3次、2次以及1次。
关于图4(A)中的频率表,霍夫曼树生成单元32基于每个像素的发生频 率,以从下至上的方式生成霍夫曼树,例如图4(B)至图4(E)所示的。
更具体地讲,霍夫曼树生成单元32从频率表中选择两个具有最低的发生
频率的像素值,从而形成一个节点。另外,霍夫曼树生成单元32将比特"0"
或"l"分配给所选择的两个像素值中具有最低的发生频率的像素值,例如将
"O"分配给所选择的两个像素值中具有最低的发生频率的像素值,将"l,,分配
给另一个。霍夫曼树生成单元32将所选择的两个像素值的发生频率的和分配
给所选择的两个像素值所形成的节点,作为该节点的发生频率。
因此,在图4(A)所示的频率表中,具有发生频率1的像素值[4]以及具有 发生频率2的像素值[3]被选择形成节点#1,如图4(B)所示,3(1+2)被分配作 为节点#1的发生频率。另外,对于选择的两个像素值[4]和[3],比特"0,,被分 配给具有较低的发生频率的像素值[4],比特"l"被分配给具有较高的发生频率 的像素值[3]。
在图4(B)至图4(E)中,表示发生频率的数字示出在圆括号中。 如果所选择的两个像素值的发生频率相同,可以将比特"r或"o"分配给
任何一个像素值。然而,比特"r,或"o"分配给哪个像素必须预定义,例如将
比特"o"分配给较小的像素值。
霍夫曼树生成单元32重复相同的处理过程直到实现会聚为单个节点。 因此,从图4(B)中所示的状态可知,每个具有发生频率3的节点#1和像 素值[2]被选择,于是如图4(C)所示,节点#1和像素值[2]形成节点#2。另夕卜, 节点#2的发生频率被设置为6(3+3),以及比特"0"和"1"分别被分配给节点#1 和像素值[2]。
从图4(C)中所示的状态可知,具有发生频率4的像素值[l]和具有发生频 率5的像素值[O]被选择,于是像素值[1]和像素值
形成节点#3。另外,如 图4(D)所示,节点#3的发生频率被设置为9(4+5),以及比特"O"和"l"分别被 分配给像素值[l]和像素值[O]。
从图4(D)中所示的状态可知,具有发生频率6的节点#2和具有发生频率 9的节点#3被选择,于是节点#2和节点#3形成节点#4。另外,如图4(E)所 示,节点斜的发生频率被设置为15(6+9),以及比特"O"和'T,分别被分配给节 点#2和节点#3。
图4(E)中所示的状态中可知,节点已经被会聚为单个节点#4,于是完成 霍夫曼树。霍夫曼树生成单元32向霍夫曼表生成单元33提供该霍夫曼树。
霍夫曼表生成单元33通过从会聚节点向像素值方向跟踪该霍夫曼树,而 识别分配给每个像素值的码。
更详细地讲,例如,图4(E)中所示的霍夫曼树被从节点弁4向像素值[O] 的方向跟踪,分配给节点(或像素值)的比特序列被发现为"0,,—"0,,—"0"。 因此,霍夫曼表生成单元33识别分配给像素值
的码为"000"。同样,图4(E) 中所示的霍夫曼树被从节点糾向像素值[1]的方向跟踪,分配给节点(或像素 值)的比特序列被发现为"0"—"0,,—"1"。因此,霍夫曼表生成单元33识别分 配给像素值[i ]的码为"oo r 。
相似地,霍夫曼表生成单元33识別分配给每个像素值的码,因此生成表 示像素值和码之间的关联的霍夫曼表。因此,从图4(E)所示的霍夫曼树生成 图4(F)所示的霍夫曼表。
可变长度编码单元23可以可替换地以美国专利第5021782号所公布的方 式执行可变长度编码。
在图4(E)中所示的霍夫曼表中,码"11"、 "10"、 "01"、 "001"以及"000" 被分别分配给具有5、 4、 3、 2以及1的发生频率的像素值[O]、 [l]、 [2]、 [3] 以及[4]。因此,基本上较短码长的码分配给较高的发生频率的像素值。
在图4(E)中所示的霍夫曼表中,尽管像素值[O]、 [l]、 [2]、 [3]以及[4〗具 有不同的发生频率,两个比特的码被分配给具有较高发生频率的像素值[O]、 [l]、 [2],而三个比特的码被分配给具有相对较低的发生频率的像素值[3]和[4]。
如上所述,在霍夫曼表中,具有相同码长的码有时被分配给具有不同发 生频率的像素值。像素值的发生频率和分配给像素值的码长之间的关系一般 如图5所示。
参考图5,假定n比特的码被分配给x像素值(x是不超过2n的整数), 分配给x像素值的n比特的码的模式数目是X!(!表示阶乘),基于上述生成霍 夫曼树的规则,仅采用其中一个。
即使对于x像素值分配的n比特码的模式被修改,码的总量并不增加。 即,在霍夫曼表中,即使n比特码取代另一个n比特码被分配给像素值,分 配的码长仍然为n比特,因此码的总量并不增加。
另外,即使分配给x像素值的n比特码的模式被修改,码分配的模式例 如基于x像素值的发生频率可以被恢复。
从以上可知,即使霍夫曼表中分配给像素值的相同长度的比特码的模式 被修改,即,尽管可变长度编码的编码规则被破坏,码的总量并不增加,被 修改的分配模式可以恢复为原始的模式。
这意味着,通过基于一些信息修改分配给像素值的码的模式,可以嵌入 信息而不增加数据的总量,同时能够使嵌入的信息被解码而没有额外的开销。
图6示出了对于8比特(0至255 )表示的像素值所产生的霍夫曼表的举 例。图6中,除了像素值和分配给像素值的码,也示出了每个像素值的发生 频率。
参考图6,例如,对于从[12]至[18]的7个^(象素值,9比特的码^L分配给 这7个像素值的每一个,因此对于这7个像素值存在9比特码的7!种分配 模式。因此,通过修改对于这7个像素值所分配的9比特码的模式,可以嵌 入int[log27!]比特的信息。Int[]表示不超过[]中的值的最大整数值。
图7(A)示出了图6中所示的像素值[12]至[18]的各个发生频率,以及图 7(B)示出了分别分配给图6的像素值[12]至[18]的9比特码。
假定图7(B)中所示的码分配基于int[log27!]比特内的附加信息,如图7( C ) 中所示的被修改。
更具体地讲,在图7(B)中,码"110111111"、 "110111010"、 "110100001"、
"iiooiioor,、 "iioiiooo"、 "oiiioioir,以及"oioooioio,,分别被分配给像素
值[12]至[18]。在图7(C)中,分配被修改于是分配给像素值[12]的码 "110111111 "现在被分配给像素值[15],分配给像素值[15]的码"110011001"现 在被分配给像素值[12],分配给像素值[16]的码"11011000 "现在纟皮分配给像素 值[17],分配给像素值[17]的码"011101011"现在被分配给像素值[18],分配给 像素值[18]的码"010001010"现在被分配给像素值[16]。图7中对于其它像素 值的分配码没有修改。
同样对于分配其它码长的码的像素值,可以基于附加信息修改码分配的 模式。图8示出了基于附加信息,图6所示的码分配模式已经修改的组成编 码的数据的其它编码的数据的举例。图8示出了嵌入编码的数据和通过依据 图6中所示的霍夫曼表,可变长度解码该嵌入编码的数据所获得的解码的像 素值(通过依据在获得编码的数据过程中所使用的霍夫曼表,解码嵌入编码 的数据所获得的像素值)。
参考图8,例如对于从[12]至[18]的7个像素值,如果嵌入编码的数据依
据图6所示的霍夫曼表被解码,获得图9所示的解码的像素值。即,将通过 依据编码时所用的霍夫曼表解码嵌入编码的数据而获得的像素值指作嵌入解
码的像素值,码"1匪1001"、 "110111010"、 "110100001"、 "110111111"、
"oioooioio"、 "iioiiooo"以及"o 111 oi oi r分别被可变长度解码为嵌入解码
的像素值[15〗、[13]、 [14〗、[12]、 [18]、 [16]以及[17]。
图9(B)示出了嵌入解码的像素值[12]至[18]的发生频率的计数。由于图6 的霍夫曼表中所示的分配给像素值[12]至[18]的码,被如图7(B)和图7(C)所示 的修改了,所以像素值[12]、 [15]以及[16]至[18]的发生频率与图7 (A)中的
不一致,更具体地讲,它们分别与可变长度编码之前的像素值[15]、 [12]、 [18]、 [16]以及[17]—致。
然而,由于原始像素值[12]至[18]的发生频率(可变长度编码之前)和通 过可变长度解码所获得的像素值[12]至[18]的发生频率应当彼此一致,如果可 变长度编码之前和可变长度解码之后的发生频率有所不同的话,将是不正常 的(奇怪的)。
因此,通过将图7(A)中所示的原始像素值的发生频率与图9(B)中所示的 嵌入解码的像素值的发生频率进行比较,以及通过检测匹配的发生频率,可 以将已经基于附加信息被修改的码(可变长度码)的分配模式,恢复为原始 模式。即,嵌入编码的数据可以被恢复为依据霍夫曼表编码的编码的数据。 另外,嵌入的附加信息可以基于当嵌入编码的数据被恢复为编码的数据时所 修改的码的分配模式被解码,以及同样可以通过可变长度解码所恢复的编码 的数据而获得原始的像素值。
更具体地讲,通过将图7(A)中所示的原始像素值的发生频率与图9(B)中 所示的嵌入解码的像素值的发生频率进行比较,嵌入解码的像素值[15]、 [13]、 [14]、 [12]、 [17]、 [18]以及[16]的发生频率可以被分别检测与原始像素值[12] 之[18]的发生频率一致。
因此,从中可以获得嵌入解码的像素值[15]、 [13〗、[14]、 [12]、 [17]、 [18]
以及[i6]的嵌入编码的数据"iiooiioor、 "iioiiioio"、 "iioioooor,、 "iioiimr、 "oioooioio"、 " iioiiooo,,以及"oiiioioir,可以被确定为在嵌
入附加信息之前,图6中所示的霍夫曼表中分配给原始像素值[12]至[18]的码
"iioiiim"、 "iioiiioio"、 "iioioooor 、 "iiooiioor,、 "iioiiooo"、 "oiiioioir以及"oioooioio"。
因此,通过转换嵌入编码的数据于是图7(A)中所示的原始像素值的发生 频率与图9(B)中所示的嵌入解码的像素值的发生频率一致,如图9(C)所示, 依据图6中所示的霍夫曼表编码的编码的数据可被恢复,以及可以基于嵌入 编码的数据和恢复的编码的数据之间的关联,解码附加信息。另外,如图9(D) 所示,通过可变长度解码恢复的编码的数据,可以获得原始的像素值。
图2中所示的嵌入压缩编码器ll执行如上所述的不增加数据总量的嵌入 编码处理并能够没有额外开销地进行解码。
现在将参考图10所示的流程图,进一步描述图2中所示的嵌入压缩编码
器11所执行的嵌入编码处理过程。
在步骤S1中,可变长度编码单元23对来自帧存储器21的被考虑的帧内 的每个像素的像素值进行可变长度编码,并向编码规则破坏单元25输出结果 编码的数据。另外,在步骤S1中的可变长度编码中,可变长度编码单元23 (图3)向多路复用器26输出频率表生成单元31所生成的频率表作为有关 霍夫曼表的信息,并也向转换表生成单元24输出霍夫曼表生成单元33所生 成的霍夫曼表。
然后,在步骤S2中,转换表生成单元24基于从附加信息存储器22所提 供的附加信息,修改从可变长度编码单元23提供的霍夫曼表中的具有相同码 长的码的分配模式,并执行转换表生成处理,用于生成关联修改前的码和修 改后的码的转换表。该转换表从转换表生成单元24提供给编码规则破坏单元 25。
在步骤S3中,编码规则破坏单元25执行编码的数据转换处理,用于依 据从转换表生成单元24提供的转换表,将从可变长度编码单元23提供的编 码的数据转换为嵌入编码的数据,并将所得的嵌入编码的数据提供给多路复 用器26。
在步骤S4中,多路复用器26将从编码规则破坏单元25提供的被考虑的 帧的嵌入编码的数据以及从可变长度编码单元23提供的有关霍夫曼表的信 息多路复用并输出。该然后,处理进行至步骤S5。
在步骤S5中,确定是否在帧存储器21中存储有被考虑的帧的下一帧。 如果在步骤S5中确定在帧存储器21中存储有被考虑的帧的下一帧,对于要 被考虑的新一帧,处理返回到步骤S1,重复相同的处理过程。
如果在步骤S5中确定在帧存储器21中没有存储下一帧,则退出嵌入编 码处理过程。
现在,将参考图11中的流程图,进一步描述被图2中的转换表生成单元 24在图10中所示的步骤S2中执行的转换表生成处理。
在转换表生成处理过程中,开始在步骤SH中,转换表生成单元24考虑 从可变长度编码单元23所提供的霍夫曼表中的码的特定码长,识别具有被考 虑的码长的码的数目。即,转换表生成单元24识别具有与被考虑的码长的相 同码长的码的数目。
在步骤S12中,转换表生成单元24基于在步骤Sll中所识别的具有被
考虑的码长的码的数目,计算可以嵌入在具有被考虑的码长的码中的附加信 息的比特数。即,将具有被考虑的码长的码的数目表示为X,转换表生成单
元24通过计算y^nt[log2(x!)],可以获得可被嵌入的附加信息的比特数y。
然后,处理进行至步骤S13,转换表生成单元24从附加信息存储单元22 读取步骤S12中所计算的y比特数的附加信息。然后,处理进行至步骤S14。 在步骤S14中,转换表生成单元24基于在步骤S13中从附加信息存储器22 读取的附加信息,生成对于具有被考虑的码长的码的转换表。即,转换表生 成单元24基于y比特附加信息,修改分配给像素值的具有被考虑的码长的x 码的分配模式,因此,生成对于具有被考虑的码长的码的转换表,该转换表 中,修改前的码与修改后的码彼此相关。
然后,在步骤S15中,转换表生成单元24确定是否还有附加信息存储在 附加信息存储器22中,如果确定没有信息,转换表生成单元24向编码规则 破坏单元25 (图2)输出至今所生成的转换表。然后,退出该转换表生成处 理。
如果在步骤S15中确定还有附加信息存储在附加信息存储器22中,处理 进行至步骤S16,转换表生成单元24确定是否已经对霍夫曼表中的每个码长 的码生成转换表。如果确定生成还没有完成,处理返回步骤Sll。在这种情 况下,在步骤Sll中,没有生成转换表的码长中的一个被选择作为要被考虑 的新的码长,然后重复相同的处理。
如果在步骤S16中确定已经对霍夫曼表中的每个码长的码生成了转换 表,则退出该转换表生成处理。
下面将参考图12进一步描述被图2所示的编码规则破坏单元25在图10 的步骤S3中所执行的编码的数据转换处理。
如上所述,可变长度编码单元23按照光栅扫描的顺序考虑被考虑的帧内 的每个像素,并可变长度编码被考虑的像素的像素值,顺序输出所得的编码 的数据。将可变长度编码单元23对于被考虑的像素输出的编码的数据称为被 考虑的编码的数据,开始,在步骤S21中,编码规则破坏单元25识别被考虑 的编码的数据的码长。然后,处理进行至步骤S22。
在步骤S22中,编码规则破坏单元25依据与被考虑的编码的数据的码长 相关的转换表,转换步骤S21中识别的被考虑的编码的数据,并向多路复用 器26 (图2 )输出作为嵌入编码的数据。
然后,处理进行至步骤S23,编码规则破坏单元25选择下一个编码的数 据作为要被考虑的新的编码的数据。然后,处理进行至步骤S21,重复相同
的处理。
如果在步骤S23中确定下一个编码的数据不存在,则退出该编码的数据 转换处理。
图2中所示的嵌入压缩编码器11通过依据转换表转换可变长度编码单元 23中的可变长度编码所产生的编码的数据,产生嵌入附加信息的嵌入编码的 数据。可替换地,例如,可变长度编码单元23也可以生成其中像素值和码的 关联已经被修改的霍夫曼表(下文中当用到时被指作修改的霍夫曼表),并使 用修改的霍夫曼表同时执行可变长度编码和嵌入附加信息。即,可变长度编 码单元23可以基于破坏的编码规则执行可变长度编码。
图13示出了执行这样的嵌入编码处理的嵌入压缩编码器11的结构的举 例。图中相应于图2和图3中所示的部分用相同的数字标记,以及它们的描 述将在下文中省略。图13中所示的嵌入压缩编码器11不包括编码规则破坏 单元25;相反,编码规则破坏单元41被包括在可变长度编码单元23中。除 此之外,嵌入压缩编码器11的结构与图2中所示的相同。
对于编码规则破坏单元41,提供从霍夫曼表生成单元33输出的霍夫曼 表以及从转换表生成单元24输出的转换表。
编码规则破坏单元41将与霍夫曼表中的像素值相关的码(编码的数据) 修改为与转换表中的码相关的嵌入编码的数据,因此将从霍夫曼表生成单元 33输出的霍夫曼表修改为其中像素值与嵌入编码的数据相关的修改的霍夫曼 表。该修改的霍夫曼表被提供给编码单元34,编码单元34依据修改的霍夫 曼表转换像素值。
因此,在图13中,编码单元34输出嵌入编码的数据。
图14示出了在嵌入压缩编码器11如图2或图13所示的情况下,图1 中所示的解码器12的结构的举例。
多路分解器(DEMUX) 51基于帧,将从图2或图13所示的嵌入压缩编 码器11所提供的数据多路分解为嵌入编码的数据和有关霍夫曼表的信息,并 向可变长度解码单元52和编码规则恢复单元55提供每帧的嵌入编码的数据, 同时向可变长度解码单元52、逆转换表生成单元54以及可变长度解码单元 56提供有关霍夫曼表的信息。
可变长度解码单元52顺序考虑来自多路分解器51的嵌入编码的数据和
有关霍夫曼表的信息的每一帧,并基于组成有关被考虑的帧相关的霍夫曼表
的信息的频率表,以如在图3所示的可变长度编码单元23中的相同的方式,
生成霍夫曼表,并将其提供给逆转换表生成单元54。
从组成有关霍夫曼表的信息的频率表所生成的霍夫曼表和在可变长度编
码单元23中用于可变长度编码的霍夫曼表是相同的,并在下文中被指作真霍
夫曼表。用于获得真霍夫曼表的组成有关霍夫曼表的信息的频率表将在下文 中被指作真频率表。
然后,可变长度解码单元52依椐真霍夫曼表,可变长度解码被考虑的帧 的嵌入编码的数据,并将所得的解码的像素值即嵌入解码的像素值提供给霍 夫曼表生成单元53。
霍夫曼表生成单元53生成用于可变长度编码从可变长度解码单元52提 供的被考虑的帧的嵌入解码的像素值的霍夫曼表,并向逆转换表生成单元54 提供生成霍夫曼表的处理过程中所生成的霍夫曼表和频率表。
霍夫曼表生成单元53所生成的霍夫曼表被用于可变长度编码嵌入解码 的像素值(通过依据真霍夫曼表可变长度解码嵌入编码的数据而获得的),基 本上并不能正确地解码编码的数据。因此,从嵌入解码的像素值所获得的霍 夫曼表将在下文中相对于真霍夫曼表被指作假霍夫曼表。用于获得假霍夫曼 表的频率表在下文中相对于真频率表被指作假频率表。
逆转换表生成单元54基于从可变长度解码单元52所提供的真霍夫曼表 和组成从多路分解器51提供的有关霍夫曼表的信息的真频率表以及从霍夫 曼表生成单元53提供的假霍夫曼表和假频率表,生成用于将嵌入编码的数据 转换为原始编码的数据的逆转换表。即,逆转换表生成单元54生成与图2(或 图13)中所示的转换表生成单元24所生成的转换表相同的逆转换表。该逆 转换表被提供给编码规则恢复单元55。
编码规则恢复单元55依据从逆转换表生成单元54提供的逆转换表,将 从多路分解器51提供的嵌入编码的数据恢复(解码)为依据组成编码规则的 真霍夫曼表所编码的编码的数据。另外,编码规则恢复单元55基于嵌入编码 的数据和恢复的编码的数据之间的关联即逆转换表,解码嵌入在嵌入编码的 数据中的附加信息。编码规则恢复单元55向可变长度解码单元56输出恢复 的编码的数据并也输出作为解码的附加信息的已被解码的附加信息。
可变长度解码单元56从多路分解器51提供的有关霍夫曼表的信息生成
真霍夫曼表,并基于真霍夫曼表可变长度解码从编码规则恢复单元55提供的
编码的数据,并输出所得的解码的像素值。
图15示出了图14中所示的可变长度解码单元52的结构的举例。 从多路分解器51输出的嵌入编码的数据被提供给解码单元63,从多路
分解器51输出的组成有关霍夫曼表的信息的频率表被提供给霍夫曼树生成
单元61。
霍夫曼树生成单元61与图3所示的霍夫曼树生成单元32相似地,根据 被考虑的帧有关的频率表生成霍夫曼树,并将其提供给霍夫曼表生成单元62。
霍夫曼表生成单元62与图3所示的霍夫曼表生成单元33相似地,基于 从霍夫曼树生成单元61提供的霍夫曼树,生成霍夫曼表,并将其提供给解码 单元63。
解码单元63依据从霍夫曼表生成单元62提供的霍夫曼表,将提供给它 的嵌入编码的数据解码为像素值(嵌入解码的像素值),并输出结果。
图14中所示的可变长度解码单元56与图15中所示的可变长度解码单元 52具有相同的结构。
图16示出了图14中所示的霍夫曼表生成单元53的结构的举例。
在霍夫曼表生成单元53中,从可变长度解码单元52输出的嵌入解码的 像素值被提供给频率表生成单元71。频率表生成单元71、霍夫曼树生成单元 72以及霍夫曼表生成单元73分别执行如图3中所示的频率表生成单元31、 霍夫曼树生成单元32以及霍夫曼表生成单元33相同的处理。
因此,频率表生成单元71生成假频率表,即用于被考虑的帧的嵌入解码 的像素值的频率表(而不是用于原始像素值的频率表),并将其提供给逆转换 表生成单元54 (图14 )。霍夫曼表生成单元73生成假霍夫曼表,即用于要被 考虑的帧的嵌入解码的像素值转换为具有与其发生频率一致的码长的码(不 是用于原始的像素值的霍夫曼表),并将其提供给逆转换表生成单元54。
图17示出了图14中所示的逆转换表生成单元54的结构的举例。
如上所述,对于逆转换表生成单元54,提供真霍夫曼表、真频率表、假 霍夫曼表、假频率表。基于这些表,逆转换表生成单元54依据真霍夫曼表识 别嵌入编码的数据和编码的数据之间的关联,并生成定义关联的逆转换表, 如参考图6至图9所述的。
向码关联单元82提供真霍夫曼表和假霍夫曼表,同时向比较单元81提 供真频率表和假频率表。
和假频率表中相同发生频率的像素值。另外,比较单元81生成像素值关联表,
在该表中,在真频率表和假频率表中有相同发生频率的像素值彼此相关,并
将其提供给码关联单元82。
码关联单元82对于从比较单元81提供的像素值关联表中彼此相关的像 素值,搜索真霍夫曼表和假霍夫曼表,并且分别使与像素值关联的各个码彼 此相关联,从而生成逆转换表,该逆转换表被提供给编码规则恢复单元55.
现在将参考图18中的流程图描述图14中所示的解码器12所执行的解码 处理过程。
多路分解器51将提供给它的数据多路多路分解为嵌入编码的数据和有 关霍夫曼表的信息,将对于每帧的嵌入编码的数据提供给可变长度解码单元 52和编码规则恢复单元55,同时将有关霍夫曼表的信息提供给可变长度解码 单元52、逆转换表生成单元54以及可变长度解码单元56。
在步骤S31中,可变长度解码单元52顺序考虑从多路分解器51输出的 嵌入编码的数据的每一帧和有关霍夫曼表的信息,并可变长度解码被考虑的 帧的嵌入编码的数据。
更具体地讲,可变长度解码单元52根据组成有关被考虑的帧的霍夫曼表 的信息生成霍夫曼表(真霍夫曼表),并将其提供给逆转换表生成单元54。 另外,可变长度解码单元52依据真霍夫曼表,可变长度解码被考虑的帧的嵌 入编码的数据,并将所得的嵌入解码的像素值提供给霍夫曼表生成单元53。
然后,处理进行至步骤S32,在步骤S32中,霍夫曼表生成单元53从可 变长度解码单元52提供的被考虑的帧的嵌入解码的像素值生成频率表(假频 率表),并从假频率表生成假霍夫曼表。该假频率表和假霍夫曼表被提供给逆 转换表生成单元54。
在步骤S33中,逆转换表生成单元54基于真霍夫曼表、组成有关霍夫曼 表的信息的真频率表、假霍夫曼表和假频率表,如上参考图17所述的生成逆 转换表,并将其提供给编码规则恢复单元55。
在步骤S34中,编码规则恢复单元55通过参考从逆转换表生成单元54 提供的逆转换表中的每个码长的嵌入编码的数据和编码的数据之间的关联,
解码嵌入在嵌入编码的数据中的附加信息,并输出所得的解码的附加信息。
另外,在步骤S35中,编码规则恢复单元55通过参考逆转换表,将从多 路分解器51提供的嵌入编码的数据转换为编码的数据并将其提供给可变长 度解码单元56。
可变长度解码单元56从多路分解器51提供的有关霍夫曼表的信息生成 真霍夫曼表,并基于真霍夫曼表可变长度解码从编码规则恢复单元55提供的 编码的数据,并输出所得的解码的像素值。
然后,处理进行至步骤S37,在该步骤中,确定是否已经从多路分解器 51输出新一帧的嵌入编码的数据和有关霍夫曼表的信息。如果确定它们已经 随下一个要被考虑的帧被输出,处理返回步骤S31,重复相同的处理。
如果在步骤S37中确定没有从多路分解器51输出新一帧的嵌入编码的数 据和有关霍夫曼表的信息,则退出解码程序。
如上所述,霍夫曼表本身可被用作有关霍夫曼表的信息而不是频率表。 在那种情况下,组成有关霍夫曼表的信息的霍夫曼表必须被这样生成即,通 过参考霍夫曼表,分配相同码长的码(编码的数据)的像素值的发生频率可 被识别彼此是较高还是较低(依据能够这样的识别的规则)。
另外,尽管在上述举例中基于帧生成霍夫曼表,可替换地,也可基于字 段或基于两个或多个帧生成霍夫曼表。
另外,可以例如使用预定图像数据预先生成霍夫曼表,于是嵌入压缩编 码器11和解码器12依据预先生成的霍夫曼表执行处理。在这种情况下,然 而,如果从要被处理的图像数据生成的霍夫曼表与从预定的图像数据生成的 霍夫曼表不一致,则解码器12将不能将嵌入编码的数据恢复为编码的数据。 因此,要被嵌入的附加信息必须被限于这样的图像数据,即从中可以获得与 从预定的图像数据所生成的相同的霍夫曼表。
图19示出了图1中示出的嵌入压缩编码器11的结构的另一个举例。
要被编码的图像数据被提供给编码单元91。编码单元91依据预定的编 码规则编码该图像数据,并向嵌入单元92输出所得的编码的数据。
附加信息被提供给嵌入单元92。嵌入单元92基于附加信息处理从编码 单元91提供的编码的数据,以获得依据破坏的编码规则编码的编码的数据, 从而将附加信息嵌入在编码的数据中。
现在将参考图20中的流程图描述图19中所示的嵌入压缩编码器11所执
行的处理过程(嵌入编码处理)。
要被编码的图像数据例如基于帧被提供给编码单元91。编码单元91顺 序考虑每一帧,并在步骤S41中,依据预定的编码规则编码被考虑的帧的图 像数据。编码单元91然后向嵌入单元92输出所得的编码的数据。
在步骤S42中,嵌入单元92基于附加信息修改或破坏编码单元91中的
编码规则,从而嵌入附加信息。即,嵌入单元92基于附加信息处理从编码单
元91提供的编码的数据,以获得依据破坏的编码规则编码的编码的数据,从 而将附加信息嵌入在编码的数据中。另外,该嵌入单元输出通过将附加信息
嵌入在编码的数据中所获得的嵌入编码的数据。然后,处理进行至步骤S43。 在步骤S43中,编码单元91确定是否存在要被编码的下一帧。如果确定
作为要被考虑的新一帧的下一帧存在,处理返回步骤S41,重复相同的处理。 如果在步骤S43中确定不存在要被编码的下一帧,则退出嵌入编码处理过程。
图21示出了图19中所示的编码单元91的结构的举例。
图21中所示的编码单元91中,例如,如果组成图像数据的像素值以RGB (红、绿和蓝)表示,每个像素值在RGB彩色空间被矢量量化,表示重心 (centroid)矢量的码(下文中当用到时被指作VQ码)、相应于该码的重心 矢量所表示的像素值相对于原始像素值的误差(下文中当用到时被指作VQ 残余)、以及用于矢量量化的码本被输出作为编码的数据。
更具体地讲,要被编码的图像数据被提供给帧存储器101,帧存储器101 例如基于帧顺序存储提供给它的图像数据。
码本生成单元102顺序考虑存储在帧存储器101中的图像数据的每一帧, 并从组成被考虑的每一帧的每个像素的像素值,例如通过被称为LGB算法生 成要被用于彩色空间内的矢量量化的码本。该码本被提供给矢量量化单元103 并被输出作为编码的数据(部分)。
矢量量化单元103从帧存储器101读取被考虑的帧,并顺序考虑组成被 考虑的帧的每个像素,例如以光栅扫描的顺序。矢量量化单元103使用从码 本生成单元102提供的码本,矢量量化被考虑的像素的像素值,并输出所得 的VQ码和VQ残余作为编码的数据(部分)。
如图22中所示,在如上所构建的编码单元91中,码本生成单元102从 组成被考虑的帧的每个像素的像素值,生成码本,并将其提供给矢量量化单 元103。矢量量化单元103使用从码本生成单元102提供的码本,矢量量化 被考虑的像素的像素值。
即,矢量量化单元103从码本^r测表示与被考虑的像素的像素值所表示 的RGB空间上的点距离最短的点的重心矢量,并输出表示该重心矢量的VQ 码。另外,矢量量化单元103计算VQ码所表示的重心矢量和相应于被考虑 的像素的像素值所表示的RGB空间上的点的矢量之间的差异,并输出该结果 差异作为VQ残余。
然后,编码单元91输出这样获得的对于被考虑的帧中的每个像素的码 本,VQ码以及VQ残余作为与被考虑的帧有关的编码的数据。
图23示出了在编码单元91如图21所示构建的情况下,图19中所示的 嵌入单元92的结构的举例。
从编码单元91输出的被考虑的帧的VQ码、VQ残余以及码本分别被提 供并存储在VQ码存储器111、 VQ残余存储器112以及码本存储器113中。
分别存储在VQ码存储器111以及码本存储器113中的VQ码和码本被 从中读取并提供给压缩单元115。
行循环单元114顺序考虑被考虑的帧内的每一行,例如从上至下,并读 取存储在VQ残余存储器112中的被考虑的行的VQ残余。另外,将组成被 考虑的行的像素的数目表示为x,行循环单元114接收int[log2X]表示的比特 数的附加信息,以及如图24所示,要被考虑的行的VQ残余向右循环相应于 附加信息的比特数,从而将附加信息嵌入在被考虑的行中。即,对于被考虑 的行上的像素,行循环主要改变了通过矢量量化所获得的像素的VQ残余, 即用于矢量量化的编码规则被改变或破坏了。通过破坏该编码规则,嵌入附 加信息。
然后,行循环单元114向压缩单元115提供嵌入附加信息的被考虑的行 的VQ残余。
压缩单元115基于空间关联或熵的偏置将提供给它的VQ码、VQ残余 以及码本压缩,并向多路复用器116输出压缩的结果。多路复用器116将压 缩的VQ码、VQ残余以及码本多路复用在一起用于输出。
现在将参考图25的流程图,描述在编码单元91如图21所示地构建以及 嵌入单元92如图23所示地构建的情况下,被图19中所示的嵌入压缩编码器 11所执行的处理过程(嵌入编码程序)。
在编码单元91中(图21)考虑存储在帧存储器101中的预定的帧,在
步骤S51中,被考虑的帧中的每个像素如上所述被矢量量化编码。通过矢量 量化被考虑的帧所获得的组成编码的数据的VQ码、VQ残余以及码本#1提供 给嵌入单元92。
在嵌入单元92中(图23),从编码单元91输出的与被考虑的帧有关的 VQ码、VQ残余以及码本分别被提供并存储在VQ码存储器111、 VQ残余存 储器112以及码本存储器113中。在步骤S52中,行循环单元114确定是否 在VQ残余存储器112中存储其VQ残余的所有的被考虑的帧的行已经被处 理。
如果在步骤S52中确定在VQ残余存储器112中存储其VQ残余的所有 的被考虑的帧的行没有全部被处理,则行循环单元114选择没有被处理的被 考虑的帧最上面一行作为要被考虑的新的行。然后,处理进行至步骤S53.
在步骤S53中,行循环单元114要被考虑的行中的每个具有VQ残余作 为其像素值的像素向右循环相应于附加信息的像素数,从而将附加信息嵌入 在被考虑的行中,并向压缩单元115提供该结果。然后,处理返回至步骤S52, 重复相同的处理。
如果在步骤S52中确定在VQ残余存储器112中存储其VQ残余的所有 的被考虑的帧的行已经全部被处理,则处理进行至步骤S54,在步骤S54中, 压缩单元115读取存储在VQ码存储器111中的被考虑帧的VQ码,也读取 存储在码本存储器113中的码本。在步骤S54中,压缩单元115压缩VQ码 和码本以及从行循环单元提供的嵌入附加信息的VQ残余,并将结果提供给 多路复用器116。
在步骤S55中,多路复用器116将压缩单元115提供的压缩的VQ码、 VQ残余以及码本多路复用在一起用于输出。然后,处理进行至步骤S56。
在步骤S56中,确定是否在编码单元91中存在要被编码的下一帧。如果 确定下一帧存在,用要被编码的下一帧作为要被考虑的新一帧,处理返回步 骤S51,重复相同的处理。
如果在步骤S56中确定不存在要被编码的下一帧,则退出嵌入编码处理。
图26示出了在嵌入压缩编码器11如图19所示构建时,图1的解码器 12的结构的举例。
从图19所示的嵌入单元92输出的嵌入编码的数据被提供给编码规则恢
复单元121。
该编码规则恢复单元121将嵌入编码的数据恢复(解码)为依据图19 所示的编码单元91中的编码规则编码的编码的数据,从而解码嵌入在嵌入编 码的数据中的附加信息。
即,该编码规则恢复单元121基于从参数控制器124提供的参数,处理 嵌入编码的数据,从而获得编码的凄t据的候选(下文中当用到时被指作暂定 的编码的数据)。另外,该编码规则恢复单元121基于用于将嵌入编码的数据 恢复为暂定的编码的数据的操作,获得嵌入在嵌入编码的数据中的附加信息 的候选(下文中被指作暂定的解码的附加信息)。该暂定的编码的数据被提供 给解码单元122和确定单元123,同时暂定的解码的附加信息被提供给确定 单元123。
解码单元122基于图19所示的编码单元91中的编码规则对从编码规则 恢复单元121提供的暂定的编码的数据执行解码,从而获得原始像素值的候 选(在下文中当用到时被指作暂定的解码的像素值)。该暂定的解码的像素值 被提供给确定单元123。
确定单元123控制参数控制器以向编码规则恢复单元121提供一个或多 个参数值,并从分别根据一个或多个参数值所获得的暂定的解码的像素值确 定一个正确的暂定的解码的像素值(与原始的像素值一致)。另外,确定单元
123从一个或多个从编码规则恢复单元121提供的、分别与一个或多个暂定 的解码的像素值有关的暂定的解码的附加信息中,选择与正确的解码的像素 值有关的暂定的解码的附加信息作为正确的解码的附加信息,并分别输出正 确的解码的像素值和暂定的解码的附加信息作为像素值和附加信息的解码的 最终结果(解码的像素值和解码的附加信息)。
参数控制器124在确定单元123的控制下,向编码夫见则恢复单元121提 供用于处理嵌入编码的数据的参数。
现在将参考图27中的流程图,描述图26中所示的解码器12所执行的处 理过程。
开始,在步骤S61中,确定单元123控制参数控制器124以设置提供给 编码规则恢复单元121的参数。因此,参数控制器124在确定单元123的控 制下,向编码规则恢复单元121提供参数。
在步骤S62中,编码规则恢复单元121基于从参数控制器124提供的参
数,处理嵌入编码的数据,将其转换为暂定的编码的数据,并向解码单元122
和确定单元123提供该暂定的编码的数据。另外,编码规则恢复单元121基
于用于将嵌入编码的数据恢复为暂定的编码的数据的操作,即从参数控制器
124提供的参数,解码嵌入在嵌入编码的数据中的附加信息,并将结果提供 给确定单元123作为暂定的解码的附加信息。
在步骤S63中,解码单元122基于图19所示的编码单元91中的编码规 则解码从编码规则恢复单元121提供的暂定的编码的数据,并向确定单元123 提供所得的像素值作为暂定的解码的像素值。
在步骤S64中,确定单元123确定从解码单元122提供的暂定的解码的 像素值是否是正确的解码结果(与原始的像素值一致)。如果确定不一致,处 理返回至步骤S61。在这种情况下,在步骤S61中,确定单元123设置一个 新的值作为从参数控制器124输出的参数,并重复相同的处理。
如果在步骤S64中确定暂定的解码的像素值是一个正确的解码结果,则 处理进行至步骤S65,在步骤S65中,确定单元123输出该暂定的解码的像 素值作为组成原始的像素值的解码所得的解码的像素值。另外,确定单元123 输出与解码的像素值有关的暂定的解码的附加信息,作为组成嵌入的附加信 息的解码所得的解码的附加信息。然后,处理进行至步骤S66。
在步骤S66中,确定是否还有要被解码的嵌入编码的数据。如果确定有, 处理返回步骤S61,对于要被解码的嵌入编码的数据重复相同的处理。
如果在步骤S66中确定不存在要被解码的嵌入编码的数据,则退出解码 处理。
图28示出了在图19所示的嵌入单元92被如图23所示的构建时,图26 中所示的编码规则恢复单元121的结构的举例。
从图23所示的多路复用器116输出的数据被提供给多路分解器131。该 多路分解器131将提供给它的数据多路多路分解为压缩的VQ码、VQ残余、 以及码本,并将它们提供给扩展单元132。该扩展单元132扩展从多路分解 器131提供的压缩的VQ码、VQ残余、以及码本,并分别将扩展的VQ码、 VQ残余、以及码本提供给VQ码存储器133、 VQ残余存储器134以及码本 存储器135。
VQ码存储器133、 VQ残余存储器134以及码本存储器135基于帧分别 存储来自扩展单元132的VQ码、VQ残余、以及码本。
行循环单元136顺序考虑存储在VQ残余存储器134中的帧的每一行, 例如从上至下,并读取存储在VQ残余存储器134中被考虑的行的VQ残余。 另外,将组成被考虑的行的像素数表示为x,行循环单元136接收一个范围 从0至x的整数,作为来自参数控制器124 (图26 )的参数,并要被考虑的 行的VQ残余向左循环相应于参数的像素数。行循环单元136在循环后输出 每一行的VQ残余,与存储在VQ存储器133和存储在码本存储器135中的 码本一起,作为暂定的编码的数据。
另外,行循环单元136将从参数控制器124提供的参数值输出作为暂定 的解码的附加信息。
图29示出了当图19所示的编码单元91如图21构建时,图26所示的解 码单元122的结构的举例。
解码单元122通过基于组成从编码规则恢复单元121提供的编码的数据 的帧的VQ码、VQ残余、以及码本的矢量量化,解码的像素值。
即,向逆矢量量化单元141提供VQ码和码本。逆矢量量化单元141从 码本检测相应于VQ码的重心矢量,并向加法单元142 l是供该重心矢量。除 了从逆矢量量化单元141提供的重心矢量,组成VQ残余的差异矢量也提供 给加法单元142。加法单元142将重心矢量和差异矢量相加。加法单元142 输出通过加法所获得的具有如R、 G和B值的矢量成分的像素值作为暂定的 解码的像素值。
图30示出了当编码规则恢复单元121和解码单元122分别如图28和图 29构建时,图26所示的确定单元123的结构的举例。
从编码规则恢复单元121输出的暂定的解码的附加信息和从解码单元 122输出的暂定的解码的像素值被提供给存储器151。存储器151临时存储暂 定的解码的附加信息和暂定的解码的像素值,并在真/假确定单元154的控制 下读取暂定的解码的附加信息和暂定的解码的像素值,并分别将它们输出作 为解码的附加信息和解码的像素值。
包括在从编码规则恢复单元121输出的暂定的编码的数据中的码本以及 从解码单元122输出的暂定的解码的像素值被提供给编码单元152。编码单 元152与图19所示的编码单元91相似地编码暂定的解码的像素值。即,编 码单元152使用从编码规则恢复单元121提供的码本,矢量量化暂定的解码 的像素值,并向比较单元153提供所得的VQ码和VQ残余。通过矢量量化
暂定的解码的像素值所获得的VQ码和VQ残余在下文中当用到时要被分别
指作暂定的VQ码和暂定的VQ残余。
除了从编码单元152输出的暂定的VQ码和暂定的VQ残余之外,还向 比较单元153提供包括在从编码规则恢复单元121输出的暂定的编码的数据 中的VQ码和VQ残余。比较单元153将暂定的VQ码和暂定的编码的数据 中的VQ码进行比较,并也将暂定的VQ残余和暂定的编码的数据中的VQ 残余进行比较,并将比较的结果提供给真/假确定单元154。
真/假确定单元154控制参数控制器124以向编码规则恢复单元121提供 用于行循环的比特数作为参数。另外,真/假确定单元154基于从比较单元153 提供的暂定的VQ码和暂定的编码的数据中的VQ码的比较结果,以及暂定 的VQ残余和暂定的编码的数据中的VQ残余的比较结果,确定暂定的解码 的像素值是否是一个正确的解码值,并基于确定的结果控制从存储器151的 暂定的解码的像素值和暂定的解码的附加信息的读取。
现在将参考图31描述图30所示的真/假确定单元154的如是否暂定的解 码的像素值是一个正确的解码所得的确定原理。
由于编码单元91 (图19)执行RGB空间的矢量量化,用于矢量量化的 重心矢量由三个成分组成,命名为R、 B和G成分。将由R、 B和G成分组 成的重心矢量表示为(R, G, B),并假定码本中的重心矢量的每个R、 B和 G成分为简化描述被表示为IO的倍数,例如,分别带有102、 103和99的R、 G和B成分的像素值(下文中当用到时被表示为像素值(102, 103, 99))具 有对于重心矢量(IOO, 100, IOO)的最短的距离,因此被矢量量化为与重心 矢量(IOO, 100, IOO)相关的VQ码。例如,让与重心矢量(IOO, 100, 100) 相关的VQ码为0。
在这种情况下,从像素值(102, 103, 99)减去重心矢量(100, 100, 100)产生VQ残余(2, 3, -1)。因此,像素值(102, 103, 99)被编码为 VQ码0和VQ残余(2, 3, -1)。
通过逆矢量量化组成编码单元91所获得的编码的数据的VQ码0和VQ 残余(2, 3, -1),如图31(A)所示,与VQ码O有关的重心矢量(100, 100, 100)和VQ残余(2, 3, - 1 )被相加以产生像素值(102, 103, 99),并从 而正确地解码以获得原始的像素值。
另外,通过再次矢量量化解码的像素值(102, 103, 99),如图31(A)所示,再次获得VQ码0和VQ残余(2, 3, -1)。
如上所述,通过解码组成编码的数据的VQ码和VQ残余以获得正确的 解码结果,以及再编码(这里是矢量量化)和解码该结果,编码获得的VQ 码和VQ残余分别与组成编码的数据的VQ码和VQ残余一致。
组成编码单元91中所获得的编码的数据的VQ码0和VQ残余(2,3, -1),当通过对VQ残余(2, 3, - 1 )以上述描述的方式应用行循环而嵌入 附加信息时,对于不同像素所获得的VQ残余值被分配作为VQ码0和与VQ 残余(2, 3, - 1)有关的像素之间的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)所示,结果VQ码和VQ残余分别与组成编码的数据的VQ码和VQ 残余不一致。
更具体地讲,在这种情况下,由于假定码本中的重心矢量的每个R、 B 和G成分被表示为IO的倍数,对于像素值(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残余均与组成原始编码的数据的VQ码和VQ残余(10, 11, 12)不一致。
如上所述,如果依据图28所示的行循环单元136中的参数而用于循环的 像素数与附加信息不一致,即,如果暂定的编码的数据与嵌入附加信息之前 的编码的数据不一致,通过再编码从暂定的编码的数据获得的暂定的解码的 像素值而获得的VQ码和VQ残余分别与组成暂定的编码的数据的VQ码和 VQ残余不一致,因此通过解码暂定的编码的数据而获得的暂定的解码的像素 值可以被确定为非正确解码的结果。
另一方面,如果依据图28所示的行循环单元136中的参数而用于循环的 像素数与附加信息相一致,即,如果暂定的编码的数据与嵌入附加信息之前
的编码的数据相一致,通过再编码从暂定的编码的数据获得的暂定的解码的 像素值而获得的VQ码和VQ残余分别与组成暂定的编码的数据的VQ码和
VQ残余相一致,因此通过解码暂定的编码的数据而获得的暂定的解码的像素 值可以^^确定为正确解码的结果。
现在将参考图32描述在编码规则恢复单元121、解码单元122以及确定 单元123分别如图28至图30所示构建的情况下,图26中所示的解码器12 所执行的解码处理。
在解码处理中,解码恢复单元规则121的多路分解器131多路分解提供 给它的数据为压缩的VQ码、VQ残余以及码本,并将它们提供给扩展单元 132。在步骤S71中,该扩展单元132扩展从多路分解器131提供的压缩的 VQ码、VQ残余、以及码本,并分别将扩展的VQ码、VQ残余、以及码本 提供给VQ码存储器133、 VQ残余存储器134以及码本存储器135。
然后,在步骤S72中,确定单元123(图30)的真/假确定单元154控制参 数控制器124(图26)以设置一个特定的参数值,并将此参数值提供给编码规则 恢复单元121。
每次在步骤S72中执行对于每一帧的每一行的处理时,真/假确定单元 154例如顺序设置范围为0至一行中的像素数的整数作为参数值。
当编码〗见则恢复单元121收到来自参数控制器124的参数时,在步骤S73 中,行循环单元136要被考虑的行的VQ残余向左循环相应于参数的像素数。 并将左循环的VQ残余,与存储在VQ存储器133中的被考虑的行的VQ码 以及存储在码本存储器135中的码本一起,作为暂定的编码的数据提供给解 码单元122。另外,行循环单元136向确定单元123提供用于被考虑的行的 循环的像素数作为暂定的解码的附加信息。
在步骤S74中,解码单元122基于组成编码规则恢复单元121所提供的 暂定的编码的数据的VQ码、VQ残余、以及码本,执行逆矢量量化,因此解 码被考虑的行的像素值,并向确定单元123提供所得的暂定的解码的像素值。
在确定单元123(图30)中,从编码规则恢复单元121输出的暂定的解码 的附加信息以及从编码规则恢复单元121输出的暂定的解码的像素值被存储 于存储器151中。另外,在步骤S75中,在确定单元123中,编码单元152 矢量量化从解码单元122提供的暂定的解码的像素值,并向比较单元153提 供所得的暂定VQ码和暂定VQ残余。
比较单元153对于被考虑的行的每个像素,将从编码单元152提供的暂 定的VQ码和组成暂定的编码的lt据的VQ码进行比较,并也将从编码单元152提供的暂定的VQ残余和组成暂定的编码的数据的VQ残余进行比较,并 将比较的结果4是供给真/假确定单元154。在步骤S76中,真/假确定单元154 对于被考虑的行的每个像素,确定暂定的VQ码是否与组成暂定的编码的数 据的VQ码一致,以及暂定的VQ残余是否与组成暂定的编码的数据的VQ 残余一致。如果确定其中一个或两者均对于一个或多个像素不一致,即,如 果在前一步S72设置的参数值与附加信息不一致,处理返还至步骤S72,设 置一个新的参数,重复相同的处理。
如果在步骤S76中确定对于被考虑的行的每个像素,暂定的VQ码与组 成暂定的编码的数据的VQ码一致,以及暂定的VQ残余与组成暂定的编码 的数据的VQ残余一致,即。如果在前一步S72设置的参数值与附加信息一 致,以及如果编码的数据已被恢复,原始附加信息已被正确解码作为暂定的 解码的附加信息,处理进行至步骤S77,在步骤S77中,确定单元154控制 存储器51分别输出其存储的对于被考虑的行的每个像素的暂定的解码的像 素值和暂定的解码的附加信息,作为正确解码的像素值和正确解码的附加信 息。然后,处理进行至步骤S78。
在步骤S78中,确定是否存在下一个要被解码的行。如果确定存在下一 行,处理返回步骤S72,用要被处理的下一行作为要被考虑的新一行重复相 同的处理。
如果在步骤S78中确定不存在要被解码的下一行,则退出解码处理。 图32所示的解码处理对于每一帧执行。
如上所述,用于获得编码的数据的编码规则基于附加信息被破坏(修改), 以及依据破坏的编码规则编码的嵌入编码的数据被以一种预定的方式处理, 从而获得暂定的编码的数据。该暂定的编码的数据被解码,确定是否编码解 码的结果产生与暂定的编码的数据相同的数据,于是在编码规则破坏之前的 编码的数据被恢复(解码)。因此,通过利用编码规则的破坏和恢复,可以嵌 入并解码的附加信息而不增加编码的数据的总量。
本申请已经在美国提出,专利申请号为第09/636138号, 一种基于例如 图像的相关性,用于在图像中嵌入附加信息的方法。依据提出的方法,例如 组成帧的行基于附加信息被交换,基于这样的事实即原始帧中的相邻的行之 间彼此高度相关,已经基于附加信息被交换的帧的行被恢复至其原始的位置。 根据情况,基于相关性的方法在嵌入附加信息的过程中并不总是成功的。即,
简单地,关于嵌入附加信息的帧的行,基于相关性的方法将行的相邻的行与 被考虑的行高度相关的行交换,直到所有的行被恢复为原始位置。然而,在 一些图像中,与被考虑的行最相关的行并不一定是被考虑的行的相邻行。当 通过嵌入附加信息而交换这样的行时,行不能基于相关性被恢复至其原始位 置,抑制了附加信息被嵌入。
为此,上述方法并不能解决这样的解码失败。
在图26所示的实施例中,解码器12仅包括编码规则恢复单元121和解 码单元122对的单个行,通过顺序改变从参数控制器124输出的参数而顺序 获得与各个参数值有关的暂定的编码的数据;然而,例如如图33所示,解码 器12可以包括编码规则恢复单元121,至12lM和解码单元122,至122m的M 行,分别对每个编码规则恢复单元121m(m= 1,2,…,M)提供不同的参数值,于 是可以同时获得分别与参数值有关的暂定的编码的数据。
另外,尽管在上述举例中图19所示的编码单元91执行矢量量化,编码 单元91可以执行例如预测编码而不是矢量量化。在这种情况下,嵌入单元 92被能够通过处理与基于附加信息的预测编码相关的预测残余而嵌入编码的 数据。
另外,尽管在上述举例中,通过基于附加信息循环每行的VQ残余而嵌 入附加信息,附加信息也可以通过例如循环表示VQ残余的值的比特序列而 被嵌入。
另夕卜,尽管在上述举例中,码本被生成并包括在基于帧的编码的数据中,
码本可以预先生成并存储在每个嵌入压缩编码器11和解码器12中。另外,
码本可以基于多个帧,或基于帧的预定字段生成。
上述处理过程可以以硬件或软件方式实现。当处理过程以软件方式实现
时,在例如通用计算机中安装组成软件的程序。
图34示出了安装用于执行上述处理过程的程序的计算机结构的举例。 程序可被预先存储在计算机内的记录介质中,如硬盘205或ROM 203。 可替换地,程序可以被临时或永久地存储(记录)在如软盘、CD-ROM(光
盘只读存储器)、MO (磁光)盘、DVD (数字多用光盘)、磁盘、或半导体存
储器的可拆卸存储介质211中。
如果没有如上所述将程序安装在计算机的可拆卸存储介质211中,该程
序可以通过用于数字卫星广播的人造卫星从下载站通过无线方式传送至计算
机,或通过LAN (局域网)或因特网通过有线链接传送至计算机,以使计算
机接收通过通信单元208这样传送的程序,并然后将此程序安装在内部硬盘 205中。
计算机包括CPU(中央处理单元)202。输入/输出接口 210通过总线201 连接到CPU202。通过输入/输出接口 210响应用户在输入单元207上的操作 的命令输入包括键盘、鼠标、麦克风等,CPU 202依据命令,才丸行存储在 ROM(只读存储器)203中的程序。可替换地,CPU 202将存储在石更盘205中的 程序、通过卫星或网络传送通过通信单元208接收并存储在硬盘205中的程 序、或从安装在驱动209中的可拆卸记录介质211读取并安装在硬盘205中 的程序装载到RAM (随机访问存储器)204中用于执行。CPU202依据上述 流程图执行这样的处理,或被上述方框图所示的结构执行处理。CPU 202如 要求地,通过如输入/输出接口 210,向包括LCD(液晶显示器)、扬声器等的 输出单元206输出处理的结果,通过通信单元208将其发送,将其记录在硬 盘205上等等。
在本说明书中,计算机上用于执行各种处理的组成程序的处理步骤不一 定以流程图所示的顺序被顺序执行,可以以并行或单独执行(如并行处理或 基于对象处理)。
该程序可以通过单个计算机或使用多个计算机的分布式处理执行。另外, 该程序可以被传送或在远程计算机上执行,
尽管在实施例中图像数据被编码,要被编码的数据并不限于图像数据, 可以使用如音频数据和计算机程序的各种数据。
工业应用性
依据本发明的第一数据处理装置、第一数据处理方法以及第 一存储介质, 第一数据被编码以输出编码的数据。然后,基于第二数据修改编码的数据的 一部分,以便将第二数据嵌入编码的数据中。
依据本发明的第二数据处理装置、第二数据处理方法以及第二存储介质, 生成用于编码第一数据的编码表,以及,基于第二数据修改编码^^成部件 所生成的编码表以生成修改的编码表。然后,基于修改的编码表编码第一数 据以生成嵌入第二数据的嵌入编码的数据。
依据本发明的第五数据处理装置、第五数据处理方法以及第五存储介质,
依据编码规则编码第一数据以输出编码的数据。然后,基于第二数据修改编 码规则,以及,依据被修改了的编码规则编码第一数据以生成嵌入第二数据 的嵌入编码的数据。
因此,可以嵌入第二数据而不增加数据总量。
依据本发明的第三数据处理装置、第三数据处理方法以及第三存储介质, 基于编码表暂定地解码通过将第二数据嵌入第一数据中所编码的嵌入编码的 数据,以输出暂定的解码的数据。另外,基于暂定的解码的数据生成暂定的 编码表,以及基于编码表和暂定的编码表解码嵌入编码的数据以获得第一解 码的数据。比较编码表和暂定的编码表以获得第二解码的数据。
依据本发明的第四数据处理装置、第四数据处理方法以及第四存储介质, 依据输入参数修改通过嵌入第二数据在第 一数据中所编码的嵌入编码的数据 的一部分,以及,基于编码表将其暂定的解码以生成暂定的解码的数据。另 外,将暂定的解码的数据再编码以输出再编码的数据。通过比较嵌入编码的 数据和再编码的数据来确定参数,输出基于编码表暂定解码已经基于该参数 被部分修改过的嵌入编码的数据所获得的暂定的解码的数据,作为第一解码 的数据,并且获得相应于该参数的第二解码的数据。
依据本发明的第六数据处理装置、数据处理方法以及存储介质,解码通 过将第二数据嵌入在第 一数据中所获得的嵌入编码的数据,以获得依据熵编 码规则编码的编码的数据并获得第二数据。另外,解码该编码的数据以获得 第一数据。
因此,可以正确地解码第一和第二数据。
依据本发明的数据处理系统,在编码装置中,依据编码规则编码第一数 据以输出编码的数据。然后,基于第二数据修改编码规则,以及依据被修改 了的编码规则编码第一数据以生成嵌入第二数据的嵌入编码的数据。在解码 装置中,解码嵌入编码的数据以获得依据编码规则编码的编码的数据并获得 第二数据。然后,解码该编码的数据以获得第一数据。因此,可以嵌入第二 数据而不增加通过编码第一数据而获得的编码的数据的总量。另外,嵌入第 二数据的数据可以被正确地解码以获得第 一和第二数据。
权利要求
1.一种数据处理装置,包括第一解码部件,用于解码通过将第二数据嵌入到通过压缩编码第一数据所获得的压缩数据中而获得的嵌入压缩的数据,以获得依据熵编码规则压缩编码的压缩的数据并获得第二数据;以及第二解码部件,用于解码该压缩的数据以获得第一数据,其中,所述第一解码部件解码嵌入压缩的数据,以获得依据所述熵编码规则可变长度压缩编码的压缩的数据,其中在所述熵编码规则中,基于第一数据中每个数据值的发生频率来分配一定长度的压缩数据。
2. 如权利要求1所述的数据处理装置,其中,所述第一解码部件基于第一数据中每个数据值的发生频率和通过 可变长度解码嵌入压缩的数据而获得的解码的数据中每个数据值的发生频 率,修改与第一数据中的被分配相同的长度的压缩的数据的每个数据值相关 的编码的数据,从而将嵌入压缩的数据恢复为依据熵编码规则可变长度压缩 编码的压缩的数据。
3. 如权利要求2所述的数据处理装置,其中,所述第一解码部件包括转换表生成部件,用于基于第一数据中每 个数据值的发生频率和通过可变长度解码嵌入压缩的数据而获得的解码的数 据中每个数据值的发生频率,生成用于转换编码表中的压缩数据的转换表, 所述编码表用于可变长度压缩编码第 一 数据为压缩的数据。
4. 如权利要求1所述的数据处理装置, 其中所述第 一数据为图像数据。
全文摘要
本发明涉及一种数据处理装置。附加信息被嵌入通过编码图像数据所获得的编码的数据中,而不增加编码的数据的总量,并且,嵌入附加信息的数据被正确地解码为图像数据和附加信息。嵌入压缩编码器(11)依据预定的编码规则编码图像数据,基于附加信息破坏编码规则,从而嵌入附加信息。解码器(12)将通过嵌入附加信息所获得的嵌入编码的数据恢复为依据编码规则编码的编码的数据,从而解码附加信息,也将编码的数据解码为图像数据。
文档编号H04N1/387GK101355699SQ200810095569
公开日2009年1月28日 申请日期2001年10月12日 优先权日2000年10月19日
发明者太田浩二, 安藤一隆, 近藤哲二郎 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1