修改经编码的比特流的制作方法

文档序号:6477524阅读:168来源:国知局
专利名称:修改经编码的比特流的制作方法
技术领域
这里描述的至少一种实现方式涉及编码。
背景技术
水印添加(watermarking)通常涉及以使得水印在以后能够被检测到 的方式来修改数据的一部分。各种不同类型的数据可被添加水印,其中包 括经编码的数据。然而,编码方案在进步着,而现有的用于修改经编码数 据的机制可能不能为这种进步着的编码方案提供期望的水印添加能力。

发明内容
根据一个一般方面,访问经可变长度编码的数据,该经可变长度编码 的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该 信息的编码具有特定值。确定与该特定值不同的替代值,以使得该替代值 是标识出与该实际参考不同的参考的替代信息的编码。该替代值用于对该 经可变长度编码的数据进行水印添加。
根据另一个一般方面,熵解码器用于对经可变长度编码的数据进行解 码,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际
13参考的信息的编码。该信息的编码具有特定值。水印生成器耦合到该熵解 码器,并且用于确定与该特定值不同的替代值,以使得该替代值是标识出 与该实际参考不同的参考的替代信息的编码。该替代值用于对该经可变长 度编码的数据进行水印添加。
根据另一个一般方面,水印数据用于对经可变长度编码的数据进行水 印添加,该经可变长度编码的数据包括标识出用于对图像进行预测编码的 实际参考的信息的编码。该信息的编码具有特定值。该水印数据包括与该 特定值不同的替代值,以使得该替代值是标识出与该实际参考不同的参考 的替代信息的编码。该替代值是用于对该经可变长度编码的数据进行水印 添加的、对该特定值的代替。
根据另一个一般方面,访问经可变长度编码的数据,该经可变长度编 码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码。 该信息的编码具有特定值。访问与该特定值不同的替代值,以使得该替代 值是标识出与该实际参考不同的参考的替代信息的编码。将该替代值作为 对该特定值的代替插入到该经可变长度编码的数据中以对该图像进行水印 添加。
根据另一个一般方面,经可变长度编码的数据用于图像的编码。该经 可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同 于用于对该图像进行预测编码的实际参考。标识出替代参考的信息为该图 像提供水印。
根据另一个一般方面,对用于图像的编码的经可变长度编码的数据进 行解码。该经可变长度编码的数据包括标识出替代参考的信息的编码,该 替代参考不同于用于对该图像进行预测编码的实际参考。标识出该替代参 考的信息为该图像提供水印。
根据另一个一般方面,像素域图像包括可检测特征,该可检测特征源 于来自该图像的预测编码的一个或多个语法元素的可变长度编码的水印。 该可变长度编码包括了标识出替代参考的信息的编码,该替代参考不同于 用于对该图像进行预测编码的实际参考。标识出该替代参考的信息为该图 像提供了该水印。根据另 一个一般方面,对图像的添加了水印的版本的预测编码进行可 变长度编码。经可变长度编码的数据包括用于对该图像的添加了水印的版 本进行编码的当前参考的指示符和所产生的残差的指示符。该图像的添加 了水印的版本具有提供水印的可检测特性。可检测特性是由于以下操作而 产生的(1)修改该图像的先前预测编码的先前可变长度编码,该先前 预测编码是基于先前参考的并且包括标识该先前参考的信息,其中该修改 包括使该信息失真以便指示出替代参考并为该图像提供该可检测特性,以 及(2)对该图像的先前可变长度编码和先前预测编码进行解码以产生其 中存在该可检测特性的该图像的添加了水印的版本。
根据另一个一般方面,访问标识出在经可变长度编码的数据中信息的 可变长度编码所在的位置的信息。该信息标识出与图像的预测编码相关联 的至少两个参考之一。在该经可变长度编码的数据中的该位置处访问该信 息的编码。基于该信息的编码来确定该至少两个参考中的哪一个被标识。 基于确定该至少两个参考中的哪一个被标识的结果来确定有效载荷
(payload)信息。
根据本发明的另一个一般方面,访问像素域图像,该像素域图像包括 可检测特征,该可检测特征源于来自该图像的预测编码的一个或多个语法 元素的可变长度编码的水印。该可变长度编码包括了标识出替代参考的信 息的编码,该替代参考不同于用于对该图像进行预测编码的实际参考。标 识出该替代参考的信息为该图像提供了该水印。访问检测元数据,该检测 元数据指示出该像素域图像中该可检测特征所在的位置。在该位置处分析 该像素域图像以为该可检测特征确定一值。访问另外的检测元数据,该另 外的检测元数据指示出该可检测特征的比较值。将所确定的该可检测特征 的值与该比较值相比较。基于该比较的结果来确定有效载荷信息。
一种或多种实现方式的细节在附图和以下描述中给出。即使是以一种 特定的方式来描述的,也应当清楚实现方式可通过各种方式来配置或实 现。例如, 一种实现方式可以以方法的形式来执行,或者实现为被配置为 执行一组操作的设备,或者实现为存储用于执行一组操作的指令的设备, 或者实现为信号。当结合附图和权利要求来考虑以下详细描述时,将清楚
15其他方面和特征。


图1是对经熵编码的流进行水印添加的实现方式的框图。
图2a是示出在修改经编码的比特流时使用的操作的一种顺序的框图。 图2b是示出在修改经编码的比特流时使用的操作的另一种顺序的框图。
图3示出了四种预测模式。
图4是示出用于一种特定标准的宏块类型并且示出通过宏块类型确定
的其他信息的表格。
图5是示出在一种特定标准中提供的指数哥伦布编码(Exp-Golomb
coding)的表格。
图6是用于为替代内预测模式确定检测值的实现方式的流程图。
图7是用于确定水印添加元数据的实现方式的流程图。
图8是用于为参考指示符确定替代值的实现方式的流程图。
图9是用于插入替换值的实现方式的流程图。
图IO是用于为参考指示符插入替代值的实现方式的流程图。
图11是用于从被添加水印的数据中识别有效载荷的实现方式的流程图。
图12是用于从被添加水印的图像数据中识别有效载荷的实现方式的 流程图。
图13是用于为内容添加水印并且检测有效载荷的实现方式的框图。
具体实施例方式
存在这样的多媒体水印添加应用,其中,水印嵌入器必须直接修改经 熵编码的比特流,以获得仍然既符合熵编码方案又符合下层数据格式 (即,压縮标准)的被添加了水印的比特流。经常还要求,水印添加过程 不得在多媒体数据中引入可察觉的伪影并且所嵌入的有效载荷即使在解压 縮和处理之后仍能被恢复。对于许多应用来说,水印嵌入过程能够访问一些嵌入元数据,这些元数据通常是在分析或预处理阶段中预先计算的。这 里描述的至少一种实现方式涉及该嵌入过程,为该嵌入过程生成这种嵌入 元数据的过程,以及为该嵌入过程恢复所嵌入的有效载荷的过程。
至少一种实现方式通过在不要求熵解码和重熵编码的情况下直接修改
经熵编码的比特流,来向H.264/MPEG-4 AVC比特流提供水印。该修改提 供了水印。在一个这种实现方式中,熵编码是被称为基于上下文的自适应 可变长度编码(CAVLC)的编码方案,该编码方案被广泛用于 H.264/MPEG-4 AVC标准("AVC")中。
AVC也被称为国际标准化组织/国际电工委员会(ISO/IEC)运动图片 专家组-4 (MPEG-4)第IO部分高级视频编码(AVC)标准/国际电信联盟 电信部(ITU-T) H.264推荐。CAVLC也可用在AVC标准的扩展中。第 一个这种扩展是被称为H.264/MPEG-4 AVC的可縮放视频编码扩展的可縮 放视频编码("SVC")扩展(附录G) ( "SVC扩展")。第二个这种 扩展是被称为H.264/MPEG-4 AVC的多视角视频编码("MVC")扩展 的MVC扩展(附录H) ( "MVC扩展")。
在涉及AVC的至少一种实现方式中,宏块被进行预测编码,并且预 测编码的语法元素随后被利用CAVLC进行熵编码。对于内预测(intra-prediction),与互预测(inter-prediction)不同,宏块是在不借助另一图片 的情况下被进行预测编码的。即,不使用参考图片。相反,宏块是相对于 其自身或者同一图片(图片例如可以是帧或场)内的另一宏块被进行预测 编码的。经内预测的宏块的语法元素之一是宏块类型,其指示内预测模式 以及其他信息。在至少一种实现方式中,宏块的宏块类型("旧"宏块类 型)被改成新宏块类型,以便为特定的16x16宏块指示一种不同的内预测 模式。然而,旧宏块类型所指示的所有其他信息都保持不变。另外,新宏 块类型(语法元素)被利用某个数目的比特来进行CAVLC编码,所述数 目与用于对旧宏块类型编码的比特的数目相同。
宏块类型的上述改变可被进行来将水印嵌入到数据中。另外,替换宏 块类型和相应的替换CAVLC比特的确定可离线进行,于是在以后当内容 (例如,视频数据)被访问时,CAVLC比特的替换可以以不要求熵解码的高效实时方式进行。然而, 一种实现方式在确定替换信息的过程期间或 者在后续的阶段中,在熵解码已被执行之后,执行全部或一部分替换。
在许多应用中,对于经压縮的视频流的水印添加有着越来越大的市场 需要。早先的方法对流进行解压縮,在像素域中应用水印添加,然后对现 在已经修改的像素域数据进行重压縮。早先的一个进步是使用来自原始的 经压縮流的信息来简化重压縮。这一点利用通过对经编码的比特流应用熵 解码和解析来对流进行部分解压縮的技术得到了改进。在熵解码之后,水 印添加算法直接在诸如系数和运动向量之类的语法元素上工作。在流被修 改以表示水印数据之后,熵编码被应用。我们在本公开中描述了各种实现 方式,其中至少一些是在没有熵解码和重编码步骤的情况下直接对经熵编 码的比特流应用水印添加的。
根据所描述的实现方式中的至少一些来对CAVLC流进行水印添加包 括改变CAVLC流中的经编码的语法元素。 一般地,改变经编码的语法元 素将导致编码后比特长度发生改变。至少一种实现方式应对了编码后比特 长度保持恒定的情况,但其他实现方式允许编码后比特长度变化。
本公开的至少一部分关注如何为流式水印嵌入器生成元数据。至少一 种实现方式改变内预测模式,并且对于比特流的各种修改是健壮的。其他 实现方式可修改残差(residue)系数的CAVLC编码。修改内预测模式的 一个优点在于通过改变CAVLC比特流中的相对少量的比特(例如,在下 面描述的一种实现方式中是7个比特),可以为给定的块提供较大且可检 测(但不可察觉)的改变。这种改变还可被设计为对于经编码的比特流中 的改变是健壮的。例如,如果经编码的比特流被解码,并随后被利用不同 的参数(例如,块大小或各个块的模式)来重新编码,则比特流可能会完 全不同,但仍可期望能够通过分析经解码的像素值来检测原始改变。
提供了对CAVLC和水印添加的简要论述来帮助理解各种实现方式。 这些论述常常是具体的。然而,这些论述并不意图是完整的,并且这些论 述中的每个细节可能不一定被应用到本申请中描述的所有实现方式。此 外,这些论述包括许多本领域技术人员己知的素材。然而,这些论述总是 会包括新颖的素材或素材构成,虽然这种情况可能不会被具体指出。这些
18论述并不意图限制本发明的范围。更确切地说,这些论述提供了许多可能 的上下文中的一个或多个具体的上下文,来帮助读者理解实现方式。
我们现在提供对CAVLC的论述。许多视频压縮方法中的最后一步是 对经压縮的数据的无损熵编码。在AVC中,CAVLC常用于熵编码。 CAVLC是公知的编码技术,并且是被称为可变长度码的一类编码技术的 一部分。 一般地,与例如固定长度码不同,可变长度码向具有或被预期具 有较高出现率的语法元素值指派较短长度的码字。CAVLC —般对于每类 语法元素提供码字和语法元素值之间的一个单独的指派。可变长度码是属 于熵编码家族的一类码。包括CABAC (基于上下文的自适应二元算术编 码)在内的算术码是属于熵编码家族的另一类码。
我们现在给出对水印添加的一般领域和在该领域内所描述的一个或多 个实现方式所应用的更具体领域的简短论述。水印添加领域的普通技术人 员将熟悉这里给出的许多信息。
这里使用的短语"数字水印添加"通常指的是根据某种有效载荷数据 来修改一艺术作品(通常是图像、运动图像序列或音频剪辑),以使得以 下条件得到满足-
1. 该作品的经修改版本与该作品的原始版本感觉起来没有区别,并且
2. 以后可从该作品的经修改版本中恢复出有效载荷数据。
被称为"健壮数字水印添加"的数字水印添加方法的一个子类引入了 第三个条件
3. 可从该作品的经修改版本的失真版本中恢复出有效载荷数据,其中 失真可能是由经修改的作品所经历的常见信号处理和信号操作(例如,压 縮、降噪滤波、颜色增强)所引入的,或者失真可能是由尝试使有效载荷 数据不可恢复的对手故意引入的。
健壮数字水印添加有许多应用,包括但不限于以下的
1. 所有者标识:水印有效载荷标识了作品的所有者。
2. 拷贝控制:水印有效载荷指示出与作品相关联的著作权。用于查
看、复制、记录、打印、分发或任何其他动作的装置可以恢复有效载荷数 据并将动作限制到著作权所允许的那些。3.交易跟踪:水印有效载荷标识了作品的拷贝被合法分发到的接收 者。这在合法接收者没有获得进一步分发作品的权利时,可能是有用的。 如果发现了未经授权的作品,则原始内容所有者可以从未经授权的拷贝中 恢复出有效载荷,并且识别对未经授权的使用负责的接收者。
本领域的普通技术人员将认识到健壮数字水印添加具有许多其他应用。
水印添加可在"基带"中执行或者在经压縮的作品上执行。基带影像 或运动图像序列例如是像素域的表示。基带音频作品例如是音频样本。一 些应用要求对经压缩的作品进行水印添加。在此情况下,输出也是经压縮 的作品。压縮的最后一步通常是熵编码,解压縮的第一步通常是熵解码。 熵编码/解码过程通常是无损的,但是压縮过程通常还包括有损过程。用于 对经压縮的作品进行水印添加的一种方法首先应用熵解码,然后应用解压 縮以获得基带表示。基带表示被添加水印,并且由此产生的被添加了水印 的作品被压縮并熵编码。该方法可能是耗时的,并且可能由于重压縮而导 致感觉质量的降低。
为了改善感觉质量并且减少所需的计算,来自原始经压縮作品的信 息,例如运动向量、模式判决、质量因子和其他信息,可在解压縮期间被 保存,并在重压缩期间被使用。这意味着重压縮不需要执行任何运动估计 (从而节省了计算和/或时间),并且对原始量化因子和模式判决的使用可 以带来感觉质量的改善。
被称为"压缩域水印添加"的一类水印添加算法己经出现了。这些方 法可被描述为在水印添加之前执行"部分解码",而不是像先前所述那样 的"完全解码"。这里,经压縮的作品首先被熵解码,以暴露经压縮的作 品的语法元素。这些语法元素可包括系数(例如块DCT (离散余弦变换) 或小波系数)、运动向量、图片类型、预测模式和许多其他语法元素。水 印添加算法随后直接修改这些语法元素中的一些。最后,经修改的语法元 素被熵编码,以获得经修改的压縮作品。
本申请中描述的至少一种实现方式属于新的一类水印添加算法,这些 算法可被称为"经熵编码的流的水印添加"。这些方法如图1所示直接修改经熵编码的流。
参看图1,系统100执行水印添加。系统100也可被认为是一个过
程。原始的经压縮的流被流修改102根据有效载荷来直接修改,并且输出 是由此产生的经标记的压縮流103。有效载荷例如可以是内容(例如, DVD)播放器的序列号、播放器的型号或者以后的识别所希望使用的其他 信息。有效载荷可以不被编码,或者可以如数据编码单元120中所示被编 码。流修改过程被告知(1)要进行的所有改变的位置,以及(2)要进 行的实际改变。流修改过程是被可在预处理阶段104期间生成的元数据告 知此信息的。
元数据105是通过对原始的压縮流进行熵解码106 (如果使用多层编 码的话可能还进行进一步的解码)并且生成水印108来生成的。元数据标 识了流内要进行改变的位置(即,用于水印生成的位置),并且表明流应 当如何响应于不同的有效载荷码元而改变。对于所描述的图1的实现方 式,元数据是通过分析经压縮作品的经解码的语法元素来生成的。像这样 的水印添加方法一个有挑战性的方面是元数据的生成。以下说明对于一个 或多个实现方式这是如何完成的。
先前的段落和图1暗示了可能存在预处理阶段104。指出存在三个重 要时间的情形,是有用的。第一时间是经压縮的比特流被分析以生成某种 元数据的地点/时间。第二时间是在第一时间生成的元数据中的一些或全部 与被称为有效载荷的特定码元序列一起被用来修改比特流的地点/时间。第 三时间是在第一时间生成的元数据中的一些(或者全部或者都不)被用于 分析经修改的比特流、通过对经修改的比特流进行解压縮而获得的运动图 像序列、或者通过对经修改的比特流进行解压縮而获得的运动图像序列的 失真版本的地点/时间。在第三时间的此分析的目的是恢复有效载荷。
为了理解上下文,考虑第一时间发生在作品分发之前,第二时间发生 在复制期间(其中用于每个拷贝的有效载荷唯一地标识该拷贝),并且第 三时间发生在己经发现作品的未授权拷贝之后,此时有效载荷被恢复以揭 示所分发的拷贝中的哪个是未授权拷贝的源。此示例只是举例说明,而并 不意图暗示对这些概念的应用的任何限制。此外,虽然可能存在依应用而
21定的要求,但是在技术上并不要求第一时间(预处理)和第二时间(嵌 入)是不同的。实际上,所有三个"时间"可以都是相同的。
作为另一个示例,我们返回参看图1。预处理阶段例如可在创作电影 以便最终交付的过程期间执行。在一种情形中,执行一个过程来识别下述 经编码元素的位置对于这些经编码元素,已经确定了可接受的替换值。 该过程的结果(例如这种经编码元素的位置以及可接受的替换值)被存储 在与经编码的电影包括在一起的元数据中。对于此示例,考虑两种情况。 在一种情况中,元数据的每个条目标识比特流中的一个位置以及一个可接 受的替换值。在第二种情况中,在每个元数据条目中标识两个可接受的替 换值。
流修改可在电影的回放期间执行,其中,例如,播放器(例如,软件 播放器、机顶盒播放器或者DVD播放器)的序列号被用作有效载荷。有 效载荷例如被用于确定是否替换所标识的经编码元素。例如,如果在元数 据中提供了单个可接受替代,则有效载荷序列中的"1"可表明原始值被
替代值所替换,而"o"可表明原始值被保持。又例如,所有标识出的位
置可被替换,并且有效载荷可表明要使用(为经编码序列中的每个位置)
提供的两个替换值中的哪个。例如,"0"可表明使用第一替换,而"1"
可表明使用第二替换。注意,在本申请中,"替代"和"替换"这两个词 经常互换使用。另外,取决于上下文,替代(或替换)可指多种项目。替 代例如可以是语法元素的替代值或者表示语法元素的值的经编码比特的替 代值。
有效载荷的恢复可以在与发生流修改的地理位置无关的地理位置处执
行。换言之,流修改可以在俄亥俄州的Toledo发生,而有效载荷恢复可以 在加州的Bnrbank发生。关键在于能够访问包含基于经修改的流的数据的 文档。例如,经修改的流可以被电子拷贝并被放在可记录的DVD上,或 者经修改的流可以被呈现并随后被重记录和编码,然后被放在可记录的 DVD上。如果获取了该可记录DVD,则可以分析该可记录DVD以恢复 有效载荷。可以利用检测元数据(在图1中示出)来辅助有效载荷的恢 复。检测元数据例如可以指示出数据流中嵌入水印添加信息的位置,以及可接受的替换值。检测元数据可以还指示或者改为指示例如图片(例如, 帧或场)中的这样一个位置在该位置中,水印信息意图在像素域数据中 产生可检测的改变。在这后一种情形中,检测元数据还可以指示出期望的 (一个或多个)改变,这将在下文中进一步说明。检测元数据可以在产生 水印添加(嵌入)元数据的同时产生,或者在另一个不同的阶段产生。
"水印"例如可以指替换数据流中的原始数据的嵌入数据。"水印" 可以还指或者改为指由于在数据流中嵌入替换数据而在基带影像中的经解 码的显示视频图片上产生的效果。因此,"水印"可以指嵌入的数据或者 在所得到的基带数据(例如,图像或音频剪辑)上产生的效果中的一种或 多种。例如,所产生的效果可以是宏块的亮度的改变,这种改变是可检测 的,但却是观看者不能察觉的。
我们现在提供对经AVC编码的比特流中的基于CAVLC的数据的嵌
入的论述。 一种对经压縮的流进行水印添加的方式是改变一个或多个语法 元素的值。 一般要求是改变后的经压縮流仍是有效的流(仍符合特定的压 縮标准)。在压縮技术使用可变长度码熵编码技术时,要满足该要求。对
于利用CAVLC的AVC来说就是如此。经改变(即,经修改)的语法元 素将被利用CAVLC来编码,并且这些经修改的CAVLC比特将替换比特 流中的经CAVLC编码的原始值。这些比特可具有与未经修改的语法元素 的CAVLC编码相同的长度(比特数目),或者可具有不同的长度。然 而,不论长度相同还是不同,对于其他CAVLC比特的精度都没有影响, 因为语法元素的CAVLC编码不依赖于先前或随后的语法元素编码。
在所描述的各种实现方式中,存在两个一般步骤来修改经CAVLC编 码的比特流,但这些步骤可以按任一种顺序来执行。在论述这些步骤时, 称之为"步骤1"和"步骤2",但这些步骤编号并不意图暗示或要求这 些步骤的任何特定或具体的执行顺序。图2a和2b包括分别示出这两个一 般步骤的框图200和210。
给定经CAVLC编码的AVC比特流,步骤1构建从目标元素到原始经 编码块的映射(202)。在一种实际实现方式中,这是通过对比特流解码 并且保持跟踪哪些比特流比特产生哪些语法元素来完成的。例如,CAVLC解码器可被应用到经压縮的比特流以暴露出语法元素。
步骤2为目标元素搜索一个或多个可接受的替代值(204)。 一种搜 索可接受的替代值的方式是检查所有可能的替代值并且确定哪些是可接受
的(如果有可接受者的话)。每个可能的替代语法值被CAVLC编码,以 得出替代比特。 一般地,所有可能的替代语法值都是"可接受的替代 值"。然而,各种实现方式具有一个或多个额外的标准。
一个标准是CAVLC编码长度。因为CAVLC是可变长度码,所以一 些替代语法值将改变CAVLC编码的长度。这在一些实现方式中是可接受 的,但其他实现方式提出了这样的要求,即CAVLC编码长度在水印添加 之前和之后保持相同。其他标准例如涉及保真性和可检测性,这将在下文 中进一步论述。
图2a和2b分别示出了这两个步骤202、 204的两种不同顺序。注意, 在图2b中,只有在步骤2 (204)中为之找到至少一个替代语法值的目标 元素需要步骤l (202)中的映射和指派。
AVC视频压縮标准与大多数视频压縮标准一样,是通过根据一个或多 个先前编码的像素块中的值预测某一像素块中的值来实现压縮的。预测和 实际值之间的差异经常被称为残差,其随后被进行变换编码和量化。用于 预测的一个或多个块,即参考块,可来自同一图片或来自不同图片。其参 考块来自同一图片的块被称为被内编码的块或简单地称为内块。在此情况 下,预测常被称为内预测。
对于亮度样本,整个16x16宏块可以被整体上进行内预测,或者可被 划分成8x8子块或者甚至4x4子块。每个子块随后将被独立地进行内预 测。对于16x16亮度内预测,在该标准中定义了四种模式。对于8x8和 4x4子块,对于每种类型的块定义了九种模式。编码器通常为每个块选择 使预测块和实际像素值之间的差异最小的预测模式。
为了简化论述,我们仅论述16x16内预测。对于16x16内预测,定义 了以下四种模式,如图3所示
1.模式0 (垂直)310-根据上方样本(H)推断。在此模式中,与某 个块的上边缘毗邻的邻居像素被用作该块的相应列中的所有像素的预测。即,对于某个16x16块中的给定列,上方垂直相邻的块中的毗邻像素被用 作整个列的预测。
2. 模式1 (水平)320 -根据左方样本(V)推断。在此模式中,与某 个块的左边缘毗邻的邻居像素被用作该块的相应行中的所有像素的预测。 即,对于该16x16块中的给定行,左方水平相邻的块中的毗邻像素被用作 整个行的预测。
3. 模式2 (DC) 330 -上方和左侧样本的均值(H+V)。在此模式 中,与某个块的上边缘毗邻的邻居像素和与该块的左边缘毗邻的邻居像素 被取平均来确定均值。该均值随后被用作该块的所有像素的预测。即,确 定左方水平相邻的块和上方垂直相邻的块中的所有毗邻像素的均值。这些 像素的均值随后被用作该块的所有像素的预测。该块中的每个像素于是具 有相同的预测。
4. 模式3 (平面)340 - —线性平面被拟合到上方样本H和左侧样本 V。在此模式中,形成了一平面。该平面是基于左方水平相邻的块中的所 有毗邻像素和上方垂直相邻的块中的所有毗邻像素的。该平面为该块中的 每个像素提供了预测。
注意,8x8和4x4内预测的模式可以按与这里描述的对16x16内预测 模式的修改相类似的方式被修改。另外,所有3个块大小都使用了易于以 与模式修改相类似的方式来修改的其他语法。
为了对块解码,利用由当前块的内预测模式所指定的先前解码的邻居 块的可用像素来生成预测的块。然后,经解码的残差像素值被与预测的块 相加。结果是最终经解码的像素块。
B = P+R (3-1) 其中B是最终经解码的像素值块,P是预测的块,R是经解码的残差的 块。
在此实现方式中将内预测用于水印添加的基本思想是在不修改残差数 据的同时将内预测模式从一种改变到另一种。即,残差R保持不变,虽然 它对于新的预测块来说可能不再是准确的残差。改变预测模式的结果将是 一个不同的预测块(被称为Pw)。结果,最终经解码的像素块(现在称
25为Bw)将不同于其本来应具有的形式(即B)。即,BW=PW+R,并且Bw不等于B。
原始的经解码像素值块(B)和添加了水印的像素值块(Bw)之间的差异(记为AB)将与原始的预测像素块(P)和添加了水印的预测像素值块(Pw)之间的差异(记为AP)相同。
AB = AP,其中AB二Bw-B,并且AP:Pw-P, (3-2)并且下标"w"表示各自的添加了水印的版本。
通过改变宏块的内预测模式,该块的像素将改变,改变量为AB。为了使得该改变适合于水印添加,至少在此实现方式中我们要求满足以下三个要求(Rl-R3):
Rh可以从重建的影像中检测到该改变,
R2:在重建的影像中该改变是不可察觉的,并且
R3:该检测对于某组预定义的信号失真是健壮的。为此,我们评估每种可能的改变的适当性,并且只选择满足这些要求的那些改变。
第二个要求可以通过许多方式来解释。我们可以要求重建的影像具有高视觉质量或者它与原始的未加标记的影像不可区分,或者改变的可察觉度落到某个阈值之下,而该阈值可取决于应用。人们判断水印的保真性的方式有许多种。对于本公开而言,我们允许应用任何适当的保真性度量来判断所提出的改变是否或者在何种程度上满足应用的保真性要求。
对保真性要求(R2)的评价可以通过各种方式来完成。对于给定的目标元素,我们需要评价或预测用每个替代值来替换其原始值的感觉影响。回忆起这种评价或预测完全能够访问经压縮流的所有语法元素并且可以使用这些语法元素来预测下层影像的掩蔽效果和人类视觉或听觉系统(在视频的情况下,我们关注人类视觉系统)对修改的敏感性。这种预测的细节是精通感觉建模技术者所公知的。感觉模型在压縮文献和水印添加文献中都被广泛引用。
除了使用对可察觉性的压縮域计算性预测之外,我们甚至还可能能够将流完全解压縮成基带运动图像序列。如果分析是作为预处理来执行的,
26就可能出现这种情况。在此情况下,计算性预测可以检查实际像素数据。这可以带来对可察觉性的更精确预测。此外,我们可能能够通过对原始流解压縮以获得参考运动图像序列,并且随后利用替代来替换语法元素值并对由此产生的流解压縮以获得第二运动图像序列,从而来评价用替代值替换原始语法元素值的可察觉性。许多公知的技术可用于评价两个运动图像序列之间的差异的可察觉性。
最后,我们甚至还可以求助于主观评价。人类观看者可以评价参考运动图像序列和经修改的运动图像序列之间的差异的可察觉性。人类主体可以评价对于给定的应用某个修改满足要求R2的程度。
一些方法可用于确定可能的语法元素改变中的哪些满足要求R2。我们现在从一般角度来考虑第一要求Rl。假定将替代语法值用于目
标语法元素会在经修改的流以后被解压縮为运动图像序列时引起某种可测量的改变。可能引起的可测量改变一般有两种,即"直接的"和"间接的"。
对于"直接改变",语法元素直接对应于运动图像序列的可测量伪
影。例如,对亮度块DC系数的修改将会直接导致相应的经解压縮的块的平均亮度的可测量改变。另一方面,对于"间接改变",在图像序列中测量到的伪影只与流中的修改间接相关。例如,对运动向量的修改将会导致错误的块被用作预测,并且因此将会导致相应的经解压縮的块中的不正确的像素数据。确定使用了哪个运动向量可能是困难的,但是对一个不同的运动向量的使用将会影响其他可测量的伪影。运动向量可用于得出具有更高或更低平均亮度的重建块。
要求Rl的可测量改变可以帮助识别位置并且了解进行了哪些改变,以便恢复有效载荷。这在获得盗版拷贝时尤其有用。通过"了解"曾进行的改变,可以获得盗版拷贝的源。
在一种实现方式中,确定哪些运动向量语法元素具有至少两个替代语法值,以使得对这些替代语法值之一的使用将会得出具有较高平均亮度的重建块,而对一个不同的替代语法值的使用将会得出具有较低平均亮度的重建块。与这两个替代值中的每一个的CAVLC编码相对 的经编码比特块以及在CAVLC流内的比特位置作为元数据被发送到嵌入器。基于相应有效载荷比特的值,嵌入器将利用与一个或另一个替代比特块相对应的比特块来替换原始比特块。
例如,嵌入器在有效载荷比特为"0"的情况下挑选或选择与减小相应块中的平均亮度的语法值相关联的比特块,并且在有效载荷比特为"1"的情况下挑选或选择与增大相应块中的平均亮度的语法值相关联的比特块。很明显,对于要嵌入的每个有效载荷比特,我们需要至少一个满足所有要求的目标元素。
元数据还可包含经解压縮的运动图像序列中将引起亮度改变的帧号码和块号码。为了获得进一步的健壮性,预处理阶段还可将该块的原始平均亮度存储在元数据中。该信息可在恢复时(例如,解码时)用来识别经修改的块并且将其平均亮度与存储在元数据中的原始值相比较。在所给出的示例中,高于原始值的平均亮度将意味着相应的有效载荷比特为"1",
而低于原始值的平均亮度将意味着相应的有效载荷比特为"o"。
对于此实现方式,第一和第三要求(即能够健壮地检测到改变)要求建立一个良好的特征,该特征能够在经解码的影像中被可靠地测量到,并且可以通过改变宏块的内预测模式来加以修改。 一个这种特征是宏块的平
均亮度。每个内预测模式改变将会导致经解码的像素值的改变AB。注意AB —般是值的矩阵(即,AB也是一个块)。该AB可具有正的或负的平均值(在块上取平均)并且该平均值的幅度对于不同模式可以是不同的。改变(例如,AB的平均值)的符号可用于编码(嵌入)数据。另外,改变的幅度可用作对改变的期望健壮性的指示,其中较大的幅度表明对于对经编码的比特流的进一步修改更加健壮。可以得到并使用对健壮性的更精密度量。
可用于满足Rl和R3的第二个特征是重建的像素块的方差。DC模式(模式2)与其他三种内预测模式的不同之处在于所有的16x16像素值都是利用单个值(即,参考像素的均值)来预测的。当块的性质较平滑时,预期AVC编码器将会使用此模式。
如果我们将模式从模式2改为其余三种模式之一,则可以预期所得到的块(BW)的方差相对于原始块"B"将会增大。另一方面,如果编码器
选择模式0、 l或3,则预期该块一开始将具有较高的波动(与最初选择模式2的情形相比)。通过将内预测模式从模式0、 l或3改为模式2,该块Bw的方差相对于"B"的方差一般将会减小。同样,与内预测模式的改变相关联的AB将会导致重建块Bw的方差的增大或减小,并且方差改变的幅度将会取决于开始和结束模式而不同。方差改变的符号可用于编码(嵌入)数据。另外,方差改变的幅度可用作对改变的期望健壮性的指示,其中较大的幅度表明对于对经编码的比特流的进一步修改更加健壮。可以得到并使用对健壮性的更精密度量。
我们现在论述用于通过宏块类型来改变内预测模式的实现方式。在AVC中,宏块的16x16内预测模式是在mb-type字段中指定的。mb-type字段还指定该块的其他参数,例如coded-block-pattem (经编码块样式)。
参看图4,表400列出了 I片层的宏块类型("mb-type")并且提供了 mb-type值410及其含义的列表。直接从标准中取来的该表400在此实现方式中被用于找出在不改变coded-block-pattem 430和440或预测块大小445的情况下改变内预测模式420的mb-type值410。
为了在改变内预测模式420时保持除内预测模式420之外的其他语法,mb-type 410的改变限于仅在内预测模式420上不同的那些值。例如,原始的mb-type 11 (参见行450)表明内预测模式420为2 (DC)并且色度430和亮度440的coded-block-pattem分别是2禾卩0。该mb-type 410可被改变为9、 10或12,以在不改变coded-block-pattem 430和440或预测块大小445的情况下改变内预测模式420。
mb-type在比特流中被熵编码。如果使用CAVLC熵编码,则利用指数哥伦布码来对mb-type进行编码。指数哥伦布码是可变长度编码方案。一些特殊的应用,例如对创作的DVD盘的水印添加,要求替换(例如,VLC)数据与原始(例如,VLC)数据具有完全相同的长度。在此情况下,只有产生相同数目的(例如,VLC)比特的mb-type能用于替换原始mb-type 。
参看图5,表500是指数哥伦布编码表,并且列出了比特串形式(左列)510和相应的指数哥伦布码的值范围(右列)520。表500是直接从标准中取来的。根据该表500,我们发现,利用上述示例,mb-type9要求7比特。这可以通过首先注意到mb-type 9出现在右列520的第四条目530中给出的范围520内来确定,该范围520具有值"7-14"。然后我们注意到左列510的相应(第四)条目530示出了7比特,这7比特是0 0 0 1 x2Xl xQ。 x2 Xl xo例如可以按顺序来指派,其中OOO被指派给值7,而111被指派给值14。
因此,在CAVLC串的长度在水印添加之前和之后要保持相同的此实现方式中,mb-type仅能用也要求7比特的另一 mb-type来替换。在此情况下,mb-type 9、 10和12都落在相同的范围(7-14)内并且都要求7比特。因此,mb-type 9、 10和12都是可能的候选替换mb-type。这样,我们可以将图5的VLC比特长度与图4的宏块类型相结合,来确定哪些mb-type 可用于替换原始mb-type。在上述方法中实施了以下规则
1. 替代mb-type应当仅在内预测模式上有不同。
2. 与替代mb-type相对应的比特串的大小应当和与原始mb-type相对应的比特串的大小相同(如果要求恒定比特长度的话)。
在先前的部分中,我们建议应当就其对重建影像的保真性的影响以及其可检测性的健壮性来评估可能的改变。在该部分中,将描述用于将这两个效果组合成单个代价值的方法以及将该代价值用来选择应用哪些改变。
再参看图l,预处理的输入是经AVC编码的比特流。输出是水印添加元数据。处理流的初始步骤之一是识别其内预测模式可能能够被改变的每个经内编码的块。对于这些经内编码的块中的每一个,我们识别所有下述替代内预测模式这些替代内预测模式满足比特长度要求(如果应用要求恒定的比特长度的话),并且满足上述的第一规则,即相应的替代mb-type 仅在内预测模式上有不同。 假定特定的检测度量(例如,亮度均值,或者如前所述的块的方差),另一个步骤是收集原始检测值和所有的替代检测值。"检测值"是由于编码而得到的检测度量的值(数字)。例如,块的亮度均值的值。替代检测值是由于使用每个替代内预测模式而将得到的值。
30参看图6,过程600示出了在平均亮度被用作检测度量时用于确定检 测值的实施例。对于给定的块可以确定一个或多个检测值。例如,如果对 于给定的块存在多个替代,则可以为每个替代确定一检测值。典型的实现 方式在所确定的检测值之间进行优化。这种优化例如可包括为每个块选择 最佳替代,然后从这些最佳替代中选择前十个。此示例的结果是选出了具 有最佳检测值的十个块,其中"最佳"例如是根据所选择的度量来确定 的。另一种实现方式对于给定的块考虑多对替代,并且为每个块选择最佳 对,这将在下文中进一步说明。
过程600包括计算经内预测编码的块的平均亮度(610)。这是原始 的检测值,并且平均亮度可以根据预测与经解码的残差的加和来计算,如 先前针对式3-1所述。
过程600随后包括对于每个替代内预测模式计算经内预测编码的块的 平均亮度(620)。操作620使用替代模式来进行预测。平均亮度例如可 以在有或没有现有残差数据的情况下利用预测来计算。
过程600存储帧号码(或者更一般地说是图片号码)、块位置以及所 有平均亮度(630)。这些平均亮度包括由原始内预测模式得到的平均亮 度(操作610)以及由(一个或多个)替代内预测模式得到的(一个或多 个)平均亮度(操作620)。
过程600继续到下一个经内预测编码的块640并且重复操作610-630。过程600对给定图片中的所有经内预测编码的块执行。当然,其他 实现方式不需要这样详尽。注意,经内预测编码的块例如可以是来自经内 编码的图片(例如,I帧)的块,或者是来自经互编码的图片(例如,P 帧)的块,如果该块被内编码的话。
利用在过程600中收集的信息, 一种实现方式可以直接确定应当使用 哪些位置和哪些替代的替换值来提供水印添加。可以使用各种判决过程。 以下我们论述一个这种过程的实现方式。以下论述的实现方式例如使用了 在过程600中收集的信息来选择满足例如早前列出的要求Rl、 R2和R3的 位置和替代值。
水印添加算法的关键属性通常是健壮性(上述的R3)和保真性(上述的R2)。保真性也被称为不可察觉性。通常,健壮性和保真性这两个 属性是彼此矛盾的。我们介绍一种解析方法来说明这两者之间的平衡。
令Cf表示保真性代价。Cp被定义为水印越可见,值就越大。我们希 望进行保真性代价非常低的改变。存在许多用于测量Cf的方法,用户可 选择最适合于特定应用的方法/度量-本实现方式是独立于该选择的。
令CR表示健壮性代价。CR被定义为使得导致较弱健壮性的改变具有
较高的健壮性代价。较弱的健壮性意味着例如改变更容易变得不可检测。 例如,如果图片被解码并且像素数据被滤波,则一些改变可能被减弱并且 可能变得不可检测。同样,我们试图进行具有较低的健壮性代价的改变。
对于每个替代改变,我们计算与做出该改变相关联的保真性代价和健 壮性代价两者。我们随后组合这两个代价以获得做出该改变的总代价。总
代价是如下计算的
C = oCF + /3CR
其中限制《+^=1通常是有帮助的。在此情况下,我们可以写出
C=oCF + (l-0!)CR
被限制到0至1的范围的参数a用于控制保真性和健壮性之间的折衷。o; 的值越大就越强调保真性,而a的值越低就越强调健壮性。对于给定的 a;,可以计算每个替代预测模式的代价C。 C超过某一阈值的那些可被丢 弃。
为了满足上述的R2,即不可察觉性要求, 一种实现方式可以例如额 外为Cp使用一阈值水平。例如,在一种实现方式中,某个替代预测模式 的Cp的值被与一阈值相比较。如果Cp的值大于该阈值,则该替代预测模 式将不会被接受作为原始预测模式的可能替换。
在一种使用上述代价公式的特定实现方式中,使用了 16x16宏块。在 经内预测的16x16宏块中,存在三种可用的替代内预测模式和原始模式。 对于此示例,我们假定所有的不同内预测模式值都是有效的替代,因为我 们能够将模式改变成任何一个,而不改变coded-block-pattem或经编码比 特长度(如果要求恒定的比特长度的话)。查阅图4-5将会发现,这个假 定并非始终得到满足,但该假定对于当前论述的清楚和简要是有用的。此
32外,我们将假定检测度量是块的平均亮度。
为了嵌入数据比特,可以选择两个预测模式第一模式将被用于表示 "1",第二模式将被用于表示"0"。我们假定导致较低平均亮度的预测 模式将被用于表示比特"0"并且导致较大平均亮度的预测模式将被用于
表示比特"l"。于是,存在六种可能的对组合{Pi = (mode0, model), P2 =(modeO, mode2), P3 .画(modeO, mode3), P4 = (model, mode2), P5 = (model, mode3), P6 = (mode2, mode3)}。(注意如果预测模式中的一些不是有效替 代,则这些组合中的一些将不可用。)在此情况下,我们需要计算与选择 每个对组合相关联的保真性代价Cf和健壮性代价Cr。这些代价随后可用 于与应用要求相比较。对于每个对组合,Cp和CR是如下评估的。
令B表示原始像素块。令AB。和ABi分别表示在嵌入比特"0"或比特 "1"的情况下被添加水印的块和原始块之间的像素差异。如果原始的内 预测模式被用于表示"0"或"1"比特,则相应的AB就简单地是全零。 在这种情况下,保真性代价仅依赖于所选择的另一模式。假定存在K个可 用的对,则对k的保真性代价可通过下式来获得
CFP;t = F(B, AB0,織) (4-1) 其中函数F(')结合了如上所述的任何保真性度量(例如,Watson模型), 并且k是从1到K的索引。通常,该保真性函数将独立地评估ABo和 ABp从而为其每一个获得保真性代价值,并且将返回两个值中较大的那 个(表示两者中"较坏"的保真性)或者两个值的加和。保真性度量也可 以部分或全部地是基于用户评估的主观度量。
令Lo和Li分别表示在嵌入比特"0"或比特"1"的情况下块的亮度 (在此实现方式中是单个值)。令BlkSz表示内预测块大小。健壮性代价 可以按U、"和BlkSz的函数的形式来衡量。对于给定的亮度(或亮度改 变),较大的块大小可提供增大的健壮性。对k的健壮性代价可以通过下 式来获得
Crp^G(Lo山,BlkSz) (4-2) 其中函数G(')是如上所述的任何健壮性度量(例如,方差改变或平均亮度 改变的幅度)。同样,典型的健壮性度量将会独立地评估每个改变的健壮性并且返回两个代价中较大的那个或者两个代价的加和。 最后,此对的最终水印添加代价为
Q^aC附+ 0C鹏 (4-3) 一旦已经计算出了与每个对相关联的代价,则可以为该块选择具有最小代 价的对并将相应的代价赋给C,即改变该块的代价。
C-min(QO,其中k-l…K (4-4)
一旦已经确立了每个块的水印添加代价,块选择过程就可以是简单地基于 有效载荷要求来选出具有最小水印添加代价的块。例如,如果存在10个 有效载荷比特,则可以选择具有最小水印添加代价的IO个块。此示例的 10个有效载荷比特例如可以通过对一个或多个有效载荷码元编码来生成以 增大健壮性。另一种实现方式不对有效载荷码元/信息编码以增大健壮性, 而只是将有效载荷信息以二进制形式表示为有效载荷比特。
再次参看图1的实现方式,水印添加嵌入元数据105包含标识出比特 流中每个修改将会发生的位置的比特偏移量以及在有效载荷比特为"0" 或"l"的情况下将使用的值。从而,当保持跟踪替代改变时,我们跟踪 输入AVC流中可以找到描述当前mb-type的VLC码的比特位置。我们还 保持跟踪用于表示每个替代改变的特定比特串(来自图5的表)。从而, 在选择(可能是基于最小化总代价的选择)之后,系统可以写出嵌入元数 据105。对于此文件中的每个条目,存在一比特偏移量和两个比特串(例 如,VLC比特串),其中对于两个可能的有效载荷比特"0"和"1"中的 每一个存在一个比特串。
此外,预处理阶段写检测元数据(也在图1中示出)。这包括每个改 变的帧号码(或者更一般地说是图片号码)和块位置以及在其表示比特 "0"和"1"的情况下被添加水印的块的期望亮度(或其他检测度量)。 还要注意, 一些实现方式可在检测元数据中包括嵌入元数据,以允许在解 码之前检测流中的水印添加信息的存在。
如刚才所建议的,作为在像素级执行检测的替代或附加,检测可以在 比特流级执行。通过分析比特流,可以确定在指定的比特偏移量处嵌入了 什么有效载荷比特。然而,如前所述,如果比特流已经通过例如解码然后重编码被加以处理,则所产生的(经编码的)比特流可能完全不同于原始 的(经编码的)比特流。例如,重编码可能使用不同的块大小或模式(如 前所述)。在这种情况下,可能无法从比特流中检测水印,但如果水印足 够健壮,则可以从像素中检测水印(在对新比特流解码后)。
参看图7,过程700提供了利用代价方法来为经内预测编码的16x16
宏块确定水印添加元数据(嵌入和检测)的实现方式。过程700包括过程 600的基本特征。即,为宏块确定水印添加元数据的过程700包括为这些 宏块确定检测值。
过程700例如可对一图片中的给定的一组宏块执行,或者对一图片中 的所有宏块执行,或者对一图片序列中的所有宏块执行。在以下对过程 700的论述中,假定一种对图片中的所有宏块执行过程700的实现方式。
过程700包括在图片中的所有16x16宏块上循环(700),并且对使 用16x16内预测模式(参见例如图4)的每个16x16宏块执行一组操作 (720-750) 。 i亥组操作包括操作720-750。
对于使用16x16内预测模式的每个宏块,确定可能的替代内预测模式 (如果有的话)(720)。在一种实现方式中,这些替代必须满足以下要 求,即经编码块样式(430和440)以及预测块大小(445)保持相同,并 且宏块类型(410)的经编码比特长度保持相同(参见图5)。
对于每个可能的替代内预测模式或者模式组,确定总代价(730)。 在一种实现方式中,确定总代价包括利用上述式子序列来计算保真性代价 和健壮性代价。模式组例如可以是如前所述的一对模式或者模式的某种其 他组合。
确定最佳可能替代内预测模式或模式组(740)。在一种实现方式 中,最佳是利用如以上式4-4那样的最小化函数来确定的,该式选择具有 最小总代价的对。其他实现方式使用不同的函数来确定最佳可能替代,并 且也可识别多个"最佳"可能替代。例如,在上述的一种实现方式中, "最佳"可能替代是一对。该对可包括一个替代或两个替代。在过程700 的典型实现方式中,如果没有可能的替代内预测模式,则不存在"最佳" 模式。为最会可能替代内预测模式或模式组存储嵌入元数据和检测元数据 (750)。在一种实现方式中,嵌入元数据包括在流中的比特偏移量以及 (一个或多个)经编码的替代宏块类型,其中(一个或多个)替代宏块类 型对应于(一个或多个)最佳可能替代内预测模式。在一种实现方式中, 检测元数据包括图片号码(或帧号码)、宏块位置、以及原始和替代检测 值或某种其他参考检测值。在这种实现方式中,检测值可以在计算总代价
的操作730期间计算。例如,检测值可以在计算健壮性代价的过程中确定。
各种实现方式在存储元数据之前或之后对元数据进行化简或者更一般 而言是进行过滤。在一个这种实现方式中,每个块的最佳替代模式(或模
式组)被排名,并且只有前100个被保留并存储,因为仅存在100个有效 载荷比特。第二种实现方式规定在比特流中的任何两个改变之间必须存在 的未改变的比特的最小数目。第二实现方式中的这个标准例如可排除为两 个相邻的块使用最佳替代模式。第三实现方式规定经熵编码的比特流中的 每个特定改变的大小(以比特数目的形式)。第三实现方式中的这个标准 例如可规定嵌入元数据中的条目的大小。每个特定改变当然不需要实际改 变被替换的每个比特的值。在又一种实现方式中,对于给定的块,仅对最 佳替代模式(或模式组)存储元数据,如果该最佳替代也满足要求Rl、 R2和R3的话。另外, 一些实现方式可结合这些和其他标准。
在一种实现方式中,嵌入元数据包括在经压縮的比特流中可以找到原 始经编码比特块的位置以及两个比特块, 一个在相应有效载荷比特为 "0"的情况下用作替换块,另一个在相应有效载荷比特为"1"的情况下 用作替换块。在一种实现方式中,这些块之一本身是原始比特块,另一个 是替代比特块。在此情况下,可改变的语法元素的列表可包括仅存在一个 可接受替代值的语法元素。在另一种实现方式中,两个块都是对应于不同 语法值的替代比特块。在此情况下,可改变的语法元素的列表可以仅包括 存在至少两个可接受替代的语法元素。
在一种实现方式中,检测元数据包括嵌入元数据。利用这种信息,可 以直接从被添加水印的经编码比特流中恢复出有效载荷。
36在一种实现方式中,检测元数据作为附加或替代包括在经解压縮的运 ^!EgN免虔77il出、说7rr於、1ll别H^主、〉為^"3(r的/fr罟;^r"HT l)l 47(fi占H^図&县码和块号码、宏块号码、像素位置或恢复所需的任何其他定位符。检测元 数据还可包括对与有效载荷比特"0"和有效载荷比特"1"相关联的检测 值的指示或者某种其他参考检测值。检测元数据还可包括如果未曾进行改变则将测量到的检测度量的值。 换言之,其可包括检测度量的原始值。在先前的示例中,检测度量是特定 块的平均亮度并且检测数据可包括该块的原始平均亮度。通过包括原始 值,检测过程可以确定检测值由于水印添加是增大还是减小了。在一种实 现方式中,元数据的确定是在预处理期间执行的。为了增大水印添加技术对明度或对比度的全局或局部改变的健壮性, 还可为预期水印添加过程不会修改的块保存检测数据。例如,检测数据可 包括水印未改变的块的原始平均亮度。检测器随后可用其来作为一个参 考,用于确定整个图像或者至少在该参考的区域中的那部分图像是否经历 了亮度改变。如果参考块中的测得亮度不匹配检测数据所记录的,则在恢 复有效载荷之前可进行补偿。例如,可以向所有存储的检测值添加对平均 亮度度量的补偿。参看图8,过程800提供了基于一参考来确定嵌入元数据的一般实现 方式。过程800因此在功能上有些类似于过程700。过程800包括访问包括参考指示符的经可变长度编码的数据 (810)。即,经可变长度编码的数据包括标识出用于对图像进行预测性 编码的实际参考的信息的编码(参考指示符)。作为标识实际参考的信息 的编码的参考指示符具有特定值。在一个或多个前述示例中,参考指示符 是通过相应的内预测模式来标识出用于预测性地编码宏块的参考的宏块类 型字段的值的编码。过程800包括确定经可变长度编码的数据中参考指示符的位置 (820)。该位置例如用于创建嵌入元数据。.过程800还包括确定参考指示符的替代值(830)。该替代值不同于 该特定值。该替代值是标识与实际参考不同的另一个参考的替代信息的编37码。过程700的全部或一部分例如可用于执行操作830。在一个或多个前 述示例中,替代值是宏块类型字段的一不同值的编码。过程800可包括各种其他操作,例如将该替代值指定为该特定值的代 替(水印),评估该替代值作为水印的有效性,或者创建嵌入元数据。在利用例如过程700或过程800来创建一组可能的水印替换之后,一 种实现方式可选择要改变的宏块子集。该选择通常是基于应用的有效载荷 要求以及被应用到有效载荷的任何数据编码的。该选择通常被告知以每种 改变的代价(例如,如前所述的保真性和健壮性代价)。通常,该选择将 会倾向于较低代价的改变。在一种实现方式中,宏块被根据总代价来排 名,以为每个宏±义找出最佳可能替代(730和740)。具有最低总代价的 宏块(针对最佳可能替代)被选择来用有效载荷数据进行水印添加。参看图9,示出了描述用于插入替换值(例如,插入水印)的实现方 式的过程900。过程900包括访问有效载荷(910)。所访问的有效载荷可 以是比特或其他码元形式的。通常,有效载荷是比特形式的或者被转换成 比特。此外,有效载荷可以被编码。过程900包括确定替换位置和替换值(920)。操作920可利用例如 过程700并随后进行刚才描述的排名过程来执行。操作910和920可以按 任一顺序执行。然而, 一种实现方式首先执行操作910并且还确定有效载 荷比特的数目,然后在操作920中,通过例如仅选择排名较高的宏块直到 所有有效载荷比特都已被指派一宏块为止,来仅确定需要的位置。操作 920可能受各种其他实现方式要求的影响(例如,针对图7论述的那 些)。在至少一种实现方式中,操作920的全部或一部分是在预处理阶段期 间执行的。例如,在预处理阶段中,可以准备一包括嵌入元数据的表。然 后,在操作920中,可以通过访问该表来确定替换值和位置。过程900还包括在替换位置处插入替换值(930)以提供例如水印。 插入替换值包括利用替换值来替换现有的经编码数据。经修改的数据随后 例如可被存储或传输。这些替换动作通常被告知以经编码的有效载荷。参看图10,示出了描述用于基于参考来插入代替值的一般实现方式的过程1000。过程1000因此在功能上有些类似于过程900。过程1000包括访问包括参考指示符的经可变长度编码的数据 (1010)。即,经可变长度编码的数据包括标识出用于对图像进行预测性编码的实际参考的信息的编码(参考指示符)。作为标识实际参考的信息 的编码的参考指示符具有特定值。在一个或多个前述示例中,参考指示符 是通过相应的内预测模式来标识出用于预测性地编码宏块的参考的宏块类 型字段的值的编码。过程1000包括访问参考指示符的替代值(1020)。该替代值不同于 该特定值。该替代值是标识与实际参考不同的另一个参考的替代信息的编 码。该替代值例如可从存储设备中取得或者可被实时计算。 一种实现方式 例如可以从以参考指示符的位置为索引的表中访问替代值。过程1000包括插入该替代值来作为参考指示符的代替(1030)。该 替代值被插入到经可变长度编码的数据中以为图像添加水印。过程1000可包括各种其他操作,例如存储或传输经修改的经可变长 度编码的数据。1020所访问的标识经编码元素的位置和可能的替换值的数据的全部或 一部分可以被存储在存储装置上或被电子地发送。 一种实现方式将这些位 置和值存储在诸如DVD、硬盘或其他存储装置之类的设备上。该设备包 括其上存储有信息的处理器可读介质。所存储的信息标识出用于经编码的 一组数据的一部分的替换值。另一种实现方式提供了一信号,该信号被格 式化来包括被存储在此设备的处理器可读介质上的信息。其他实现方式涉及各种过程的结果,例如,过程900或过程1000的 结果。例如, 一种实现方式是包括经修改的经编码数据的诸如DVD、硬 盘或其他存储装置之类的设备,另一种实现方式是被格式化来包括这种经 修改的经编码数据的信号。更具体而言, 一种实现方式是包括处理器可读 介质的设备,该处理器可读介质上存储着包括经修改部分的经编码数据。 另一种实现方式是一种信号,该信号被格式化来包括被存储在此设备的处 理器可读介质上的经编码数据。上述论述描述了一种方法,用于分析目标语法元素,并且识别能够通39过用替代比特块替换经编码的比特流中的比特块来代入的所有可接受替代 值(如果有的话)。通过检查经AVC编码的序列中的所有语法元素;我 们可以构建存在至少一个可接受替代值的那些语法元素的列表。这是"可 改变语法元素"的列表。对于可以改变的每个语法元素,我们可以构建可 接受替代值的列表。注意,其他实现方式可以改变除宏块类型以及下层的 内预测模式之外的其他语法元素。这种其他语法元素例如包括运动向量、 残差值或利用DCT系数(例如)对残差值的编码、参考图片或参考帧的 互预测指示符。各种语法元素涉及参考信息,这指的是以某种方式来标识某个参考的 信息。参考一般指的是用作预测的基础的一组信息。参考标识符一般指的 是标识参考的信息。例如,参考可以由块的内预测模式来标识,因为内预 测模式标识了用作当前块的预测基础的像素。内预测模式还标识了所标识 的这些像素的使用方式。参考还可以由例如运动向量或者用作预测基础的 先前帧或宏块的指示符来标识。注意,给定的宏块可具有多个参考标识符 和多个参考。应当清楚,对于经内预测的块和经互预测的块可存在参考和/或参考标 识符。经内预测的块可使用诸如内预测模式或宏块类型(其标识内预测模 式)之类的参考标识符,并且参考例如可以是来自同一图片的块或一组像 素。经互预测的块可使用诸如运动向量之类的参考标识符,并且参考可以 是另一个不同图片的全部或一部分。信息嵌入的目标是根据有效载荷来修改所有可改变语法元素的列表上 的语法元素的子集,将其值从其原始值改变成所列出的可接受替代值之 一。在一种实际实现方式中,这是在如以图9所示的三个步骤中完成的。如上所述,在检测元数据的帮助下,可以从AVC比特流中恢复出有效载荷。在一些实现方式中,检测元数据指示出表示有效载荷信息的特定 语法元素以及这些元素的原始值。如果嵌入过程使用了原始值来表示"0"并用替代值来表示"1",则检测器可将比特流中的值与存储在检测 数据中的原始值相比较。如果它们匹配,则检测器报告"0"比特。如果 它们不匹配,则检测器报告"1"比特。如果嵌入过程用了两个替代值之一来替换原始值,则这两个替代值及其相应的标签被从检测数据中恢复出 来。检测器随后将比特流中的值与两个替代中的一个或多个相比较并报告 相应的标签。也可以从经解码的像素域影像中恢复出有效载荷数据。此过程是依子 集选择过程中使用的特定度量而定的。在一种实际实现方式中,该度量是 像素块的平均亮度。每个经修改的块的原始平均亮度被从检测数据中恢复 出来。检测器计算经解码的图像序列中的指定像素块的平均亮度并将该值 与存储在检测数据中的原始值相比较。如果计算出的值高于原始值,则检 测器报告"1"比特。如果计算出的值低于原始值,则检测器报告"0"比 特。这种实现方式将位置和原始值存储在检测数据中,但不需要存储 "0"比特或"1"比特的期望检测值。如果经解码的影像在解码之后、检测之前被利用亮度的均一改变来加 以修改,则此恢复方法可能是有问题的。为了解决此问题,若干个参考块 的平均亮度可被存储在检测数据中。存在不被嵌入过程所改变的块。检测 器可以就在恢复之前计算参考块的平均亮度,并且发现与嵌入过程无关的 任何亮度改变。这些亮度改变可以通过相应地调节原始值来得到补偿。至 少一种实现方式通过使用接近被添加水印的块的参考块来针对非均一亮度 改变进行调节。应当清楚,信息嵌入可包括多种应用。 一个这种应用是这样一种水印 添加其中,有效载荷被嵌入在数据流中。然而,各种信息嵌入应用可使 用不同的要求。例如,可能希望对数据流进行一种改变,这种改变将会导 致用户能够感觉到的改变。参看图11,示出了用于恢复有效载荷信息或者更一般而言用于检测水 印的一般过程UOO。过程1100可被应用到例如经编码并添加水印的比特 流,或者来自经解码的被添加了水印的比特流的基带数据。过程1100包括确定检査可能的水印的位置(1110)。注意此过程可 被应用到可能被应用了也可能未曾被应用水印添加过程的内容。另外,即 使应用了水印添加过程,也可能是在不改变内容的情况下嵌入有效载荷比 特的(如前所述)。因此,被检查的位置可能曾被改变,也可能未曾被改41变。如果内容先前曾被添加水印,则此过程被设计来恢复嵌入的有效载
荷。过程1100包括访问(1120)并分析(1130)来自所确定的位置的数 据。过程1100还包括基于该分析来识别水印信息,如果有任何水印存在 的话(1140)。所识别的水印信息例如可以是比特(或其他信息单元)的 序列,或者为宏块(或图片的其他单元)确定的检测值。
过程1100可以对一个或多个其他位置重复以识别构成有效载荷的一 个或多个另外的比特。从而,利用过程1100可以恢复出整个有效载荷。
过程1100的实现方式包括分析经修改的比特流以及分析基带数据 (例如,像素域数据或音频数据)。例如,根据前述实现方式之一,可以 通过修改与目标元素相关联的比特来修改比特流。在这种比特流中,可通 过访问适当的比特位置并且在这些位置处就修改进行测试来检测水印。例 如在嵌入元数据中找到的比特位置和经修改的值(或者可能的经修改的 值)也可被包括在检测数据中。
作为替代或附加,这种经修改的比特流可以被解码并且可能经历其他 处理,其中包括重编码。在重编码的情况下,预期这种经重编码的比特流 将不会在与原始经修改比特流相同的位置包括相同的经修改的目标元素。 然而,经重编码的比特流可以被解码以产生基带(例如,像素域或音频剪 辑)数字表示,其中通常仍存在原始修改的效果。因此,标识出原始修改 所影响到的帧和块号码的检测数据将是有用的。例如,目标元素可能本来 是特定块的运动向量,并且修改该运动向量的影响可能是该特定块或块集 合的平均亮度的增大。即使对原始的经修改的比特流进行了处理,这种平 均亮度的增大也可能得到保留。然而,在重编码之后,运动向量以及对运 动向量的原始改变通常不会完全相同。
参看图12,示出了描述过程1100的一种实现方式的过程1200,该实 现方式特别用于基带影像(即,像素数据)并且包括为基带影像而定制的 特定操作。然而,如果经压縮的数据而不是基带影像被访问(例如,被从 存储设备中取出或者在传输中被接收到),则我们可以对经压縮的数据解 码来获得基带影像。
过程1200包括访问基带影像(1205),并且可选地包括执行时间性
42和/或几何性配准(1210)。配准可能是必要的,因为检测元数据可能利用 /al力nth占总:KL壬门rh占Hb d^i+ii乂TV罢永说^:fe水;afr; tem'P而口难乂H;北T*好rh占异Sa
[Z'J >H7 h'"、 r :j HJ々、Ui^_H^|、 J贝/Kii , ) otii) i>u ,P1UI lM_AdJ_ _) 八J T乂、 J "7
和块的正确识别。存在许多用于获得此配准的方法,而实现方式是独立于 配准方法的,因此可以使用各种方法。
过程1200包括访问检测元数据(1215)。检测元数据中的每个条目 可以利用例如其帧位置和帧内的块来定义一个改变。对于每个条目,执行 一般可定义为包括操作1225-1245的循环(1220)。
对于检测元数据中的每个条目,从基带影像中提取出相应的像素数据 块(1225)。对于所提取的块,测量、计算或以其他方式确定检测特征 (1230)。在以上一个示例中,检测特征是平均亮度,而在另一个示例中 检测特征是方差。
过程1200以及循环(1220)包括将所确定的检测特征与检测元数据 相比较(1235)。该比较在一种实现方式中包括将所确定的特征(例如平 均亮度值)与检测元数据中的两个平均亮度值相比较。最佳匹配被选择并 且其相应码元被输出(1240)。 一种实现方式将最佳匹配识别为最接近所 确定的检测特征的所存储检测值。其他实现方式例如可应用非线性评估来 确定最佳匹配。
过程1200以及循环(1220)还包括循环返回以去往检测元数据中指 示的下一经内预测编码的块(1245)。循环(1220)对于检测元数据中指 示的所有块重复。
循环(1220)的每次反复都会从操作(1240)输出一个码元,其结果 是码元流(1250)。码元流被可选地解码(1255)。注意,实现方式并不 需要已对有效载荷比特编码。如果数据编码过程曾被应用到有效载荷(例 如,像图1中的数据编码器中那样),则相应的数据解码过程被应用到码 元流,以得出所恢复的有效载荷,其被称为有效载荷估计(1260)。
有效载荷估计(1260)对应于经解码的码元流,或者(如果有效载荷 未曾被编码的话)则对应于码元流。在典型的实现方式中,从操作 (1240)输出的码元是比特,但是其他实现方式对除比特之外的码元编 码。如上所述,当平均亮度被用作检测特征时,系统可能被明度的全局改 变所迷惑。换言之,明度的全局改变可能导致从基带影像中提取的亮度始 终更接近元数据中存储的两个值中更亮的那个。因此,码元流可能全由 "1"比特构成(而这是错误的)。为了应对这个问题,嵌入器可以向检 测信息中添加若干个参考条目。参考条目对于未受水印添加过程影响的块 列出了该块的帧号码、块位置和原始亮度值。检测器可以读出参考值并且 将其与在基带影像中看到的相应值相比较。基带影像随后可被调节(可能 在配准期间进行),以使得参考块中的测得亮度与检测元数据文件中列出 的相匹配。
过程900或过程1200的各种实现方式使用了所存储的包括多种数据 段中的一种或多种的检测元数据。例如,检测元数据可包括标识用来检查 可能的水印的位置的位置信息。位置信息例如可包括帧标识符和/或块标识 符。
检测元数据例如可包括特征的基准(benchmark)值。基准例如可以 是在该位置被修改之前该特征的值。基准例如可被与所访问的位置的该特 征的实际值(新基准)相比较(1120)以提供对改变的指示。例如,该比 较可以表明该值(基准)是否由于修改而增大或减小。
检测元数据例如可包括来自一不同位置(未被添加水印的位置)的特 征的基本值。这种基本值例如可以是未被添加水印的位置的平均亮度。该 基本值可如前所述用来确定是否存在影响了不止被添加水印的位置的对数 据的改变。在某些情况下,可能存在全局改变(例如,对整个帧的改 变)。例如,整个帧的平均亮度可能已被改变。于是可将基本值与在未被 添加水印的位置处该特征的新值(新基本值)相比较。如果差异大于阈 值,则它可确定发生了全局改变。或者,该差异可以就被认为是全局差 异,并且该差异可以被添加到为(可能的)被添加了水印的位置确定的值 (新基准)以考虑到该全局改变。注意,在此替代方案中,差异可以(改 为)被添加到基准而不是该值(新基准)。另外,在某些实现方式中,可 以确定基本值和新基本值之间的比率,并且可以将基准或新基准乘以该比 率。参看图13,系统1300提供了用于利用预先准备的嵌入信息(被称为 嵌入元数据)来为视频添加水印(也可为其他类型的内容添加水印)的播
放器1305。被添加了水印的视频被提供用于显示。系统1300还允许对被 提供用于显示的视频进行重编码,这例如可发生在视频的未授权拷贝被重 编码时。系统1300还允许了对该重编码进行解码,并且在整个系统中的 一个或多个点处检测原始有效载荷。系统1300还用作一个或多个过程的 流程图。
播放器1305包括有效载荷1310、视频1315和嵌入元数据1318。播 放器1305包括水印添加单元1320,该水印添加单元1320接收有效载荷 1310、视频1315和嵌入元数据1318,并且提供添加了水印的视频。有效 载荷可以被有效载荷检测器1345从添加了水印的视频中检测出。
播放器1305包括熵解码器1325,该熵解码器1325接收添加了水印的 视频并执行熵解码。播放器1305还包括预测解码器1330,该预测解码器 1330从熵解码器1325接收经熵解码的流并且执行预测性解码以产生像素 域图像1335。像素域图像可被提供到显示器1355,或者被提供到在基带 数据上工作的有效载荷检测器1350。
像素域图像还可被提供到重预测编码器1360,该重预测编码器1360 之后是重熵编码器,用于将像素域图像重编码为经编码的输出1370。经编 码的输出1370例如可以是符合AVC的比特流。经编码的输出1370例如 可被存储在可记录介质上以便分发。重预测编码器1360和重熵编码器 1365可以是与播放器1305分开并且用于产生内容的未授权拷贝(由输出 1370表示)的装置的一部分。
经编码的输出1370例如可被提供到熵解码器1380 (其可与熵解码器 1325相同),其后是预测解码器1385 (其可与预测解码器1330相同), 用于将经编码的输出1370解码为像素域图像1390。像素域图像1390可被 提供到显示器1392和/或有效载荷检测器1395 (其可与有效载荷检测器 1350相同)。熵解码器1380和预测解码器1385可以是与播放器1305以 及重预测编码器1360和重熵编码器1365分开的装置的一部分。例如,一 个这种分开的装置可以在地理上位于接收并分析内容的未授权拷贝(由输出1370表示)的有效载荷检测设施处。
很明显,过程900或本申请中描述的其他过程可由包括处理装置在内 的多种装置来执行。这种装置还可包括用于存储诸如被访问的数据、基准 值、基本值和可能的水印信息的(一个或多个)位置之类的数据的存储装 置。另外,过程900或本申请中描述的其他过程也可以体现在一组指令 中。
所描述的实现方式的特征和方面可被应用到各种应用。这些应用例如 包括对诸如DVD或其他盘之类的盘进行水印添加以及对数字流进行水印 添加。盘的水印添加可通过各种方式执行,例如在复制盘时执行。数字流 的水印添加也可通过各种方式执行,例如在回放、广播、下载或以其他方 式传送数字流时执行。这些特征和方面可能能够适应于其他应用领域。例 如,经编码的比特流可能为了除水印添加之外的目的而被修改。 一个示例 包括嵌入希望观看者看到的消息。另外,该消息可基于有效载荷或其他标 准而被改变。另外,虽然所描述的实现方式主要关注可变长度编码,但其 他应用也可将相同的概念用于其他编码技术。
本申请中描述的概念、实现方式和特征可在例如典型的DVD创建、 分发和回放过程的各个阶段中应用。例如,这些概念和特征可用于
1. 对内容进行预处理以确定替换值。替换值不需要在此阶段被插入, 而是可以被存储在例如一数据结构(例如,表)中以便将来插入。
2. 第1条中提及的数据结构或者传达该数据结构的信号或者存储该数 据结构的处理器可读介质。这种介质例如可包含该数据结构和未经修改的 内容两者。
3. 将来自以上第1条的替换值插入到内容中。
4. 从以上第3条产生的经修改的内容,该内容或者在一数据结构中, 在传达经修改的内容的信号中,或者在存储经修改的内容的处理器可读介 质中。
5. 对以上第4条的经修改内容解码以产生基带数据,例如像素数据 (如果图像被编码的话)或者音频数据(如果音频被编码的话)。
6. 来自以上第5条的经解码的内容本身,这是可能包括水印的经修改
46的内容。经解码的内容例如可以在一数据结构中,在传达经解码的内容的信号中,或者在至少临时存储经解码的内容的处理器可读介质中。
7. 显示或者更一般地说展现以上第6条的经解码的内容。还包括提供以便显示或展现。
8. 对来自以上第6条的经解码的内容进行重编码,以使得即使经编码
的比特可能不同于以上第4条中提供的那些,(由于修改而得到的)检测
特征也得以保持。
9. 包含来自第8条的经重编码的内容的数据结构。或者格式化并传达
该经重编码的内容的信号。或者存储该经重编码的内容的处理器可读介质。
10. 对以上第8条的经重编码的内容解码以产生基带数据。
11. 通过以上第IO条中的解码而产生的基带数据。该基带数据例如可以在一数据结构中,在传达该基带数据的信号中,或者在至少临时存储该基带数据的处理器可读介质中。
12. 显示或更一般地说展现以上第11条的基带数据。还包括提供以便显示或展现。
13. 从以上第4条的经修改的内容中检测有效载荷(例如,水印)。
14. 从以上第5条的基带数据中检测有效载荷。
15. 从以上第8和第9条的经重编码的内容中检测有效载荷,如果经编码的比特允许的话。
16. 从以上第11条的基带数据中检测有效载荷。
注意,如果标题被用于本公开的各个部分,则一给定部分的标题并不应当被解释为将该部分的公开限于该标题的主题,也不应当被解释为将其他部分的公开限制为不是该标题的主题。这种标题是示例性的,并且意图作为对读者的一般帮助。这种标题并不意图局限公开的流程或者限制公开的应用性或一般性。
本申请中使用的水印可以指各种项目。例如,水印可以指被修改或插入以允许以后检测的数据或者指所得到的基带修改。
应当清楚,语法元素可以表示各种不同类型的信息中的一种或多种。例如,语法元素可以是运动向量、残差DCT系数、宏块类型、量化参数或者标志。因此,语法元素不需要都具有相同长度,而是可以具有各种不同的长度。本申请中公开的各种实现方式可在任何类型的语法元素上工作,不论该语法元素表示何种类型的信息也不论该语法元素的大小/长度如何。
各种实现方式是就例如图片、帧或块来描述的。然而,本申请中描述的概念、实现方式和特征一般地适用于图像,并且该图像可以是(或包括) 一个或多个像素、块、片层、场、帧、图片或序列。
此外,许多实现方式是就视频数据来描述的。然而,这些概念、实现方式和特征一般同样适用于音频数据或其他类型的经编码数据。
如果两个装置直接连接或间接连接,则认为这两个装置或组件耦合。直接连接的装置在其间没有中间装置。间接连接的装置在其间有一个或多个中间装置。
另外,许多实现方式是针对AVC来描述的。然而,这些概念、实现方式和特征(1)不需要限于标准环境,而是可应用到不使用标准的环
境,(2)当然不限于AVC, (3) —般适用于其他已知标准,并且(4)至少在某种意义上将一般适用于以后开发的标准。其他标准可包括与AVC相关的标准,这一般指的是基于或者类似于AVC (带有或不带有其扩展)的其他标准。
这里描述的实现方式可以例如以方法或过程、设备或软件程序的形式来实现。即使仅仅是在一种实现方式的上下文中论述的(例如,仅是以方法的形式论述的),所论述的特征的实现方式也可以用其他形式来实现(例如,以设备或程序的形式来实现)。设备例如可以用适当的硬件、软件和固件来实现。方法例如可以实现在诸如处理器之类的设备中,其中处理器总地指处理装置,包括例如计算机、微处理器、集成电路或可编程逻辑器件。处理装置还包括通信装置,例如计算机、蜂窝电话、便携式/个人数字助理("PDA"),以及其他促成终端用户之间的信息通信的装置。
这里描述的各种过程和特征的实现方式可以在多种不同的装置或应用中实现,尤其例如是在与数据编码和解码相关联的装置或应用或者与内容
48产生相关联的装置或应用中实现。装置的示例包括视频编码器、视频解码器、视频编解码器、web服务器、机顶盒、膝上型笔记本电脑、个人计算机、蜂窝电话、PDA和其他通信装置。应当清楚,该装置可以是移动的,
并且甚至可被安装在移动交通工具中。
此外,方法可以通过处理器执行指令来实现,并且这种指令可被存储在处理器可读介质上,所述处理器可读介质例如是集成电路、软件载体或
者诸如硬盘、致密盘、随机存取存储器("RAM")或只读存储器("ROM")之类的其他存储装置。指令可形成有形地包含在处理器可读介质上的应用程序。指令例如可以采取硬件、固件、软件或其组合的形式。指令可存在于例如操作系统、单独的应用或两者的组合中。处理器的特征因此可在于例如被配置为执行过程的装置以及包括具有用于执行过程的指令的计算机可读介质的装置。
正如对于本领域的技术人员来说显而易见的,这些实现方式还可产生被格式化来携带例如可被存储或传输的信息的信号。该信息例如可包括用于执行方法的指令,或者由上述实现方式之一产生的数据。这种信号例如可被格式化为电磁波(例如,利用频谱的射频部分)或基带信号。格式化例如可包括对数据流编码并利用经编码的数据流来调制载波。信号携带的信息例如可以是模拟或数字信息。正如已知的,信号可通过多种不同的有线或无线链路来传输。
已经描述了若干个实现方式。然而,应当理解,可以进行各种修改。例如,不同实现方式的要素可被组合、补充、修改或去除以产生其他实现方式。此外,本领域的普通技术人员将会理解,可以用其他结构和过程来代替所公开的那些,并且由此产生的实现方式将以与所公开的实现方式至少基本相同的(一个或多个)方式来执行与所公开的实现方式至少基本相同的(一个或多个)功能,以实现与所公开的实现方式至少基本相同的(一个或多个)结果。因此,这些和其他实现方式被本申请所设想到并处于权利要求的范围之内。
49
权利要求
1.一种方法,包括访问(810)经可变长度编码的数据,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;以及确定(830)与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码,其中所述替代值用于对所述经可变长度编码的数据进行水印添加。
2. 如权利要求1所述的方法,还包括将所述替代值指定为所述特定值的代替,以用于对所述经可变长度编码的数据进行水印添加。
3. 如权利要求2所述的方法,还包括评估使用所述替代值取代当前值作为水印的有效性,并且其中指定所述替代值作为代替的步骤是基于评估有效性的结果的。
4. 如权利要求3所述的方法,其中,评估包括基于所述水印的保真性和所述水印的健壮性来为所述替代值确定代价。
5. 如权利要求3所述的方法,还包括评估另一替代值的有效性;以及基于来自评估所述替代值和评估所述另一替代值的结果,确定所述替代值更有效,并且其中,指定所述替代值作为代替的步骤是基于确定所述替代值更有效而进行的。
6. 如权利要求5所述的方法,其中所述特定值标识出H.264/AVC或相关标准中的经内预测的16x16宏块的宏块类型字段的第一值,该第一值指示第一内预测模式,所述替代值标识出H.264/AVC或相关标准中的经内预测的16x16宏块的宏块类型字段的第二值,该第二值指示第二内预测模式,并且所述另一替代值标识出H,264/AVC或相关标准中的经内预测的16x16宏块的宏块类型字段的第三值,该第三值指示第三内预测模式。
7. 如权利要求6所述的方法,其中,所述第一值、所述第二值和所述 第三值中每一个的CAVLC编码使用相同数目的比特。
8. 如权利要求1所述的方法,还包括 将所述替代值插入到一表中;确定所述特定值在所述经可变长度编码的数据中的位置;以及 将标识出所述特定值在所述经可变长度编码的数据中的位置的信息插入到所述表中,所述位置是所述替代值将被插入到所述经可变长度编码的数据中以替换所述特定值的位置。
9. 如权利要求1所述的方法,还包括在所述经可变长度编码的数据中 利用所述替代值来替换所述特定值。
10. 如权利要求1所述的方法,其中,标识出所述实际参考的信息标 识出与当前块相邻的块的像素位置,其中,所述像素位置的值用于预测所 述当前块的至少一部分。
11. 如权利要求1所述的方法,其中,标识出所述实际参考的信息标 识出参考块。
12. 如权利要求1所述的方法,其中,标识出所述实际参考的信息标 识出参考图片。
13. 如权利要求1所述的方法,其中,标识出所述实际参考的信息包 括H.264/AVC或相关标准中的宏块类型字段。
14. 如权利要求1所述的方法,其中,标识出所述实际参考的信息包 括H.264/AVC或相关标准中的经内预测的16x16宏块的宏块类型字段。
15. 如权利要求1所述的方法,其中,标识出所述实际参考的信息包 括H.264/AVC或相关标准中的预测模式。
16. 如权利要求1所述的方法,其中,标识出所述实际参考的信息包括运动向量o
17. 如权利要求1所述的方法,其中,所述经可变长度编码的数据还 包括标识出由利用当前参考来预测所述图像所产生的当前残差的信息的编 码。
18. 如权利要求l所述的方法,其中所述经可变长度编码的数据是利用特定的可变长度码来编码的,并且所述替代值利用所述特定的可变长度码来对所述替代信息编码。
19. 一种设备,包括熵解码器(106),用于对经可变长度编码的数据进行解码,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;以及耦合到所述熵解码器的水印生成器(108),用于确定与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码,其中所述替代值用于对所述经可变长度编码的数据进行水印添加。
20. 如权利要求19所述的设备,其中,所述水印生成器被配置为创建用于对所述经可变长度编码的数据进行水印添加的元数据,该元数据包括(1)所述替代值,以及(2)所述经可变长度编码的数据中的所述特定值的位置,并且所述元数据将所述替代值和所述位置关联起来。
21. —种设备(104),包括用于访问经可变长度编码的数据的装置,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;以及用于确定与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码的装置,其中所述替代值用于对所述经可变长度编码的数据进行水印添加。
22. —种被配置为执行至少以下操作的处理器访问经可变长度编码的数据,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;以及确定与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码,其中所述替代值用于对所述经可变长度编码的数据进行水印添加。
23. —种处理器可读介质,存储有用于执行至少以下操作的指令访问经可变长度编码的数据,该经可变长度编码的数据包括标识出用 于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;以及确定与所述特定值不同的替代值,以使得该替代值是标识出与所述实 际参考不同的参考的替代信息的编码,其中所述替代值用于对所述经可变 长度编码的数据进行水印添加。
24. —种处理器可读介质,存储有水印数据(105), 该水印数据用于对经可变长度编码的数据进行水印添加,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编 码,该信息的编码具有特定值,并且该水印数据包括与所述特定值不同的替代值,以使得该替代值是标识 出与所述实际参考不同的参考的替代信息的编码,所述替代值是用于对所 述经可变长度编码的数据进行水印添加的、对所述特定值的代替。
25. 如权利要求24所述的处理器可读介质,其中,所述处理器可读介 质存储有包括标识出用于对所述图像进行预测编码的所述实际参考的信息 的编码的所述经可变长度编码的数据,所述信息的编码具有特定值。
26. —种被格式化为包括水印数据(105)的信号,该水印数据用于对 经可变长度编码的数据进行水印添加,该经可变长度编码的数据包括标识 出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有 特定值,该水印数据包括与所述特定值不同的替代值,以使得该替代值是标识 出与所述实际参考不同的参考的替代信息的编码,所述替代值是用于对所 述经可变长度编码的数据进行水印添加的、对所述特定值的代替。
27. —种方法,包括访问(1010)经可变长度编码的数据,该经可变长度编码的数据包括 标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码 具有特定值;访问(1020)与所述特定值不同的替代值,以使得该替代值是标识出 与所述实际参考不同的参考的替代信息的编码;以及将所述替代值作为对所述特定值的代替插入(1030)到所述经可变长度编码的数据中以对所述图像进行水印添加。
28. 如权利要求27所述的方法,其中对所述经可变长度编码的数据的访问是响应于对展现所述经可变长度编码的数据的请求而发生的,并且用于确定所述替代值的处理操作在访问所述经可变长度编码的数据之前已被执行,以使得在接收到所述对展现所述经可变长度编码的数据的请求并且随后访问所述经可变长度编码的数据时,可在无需确定所述替代值的情况下插入所述替代值。
29. 如权利要求27所述的方法;还包括在访问所述替代值之前执行用于确定所述替代值的处理操作。
30.—种设备,包括被配置为执行至少以下操作的流修改单元(102,1320):访问经可变长度编码的数据,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;访问与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码;以及将所述替代值作为对所述特定值的代替插入到所述经可变长度编码的数据中以对所述图像进行水印添加。
31. 如权利要求30所述的设备,还包括DVD读取器,并且其中所述设备是DVD播放器。
32. —种设备(102),包括用于访问经可变长度编码的数据的装置,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;用于访问与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码的装置;以及用于将所述替代值作为对所述特定值的代替插入到所述经可变长度编码的数据中以对所述图像进行水印添加的装置。
33. —种被配置为执行至少以下操作的处理器 访问经可变长度编码的数据,该经可变长度编码的数据包括标识出用 于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定 值;访问与所述特定值不同的替代值,以使得该替代值是标识出与所述实际参考不同的参考的替代信息的编码;以及将所述替代值作为对所述特定值的代替插入到所述经可变长度编码的 数据中以对所述图像进行水印添加。
34. —种处理器可读介质,存储有用于执行至少以下操作的指令-访问经可变长度编码的数据,该经可变长度编码的数据包括标识出用 于对图像进行预测编码的实际参考的信息的编码,该信息的编码具有特定值;访问与所述特定值不同的替代值,以使得该替代值是标识出与所述实 际参考不同的参考的替代信息的编码;以及将所述替代值作为对所述特定值的代替插入到所述经可变长度编码的 数据中以对所述图像进行水印添加。
35. —种处理器可读介质,存储有用于图像的编码的经可变长度编码 的数据(103),该经可变长度编码的数据包括标识出替代参考的信息的 编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,其 中,标识出所述替代参考的信息为所述图像提供水印。
36. 如权利要求35所述的处理器可读介质,其中,存储在所述介质上 的所述经可变长度编码的数据还包括标识出来自利用所述实际参考对所述 图像进行预测编码的残差的信息的编码。
37. —种被格式化为包括用于图像的编码的经可变长度编码的数据 (103)的信号,该经可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,所述 替代参考为所述图像提供水印。
38. —种方法,包括对用于图像的编码的经可变长度编码的数据进行解码(1325),该经可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,其中,标识出所述替代参考的信息为所述图像提供水印。
39. 如权利要求38所述的方法,其中,所述经可变长度编码的数据还包括标识出来自利用所述实际参考对所述图像进行预测编码的残差的信息的编码。
40. 如权利要求38所述的方法,其中,解码包括对可变长度码和预测码进行解码。
41. 如权利要求38所述的方法,其中,解码产生所述图像的基带重建,该基带重建由于包括可检测特征不同于原始图像,该可检测特征源于使用标识出所述替代参考的信息作为水印。
42. —种设备,包括解码器(1325),该解码器被配置为对用于图像的编码的经可变长度编码的数据进行解码,该经可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,其中,标识出所述替代参考的信息为所述图像提供水印。
43. —种设备,包括用于对用于图像的编码的经可变长度编码的数据进行解码的装置(1325),该经可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,其中,标识出所述替代参考的信息为所述图像提供水印。
44. 如权利要求43所述的设备,还包括用于存储所述经可变长度编码的数据的存储器装置。
45. —种处理器,被配置为对用于图像的编码的经可变长度编码的数据进行解码,该经可变长度编码的数据包括标识出替代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实际参考,其中,标识出所述替代参考的信息为所述图像提供水印。
46. —种处理器可读介质,存储有用于对用于图像的编码的经可变长度编码的数据进行解码的指令,该经可变长度编码的数据包括标识出替代 参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实 际参考,其中,标识出所述替代参考的信息为所述图像提供水印。
47. —种处理器可读介质,存储有像素域图像(1335),该像素域图 像包括可检测特征,该可检测特征源于来自所述图像的预测编码的一个或 多个语法元素的可变长度编码的水印,所述可变长度编码包括了标识出替 代参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的 实际参考,其中,标识出所述替代参考的信息为所述图像提供了所述水 印。
48. —种方法,包括提供(1330)像素域图像的显示,该像素域图像 包括可检测特征,该可检测特征源于来自所述图像的预测编码的一个或多 个语法元素的可变长度编码的水印,所述可变长度编码包括了标识出替代 参考的信息的编码,该替代参考不同于用于对所述图像进行预测编码的实 际参考,其中,标识出所述替代参考的信息为所述图像提供了所述水印。
49. 一种方法,包括对图像的添加了水印的版本的预测编码进行可变长度编码(1365), 经可变长度编码的数据包括用于对所述图像的添加了水印的版本进行编码 的当前参考的指示符和所产生的残差的指示符,所述图像的添加了水印的 版本具有提供水印的可检测特性,其中,所述可检测特性是由于以下操作而产生的(1)修改所述图 像的先前预测编码的先前可变长度编码,所述先前预测编码是基于先前参 考的并且包括标识所述先前参考的信息,其中所述修改包括使所述信息失 真以便指示出替代参考并为所述图像提供所述可检测特性,以及(2)对 所述图像的先前可变长度编码和先前预测编码进行解码以产生其中存在所 述可检测特性的所述图像的添加了水印的版本。
50. —种处理器可读介质,存储有来自对图像的添加了水印的版本的预测编码的可变长度编码的经可变 长度编码的数据,所述经可变长度编码的数据包括用于对所述图像的添加 了水印的版本进行编码的当前参考的指示符和所产生的残差的指示符,所述图像的添加了水印的版本具有提供水印的可检测特性,其中,所述可检测特性是由于以下操作而产生的(1)修改所述图 像的先前预测编码的先前可变长度编码,所述先前预测编码是基于先前参 考的并且包括标识所述先前参考的信息,其中所述修改包括使所述信息失 真以便指示出替代参考并为所述图像提供所述可检测特性,以及(2)对 所述图像的先前可变长度编码和先前预测编码进行解码以产生其中存在所 述可检测特性的所述图像的添加了水印的版本。
51. —种方法,包括对来自对图像的添加了水印的版本的预测编码的可变长度编码的经可变长度编码的数据进行解码(1380-1385),所述经可 变长度编码的数据包括用于对所述图像的添加了水印的版本进行编码的当 前参考的指示符和所产生的残差的指示符,所述图像的添加了水印的版本 具有提供水印的可检测特性,其中,所述可检测特性是由于以下操作而产生的(1)修改所述图像的先前预测编码的先前可变长度编码,所述先前预测编码是基于先前参 考的并且包括标识所述先前参考的信息,其中所述修改包括使所述信息失真以便指示出替代参考并为所述图像提供所述可检测特性,以及(2)对所述图像的先前可变长度编码和先前预测编码进行解码以产生其中存在所 述可检测特性的所述图像的添加了水印的版本。
52. —种处理器可读介质,存储有像素域图像数据(1390),该像素 域图像数据是由于对来自对图像的添加了水印的版本的预测编码的可变长 度编码的经可变长度编码的数据进行解码(1380-1385)而产生的,所述经 可变长度编码的数据包括用于对所述图像的添加了水印的版本进行编码的 当前参考的指示符和所产生的残差的指示符,所述图像的添加了水印的版 本具有提供水印的可检测特性,其中,所述可检测特性是由于以下操作而产生的(1)修改所述图 像的先前预测编码的先前可变长度编码,所述先前预测编码是基于先前参 考的并且包括标识所述先前参考的信息,其中所述修改包括使所述信息失 真以便指示出替代参考并为所述图像提供所述可检测特性,以及(2)对 所述图像的先前可变长度编码和先前预测编码进行解码以产生其中存在所述可检测特性的所述图像的添加了水印的版本。
53. —种方法,包括提供(1385)像素域图像数据的显示,该像素域 图像数据是由于对来自对图像的添加了水印的版本的预测编码的可变长度 编码的经可变长度编码的数据进行解码而产生的,所述经可变长度编码的 数据包括用于对所述图像的添加了水印的版本进行编码的当前参考的指示 符和所产生的残差的指示符,所述图像的添加了水印的版本具有提供水印 的可检测特性,其中,所述可检测特性是由于以下操作而产生的(1)修改所述图像的先前预测编码的先前可变长度编码,所述先前预测编码是基于先前参 考的并且包括标识所述先前参考的信息,其中所述修改包括使所述信息失真以便指示出替代参考并为所述图像提供所述可检测特性,以及(2)对所述图像的先前可变长度编码和先前预测编码进行解码以产生其中存在所 述可检测特性的所述图像的添加了水印的版本。
54. —种方法,包括访问(1100)标识出在经可变长度编码的数据中信息的可变长度编码所在的位置的信息,该信息标识出与图像的预测编码相关联的至少两个参考之一;在所述经可变长度编码的数据中的所述位置处访问(1120)所述信息 的编码;基于所述信息的编码来确定(1130)所述至少两个参考中的哪一个被 标识;以及基于确定所述至少两个参考中的哪一个被标识的结果来确定(1140) 有效载荷信息。
55. 如权利要求54所述的方法,其中,所标识的参考不同于用于对所 述图像进行预测编码的实际参考,并且对所述所标识的参考而不是所述实 际参考进行可变长度编码将为所述宏块提供水印。
56. —种方法,包括访问(1205)像素域图像,该像素域图像包括可检测特征,该可检测 特征源于来自所述图像的预测编码的一个或多个语法元素的可变长度编码的水印,所述可变长度编码包括了标识出替代参考的信息的编码,该替代 参考不同于用于对所述图像进行预测编码的实际参考,其中,标识出所述 替代参考的信息为所述图像提供了所述水印;访问(1215)检测元数据,该检测元数据指示出所述像素域图像中所 述可检测特征所在的位置;在所述位置处分析(1230)所述像素域图像以为所述可检测特征确定 一值;访问(1235)另外的检测元数据,该另外的检测元数据指示出所述可 检测特征的比较值;将所确定的所述可检测特征的值与所述比较值相比较(1235);以及 基于所述比较的结果来确定(1240-1260)有效载荷信息。
全文摘要
提供了各种实现方式,用于例如确定水印添加数据,执行水印添加,以及处理被添加了水印的数据。至少一种实现方式对使用CAVLC熵编码的AVC比特流进行水印添加。水印添加数据可以在预处理阶段中确定并且被存储来供以后用于对比特流进行水印添加。一种方法访问(810)经可变长度编码的数据,该经可变长度编码的数据包括标识出用于对图像进行预测编码的实际参考的信息的编码。该信息的编码具有特定值。该方法确定(830)与该特定值不同的替代值,以使得该替代值是标识出与该实际参考不同的参考的替代信息的编码。该替代值用于对该经可变长度编码的数据进行水印添加。
文档编号G06T1/00GK101681499SQ200880020008
公开日2010年3月24日 申请日期2008年6月13日 优先权日2007年6月14日
发明者杰弗里·亚当·布鲁姆, 邹德昆 申请人:汤姆逊许可证公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1