CN1645937A - 给数字视频加水印的方案 - Google Patents

给数字视频加水印的方案 Download PDF

Info

Publication number
CN1645937A
CN1645937A CNA2004100826179A CN200410082617A CN1645937A CN 1645937 A CN1645937 A CN 1645937A CN A2004100826179 A CNA2004100826179 A CN A2004100826179A CN 200410082617 A CN200410082617 A CN 200410082617A CN 1645937 A CN1645937 A CN 1645937A
Authority
CN
China
Prior art keywords
value
frame
bit
piece
pixel
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.)
Granted
Application number
CNA2004100826179A
Other languages
English (en)
Other versions
CN1645937B (zh
Inventor
默哈默德·侯塞茵·萨拉比扎德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Origin Asset Group Co ltd
Original Assignee
Lucent Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of CN1645937A publication Critical patent/CN1645937A/zh
Application granted granted Critical
Publication of CN1645937B publication Critical patent/CN1645937B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0085Time domain based watermarking, e.g. watermarks spread over several images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0028Adaptive watermarking, e.g. Human Visual System [HVS]-based watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0202Image watermarking whereby the quality of watermarked images is measured; Measuring quality or performance of watermarking methods; Balancing between quality and robustness

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (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)
  • Color Television Systems (AREA)
  • Television Systems (AREA)

Abstract

至少复制一次要印象到块的色度部分平均值上的数据。原始和每个复制数据印象到各个帧的相同块位置中的块上。将具有携带相同数据的相同位置块的帧考虑作为一个组。帧的特定块可以嵌入特定的已知数据序列而不是用户数据。每个组可以应用一个不同的已知序列。代替简单地重复用于一组的每个相同位置块的数据,即使当块的复杂度相同时,也可以从组中的一帧到另一帧稍微改变为用于每个这种块的平均值所增加的量。在一个接收机处,提取相同数据比特的多个实例并将其组合形成一个单独的接收比特。

Description

给数字视频加水印的方案
相关申请的交叉参考引用
同时与本申请一起提交的序列号为第(Zarrabizadeh 22)号和第(Zarrabizadeh 24)号的美国专利申请。
技术领域
本发明涉及给数字视频加水印的技术,具体而言,本发明涉及将附加信息包括在数字视频信息中的技术。
背景技术
给视频信号加水印通常为在视频本身内包括附加信息。这能够有利于提供视频源的嵌入式标识,以跟踪视频播放的位置以及播放时间的长短,并通过该视频传送信息到辅助设备。用于给数字信号加水印的现有技术典型使用视频亮度将附加信息编码为视频本身内的模拟格式以携带附加信息。但是,人类的视觉系统对亮度信号非常敏感,因此,当试图增加附加信息的比特率到一定点,例如超过120比特每秒时,观察加有水印信号的人很容易感知这种改变视频信号用以传送附加信息所引起的失真。从而,尽管给视频信号加水印的现有技术在某些应用领域已经获得了一定的成功,但这种成功限制于可达到的非常小的比特率,而当人观察该携带附加信息的视频信号时不会感知失真。
在先前提交的序列号为10/342704的美国专利申请正如其完全阐述一样在此包含引作参考,发明人意识到人类的视觉系统较亮度而言对色度不那么敏感。所以,开发了一种用于给视频信号数字加水印的系统,即在视频信号的色度分量而不是其亮度信号上插入水印信号的附加信息。因此,附加信息“印象”在视频信号的色度分量上。有利的,尽管可能存在色度分量的严重失真,特别是当附加信息的比特率高于现有技术可达到的不被感知失真的比特率时,但是不论如何,只要对此加以适当地管理,人类的视觉系统将不会检测到这种失真。从而,与现有技术所达到的比特率相比,附加信息能够具有更高的比特率,例如能够实现大于每秒150比特的比特率。进一步有利的是,即使在使用运动图像专家组(MPEG-1)和(MPEG-2)编码系统压缩加有附加数据水印的视频信号之后,也能够从视频信号恢复该附加数据。
本人已经意识到序列号为10/342704的专利申请的系统要求多帧视频来精确地发送有关色度分量的信息。这将不利的是在某些应用中,例如,在要求更细密粒度的加水印情况下,以便提供更好的响应时间和对阻止临时篡改视频的改进,在一定情形下,例如当场景变化时,这种场景变化能够在视频中高速运动的情况下立即地发生,诸如发生在追赶场景中。
在同时与本申请提交的第(案例Zarrabizadeh22)号美国申请中,在等于每一帧的基础上,通过视频信号的各种块中每一个的色度分量平均值携带水印数据的一个或更多比特,能够改善给视频加水印。更具体而言,水印数据的一个或更多比特可能有效地放置在等于每一帧的每一块色度分量的至少一个选择部分之平均值的具体比特位置中。典型地注意到,有两个色度部分,当视频以YUV格式表示时例如为色度分量U和V。更具体而言,可能修改原始视频信号每一帧的每一块以在色度部分的平均值中携带其自己独立的水印数据的一个或更多比特,该色度部分选择用于携带用于该块的水印数据。然后理论上,所选色度部分平均值的比特位置的值将包含用于一个块的水印数据,并可能被考虑通过该块所携带的水印数据的比特值来代替。
只有一个色度部分携带用于任何特定块的水印数据。可以为该块独立地选择所选的用于携带任何块的水印数据的色度部分。被代替的平均值的比特位置为平均值的整数部分比特的位置。
如果有必要,可以调整一个块的各个像素的所选色度部分的值,以便使得块的所选色度部分要携带水印数据的比特平均值与水印数据比特的值相同。这可以通过改变该块中各个像素的所选色度部分的值来实现,以便在整个块中改变色度部分的平均值,从而平均值的所选比特位置的值符合水印数据的值,该值置于所选的比特位置中。
如果要包含水印数据的平均值的比特位置的值已经与水印数据比特的值相同,那么可以不对块的任何像素执行任何改变。但是,如果要包含水印数据的平均值的比特位置的值为块所携带的水印数据比特值的补码,则对该平均值执行至少最小的改变,这种改变将使得比特改变为水印数据比特的值。例如,如果要包含水印数据的平均值的比特为平均值整数部分的次最低有效位,那么可以通过给平均值加一或减一,总是将这样的一个比特改变为其补码值。这样做优选地用于增加2,这还可以用于总是改变该比特为其补码值,因为它在平均值引入了较少的变化,所以在块中也引入了较少的变化,籍此减少了引入观者可感知的非自然信号的机会。块的所选色度部分平均值的改变,通过将块的其中一些像素的所选色度部分加上或减去一个值来实现,减法可以通过加负数来实现,直到获得想要的色度部分平均值的改变。
当使用基于块的频域视频编码时,诸如运动图像专家组(MPEG)标准的其中之一,例如MPEG-1、MPEG-2、MPEG-4,通过对应于平均值,调整该块的至少一个色度矩阵的DC系数的值,可以获得替换加有水印数据的比特。例如,通过期望印象该块的水印比特的值来代替用于该块的DC系数的次最低有效位。
指定色度部分平均值的哪一比特携带水印数据可能为该块纹理变化量的函数。有利的是,随着纹理变化量的增加而增加携带水印数据的比特位置的有效性,因为类似MPEG的编码为较高的纹理变化量应用较大的量化步长大小,并且如果加水印数据没有足够显著地定位,那么使用这种较大的量化步长大小能够产生消除,例如过滤加水印数据。当使用更多的有效比特位置时,为了改变携带水印数据的比特位置的值为其补码值,给平均值增加或减少的值可以大于1。可以使用任何纹理变化量,例如纹理变化量Y、U或V,或者这些变化量的组合。
不论携带水印数据的比特位置改变为其补码与否,都可以将“余量”值填加到平均值中,以便更加保证块的平均值所携带的水印数据的比特幸免于类似于MPEG的编码,同时最小化了可感知的非自然信号产生的可能性。
一种接收机确定块的哪一色度分量携带水印数据并从该色度分量平均值的整数部分所选择的比特位置提取水印数据比特。可能根据块的纹理变化量,例如该块确定的色度部分的纹理变化量或亮度分量的纹理变化量,来确定所选择的比特位置。
有利地,与现有技术相比,实现了更好的响应时间和对阻止篡改视频的改进。进一步有利地是,场景变化不对印象数据引入错误。另外有利的是即使视频的原始像素域版本不可用,而只有基于块的频域编码版本可用,那么也可以给视频加水印而不用变换回到像素域。
发明内容
尽管同时与本申请提交的第(案例Zarrabizadeh22)号美国申请提供了上述说明的显著优点,但是申请人意识到通过一定的色彩组合,不利地是仍然存在附加数据引起轻微的可视闪烁的可能性。而且,在序列号为第(案例Zarrabizadeh22)号的美国申请中没有在接收机提取数据质量的任何指示。
所以,根据本发明的原理,在将任何数据印象到块的色度部分的平均值上之前,要复制该数据至少一次,优选为两次或更多次。在各个帧的相同块位置中,使用同时与本申请提交的序列号第(案例Zarrabizadeh22)号美国申请的技术来发送原始和产生的每个复制数据。考虑将携带相同数据的具有相同位置块的帧使其为一个组,并且优选地,该组中的这些帧以显示顺序相连续。
进一步,根据本发明的一个方面,该帧的特定块可以嵌入特定的已知数据序列,例如,巴克序列,而不是编码的用户数据。根据本发明的另一个方面,嵌入已知序列的特定块可以分布于一帧的整个块中。每组可以应用不同的已知序列,或者将相同的序列应用于不同的连续组中。
根据本发明的一个方面,代替简单地重复用于一组的每个相同位置块的数据,即使当块的复杂度相同时,也可以根据其复杂度可以稍微地从一帧到另一帧改变为每个块的平均值增加的量,这种改变用于一组上的相同位置的块。这种做提供了附加的编码增益,这有利于在接收机提高数据的可靠性。但是,这样做可能引起低纹理区域可见质量的轻微减小,因此该块内的一些像素可能具有不同于相同位置上原有像素的值。然而,由于这种可见质量的减小处于像素级,所以典型地不会引起注意。
在接收机,提取用于连续帧中对应块位置的相同数据比特的多个实例并将其进行组合以形成单个的接收比特。根据本发明的一个方面,能够使用已知的数据序列来确定每一特定帧的质量。该确定的质量用于为该帧规定一个加权,并且可以将从每一帧提取的数据的值视为软数据,以及作为组合处理的一部分,使用相关的加权为该软数据进行加权。如果特定帧的确定质量低于预定的阈值,则可以假定特定帧不包含任何水印数据,以及不为该帧提取任何数据。
附图说明
在附图中:
图1所示用于给视频信号数字加水印的示意性的发送机;
图2所示为用于恢复视频信号的附加数据的示意性接收机,该信号包括色度信号的数字水印;
图3A和3B所示为当它们结合在一起为如图3所示时,在利用附加数据给色度部分之一加水印时所使用的示意性处理流程;
图4A和4B所示为当它们结合在一起为如图4所示时,从数字加水印视频信号中提取附加信息的示意性处理流程,其中构成视频信号内的水印信号的附加信息已经印象在了色度分量上;
图5所示为一些安全范围的实例,其中期望的比特位置为第三最低有效位;
图6所示为用于确定哪一特定色度部分更加合适因此应该作出选择以包含用于像素的加水印信息的示意性处理流程;
图7所示为示意性划分色彩空间的一部分的剖视图;
图8所示为选择特定色度部分以包含用于像素的水印信息所采用的另一示意性处理流程;
图9所示为根据本发明原理的示意性发送机,其中在它印象在块的色度部分的平均值上之前,通过复制印象数据至少一次,优选为两次或更多次,从而可以减少闪烁;以及
图10所示为根据本发明原理的接收机的示意性实施例,该接收机用于接收诸如图9的发送机所产生的加有水印的视频信号。
具体实施方式
以下描述仅仅示例了本发明的原理。因此将会理解,本领域的普通技术人员将能够设计实施本发明原理的各种结构,尽管这里没有明确描述或示出,但是它们却包括在本发明的精神和范围之内。而且,所有的实例和这里叙述的条件语言都旨在从原理上表示用于教导的目的,以帮助读者理解本发明的原理和发明人提出的促进技术的构思,并且不构造作为对这些具体叙述实例和条件的限制。而且,这里叙述本发明原理、各个方面、实施例、及其具体实例的所有陈述旨在包括本发明的结构性和功能性的等同物。另外,这种等同物旨在包括当前已知的等同物以及未来开发的等同物,即所开发的执行相同功能而不考虑结构的任何组件。
因此,例如,本领域的普通技术人员将会理解,这里的任何方框图都表示实施本发明原理的示意性结构的理论视图。同理,将会理解任何流程表、流程图、状态转变图、伪码等等都表示各种处理流程,这些处理可以实质上在计算机可读媒体中表示,从而可以由计算机或处理器执行处理,而不论是否明确示出了这种计算机或处理器。
图中所示的各个组件的功能,包括标记为“处理器”的任何功能性方块,也可以通过使用专门硬件以及能够执行与适当软件所相关软件的硬件来提供。当处理器提供这些功能时,可以由单个专门的处理器、或单个共享的处理器、或多个其中有些可共享的各个处理器来提供。而且,明确使用术语“处理器”或“控制器”不应该解释为排他性地指代能够执行软件的硬件,它可以隐含地包括但不限制于,数字信号处理器(DSP)硬件、网络处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、用于存储软件的只读存储器、随机访问存储器(RAM)、以及非易失性存储器。还可以包括其他传统的和/或通常的硬件。同样,图中所示的任何切换开关仅仅是概念性的。它们的功能可以通过操作编程逻辑、专门的逻辑,以及程序控制和专门逻辑的交互作用,甚至是通过实施者的人工操作所选择的特定技术来实现,如根据上下文所更加具体理解的。
在本申请的权利要求书中任何表示为装置的元件用于执行具体的功能,并且它们旨在包括任何执行该功能的方式,例如包括,a)执行该功能的电路元件的组合,或b)任何形式的软件,包括与适当的电路相组合的硬件、微码等等来运行该软件以执行该功能。这些权利要求所定义的本发明在于以下事实,以权利要求书要求的方式组合并且将各种所叙述的装置提供的功能集合在一起。因此申请人认为任何能够提供这些功能的装置都等同于这里所示的等同物。
软件所应用的软件模块、或简单的模块,在这里可以表示为流程图单元或其他单元的任何组合,这些单元表示执行处理步骤和/或本文的描述。这些模块可以通过明确表示或隐含所示的硬件来执行。
除非这里明确地规定,附图并不是按照比例绘制的。
在本说明书中,不同图中具有相同附图标记的组件表示相同的组件。
图1所示为根据本发明的原理用于给视频信号数字加水印的示意性发送机101,其中加水印是在每一帧的基础上,通过借助视频信号中每个块的色度部分平均值携带水印数据的一个或更多比特来实现。
图1中所示为a)YUV分用器和抽取器103,b)色彩选择器105,c)双刀双掷开关109,d)纹理掩蔽单元111,e)乘法器113,f)加法器115,g)多路复用器117,h)位映象器123,以及i)加法器133。如图1所示,可选项为j)信道编码器119,和k)块交织器121。
YUV分用器和抽取器103接收要加水印的视频信号,即要为视频信号增加附加信息。YUV分用器和抽取器103可以处理视频信号,例如根据串行数字接口(SDI)标准格式化的视频。正如本领域的普通技术人员将会意识到,可使用传统的技术将最初不是适当数字格式的任何视频信号转换为适当的数字格式。
YUV分用器和抽取器103分用视频的亮度分量(Y)及其色度分量。视频信号的色度分量包括两部分U和V,其中U为差分蓝色部分以及V为差分红色部分。
将附加数据嵌入到色度分量中的大量处理优选利用特别抽取的视频格式来执行,其中对于视频的每个原始的2×2亮度块,如果将原始块表示为4-4-4格式,那么只剩下一个Y值、一个U值和一个V值。为此目的,在输入视频信号实际上为所谓的4-4-4格式的情况下,通过分用器和抽取器103适当地抽取该图像,以便对于每个原始的2×2亮度块来说,都具有一个Y值、一个U值和一个V值。同理,在输入视频信号为所谓的“4-2-2”格式的情况下,即亮度为满分辨率时,当色度部分为a)垂直方向为满分辨率和b)水平方向为半分辨率时,分用器和抽取器103水平和垂直地抽取亮度分量以及只垂直抽取每个色度分量。同样地,在输入视频信号为所谓的4-2-0格式的情况下,即图像的亮度分量为满分辨率而色度分量每个都仅为垂直和水平方向的半分辨率,图像的亮度分量由分用器和抽取器103抽取,以便对于每个原始的2×2亮度块来说如果原始块已经表示为4-4-4格式,那么只剩下Y值、一个U值和一个V值。
优选的抽取视频格式可以提供作为色彩选择器105的输出。因此,优选地,不管输入视频信号的格式如何,系统的其他处理优选地可以基于抽取的视频信号,从而对于原始输入视频信号的满分辨率亮度像素的每个2×2块,具有Y值、一个U值和一个V值。本领域的普通技术人员将能够开发其各自的方法,如果它们选择这样做的话,将为亮度像素的每个2×2块开发一个Y值、一个U值和一个V值。
为了知道原始视频的格式,a)操作者可以向YUV分用器和抽取器103指示提供给发送机101的视频的特定格式,b)可以使用传统技术直接从视频检测到视频的格式,或c)可以从提供输入视频信号的高层处理器提供该信息。
YUV分用器和抽取器103还可以提供原始输入视频信号满格式的第二组YUV输出给双刀双掷开关109。
色彩选择器105为任何特定的像素确定在色度分量的哪一部分即在U部分还是V部分,如果有必要的话,可以更好地适应值的改变而不会引入可见的人为加工信号。在本发明的一个实施例中,色彩选择器105基于如下详细所述的查询表。可替换地,可能全部或部分基于各种计算,诸如在先的美国专利申请第10/342704号。
色彩选择器105的输出还用于控制双刀双掷开关109的位置。更具体而言,如此设置色彩选择器105的输出,以便双刀双掷开关109:1)为加法器115提供已经选择用于携带水印数据的色度分量部分;以及2)为YUV多路复用器117提供未被选择的色度分量部分。色彩选择器105的输出还提供给多路复用器117和以下所述使用的位映象器123。
纹理掩蔽单元111分析每个像素周围的亮度区域的纹理,这些像素以抽取格式由YUV分用和抽取器103提供作为输出,以用来确定该像素能够适应的而不引入可见的人为加工信号的最大changevalue,并提供表示该changevalue的一个加权作为输出。例如采用整数值1到5可以编码加权值。也可以使用其他值,例如经验表明在忙区域可以使用最大为20的值而不会有可见的质量下降。该加权提供给乘法器113。纹理掩蔽单元111可以产生小于能引入到像素中的最大失真的值,正如下文所述。
注意到所使用的特定值至少部分地取决于用于表示每个Y、V和V值的比特数量。例如,上述建议的加权值1到5,甚至用于Y、U、V的最大为20的加权值是8比特值。本领域的普通技术人员将容易意识到,用于8比特的值可以通过乘以4缩放到10比特,例如将该值向左移位两次。同样地,能够类似地适应Y、U、和V所使用的其他数量的比特。
乘法器113将从纹理掩蔽单元111接收的加权与作为该像素一部分发送的信息的相关值进行相乘,其中该值由位映象器123提供。例如,位映象器123所提供的值可能为-1,0或1。乘法器113产生的乘积提供给加法器115和133。
纹理掩蔽单元111响应于加法器122。有关这方面应该注意到,在它从加法器133接收一个该影响的信号时,纹理掩蔽单元111可以产生小于能够引入到像素中的changevalue的加权值。更具体而言,加法器133为每个块增加纹理掩蔽单元111所提供的值。加法器133提供一个最大值作为它的输出给纹理掩蔽单元111,纹理掩蔽单元111使用该值作为它的用于当前被处理像素的输出加权。加法器133提供的最大值小于:a)基于它周围纹理的像素所能够适应的最大加权值以及b)位映象器123提供给加法器133的用于该块的值和该块的当前和之间的差值。因此,一旦该和等于位映象器123提供给加法器133的用于该块的值,纹理掩蔽单元111就为该块的每个剩余像素输出一个零。
加法器115通过将乘法器113所提供的值增加到色度部分的值上产生修正的色度部分,色彩选择器105选择该色度部分以携带用于该像素的附加信息。正如所示,色彩选择器105所选择的用以携带附加信息的色度部分,通过双刀双掷开关109传送到加法器115。加法器115提供的修正色度部分被提供给多路复用器117。
纹理掩蔽单元111、乘法器113、位映象器123和加法器133协同工作以有效地上采样增加到特定处理分辨率的每个像素的值,以匹配原始视频信号色度的格式。为此目的,产生的上采样值可以增加到所选择的原始视频信号的每个像素的色度部分,该部分对应于用于处理的特定减少分辨率格式的像素位置。例如,如果原始视频信号为4-2-2格式,那么被确定增加到特定处理格式的块的每一个像素值在每个线基础上进行复制,以便产生要增加值的块,该块具有每线8像素以及每块16线。在该块中,非叠加的2个连续线组中的每一线具有相同的增加值。这种块在大小上对应于4-2-2格式原始视频中所选色度部分的原始块。通过加法器115将产生的上采样块的每个值增加到各个类似于原始视频信号中定位像素的选择色度部分。本领域的普通技术人员将容易地能够执行类似的对于不同格式的块转换。注意到,色彩选择器105没有确定所选色度部分的一个块的这些像素能够更好地适应增加值将为零的改变。如果原始视频信号为4-2-0格式,不需要任何上采样。
在本发明的另一个实施例中,只处理抽取的特定处理分辨率格式。然后,例如在多路复用器117中上采样产生的修正色度部分。但是,这样做可能导致原始视频信号的一定恶化,尽管这种恶化不需要为可见的。
多路复用器117接收原始亮度分量(Y)和通过双刀双掷开关109从YUV分用器和抽取器103所提供的未修正的色度部分。多路复用器117还从加法器115接收修正的色度部分。然后,多路复用器117一起多路复用原始亮度分量(Y)、未修正的色度部分以及修正的色度部分。多路复用器117依靠接收色彩选择器105的输出知道在哪一引线上接收色度分量的修正部分以及在哪一引线上接收色度部分的未修正部分。根据本发明的一个方面,产生的视频信号被提供作为加水印的输出视频信号。
本领域的普通技术人员将能够开发出本发明的实施例,其中附加数据被填加到原始色度信号部分而不是其抽取版本部分,从而将不需要上采样。
正如上所示,附加信息的二进制数据值即1和0被为每一个块发送,它可以直接提供给位映象器123用作水印数据,或者可以首先处理该值以便于在接收机处理和恢复信息。这种示意性的处理可以通过可选择的信道编码器119和块交织器121来实现。
信道编码器119接收希望嵌入到视频流中的附加数据。然后例如使用前向纠错编码方案对该数据编码。这种前向纠错方案可以为任意的传统前向纠错方案,诸如卷积编码,例如维特比编码或turbo编码,或它可能为任何新开发的编码方案。在本发明的一个示意性实施例中,使用半速率卷积编码。这种编码的结果是,为原始比特流的每个比特产生两比特。信道编码的比特流作为输出通过信道编码器119提供给块交织单元121。
块交织单元121重新编排信道编码的比特流的比特顺序以便随机地分配该数据。这种做有助于减少信道编码的比特流的相邻部分丢失的机会,例如,由噪声脉冲或其他因素引起的这种丢失,这将使得在接收机难以从剩余的、实际接收的数据中恢复这种数据。在本发明的一个示意性实施例中,交织作为一个单元的比特数量等于一帧中块的数量。块交织器可以这样实现,即从左到右顺序地写入数据到块的行中,在每行的末尾,从下一行向下的最左边的位置再次开始,然后通过在块的最左上的位置开始来读取数据,并向下读取一列,直到到达该列的末尾,在该点位置上阅读在下一列的顶部继续。已经证明45行×30列的块交织器对于720×480像素的图片大小而言是有效的。对于不同的分辨率,本领域的普通技术人员将能容易开发出可比的块编码器。交织的信道编码比特流作为输出由位交织器121提供给位映象器123。
根据本发明的一个方面,根据位映象器123的控制在原始视频信号的至少一帧的至少一个块上,将块交织器121所提供的数据比特印象为水印数据。根据本发明的原理,位映象器123控制水印数据插入到每个块的至少一个选择色度部分之平均值的其中一个比特位置,其中数据印象到该块上,从而有效地代替了该比特位置上的比特。
例如,当在块的选择色度部分的平均值整数部分的最低有效位要携带水印数据时,需要给平均值增加的值为0或1。当平均值的整数部分的最低有效位已经和被携带水印数据比特相同时增加零,而当平均值的整数部分的最低有效位为要携带的水印数据比特的补码时增加1。当在块的选择色度部分的平均值整数部分的次最低有效位要携带水印数据时,给像素增加的数据值为-1、0或1。当平均值的整数部分的次最低有效位已经和要携带的水印数据比特相同时增加零,当平均值的整数部分的次最低有效位为要携带的水印数据比特的补码时增加1或-1。是增加1还是-1这取决于谁将对平均值引起最小的改变,同时将平均值的整数部分的次最低有效位改变为其补码。使用次最低有效位被嵌入的数据更可能经得住通过MPEG或类似处理的编码。当数据被放置在块所选择色度部分的平均值整数部分的第三最低有效位中,给像素增加的数据值为-2、-1、0、1或2。当平均值的整数部分的第三最低有效位已经和要携带的水印数据比特相同时增加零,当平均值的整数部分的第三最低有效位为要携带的水印数据比特的补码时增加-2、-1、1或2。是增加-2、-1、0还是1这取决于谁将对平均值引起最小的改变,同时将平均值的整数部分的第三最低有效位改变为其补码。使用第三最低有效位被嵌入的数据甚至更可能经得住通过MPEG或类似处理的编码以获得充分的结果。从上述可以得到,本领域的普通技术人员将会容易地能够确定为更多有效位位置增加的值,这些位置由用户或系统来确定。
为此目的,位映象器123开发了一个值,该值分配增加到块的像素的所选色度部分,从而这种做改变了该块的色度部分的平均值,以便块交织器121所提供的印象比特被放置在所选色度部分的平均值的所选比特位置上。该值为增加到所选色度部分平均值的值以将水印数据比特通过与块中像素的数量相乘来放置在合适的比特位置。换言之,位映象器123开发的值被增加到色度部分的平均值上,并且被分离为较小值,并将这些值增加到块的各个像素中,以便增加到块中的通过块中像素的数量所分离的全部较小值,等于要增加到所选色度部分平均值的值。
该块色度部分的特定比特平均值,例如该色度部分的DC系数,通过位映象器123来确定,其中位映象器123所提供数据印象到该块上。在本发明的一个示意性实施例中,用于该块的DC系数的第二最低有效位代替为期望印象到该块上的特定值。在本发明的另一个实施例中,DC系数的哪一个比特被代替可能为该块纹理变化量的函数。有利的是,随着纹理变化量的增加而增加被代替位的有效性,因为MPEG编码标准为较大的纹理变化量应用较多的量化步长大小,并如果该比特位于不是足够有效的比特位置上,则使用这种较大的量化步长大小能够过滤加有水印的数据比特。当使用更多的有效位时,给DC系数增加或减少值,以便改变代替其补码值的比特可以大于1。为此目的,根据本发明的一个方面,位映象器123从纹理掩蔽单元111接收该块的亮度分量的平均变化量,并基于该平均变化量,确定要代替哪一个比特位置。变化量越大,放置水印数据的比特位置越有效。
位映象器123提供来自交织的信道编码比特流的数据比特,当像素将要包含在加水印的输出视频信号中时,该数据比特在用于原始视频信号的块的每一像素的合适时间,传送给原始视频信号的每个块。因此,位映象器123考虑到以下的事实,即视频信号的处理是基于线的,即在一个线上从左到右进行处理,然后到下一线并且再次从左到右处理,这使得一个块的相邻像素不是必须地顺序位于视频流中,所以不都在直接相邻的时间里处理。被提供作为位映象器123在任何时间输出的特定数据比特提供作为乘法器113的输入。
使用一个诸如图1所示的编码器,当视频帧大小为720×480像素时,已经为提供给信道编码器119的附加信息实现了基本上无错误的大约每秒6750比特的比特率。
本领域的普通技术人员从上述描述将会容易意识到,图1所示的各个单元需要存储器,以便首先确定这些值,例如块的原始平均值和块的平均纹理变化量,这些值必须使用来自整个块的信息来计算,然后应用这些值处理各个像素。因此,典型地存在一个片延迟,这里的片为一帧上总是水平的那些块的一条。
图2所示为根据本发明的原理用于恢复视频信号的附加数据的示意性接收机201,该视频信号包含其色度信号上的数字水印。在图2中所示为a)YUV分用器和抽取器203,b)色彩选择单元207,c)双刀双掷开关209,d)块变化量计算单元211,e)块积分器V 213,f)块积分器U 215,g)比特选择器217,h)去交织器219,和i)信道解码器221。
根据本发明的原理,YUV分用器和抽取器203,可以基本上和发送机101(图1)的YUV分用器和抽取器103相同,它接收已加有数字水印的视频信号,其中附加信息已经填加到该信号的色度部分中。YUV分用器和抽取器203与数字视频,例如根据串行数字接口(SDI)格式化的视频协同工作。正如本领域的普通技术人员将会意识到,初始不是适当数字格式的任何视频信号可以使用传统的技术进行转换。
YUV分用器和抽取器203分用视频的亮度(Y)分量及其色度分量并抽取它为优选的处理格式,其中对于视频的每个原始2×2亮度块,如果原始块已经表示为4-4-4格式,那么只剩余一个Y值、一个U值和一个V值。为了知道接收视频的格式,a)操作者需要给YUV分用器和抽取器203指示输入视频的特定格式,b)使用传统的技术直接从视频中可以检测到视频的格式,或c)可以从高层处理器提供信息,该处理器提供输入视频信号。分用的亮度和色度分量提供给色彩选择器207。另外,亮度分量提供给块变化量计算单元211,V色度部分提供给块积分器V 213,以及U色度部分提供给块积分器U 215。不象YUV分用器和抽取器103,YUV分用器和抽取器203不需要提供原始输入视频信号的完全格式的第二组YUV输出。
色彩选择单元207为每个块确定色度分量的哪一个部分即U部分还是V部分,可能嵌入附加信息。色彩选择单元207的输出用于控制双刀双掷开关209的位置。更具体而言,色彩选择单元209选择色度部分U或V,作为Y、U和V的函数,正如下文更详细所述的,在哪一个部分上可能已经为该块嵌入附加信息。在本发明的实施例中,色彩选择单元207基于一个查询表。这样可以简化处理,从而避免了需要YUV到RGB的转换,否则可能必须转换。
注意到色彩选择单元207的输入为各个像素。色彩选择单元207保持跟踪每个块中的像素并为块中的每个像素组合各个U或V选择。具有最高值即最经常选择用于块中像素的特定分量,被确定为色彩选择单元207的输出。然后将色彩选择单元207的输出如此设定,以便开关209为比特选择器217提供色度分量部分的积分版本,其中已确定了将附加数据填加到该色度分量中。
块变化量计算单元211确定用于该块的所选色度部分的平均值的特定比特,例如,用于所选色度部分的DC系数,该部分可能包含有印象数据。正如所注意到的,在本发明的示意性实施例中,位映象器123(图1)接收和应用块的像素亮度分量变化量的平均值来确定,应该用要被印象的水印数据代替哪一个比特位置。变化量越大,应该代替的比特位置越有效。块变化量计算单元211(图2)应该使其计算基于映象器123所使用的相同信息以重复它的确定。块变化量计算单元211的输出提供给比特选择器217。
块积分器V 213在整个块上积分V的值,即组合例如相加用于块中的每个像素的值。块积分器U 215在整个块上积分U的值,即组合例如相加用于块中的每个像素的值。
比特选择器217根据通过开关209提供给它的作为块数据的已积分的色度部分值,在块变化量计算单元211规定的比特位置提取比特。
去交织器219重新排序数据以取消发送机101的块交织器121(图1)的影响。然后将重新排序值提供给信道解码器221(图2),该解码器为经过编码的信号执行适当地解码,已使用发送机101(图1)的信道编码器119所应用的编码类型对信号编码。产生的解码值由信道解码器221(图2)提供作为附加数据信号的重构版本。为了更加健壮,信道解码器221可以为所谓的“序列解码器”,例如turbo解码器。
图3A和3B所示为当它们结合在一起为如图3所示时,根据本发明的原理在利用附加数据给其中的色度部分加水印时所使用的示意性处理流程。对于确定的比特位置已经等于将要印象值的那些块,可以未经修改发送该块。在本发明的示意性实施例中,可以在诸如图1所示的系统中执行图3的处理流程。
当块的所有像素可用时,在步骤301开始处理流程。图3的处理部分在一块一块的基础上发生,部分处理基于一个一个的像素。使用二维指针p、q对一帧的各块加以索引,这里p指的是被处理帧的特定水平片,q指的是该帧的特定列或垂直片。例如,对于720×480分辨率,p的范围在1和30之间,q的范围在1和45之间。同理,使用二维指针i、j对每个块的各像素进行索引,其中i指的是被处理块内的特定行,j指的是被处理块内的特定列。例如,在用于印象数据的特定处理模式中,原始视频的每个宏块具有唯一对应的Y、U和V的8×8块,并且i和j的范围都在0和7之间。
在步骤301开始处理之后,在步骤303初始化处理流程中所使用的一些变量,例如countU(p,q)=0,countV(p,q)= 0,sumU(p,q)=0,sumV(p,q)=0以及var(p,q)=0。countU和countV为由色彩选择处理分别选择块内多少像素为适于在U和V色度部分上加水印的累计,而sumU以及sumV为块的所有像素上各个U和V的值的累计。在本发明的实施例中,只对选择用于该块的色度部分的像素执行加水印,对于sumU和sumV的其中被开发用于未选择的色度部分的一个没用。
在步骤305,计算块内的每个像素的亮度变化量的累计var(p,q),当然该累计与块的亮度平均变化量成比例。为此目的,i和j初始都设置指的是要处理的块的第一像素,例如i=0和j=0。通过块的每个像素循环、如适当地改变i和j的值以及将每个像素的亮度变化量与当前累计的var(p,q)加到一起来计算var(p,q)的值。
在本发明的一个实施例中,可以利用像素和所有它的最近邻居之间的亮度差的绝对值,来为任何特定像素计算亮度变化量。从数学上而言,所有最近邻居位于相同的块内,这可以写为:
var ( p , q ) = var ( p , q ) + ( | Y ( i , j ) ( p , q ) - Y ( i - 1 , j - 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i - 1 , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j - 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) -
Y ( i + 1 , j + 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i + 1 , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j + 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i - 1 , j - 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i + 1 , j - 1 ) ( p . q ) | ) .
本领域的普通技术人员将会容易能够将上述内容适用于这些像素,它们的最近邻居位于其他块内。而且,对于位于帧的边界上,因此没有最近的邻居,或最近的邻居的这些块,或不显示的这些块部分,这些邻居的值可以考虑为零。
根据本发明的另一个方面,在变化量计算中并不需要考虑所有像素的最近邻居,但是能够获得足够高质量的结果。更具体而言,有利的是,在该计算中,通过只采用该像素周围的正方形角上的4个像素和2个包含当前像素的其他形成垂直或水平线的像素之差,例如包含当前像素的水平线上的2个像素,减少了用于每个像素的时间。
之后,条件分支点307进行测试以确定哪一个特定色度部分,即U或V,将包含用于该块的水印信息。这是通过估计块中每个像素的色彩选择以及计数选择用于每一色度部分的块内像素数目而实现的。最大可能选择用于块的色度部分被选择用来加水印。注意到在本发明的一些实施例中,可以确定特定的像素完全不适合于加水印。在这种情况下,不为U或V计数像素的总数。
确定选择用于为每个像素加水印的色彩的特定方法在于实施者的判断。在本发明的一个实施例中,选择具有最小值的像素的色度部分。在本发明的另一个实施例中,应用如下所述的色彩选择安排。
接下来,确定将包含加有水印比特的所选色度部分的平均值的比特位置。如此选择比特位置,以便加水印的比特将经得住任何接下来的量化,诸如在类似MPEG编码中所发生的。
为此目的,如果在步骤307的测试结果为选择V色度部分加水印,则将控制传递到步骤309,其中变量watermarkcolor设置等于V。之后,条件分支点323进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第一预定V阈值t1v,这为最大的V阈值。t1v的一个示例值为600。
注意到,当平均Y变化率与建议的阈值相比较时,结合图3和4使用的用于U和V的特定阈值值至少部分地取决于用来表示每个Y值的数量。例如,这里建议的阈值值对于Y而言为8比特值。本领域的普通技术人员将会容易意识到,应用于8比特的值通过与4相乘可以缩放为10比特,例如向左移位该值两次。同样地,能够同理适应用于Y、U和V的其他数量的比特。
在本发明的其他实施例中,代替使用用于各个比较的块的平均Y变化量,可以计算和应用不同的平均变化量,例如整个块的平均V变化量。
如果在步骤323的测试结果为“是”,表示该变化量足够大,则附加数据应该在块的像素的V平均值的第5最低有效位上编码,例如int[sumV(p,q)/(每块的像素数量)]的值,例如int[sumV(p,q)/64],大于t1v,则将控制传递到步骤325,其中设定变量m等于5。
注意到代替使用如这里所使用的用于舍入成整数的整数函数int,可以应用能够获得整数值的舍入成整数的任何其他形式,例如总是向上舍入为整数或总是舍入为最近的整数值。
如果在步骤323的测试结果为“否”,这表示变化量不足够大以使得附加数据应该在块的像素V平均值的第5最低有效位上编码,则将控制传递到条件分支点329,该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第二预定V阈值,即t2v,它为第二大V阈值。t2v的示例值为15。
如果在步骤329的测试结果为“是”,这表示附加数据应该在块的像素V平均值的第4最低有效位上编码,则将控制传递到步骤331,其中设定变量m为4。
如果在步骤329的测试结果为“否”,这表示变化量不足够大以使得附加数据应该在块的像素V平均值的第4最低有效位上编码,则将控制传递到条件分支点333,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第三预定V阈值,即t3v,它为最小的V阈值。t3v的示例值为7。
如果在步骤333的测试结果为“是”,这表示变化量足够大,数据应该在块的像素V平均值的第3最低有效位上编码,则将控制传递到步骤335,其中变量m被设定为3。
如果在步骤333的测试结果为“否”,这表示变化量只足够大以使得数据应该在块的像素V平均值的第2最低有效位上编码,则将控制传递到步骤337,其中变量m被设定为2。
如果在步骤307的测试结果为选择U色度部分加水印,则将控制传递到步骤311,其中变量watermarkcolor设置等于U。之后,条件分支点343进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第一预定V阈值t1u,这为最大的阈值。t1u的一个示例值为600。
在本发明的其他实施例中,代替使用用于各个比较的块的平均Y变化量,可以计算和应用整个块的平均U变化量。
如果在步骤343的测试结果为“是”,这表示该变化量足够大,数据应该在块的像素的U平均值的第5最低有效位上编码,例如int[sumV(p,q)/(每块的像素数量)]的值,例如int[sumU(p,q)/64],大于t1u,则将控制传递到步骤345,其中设定变量m等于5。
注意到代替使用如这里所使用的用于舍入成整数的整数函数int,可以应用能够获得整数值的舍入成整数的任何其他形式,例如总是向上舍入为整数或总是舍入为最近的整数值。
如果在步骤343的测试结果为“否”,这表示变化量不足够大以使得数据应该在块的像素U平均值的第5最低有效位上编码,则将控制传递到条件分支点349,该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第二预定V阈值,即t2u,它为第二大U阈值。t2u的示例值为15。
如果在步骤349的测试结果为“是”,这表示数据应该在块的像素U平均值的第4最低有效位上编码,则将控制传递到步骤351,其中设定变量m等于4。
如果在步骤349的测试结果为“否”,这表示变化量不足够大以使得数据应该在块的像素U平均值的第4最低有效位上编码,则将控制传递到条件分支点353,该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第三预定阈值,即t3u,它为最小的U阈值。t3u的示例值为7。
如果在步骤353的测试结果为“是”,这表示变化量足够大,数据应该在块的像素U平均值的第3最低有效位上编码,则将控制传递到步骤355,其中设定变量m等于3。
如果在步骤353的测试结果为“否”,这表示变化量只足够大以使得数据应该在块的像素U平均值的第2最低有效位上编码,则将控制传递到步骤357,其中设定变量m等于2。
一旦确定了应用所选色度部分的整个块之平均值的特定比特以包含加有水印的数据,那么处理流程确定采用包含想要比特的比特位置。处理的目的是将所选色度部分当前平均值加上或减去最小可能值以保证,想要的比特位置将发送水印比特的值。注意到,在本发明的一个实施例中,想要的比特位置为位于平均值整数部分的比特位置。为此目的,理想上,如果想要的比特位置已经包含了要发送的水印比特的值,那么没有任何值可以增加到所选色度部分的当前平均值。另一方面,如果想要的比特位置包含了要发送的水印比特值的补码,在理想情况中,只将想要的比特位置适当地加上或减去最小可能的值,该值通过从想要的比特位置进行加或减将会翻转想要的比特位置为其补码,因此使得所选色度部分平均值的值从当前未加水印的值到其最后加上水印后的值发生最小的变化。
实际上,由于量化噪声,舍入成整数作为创造性处理的一部分,以及类似MPEG编码处理的其他因素,这可能影响想要比特的最终值,所以可能增加或减去很小的差值,如这里进一步所说明的。更具体而言,在本发明的一个实施例中,选择值的“安全”范围,该范围在想要的比特位置具有想要的比特值,以及给所选色度部分的平均值增加或减去该最小值,以便最终值在想要的比特位置具有想要的比特值,并且位于安全范围内。因此,典型地,不论何时平均值的比特需要改变为它的补码以携带水印数据,这时产生的值总是位于安全范围的边界。当想要比特位置的值已经为要发送水印数据比特的值时,如果所选色度部分的平均值已经位于安全范围内,那么不需要增加所选色度部分的平均值。但是,当所选色度部分的平均值还未位于安全范围内,那么有必要从所选色度部分的平均值增加或减去最小值来改变所选色度部分的平均值,使其为位于安全范围内的一个值,同时保持想要比特位置的值位于要发送的水印比特的值上。
概念上,上述考虑到首先增加或减去最小值以在想要的比特位置上获得想要的水印值,并然后增加或减去另一个量例如余量值来保证最终值位于安全范围之内。
图5所示为其中想要比特位置为第三有效位的一些安全范围的实例。沿着轴所示为所选色度部分的平均值。
表1示出(码)(一些值的表):
当完成步骤325、331、335、337、345、351、355和357时,将控制传递到条件分支点361,该点进行测试以确定是否在块上印象的水印数据的比特与用于色度部分平均值的当前识别比特位置相同,其中比特位置由变量watermarkcolor来识别。如果步骤361的测试结果为“是”,这表示将在块上印象的水印数据的比特与当前识别的用于色度部分平均值的比特位置相同,其中比特位置由变量watermarkcolor来识别,所以不需要将比特改变它的补码值,并将控制传递到步骤363,该步骤进行测试以确定是否该值位于当前比特位置的安全范围内。如果测试结果为“否”,这表示在接下来的处理过程中可能引入了错误,则将控制传递到步骤365,在该步骤设置变量changevalue等于需要将watermarkcolor所指示的色彩的当前平均值移到最近安全范围内的值,而不改变想要比特位置的值。注意到该值不需要为一个整数值,它还可以为负数值。如果步骤363的测试结果为“否”,这表示用于watermarkcolor所指示色彩的当前平均值已经位于安全范围内,则将控制传递到步骤367,并且将changevalue的值设定等于零。
如果步骤361的测试结果为“否”,这表示在块上印象的水印数据的比特与用于色度部分平均值的当前识别比特位置不相同,其中该位置是由变量watermarkcolor所识别的,所以比特的值必须改为其补码值以适当地携带水印数据,并将控制传递到步骤369,在该步骤进行测试以确定当前比特位置的最近安全范围是大于还是小于watermarkcolor所指示色彩的当前平均值。如果步骤369的测试结果为大于,这表示用于当前比特位置的最近安全范围的值大于watermarkcolor所指示色彩的当前平均值,则将控制传递到步骤371,在该步骤中将变量changevalue的值设定等于增加到平均值中的最小值,以便产生的值位于具有较大值的邻近安全范围内。注意到该值不需要为整数值。如果在步骤369的测试结果为小于,这表示用于当前比特位置的最近安全范围的值小于watermarkcolor所指示色彩的当前平均值,则将控制传递到步骤373,在该步骤中将变量changevalue的值设定等于最小负值,当将该值增加到平均值时,得到的值位于具有较小值的相邻安全范围内。再次,注意到该值不需要为一个整数值,并且还可以为一个负值。
当完成步骤365、367、371或373时,将控制传递到步骤375,在该步骤中将为像素增加的总计值设定等于每块像素的数量与changevalue之值的乘积。如果产生的乘积值不是整数,那么该值将被舍入。以与步骤365、371和373一致的方式执行这种舍入,如果增加的为一个负值,利用该值的整数部分向下进行舍入,如果增加的为一个正值的话,则舍入将向着下一个完整的整数值。
现在处理从每块等级改变到在块内的每像素等级。在步骤377,指向该块的第一像素。之后,条件分支点379进行测试以根据它的色彩确定是否要给当前像素加水印。通过确定是否适于加水印的该像素的色度分量与在步骤307为整个块所选择的色彩相同来完成上述处理。如果步骤379的测试结果为“是”,这表示应该给该像素加水印,则将控制传递到步骤381,在该步骤中根据像素的亮度变化量以及到目前为止为该块的像素所增加的总计值,来为当前像素增加一个值。
更具体而言,将能够给像素增加的而不引入可见的人为加工信号的最大值确定为亮度变化量的函数。亮度变化量越大,则能够增加的值就越大,最大为预定的最大值。注意到该值可正可负。然后,如果增加到像素的总值为正值,则将该值增加到像素,或者如果增加到像素的总值为负值,则从该像素减去该值。但是,随着每个像素处理的进行,增加或减去值的累计从总值中减去以增加到像素中。如果增加到当前像素的值将使得增加到像素的总值与累计之间的差值超过零,那么将调整该值以便累计正好等于零。
如果步骤379的测试结果为“否”,或在完成步骤381之后,将控制传递到条件分支点383,在该点进行测试以确定是否当前像素为块的最后一个像素。如果在步骤383的测试结果为“否”,将控制传递到步骤385,在该步骤进行测试以确定是否要给块的像素增加的总值已经被增加,即累计是否等于要为该块像素增加的总值。如果步骤385的测试结果为“否”,这表示还需要给块像素增加更多值,则将控制传递到步骤387,该步骤指向块的下一个像素。然后传送回到步骤379,处理如上所述继续进行。
如果步骤383或385的测试结果为“是”,这表示块的所有像素已经被处理或者已经增加了所需要增加的全部总值,则将控制传递到步骤389并退出处理。
图4A和4B所示为当它们结合在一起为如图4所示时,根据本发明的原理从数字加水印视频信号中提取附加信息的示意性处理流程,其中构成视频信号内的水印信号的附加信息已经印象在了色度分量上。这种处理可以通过本发明的示意性实施例,在色彩选择207、双刀双掷开关209、块变化量计算单元211、块积分器V 213、块积分器U 215和比特选择器217(图2)上来实现,诸如图2所示。
当要处理接收抽取帧的新块时,在步骤401开始处理流程(图4)。应该注意到为了教导的目的,这里假设为由块组成的图4处理流程的处理提供像素,以便在处理下一块的任何像素之前,处理块的所有像素。但是,在实际系统的设计中,本领域的普通技术人员将会容易意识到,可以以与扫描像素相同的顺序来处理这些像素,可以使用适当的存储位置和控制结构以便有效地单独地处理这些块。
图4的处理部分在一块一块的基础上发生,部分处理基于一个一个的像素。使用二维指针p、q来索引一帧的这些块,这里p指的是被处理帧的特定水平片,q指的是该帧的特定列或垂直片。例如,对于720×480分辨率,p的范围在1和30之间,q的范围在1和45之间。同理,使用二维指针i、j对每个块的像素进行索引,其中i指的是被处理块内的特定行,j指的是被处理块内的特定列。例如,在用于印象该数据的特定处理模式中,原始视频的每个宏块具有唯一对应的Y、U和V的8×8块,并且i和j的范围都在0和7之间。
在步骤401开始处理之后,在步骤403初始化处理流程中所使用的一些变量,例如countU(p,q)=0,countV(p,q)= 0,sumU(p,q)=0,sumV(p,q)= 0以及var(p,q)=0。countU和countV分别为由色彩选择处理选择块内多少像素作为U和V的累计,而sumU以及sumV分别为在块的所有像素上各个U和V值的累计。对于该块,i和j都设置指的是要处理的块的第一像素,例如i=0和j=0。对于每个块,var(p,q)表示块内每个像素的亮度变化量的总值,当然该总值与块的亮度平均变化量成比例。
之后,在步骤405,获得用于当前指向的当前被处理块的像素的Y、U和V值,例如获得值Y(i,j) (p,q)和U(i,j) (p,q)以及V(i,j) (p,q)。在步骤407,将U和V的当前值增加到sumU和sumV的各个当前值中。而且在步骤407中,通过将当前像素亮度的变化量增加到当前var(p,q)的总值中,更新亮度的变化量var(p,q)。在本发明的一个实施例中,可以利用当前像素和所有它的最近邻居之间的亮度差的绝对值,来为当前像素计算亮度变化量。从数学上而言,所有最近邻居位于相同的块内,这可以写为:
var ( p , q ) = var ( p , q ) + ( | Y ( i , j ) ( p , q ) - Y ( i - 1 , j - 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i - 1 , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j - 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) -
Y ( i + 1 , j + 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i + 1 , j ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i , j + 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i - 1 , j + 1 ) ( p , q ) | + | Y ( i , j ) ( p , q ) - Y ( i + 1 , j - 1 ) ( p , q ) | ) .
本领域的普通技术人员将会容易能够将上述内容适用于这些像素,它们的最近邻居位于其他块内。而且,对于靠近帧的边界因此没有最近的邻居的那些块,或最近的邻居为不显示的这些块部分,这些邻居的值可以考虑为零。
根据本发明的另一个方面,在变化量计算中并不需要考虑所有像素的最近邻居,但是能够获得足够高质量的结果。更具体而言,有利的是,在该计算中,通过只采用该像素周围的正方形角上的4个像素和2个其他包括当前像素的形成垂直或水平线的像素之差,例如具有当前像素的水平线上的2个像素,从而减少了计算时间。但是,解码器应该匹配编码器中应用的相同处理。
将控制传递到条件分支点409,在该点进行测试以确定附加数据有可能印象到U或V中的哪一个。下文将详细描述该确定的细节。如果步骤409的测试结果为U,这表示附加数据最可能印象到用于当前像素的U上,则将控制传递到递增countU的步骤411。然后将控制传递到步骤413。如果步骤409的测试结果为V,这表示附加数据最可能印象到用于当前像素的V上,则将控制传递到递增countV的步骤415。然后将控制传递到步骤413。
在本发明的一些实施例中,条件分支点409可以是三种方式的测试,附加结果表示数据有可能完全不印象到像素上,即不印象到U上也不在V上。如果这是一种结果,那么将简单地将控制直接传送到步骤413。
条件分支点413进行测试以确定是否当前像素为当前块的最后一个像素。如果步骤413的测试结果为“否”,这表示还剩余仍未处理的当前块中的其他像素,则将控制传递到步骤417,在该步骤调整i和j的值以指向下一个仍未处理的像素。然后将控制传递回到步骤405并如上所述继续进行处理。如果步骤413的测试结果为“是”,这表示已处理过当前块的所有像素,则将控制传递到步骤419,在该步骤中为该块计算抽取亮度的变化量,即计算8×8Y块的变化量。
然后将控制传递到条件分支点421,在该点进行测试以为当前块确定是否countV大于countU。如果步骤421的测试结果为countV实际上大于countU,则将控制传递到条件分支点423,在该点上进行测试以确定是否整个块上的平均Y变化量,var(p,q)大于第一预定阈值t1v,该阈值为最大的V阈值。t1v的一个示例值为600。
在本发明的其他实施例中,代替使用用于各个比较的块的平均Y变化量,可以在该块上计算和应用平均U或平均V变化量,例如不论哪一个具有较大的计数值。
如果在步骤423的测试结果为“是”,这表示该变化量足够大,数据有可能已经在块的像素的V平均值的第5最低有效位上编码,例如int[sumV(p,q)/(每块的像素数量)]的值,例如int[sumV(p,q)/64],则将控制传递到步骤425,其中设定变量m等于5。然后将控制传递到步骤427,在该步骤中将提取该块像素的V平均值的第m个最低有效位(LSB)的值,将它作为印象到该块的值。然后在步骤459退出处理。
注意到代替使用如这里所使用的舍入成整数的整数函数int,可以应用能够获得整数值的舍入成整数的任何其他形式,例如总是向上舍入为整数或总是舍入为最近的整数值。
如果在步骤423的测试结果为“否”,这表示变化量不足够大以使得数据有可能已经在块的像素V平均值的第5最低有效位上编码,则将控制传递到条件分支点429,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第二预定V阈值t2v,它为第二大V阈值。t2v的示例值为15。
如果在步骤429的测试结果为“是”,这表示变化量足够大,数据有可能已经在块的像素V平均值的第4最低有效位上编码,则将控制传递到步骤431,其中设定变量m等于4。然后将控制传递到步骤427,在该步骤中将提取该块像素的V平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步骤429的测试结果为“否”,这表示变化量不足够大以使得数据有可能已经在块的像素V平均值的第4最低有效位上编码,则将控制传递到条件分支点433,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第三预定V阈值t3v,它为最小的V阈值。t3v的示例值为7。
如果在步骤433的测试结果为“是”,这表示变化量足够大,数据有可能已经在块的像素V平均值的第3最低有效位上编码,则将控制传递到步骤435,其中设定变量m等于3。然后将控制传递到步骤427,在该步骤中将提取该块像素的V平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步433的测试结果为“否”,这表示变化量仅足够大以使得数据有可能已经在块的像素V平均值的第2最低有效位上编码,则将控制传递到步骤437,其中设定变量m等于2。然后将控制传递到步骤427,在该步骤中将提取该块像素的V平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步骤421的测试结果为countU大于countV,则将控制传递到条件分支点443,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第一预定阈值t1u,它为最大的U阈值。t1u的示例值为600。
如果在步骤443的测试结果为“是”,表示该变化量足够大,数据应该在块的像素的U平均值的第5最低有效位上编码,例如int[sumU(p,q)/(每块的像素数量)]的值,例如int[sumU(p,q)/64],则将控制传递到步骤445,其中设定变量m等于5。然后将控制传递到步骤447,在该步骤中将提取该块像素的U平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步骤443的测试结果为“否”,这表示变化量不足够大以使得数据有可能已经在块的像素U平均值的第5最低有效位上编码,则将控制传递到条件分支点449,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第二预定阈值t2u,它为第二大U阈值。t2u的示例值为15。
如果在步骤449的测试结果为“是”,这表示变化量足够大,数据有可能数据已经在块的像素U平均值的第4最低有效位上编码,则将控制传递到步骤451,其中设定变量m等于4。然后将控制传递到步骤447,在该步骤中将提取该块像素的U平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步骤449的测试结果为“否”,这表示变化量不足够大以使得数据有可能已经在块的像素U平均值的第4最低有效位上编码,则将控制传递到条件分支点453,在该点进行测试以确定是否整个块的平均Y变化量,var(p,q)大于第三预定U阈值t3u,它为最小的U阈值。t3u的示例值为7。
如果在步骤453的测试结果为“是”,这表示变化量仅足够大以使得数据有可能已经在块的像素U平均值的第3最低有效位上编码,则将控制传递到步骤455,其中设定变量m等于3。然后将控制传递到步骤447,在该步骤中将提取该块像素的U平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
如果在步453的测试结果为“否”,这表示变化量足够大,数据有可能已经在块的像素U平均值的第2最低有效位上编码,则将控制传递到步骤457,其中设定变量m等于2。然后将控制传递到步骤447,在该步骤中将提取该块像素的U平均值的第m个最低有效位的值,将它作为印象到该块的值。然后在步骤459退出处理。
注意到尽管在图3和图4中已经所示为使用3个阈值和4比特位置,但是本领域的普通技术人员将容易地能够将所指示的方法适于其他数量的阈值和编码值。
同理,并不是视频信号每一帧或场的所有块需要印象附加的信息。
图6所示为用于确定哪一特定色度部分更加合适因此应该被选择以包含用于像素的加水印信息的示意性处理流程。当有必要选自一个色度部分以包含水印信息时,处理流程在步骤601开始。为了讨论图6的目的,假设以YUV格式表示像素。而且,应该注意到优选地,对于原始视频的每个原始2×2亮度块,如果原始视频已经表示为4-4-4格式,应该只剩余一个Y值用于每个亮度分量,即每一对各个对应的U和V值。为此目的,可以下采样原始块的Y值,以便和U和V具有相同的分辨率。可替换地,可以计算与特定U和V值关联的Y值平均值或一些其他组合,并将它们用作图6处理流程的Y值。
概念上,对应于可能像素位置的三维YUV色彩空间的每个位置,假定像素Y、U和V值能够采取完整范围,则根据实验观察为每个位置分配一个更适合的色度部分,因此应该为一个具有这种Y、U和V值的像素选择该位置。如果要应用用于Y、U和V值的每个可能集合的整个表的版本,其中每个Y、U和V值具有8比特的完整范围,需要存储至少16M比特的信息,假定为每个位置只存储一个比特来表示所选择的色度部分。注意到使用单个比特仅仅允许选择U或V,但是不能指示不U和V两者都不被应用。如果想要能够选择U和V两者都不,32M比特的信息是必须的。
图7所示为示意性分配色度部分的一部分的剖视图,该色度部分要被选择用于三维YUV色彩空间内每个可能的像素。应该注意到仅仅为了教导的目的提供图7,正如概念化可视辅助一样,不代表实际的数据。
为了减少存储要求,可以考虑YUV色彩空间作为一组区域,每个区域定义为包括对应于至少一个集合的位置,典型地,Y、U和V值的多个集合,即对应于至少一个像素、可能多个像素以及每个区域的色彩空间中的位置,然后,例如根据实验观察为映象到区域的每个像素分配一个色度部分,即为Y、U和V值的集合落入该区域内的任何像素选择色度部分。一种查看这种集合到区域中的方式为量化,这种量化可能为线性或非线性的。
表1所列为示意性的色彩空间选择表,其中每个区域对应于4个Y值、4个U值和4个V值,然后对应于用于任何像素的8比特值的64种可能的组合。使用这种表将要存储的所需信息减少到256K比特,这里假定为每个位置只存储一个比特,或减少到512K比特,这里假定期望能够选择Y、V以及U和V两者都不。表1可以存储在任何计算机可读媒体中,例如ROM、RAM,诸如硬盘或磁带驱动器的磁存储器,诸如CD-ROM或DVD-ROM等等的光存储器。
本领域的普通技术人员将容易意识到,表1所应用的值用于每个Y、U和V,它们具有8比特的完整范围,并可以通过除以4,例如将每个10比特值右移两次,被缩放以用于10比特Y、U和V值。同样,能够类似适应用于Y、U和V的其他数量的比特。
为了有效地安排和访问表1的数据,如此进行安排以便用于8个相邻区域的具体U或V选择集合在一起形成一个字节,这里1表示选择U而0表示选择V,以及这些相邻区域具有相同的U和V量化值但是具有不同的顺序量化Y值。因此,对于每个U和V值有8个字节,每一个字节对应一个具有相同U和V量化值但具有不同量化Y值的区域。
表1被安排通过使用一个地址来寻址,该地址具有对应于U值的最高有效位,对应于V值的下一个最低有效值,对应于Y值的最低有效值。换言之,字节的地址可以如下构成:
U7|U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
这里U7、U6、U5、U4、U3和U2为像素U值的第8到第3最低有效位的值,V7、V6、V5、V4、V3和V2为像素V值的第8到第3最低有效位的值,以及Y7、Y6和Y5为像素Y值的第8到第6最低有效位的值。然后,通过使用Y分量的第5到第2最低有效位例如Y4、Y3和Y2来规定字节内的特定比特。
诸如表1的表格反映了以下事实,即人类的视觉系统a)对蓝色的敏感性较小,和b)对较低的亮度值更敏感。这样的一个表可通过通常如下所述的试凑来开发。
在这些部分中检验色彩空间,其中每个部分通过亮度值来定义以及范围在对应于第一色度部分的第一维内,该维从最小值到最大值进行变化,并且在对应于第二色度部分的第二维内,该维从最小值到最大值进行变化。例如,可以使用8比特值的6个最高有效位来量化任何或全部的亮度和色度部分。这样做可建立一组平面,该平面具有色度部分值的棋盘,并当显示为不同色彩的块时出现,并建立了用于每个亮度值的一个平面。例如,通过量化以便使用用于亮度的8比特值的6个最高有效位,色度部分产生对应于每个可能的量化亮度值的64个平面,每个平面具有一个色彩格的检验板模式,对于每个平面总共有4096个格,垂直方向具有64个格以及水平方向具有64个格。
单独地检查每个平面。为大量足够确信随机数据在帧的相同定位块中在时间上具有不同的值的帧开发随机数据,并用于观察者检测所出现的闪烁。已经证实三十秒或更长是有效的。随机数据印象在包含该平面的帧上,例如只在第一色度部分上不仅使用图1的系统和图3的处理流程完成水印,而且还迫使色彩选择为第一色度部分。显示并观察帧产生的加有水印的版本。
如果在该表中指示观察到没有闪烁的任何块,则亮度和色度部分的组合应该应用当前携带水印数据的色度部分作为该组合的所选色度部分。如果在该表中指示观察到有闪烁的任何块,则亮度和色度部分的组合应该应用当前未携带水印数据的色度部分作为该组合的所选色度部分。为该平面重复这种处理,但是要改变加水印的色度部分。
对于平面的任何块,正如能发生的对于两个色度部分产生闪烁,实施者可以选择应该选择哪一色度部分。例如,可以选择U,因为人类的视觉系统通常对蓝色不敏感。可替换地,可以应用会提供所产生表的更好数据压缩的色度部分。同理,在任何一个块上不出现闪烁时,应用色度部分的选择在于实施者的判断。
为每个平面重复这种处理流程直到填充整个表。
表1
地址:                                                                    内容
   1 to    16         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  17 to    32         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  33 to    48         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  49 to    64         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  65 to    80         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  81 to    96         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
  97 to   112         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 113 to   128         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 129 to   144         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 145 to   160         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 161 to   176         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 177 to   192         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 193 to   208         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 209 to   224         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 225 to   240         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 241 to   256         255  255  255  255  255  255  255  255    0    0    0    0    0    0    0    0
 257 to   272         255  255  127    0    0    0    0    0  255  255  255  255  255  255  255  255
 273 to   288         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 289 to   304         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 305 to   320         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 321 to   336         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 337 to   352         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 353 to   368         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 369 to   384         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 385 to   400         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 401 to   416         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 417 to   432         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 433 to   448         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 449 to   464         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 465 to   480         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 481 to   496         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 497 to   512         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 513 to   528         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 529 to   544         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 545 to   560         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 561 to   576         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 577 to   592         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 593 to   608         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 609 to   624         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 625 to   640         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 641 to   656         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 657 to   672         255  255  255  555  255  255  255  255  255  255  255  255  255  255  255  255
 673 to   688         255  255  255  555  255  255  255  255  255  255  255  255  255  255  255  255
 689 to   704         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 705 to   720         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 721 to   736         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 737 to   752           0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 755 to   768           0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 769 to   784         254  255  127    0    0    0    0    0  255  255  255    0    0    0    0    0
 785 to   800         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 801 to   816         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 617 to   832         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 833 to   848         255  255  255  255  255  555  255  255  255  255  255  255  255  255  255  255
 549 to   864         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 865 to   880         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 851 to   896         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 897 to   912         255  255  255  255  255  255  255  255  255  255  255  255  555  255  255  255
 913 to   928         255  255  255  255  255  255  255  555  255  255  255  255  255  255  255  255
 929 to   944         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 945 to   960         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 961 to   976         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 977 to   992         255  255  255  255  255  255  255  255  555  255  255  255  255  255  255  255
 993 to  1008         255  255  255  255  555  255  255  255  255  255  255  255  255  555  255  255
1009 to  1024         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1025 to  1040         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1041 to  1056         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1057 to  1072         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1073 to  1088         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1089 to  1104         555  255  255  255  255  255  255  555  255  255  255  255  255  255  255  255
1105 to  1120         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1121 to  1136         255  255  255  555  255  255  255  255  255  255  255  255  255  255  255  255
1137 to  1152         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1153 to  1168         255  255  555  255  255  255  255  255  255  255  255  255  255  255  255  255
1169 to  1184         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1185 to  1200         255  255  255  255  255  255  255  255  255  255  255  255  255  255  555  255
1201 to  1216         255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1217 to  1232         255  255  255  255  255  255  255  255    0    0    0    0    0    5    0    0
1233 to  1248          0     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1249 to  1264          0     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1265 to  1280          0     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1251 to  1296        248   255  255    0    0    0    0    0  255  255  255    0    0    0    0    0
1297 to  1312        255   255  255    1    0    0    0    0  255  255  255  255  255  255  255  255
1313 to  1328        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1329 to  1344        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1345 to  1360        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1361 to  1376        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1377 to  1392        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1393 to  1408        255   255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1409 to  1424       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1425 to  1440       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1441 to  1456       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1457 to  1472       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1473 to  1488       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1489 to  1504       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1505 to  1520       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1521 to  1536       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1537 to  1552       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1553 to  1568       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1569 to  1584       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1585 to  1500       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1601 to  1616       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1617 to  1622       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1633 to  1648       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1649 to  1664       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1665 to  1680       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1681 to  1696       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1697 to  1712       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1713 to  1728         0   64    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1729 to  1744         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1745 to  1760         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1761 to  1776         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
1777 to  1792         0    0    0    0    0    0    0    0    0  255  127    0    0    0    0    0
1793 to  1808       224  255  255    0    0    0    0    0  252  255  255    1    0    0    0    0
1809 to  1824       255  255  255    3    0    0    0    0  255  255  255    3    0    0    0    0
1825 to  1840       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1841 to  1856       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1857 to  1872       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1873 to  1888       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1889 to  1904       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1905 to  1920       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1921 to  1936       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1937 to  1952       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1953 to  1969       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1969 to  1984       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
1985 to  2000       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2001 to  2016       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2017 to  2032       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2033 to  2048       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2049 to  2064       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2065 to  2080       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2081 to  2096       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2097 to  2112       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2113 to  2128       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2129 to  2144       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2145 to  2160       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2161 to  2176       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2177 to  2192       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2193 to  2208       255  255  255  255  255  255  255  255    0    0    0    0    0    0    0    0
2209 to  2224         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2225 to  2240         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2241 to  2256         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2257 to  2272         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2273 to  2288         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2289 to  2304         0    0    0    0    0    0    0    0    0  254  255    0    0    0    0    0
2305 to  2320       128  255  255    0    0    0    0    0  240  255  255    1    0    0    0    0
2321 to  2336       254  255  255    3    0    0    0    0  255  255  255    7    0    0    0    0
2337 to  2352       255  255  255    7    0    0    0    0  255  255  255   15    0    0    0    0
2353 to  2368       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2369 to  2384       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2385 to  2400       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2401 to  2416       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2417 to  2432       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2433 to  2448       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2449 to  2464       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2465 to  2480       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2481 to  2496       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2497 to  2512       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2513 to  2528       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2529 to  2544       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2545 to  2560       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2561 to  2576       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2577 to  2592       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2593 to  2608       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2609 to  2624       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2625 to  2640       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2641 to  2655       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2657 to  2672       255  255  255  225  255  255  255  255  255  255  255  255  255  255  255  255
2673 to  2688       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2689 to  2704         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2705 to  2720         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2721 to  2736         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2737 to  2752         0    0    4    0    0    0    0    0    0    0    2    0    0    0    0    0
2753 to  2768         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2769 to  2784         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2785 to  2800         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
2801 to  2816         0    0    0    0    0    0    0    0    0  248  255    0    0    0    0    0
2817 to  2832         0  255  255    2    0    0    0    0  192  255  255    1    0    0    0    0
2833 to  2848       248  255  255    3    0    0    0    0  255  255  255    7    0    0    0    0
2849 to  2864       255  255  255   15    0    0    0    0  255  255  255   15    0    0    0    0
2865 to  2880       255  255  255   31    0    0    0    0  255  255  255  255  255  255  255  255
2881 to  2896       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2897 to  2912       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2913 to  2928       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2929 to  2944       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2945 to  2960       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2961 to 2976       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2977 to 2992       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
2993 to 3008       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3009 to 3024       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3025 to 3040       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3041 to 3056       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3057 to 3072       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3073 to 3088       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3089 to 3104       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3105 to 3120       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3121 to 3136       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3137 to 3152       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3153 to 3168       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3169 to 3184       255  255  255  255  255  255  255  255    0    0    0    0    0    0    0    0
3185 to 3200         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3201 to 3216         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3217 to 3232         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3233 to 2248         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3249 to 3264         0    0    8    0    0    0    0    0    0    0    0    0    0    0    0    0
3265 to 3290         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3241 to 3296         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3297 to 3312         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3313 to 3329         0    0    0    0    0    0    0    0    0  224  255    0    0    0    0    0
3329 to 3344       128  252  255    1    0    0    0    0  128  255  255    3    0    0    0    0
3345 to 3360       224  255  255    7    0    0    0    0  252  255  255    7    0    0    0    0
3361 to 3376       255  255  255   15    0    0    0    0  255  255  255   31    0    0    0    0
3377 to 3392       255  255  255   31    0    0    0    0  255  255  255   63    0    0    0    0
3393 to 3408       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3409 to 3424       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3425 to 3440       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3441 to 3456       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3457 to 3472       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3473 to 3488       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3489 to 3504       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3505 to 3520       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3521 to 3536       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3537 to 3552       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3553 to 3568       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3569 to 3584       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3585 to 3600       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3601 to 3616       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3617 to 3632       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3633 to 3648       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3649 to 3664       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3665 to 3680         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3681 to 3696         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3697 to 3712         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3713 to 3728         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3729 to 3744         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3745 to 3760         0    0    0    0    0    0    0    0    0    0   96    0    0    0    0    0
3761 to 3776         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3777 to 3792         0    0    0    0    0    0    0    0    0    0    8    0    0    0    0    0
3793 to 3808         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3809 to 3824         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
3825 to 3840         0    0    0    0    0    0    0    0    0  152  255    1    0    0    0    0
3841 to 3856         0  241  255    1    0    0    0    0    0  254  255    3    0    0    0    0
3857 to 3872       192  255  255    7    0    0    0    0  248  255  255   15    0    0    0    0
3973 to 3888       254  255  255   15    0    0    0    0  255  255  255   31    0    0    0    0
3889 to 3904       255  255  255   63    0    0    0    0  255  255  255   63    0    0    0    0
3905 to 3920       255  255  255  127    0    0    0    0  255  255  255  255  255  255  255  255
3921 to 3936       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3937 to 3952       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3953 to 3969       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3969 to 3984       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
3985 to 4000       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4001 to 4016       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4017 to 4032       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4033 to 4048       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4049 to 4064       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4065 to 4080       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4081 to 4096       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4097 to 4112       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4113 to 4128       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4129 to 4144       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4145 to 4160       255  255  255  255  255  255  255  255    0    0    0    0    0    0    0    0
4161 to 4176         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4177 to 4192         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4193 to 4208         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4209 to 4224         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4225 to 4240         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4241 to 4256         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4257 to 4272         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4273 to 4288         0    0    4    0    0    0    0    0    0    0    0    0    0    0    0    0
4289 to 4304         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4305 to 4320         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4321 to 4336         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4337 to 4352         0    0    0    0    0    0    0    0    0   96  255    1    0    0    0    0
4353 to 4368         0  192  255    3    0    0    0    0    0  249  255    7    0    0    0    0
4369 to 4384         0  255  255    7    0    0    0    0  224  255  255   15    0    0    0    0
4385 to 4400       252  255  255   31    0    0    0    0  255  255  255   31    0    0    0    0
4401 to 4416       255  255  255   63    0    0    0    0  255  255  255  127    0    0    0    0
4417 to 4432       255  255  255  255    0    0    0    0  255  255  255  255    0    0    0    0
4433 to 4448       255  255  255  255    1    0    0    0  255  255  255  255  255  255  255  255
4449 to 4464       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4465 to 4480       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4481 to 4496       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4497 to 4512       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4513 to  4528       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4529 to  4544       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4545 to  4560       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4561 to  4576       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4577 to  4592       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4593 to  4608       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4609 to  4624       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4625 to  4640       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4641 to  4656         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4657 to  4672         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4673 to  4688         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4689 to  4704         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4705 to  4720         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4721 to  4736         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4737 to  4752         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4753 to  4768         0    0    0    0    0    0    0    0    0    0    0   12    0    0    0    0
4769 to  4784         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4785 to  4800         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4801 to  4816         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4817 to  4832         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4833 to  4848         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
4849 to  4864         0    0  224    1    0    0    0    0    0  194  253    1    0    0    0    0
4865 to  4880         0  130  255    3    0    0    0    0    0  224  255    7    0    0    0    0
4881 to  4896         0  252  255   15    0    0    0    0  128  255  255   15    0    0    0    0
4897 to  4912       240  255  255   31    0    0    0    0  254  255  255   63    0    0    0    0
4913 to  4928       255  255  255   63    0    0    0    0  255  255  255  127    0    0    0    0
4929 to  4944       255  255  255  255    0    0    0    0  255  255  255  255    1    0    0    0
4945 to  4960       255  255  255  255    1    0    0    0  255  255  255  255    3    0    0    0
4961 to  4976       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4977 to  4992       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
4993 to  5008       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5009 to  5024       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5025 to  5040       255  255  255  255  255  255  255  255  255  555  255  255  255  255  255  255
5041 to  5056       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5057 to  5072       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5073 to  5088       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5089 to  5104       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5105 to  5120       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5121 to  5136       255  255  255  255  255  255  255  255    0    0    0    0    0    0    0    0
5137 to  5152         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5153 to  5168         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5169 to  5184         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5185 to  5200         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5201 to  5216         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5217 to  5232         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5233 to  5248         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5249 to  5264         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5265 to  5280         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5281 to  5296         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5297 to  5312         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5313 to  5328         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5329 to  5344         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5345 to  5360         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5361 to  5376         0    0  128    1    0    0    0    0    0    0  227    3    0    0    0    0
5377 to  5392         0    0  254    3    0    0    0    0    0  192  255    7    0    0    0    0
5393 to  5408         0  240  255   15    0    0    0    0    0  254  255   31    0    0    0    0
5409 to  5424       192  255  255   31    0    0    0    0  248  255  255   63    0    0    0    0
5425 to  5440       255  255  255  127    0    0    0    0  255  255  255  255    0    0    0    0
5441 to  5456       255  255  255  255    0    0    0    0  255  255  255  255    1    0    0    0
5457 to  5472       255  255  255  255    3    0    0    0  255  255  255  255    3    0    0    0
5473 to  5488       255  255  255  255    7    0    0    0  255  255  255  255  255  255  255  255
5485 to  5504       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5505 to  5520       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5521 to  5536       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5537 to  5552       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5553 to  5568       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5569 to  5584       255  255  255  255  255  255  255  255  255  255  255  255  255  555  255  255
5585 to  5600       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5601 to  5616       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5617 to  5632       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
5633 to  5648         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5649 to  5664         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5665 to  5680         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5681 to  5696         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5697 to  5712         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5713 to  5728         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5729 to  5744         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5745 to  5760         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5761 to  5776         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5777 to  5792         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5793 to  5808         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5809 to  5824         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5825 to  5840         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5841 to  5856         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5857 to  5872         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
5873 to  5888         0    0    0    0    0    0    0    0    0   16  196    3    0    0    0    0
5889 to  5904         0   56  248    7    0    0    0    0    0    0  255   15    0    0    0    0
5905 to  5920         0  224  255   15    0    0    0    0    0  248  255   31    0    0    0    0
5921 to  5936         0  255  255   63    0    0    0    0  224  255  255   63    0    0    0    0
5937 to  5952       252  255  255  127    0    0    0    0  255  255  255  255    0    0    0    0
5953 to  5968       255  255  255  255    1    0    0    0  255  255  255  255    1    0    0    0
5969 to  5984       255  255  255  255    3    0    0    0  255  255  255  255    7    0    0    0
5985 to  6000       255  255  255  255    7    0    0    0  255  255  255  255   15    0    0    0
6001 to  6016       255  255  255  255   31    0    0    0  255  255  255  255  255  255  255  255
6017 to  6032       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6033 to  6048       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6049 to  6064       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6065 to 6080        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6081 to 6096        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6097 to 6112        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6113 to 6128        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6129 to 6144        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6145 to 6160          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6161 to 6176          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6177 to 6192          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6193 to 6208          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6209 to 6224          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6225 to 6240          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6241 to 6256          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6257 to 6272          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6273 to 6288          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6289 to 6304          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6305 to 6320          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6321 to 6336          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6337 to 6352          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6353 to 6368          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6369 to 6384          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6385 to 6400          0    0    0    0    0    0    0    0    0    0    8    3    0    0    0    0
6401 to 6416          0   48  224    7    0    0    0    0    0    0  252   15    0    0    0    0
6417 to 6432          0  128  255   31    0    0    0    0    0  240  255   31    0    0    0    0
6433 to 6448          0  252  255   63    0    0    0    0  128  255  255  127    0    0    0    0
6449 to 6464        240  255  255  127    0    0    0    0  254  255  255  255    0    0    0    0
6465 to 6480        255  255  255  255    1    0    0    0  255  255  255  255    3    0    0    0
6481 to 6496        255  255  255  255    3    0    0    0  255  255  255  255    7    0    0    0
6497 to 6512        255  255  255  255   15    0    0    0  255  255  255  255   15    0    0    0
6513 to 6528        255  255  255  255   31    0    0    0  255  255  255  255   63    0    0    0
6529 to 6544        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6545 to 6560        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6561 to 6576        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6577 to 6592        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6593 to 6608        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6609 to 6624        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6625 to 6640        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6641 to 6656        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
6657 to 6672          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6673 to 6688          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6689 to 6704          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6705 to 6720          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6721 to 6736          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6737 to 6752          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6753 to 6768          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6769 to 6784          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6785 to 6800          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6801 to 6816          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6817 to 6832          0    0    0    0    0    0    0    0    0  128    0    0    0    0    0    0
6833 to 6848          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6849 to 6864          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6865 to 6880          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6881 to 6896          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
6897 to 6912          0    0    0    0    0    0    0    0    0    8    0    6    0    0    0    0
6913 to 6928          0   96  128   15    0    0    0    0    0    0  240   15    0    0    0    0
6929 to 6944          0    0  254   31    0    0    0    0  128  192  255   63    0    0    0    0
6945 to 6960          0  248  255   63    0    0    0    0    0  254  255  127    0    0    0    0
6961 to 6976        192  255  255  255    0    0    0    0  248  255  255  255    1    0    0    0
6977 to 6992        255  255  255  255    1    0    0    0  255  255  255  255    3    0    0    0
6993 to 7008        255  255  255  255    7    0    0    0  255  255  255  255    7    0    0    0
7009 to 7024        255  255  255  255   15    0    0    0  255  255  255  255   31    0    0    0
7025 to 7040        255  255  255  255   63    0    0    0  255  255  255  255   63    0    0    0
7041 to 7056        255  255  255  255  127    0    0    0  255  255  255  255  255  255  255  255
7057 to 7072        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7073 to 7088        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7089 to 7104        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7105 to 7120        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7121 to 7136        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7137 to 7152        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7153 to 7168        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7169 to 7184          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7185 to 7200          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7201 to 7216          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7217 to 7232          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7233 to 7248          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7249 to 7264          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7265 to 7280          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7281 to 7296          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7297 to 7312          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7313 to 7328          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7329 to 7344          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7345 to 7360          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7361 to 7376          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7377 to 7392          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7393 to 7408          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7409 to 7424          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7425 to 7440          0  192    0   15    0    0    0    0   64    0  192   31    0    0    0    0
7441 to 7455          0    0  248   31    0    0    0    0    0    0  255   63    0    0    0    0
7457 to 7472          0  224  255  127    0    0    0    0    0  252  255  127    0    0    0    0
7473 to 7488        128  255  255  255    0    0    0    0  224  255  255  255    1    0    0    0
7489 to 7504        252  255  255  255    3    0    0    0  255  255  255  255    3    0    0    0
7505 to 7520        255  255  255  255    7    0    0    0  255  255  255  255   15    0    0    0
7521 to 7536        255  255  255  255   15    0    0    0  255  255  255  255   31    0    0    0
7537 to 7552        255  255  255  255   63    0    0    0  255  255  255  255  127    0    0    0
7553 to 7568        255  255  255  255  127    0    0    0  255  255  255  255  255    0    0    0
7569 to 7584        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7585 to 7600        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7601 to 7616        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7617 to  7632        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7633 to  7648        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7648 to  7664        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7665 to  7680        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
7681 to  7696          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7697 to  7712          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7713 to  7728          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7729 to  7744          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7745 to  7760          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7761 to  7776          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7777 to  7792          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7793 to  7808          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7809 to  7824          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7825 to  7840          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7841 to  7856          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7857 to  7872          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7873 to  7888          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7889 to  7904          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7905 to  7920          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7921 to  7936          0    0    0    0    0    0    0    0    0    4    0    0    0    0    0    0
7937 to  7952          0  192    0   12    0    0    0    0    0    0  129   31    0    0    0    0
7953 to  7968          0    4  224   63    0    0    0    0    0    0  252   63    0    0    0    0
7969 to  7984          0  128  255  127    0    0    0    0    0  240  255  255    0    0    0    0
7985 to  8000          0  254  255  255    1    0    0    0  192  255  255  255    1    0    0    0
8001 to  8016        240  255  255  255    3    0    0    0  254  255  255  255    7    0    0    0
8017 to  8032        255  255  255  255    7    0    0    0  255  255  255  255   15    0    0    0
8033 to  8048        255  255  255  255   31    0    0    0  255  255  255  255   63    0    0    0
8049 to  8064        255  255  255  255   63    0    0    0  255  255  255  255  127    0    0    0
8065 to  8080        255  255  255  255  255    0    0    0  255  255  255  255  255    0    0    0
8081 to  8096        255  255  255  255  255    1    0    0  255  255  255  255  255    2    0    0
8097 to  8112        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8113 to  8128        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8129 to  8144        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8145 to  8160        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8161 to  8176        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8177 to  8192        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8193 to  8208          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8209 to  8224          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8225 to  8240          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8241 to  8256          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8257 to  8272          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8273 to  8288          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8289 to  8304          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8305 to  8320          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8321 to  8336          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8337 to  8352          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8353 to  8368          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8369 to  8384          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8385 to  8400          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8401 to  8416          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8417 to  8432          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8433 to  8448          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8449 to  8464          0  128    1   16    0    0    0    0    0    0    0   30    0    0    0    0
8465 to  8480          0    0  192   63    0    0    0    0    0    0  240  127    0    0    0    0
8481 to  8496          0    0  254  127    0    0    0    0    0  192  255  255    0    0    0    0
8497 to  8512          0  248  255  255    1    0    0    0    0  255  255  255    3    0    0    0
8513 to  8528        224  255  255  255    3    0    0    0  248  255  255  255    7    0    0    0
8529 to  8544        255  255  255  255   15    0    0    0  255  255  255  255   15    0    0    0
8545 to  8560        255  255  255  255   31    0    0    0  255  255  255  255   63    0    0    0
8561 to  8576        255  255  255  255  127    0    0    0  255  255  255  255  127    0    0    0
8577 to  8592        255  255  255  255  255    0    0    0  255  255  255  255  255    1    0    0
8593 to  8608        255  255  255  255  255    1    0    0  255  255  255  255  255    3    0    0
8609 to  8624        255  255  255  255  255    7    0    0  255  255  255  255  255  255  255  255
8625 to  8640        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8641 to  8656        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8657 to  8672        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8673 to  8688        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8689 to  8704        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
8705 to  8720          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8721 to  8736          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8737 to  8752          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8753 to  8768          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8769 to  8784          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8785 to  8800          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8801 to  8816          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8817 to  8832          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8833 to  8848          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8849 to  8864          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8865 to  8880          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8881 to  8896          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8897 to  8912          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8913 to  8928          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8929 to  8944          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8945 to  8960          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
8961 to  8976          0    0    1    0    0    0    0    0    0    0    0   56    0    0    0    0
8977 to  8992          0    0    0   63    0    0    0    0    0    0  224  127    0    0    0    0
8993 to  9008          0    0  252  255    0    0    0    0    0    0  255  255    0    0    0    0
9009 to  9024          0  224  255  255    1    0    0    0    0  252  255  255    3    0    0    0
9025 to  9040        128  255  255  255    7    0    0    0  240  255  255  255    7    0    0    0
9041 t0  9056        252  255  255  255   15    0    0    0  255  255  255  255   31    0    0    0
9057 to  9072        255  255  255  255   63    0    0    0  255  255  255  255   63    0    0    0
9073 to  9088        255  255  255  255  127    0    0    0  255  255  255  255  255    0    0    0
9089 to  8104        255  255  255  255  255    0    0    0  255  255  255  255  255    1    0    0
9105 to  9120        255  255  255  255  255    3    0    0  255  255  255  255  255    7    0    0
9121 to  9136        255  255  255  255  255    7    0    0  255  255  255  255  255   15    0    0
9137 to  9152        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
9153 to  9168        255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9169 to   9184       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9185 to   9200       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9201 to   9216       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9217 to   9232         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9233 to   9248         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9249 to   9264         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9265 to   9280         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9281 to   9296         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9297 to   9312         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9313 to   9328         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9329 to   9344         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9345 to   9360         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9361 to   9376         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9377 to   9392         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9393 to   9408         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9409 to   9424         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9425 to   9440         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9441 to   9456         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9457 to   9472         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9473 to   9488         0    0    6    0    0    0    0    0    0    0    0   32    0    0    0    0
 9489 to   9504         0    0    0  124    0    0    0    0    0    0  128  127    0    0    0    0
 9505 to   9520         0    0  240  255    0    0    0    0    0    0  254  255    1    0    0    0
 9521 to   9536         0  128  255  255    3    0    0    0    0  240  255  255    3    0    0    0
 9537 to   9552         0  254  255  255    7    0    0    0  192  255  255  255   15    0    0    0
 9553 to   9568       248  255  255  255   15    0    0    0  254  255  255  255   31    0    0    0
 9569 to   9584       255  255  255  255   63    0    0    0  255  255  255  255  127    0    0    0
 9585 to   9600       255  255  255  255  127    0    0    0  255  255  255  255  255    0    0    0
 9601 to   9616       255  255  255  255  255    1    0    0  255  255  255  255  255    1    0    0
 9617 to   9632       255  255  255  255  255    3    0    0  255  255  255  255  255    7    0    0
 9633 to   9648       255  255  255  255  255   15    0    0  255  255  255  255  255   15    0    0
 9649 to   9664       255  255  255  255  255   31    0    0  255  255  255  255  255  255  255  255
 9665 to   9680       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9681 to   9696       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9697 to   9712       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9713 to   9728       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
 9729 to   9744         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9745 to   9760         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9761 to   9776         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9777 to   9792         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9793 to   9808         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9809 to   9824         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9825 to   9840         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9841 to   9856         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9857 to   9872         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9873 to   9888         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9889 to   9904         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9905 to   9920         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9921 to   9936         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9937 to   9952         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9953 to   9968         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9969 to   9984         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
 9985 to  10000         0    0    4    0    0    0    0    0    0    0    0    0    0    0    0    0
10001 to  10016         0    0    0  112    0    0    0    0    0    2    0  254    0    0    0    0
10017 to  10032         0    0  192  255    0    0    0    0    0    0  248  255    1    0    0    0
10033 to  10048         0    0  255  255    3    0    0    0    0  192  255  255    7    0    0    0
10049 to  10064         0  248  255  255    7    0    0    0    0  255  255  255   15    0    0    0
10065 to  10080       224  255  255  255   31    0    0    0  252  255  255  255   31    0    0    0
10081 to  10096       255  255  255  255   63    0    0    0  255  255  255  255  127    0    0    0
10097 to  10112       255  255  255  255  255    0    0    0  255  255  255  255  255    0    0    0
10113 to  10128       255  255  255  255  255    1    0    0  255  255  255  255  255    3    0    0
10129 to  10144       255  255  255  255  255    3    0    0  255  255  255  255  255    7    0    0
10145 to  10160       255  255  255  255  255   15    0    0  255  255  255  255  255   31    0    0
10161 to  10176       255  255  255  255  255   31    0    0  255  255  255  255  255   63    0    0
10177 to  10192       255  255  255  255  255  127    0    0  255  255  255  255  255  255  255  255
10193 to  10208       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10209 to  10224       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10225 to  10240       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10241 to  10256         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10257 to  10272         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10273 to  10288         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10289 to  10304         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10305 to  10320         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10321 to  10336         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10337 to  10352         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10353 to  10368         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10369 to  10394         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10395 to  10400         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10401 to  10416         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10417 to  10432         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10433 to  10448         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10449 to  10464         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10405 to  10400         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10401 to  10496         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10497 to  10512         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10513 to  10528         0    0    0   96    0    0    0    0    0    0    0  248    0    0    0    0
10529 to  10544         0    0    0  255    1    0    0    0    0    0  224  255    3    0    0    0
10545 to  10560         0    0  252  255    3    0    0    0    0  128  255  255    7    0    0    0
10561 to  10576         0  224  255  255   15    0    0    0    0  252  255  255   15    0    0    0
10577 to  10592       120  255  255  255   31    0    0    0  240  255  255  255   63    0    0    0
10593 to  10608       254  255  255  255  127    0    0    0  255  255  255  255  127    0    0    0
10609 to  10624       255  255  255  255  255    0    0    0  255  255  255  255  255    1    0    0
10625 to  10640       255  255  255  255  255    1    0    0  255  255  255  255  255    3    0    0
10641 to  10656       255  255  255  255  255    7    0    0  255  255  255  255  255   15    0    0
10657 to  10672       255  255  255  255  255   15    0    0  255  255  255  255  255   31    0    0
10673 to  10688       255  255  255  255  255   63    0    0  255  255  255  255  255   63    0    0
10689 to  10704       255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
10705 to  10720       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10721 to 10736       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10737 to 10752       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
10753 to 10768         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10769 to 10784         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10785 to 10800         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10801 to 10816         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10817 to 10832         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10833 to 10848         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10849 to 10864         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10865 to 10880         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10881 to 10896         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10897 to 10912         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10913 to 10928         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10929 to 10944         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10945 to 10960         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10961 to 10976         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10977 to 10992         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
10993 to 11008         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11009 to 11024         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11025 to 11040         0    0    0  128    0    0    0    0    0    0    0  240    0    0    0    0
11041 to 11056         0    0    0  252    1    0    0    0    0    0  128  255    3    0    0    0
11057 to 11072         0    0  240  255    7    0    0    0    0    0  254  255    7    0    0    0
11073 to 11088         0  192  255  255   15    0    0    0    0  240  255  255   31    0    0    0
11089 to 11104         0  254  255  255   31    0    0    0  192  255  255  255   63    0    0    0
11105 to 11120       248  255  255  255  127    0    0    0  255  255  255  255  255    0    0    0
11121 to 11136       255  255  255  255  255    0    0    0  255  255  255  255  255    1    0    0
11137 to 11152       255  255  255  255  255    0    0    0  255  255  255  255  255    3    0    0
11153 to 11168       255  255  255  255  255    0    0    0  255  255  255  255  255   15    0    0
11169 to 11184       255  255  255  255  255   31    0    0  255  255  255  255  255   31    0    0
11185 to 11200       255  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
11201 to 11216       255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
11217 to 11232       255  255  255  255  255  255    0    0  255  255  255  255  255  255  255  255
11233 to 11248       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
11249 to 11264       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
11265 to 11280         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11281 to 11296         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11297 to 11312         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11313 to 11328         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11329 to 11344         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11345 to 11360         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11361 to 11376         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11377 to 11392         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11393 to 11408         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11409 to 11424         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11425 to 11440         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11441 to 11456         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11457 to 11472         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11473 to 11488         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11489 to 11504         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11505 to 11520         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11521 to 11536         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11537 to 11552         0    0    0    0    0    0    0    0    0    0    0  192    1    0    0    0
11553 to 11568         0    0    0  248    1    0    0    0    0    0    0  254    3    0    0    0
11569 to 11584         0    0  192  255    7    0    0    0    0    0  248  255   15    0    0    0
11585 to 11600         0    0  255  255   15    0    0    0    0  224  255  255   31    0    0    0
11601 to 11616         0  252  255  255   63    0    0    0    0  255  255  255  127    0    0    0
11617 to 11632       224  255  255  255  127    0    0    0  252  255  255  255  255    0    0    0
11633 to 11648       255  255  255  255  255    1    0    0  255  255  255  255  255    1    0    0
11649 to 11664       255  255  255  255  255    3    0    0  255  255  255  255  255    7    0    0
11665 to 11680       255  255  255  255  255   15    0    0  255  255  255  255  255   15    0    0
11681 to 11696       255  255  255  255  255   31    0    0  255  255  255  255  255   63    0    0
11697 to 11712       255  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
11713 to 11728       255  255  255  255  255  255    0    0  255  255  255  255  255  255    1    0
11729 to 11744       255  255  255  255  255  255    1    0  255  255  255  255  255  255    3    0
11745 to 11760       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
11761 to 11776       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
11777 to 11792         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11793 to 11808         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11809 to 11824         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11825 to 11840         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11841 to 11856         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11857 to 11872         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11873 to 11888         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11889 to 11904         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11905 to 11920         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11921 to 11936         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11937 to 11952         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11953 to 11968         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11969 to 11984         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
11985 to 12000         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12001 to 12016         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12017 to 12032         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12033 to 12048         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12049 to 12064         0    0    0    0    0    0    0    0    0    0    0    0    1    0    0    0
12065 to 12080         0    0    0  224    3    0    0    0    0    0    0  252    7    0    0    0
12081 to 12096         0    0    0  255    7    0    0    0    0    0  224  255   15    0    0    0
12097 to 12112         0    0  252  255   31    0    0    0    0  128  255  255   31    0    0    0
12113 to 12128         0  240  255  255   63    0    0    0    0  254  255  255  127    0    0    0
12129 to 12144       125  255  255  255  255    9    0    0  240  255  255  255  255    0    0    0
12145 to 12160       254  255  255  255  255    1    0    0  255  255  255  255  255    3    0    0
12161 to 12176       255  255  255  255  255    3    0    0  255  255  255  255  255    7    0    0
12177 to 12192       255  255  255  255  255   15    0    0  255  255  255  255  255   31    0    0
12193 to 12208       255  255  255  255  255   31    0    0  255  255  255  255  255   63    0    0
12209 to 12224       255  255  255  255  255  127    0    0  255  255  255  255  255  127    0    0
12225 to 12240       255  255  255  255  255  255    0    0  255  255  255  255  255  255    1    0
12241 to 12256       255  255  255  255  255  255    3    0  255  255  255  255  255  255    3    0
12257 to 12272       255  255  255  255  255  255    7    0  255  255  255  255  255  255   15    0
12273 to 12288       255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
12289 to 12304         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12305 to 12320         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12321 to 12336         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12337 to 12352         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12353 to 12368         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12369 to 12384         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12385 to 12400         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12401 to 12416         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12417 to 12432         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12433 to 12448         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12449 to 12464         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12465 to 12480         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12481 to 12496         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12497 to 12512         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12513 to 12528         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12529 to 12544         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12545 to 12560         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12561 to 12576         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12577 to 12592         0    0    0  128    3    0    0    0    0    0    0  240    7    0    0    0
12593 to 12608         0    0    0  254   15    0    0    0    0    0  192  255   15    0    0    0
12609 to 12624         0    0  240  255   31    0    0    0    0    0  254  255   63    0    0    0
12625 to 12640         0  192  255  255   63    0    0    0    0  248  255  255  127    0    0    0
12641 to 12656         0  255  255  255  255    0    0    0  192  255  255  255  255    1    0    0
12657 to 12672       248  255  255  255  255    1    0    0  255  255  255  255  255    3    0    0
12673 to 12688       255  255  255  255  255    7    0    0  255  255  255  255  255   15    0    0
12689 to 12704       255  255  255  255  255   15    0    0  255  255  255  255  255   31    0    0
12705 to 12720       255  255  255  255  255   63    0    0  255  255  255  255  255   63    0    0
12721 to 12736       255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
12737 to 12752       255  255  255  255  255  255    1    0  255  555  255  255  255  255    1    0
12753 to 12768       255  255  255  255  255  255    3    0  255  255  255  255  255  255    7    0
12769 to 12784       255  255  255  255  255  255    7    0  255  255  255  255  255  255   15    0
12785 to 12800       255  255  255  255  255  255   31    0  255  255  255  255  255  255  255  255
12801 to 12816         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12817 to 12832         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12833 to 12848         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12849 to 12864         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12865 to 12880         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12881 to 12896         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12897 to 12912         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12913 to 12928         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12929 to 12944         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12945 to 12960         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12961 to 12976         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12977 to 12992         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
12993 to 13008         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13009 to 13024         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13025 to 13040         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13041 to 13056         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13057 to 13072         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13073 to 13088         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13089 to 13104         0    0    0    0    6    0    0    0    0    0    0  192    7    0    0    0
13105 to 13120         0    0    0  248   15    0    0    0    0    0    0  255   31    0    0    0
13121 to 13136         0    0  224  255   31    0    0    0    0    0  248  255   63    0    0    0
13137 to 13152         0    0  255  255  127    0    0    0    0  224  255  255  255    0    0    0
13153 to 13168         0  252  255  255  255    0    0    0  128  255  255  255  255    1    0    0
13169 to 13184       224  255  255  255  255    3    0    0  252  255  255  255  255    3    0    0
13185 to 13200       255  255  255  255  255    7    0    0  255  255  255  255  255   15    0    0
13201 to 13216       255  255  255  255  255   31    0    0  255  255  255  255  255   31    0    0
13217 to 13232       255  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
13233 to 13248       255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
13249 to 13264       255  255  255  255  255  255    1    0  255  255  255  255  255  255    3    0
13265 to 13280       255  255  255  255  255  555    3    0  255  255  255  255  255  255    7    0
13281 to 13296       255  255  255  255  255  255   15    0  255  255  255  255  255  255   15    0
13297 to 13312       255  255  255  255  255  255   31    0  255  255  255  255  255  255   63    0
13313 to 13328         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13329 to 13344         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13345 to 13360         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13361 to 13376         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13377 to 13392         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13393 to 13408         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13409 to 13424         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13425 to 13440         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13441 to 13456         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13457 to 13472         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13473 to 13488         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13489 to 13504         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13505 to 13520         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13521 to 13536         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13537 to 13552         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13553 to 13568         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13569 to 13584         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13583 to 13600         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13601 to 13616         0    0    0    0    4    0    0    0    0    0    0    0   15    0    0    0
13617 to 13632         0    0    0  224   15    0    0    0    0    0    0  252   31    0    0    0
13633 to 13648         0    0  128  255   63    0    0    0    0    0  240  255   63    0    0    0
13649 to 13664         0    0  252  255  127    0    0    0    0  128  255  255  255    0    0    0
13665 to 13680         0  240  255  255  255    1    0    0    0  254  255  255  255    1    0    0
13681 to 13696       192  255  255  255  255    3    0    0  240  255  255  255  255    7    0    0
13697 to 13712       254  255  255  255  255    7    0    0  255  255  255  255  255   15    0    0
13713 to 13728       255  255  255  255  255   31    0    0  255  255  255  255  255   63    0    0
13729 to 13744       255  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
13745 to 13760       255  255  255  255  255  255    0    0  253  255  255  255  255  255    1    0
13761 to 13776       255  255  255  255  255  255    1    0  255  255  255  255  255  255    3    0
13777 to 13792       255  255  255  255  255  255    7    0  253  255  255  255  255  255    7    0
13793 to 13808       255  255  255  255  255  255   15    0  255  255  255  255  255  255   31    0
13809 to 13824       255  255  255  255  255  255   63    0  255  255  255  255  253  255   63    0
13825 to 13840          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13841 to 13856          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13857 to 13872          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13873 to 13888          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13889 to 13904          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13905 to 13920          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13921 to 13936          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13937 to 13952          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13953 to 13968          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13969 to 13984          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
13985 to 14000          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14001 to 14016          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14017 to 14032          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14033 to 14048          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14049 to 14064          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14065 to 14080          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14081 to 14096          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14097 to 14112          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14113 to 14128          0    0    0    0    0    0    0    0    0    0    0    0   14    0    0    0
14129 to 14144          0    0    0  128   31    0    0    0    0    0    0  240   31    0    0    0
14145 to 14160          0    0    0  254   63    0    0    0    0    0  192  255  127    0    0    0
14161 to 14176          0    0  248  255  255    0    0    0    0    0  254  255  255    0    0    0
14177 to 14192          0  192  255  255  255    1    0    0    0  248  255  255  255    3    0    0
14193 to 14208          0  255  255  255  255    3    0    0  224  255  255  255  255    7    0    0
14209 to 14224        252  255  255  255  255   15    0    0  255  255  255  255  255   31    0    0
14225 to 14240        255  255  255  255  255   31    0    0  255  255  255  255  255   63    0    0
14241 to 14256        255  255  255  255  255  127    0    0  255  255  255  255  255  127    0    0
14257 to 14272        255  255  255  255  255  255    0    0  255  255  255  255  255  255    1    0
14273 to 14288        255  255  255  255  255  255    3    0  255  255  255  255  255  255    3    0
14289 to 14304        255  255  255  255  255  255    7    0  255  255  255  255  255  255   15    0
14305 to 14320        255  255  255  255  255  255   15    0  255  255  255  255  255  255   31    0
14321 to 14336        255  255  255  255  255  255   63    0  255  255  255  255  255  255  127    0
14337 to 14352          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14353 to 14368          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14369 to 14384          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14385 to 14400          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14401 to 14416          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14417 to 14432          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14433 to 14448          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14449 to 14464          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14465 to 14480          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14481 to 14496          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14497 to 14512          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14513 to 14528          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14529 to 14544          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14545 to 14560          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14561 to 14576          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14577 to 14592          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14593 to 14608          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14609 to 14624          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14625 to 14640          0    0    0    0    0    0    0    0    0    0    0    0    9    0    0    0
14641 to 14656          0    0    0    0   31    0    0    0    0    0    0  192   63    0    0    0
14657 to 14672          0    0    0  248   63    0    0    0    0    0    0  255  127    0    0    0
14673 to 14688          0    0  224  255  255    0    0    0    0    0  252  255  255    1    0    0
14689 to 14704          0    0  255  255  255    1    0    0    0  224  255  255  255    3    0    0
14705 to 14720          0  252  255  255  255    7    0    0  128  255  255  255  255    7    0    0
14721 to 14736        240  255  255  255  255   15    0    0  254  255  255  255  255   31    0    0
14737 to 14752        255  255  255  255  255   63    0    0  255  255  255  255  255   53    0    0
14753 to 14768        255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
14769 to 14784        255  255  255  255  255  255    0    0  255  255  255  255  255  255    1    0
14785 to 14800        255  255  255  255  255  255    3    0  255  255  255  255  255  255    7    0
14801 to 14816        255  255  255  255  255  255    7    0  255  255  255  255  255  255   15    0
14817 to 14832        255  255  255  255  255  255   31    0  255  255  255  255  255  255   31    0
14833 to 14848        255  255  255  255  255  255   63    0  255  255  255  255  255  255  127    0
14849 to 14864          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14865 to 14880          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14881 to 14896          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14897 to 14912          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14913 to 14928          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14929 to 14944          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14945 to 14960          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14961 to 14976          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14977 to 14992          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
14993 to 15008          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15009 to 15024          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15025 to 15040          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15041 to 15056          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15057 to 15072          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15073 to 15088          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15089 to 15104          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15105 to 15120          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15121 to 15136          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15137 to 15152          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15153 to 15160          0    0    0    0   28    0    0    0    0    0    0  128   63    0    0    0
15169 to 15184          0    0    0  224  127    0    0    0    0    0    0  252  255    0    0    0
15185 to 15200          0    0  128  255  255    0    0    0    0    0  240  255  255    1    0    0
15201 to 15215          0    0  254  255  255    3    0    0    0  192  255  255  255    3    0    0
15217 to 15232          0  240  255  255  255    7    0    0    0  254  255  255  255   15    0    0
15233 to 15248        192  255  255  255  255   31    0    0  248  255  255  255  255   31    0    0
15249 to 15264        255  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
15265 to 15280        255  255  255  255  255  127    0    0  255  255  255  255  255  255    0    0
15281 to 15296        255  255  255  255  255  255    1    0  255  255  255  255  255  255    3    0
15297 to 15312        255  255  255  255  255  255    3    0  255  255  255  255  255  255    7    0
15313 to 15328        255  255  255  255  255  255   15    0  255  255  255  255  255  255   15    0
15329 to 15344        255  255  255  255  255  255   31    0  255  255  255  255  255  255   63    0
15345 to 15360        255  255  255  255  255  255  127    0  255  255  255  255  255  255  127    0
15361 to 15376          0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15377 to 15392         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15393 to 15408         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15409 to 15424         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15425 to 15440         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15441 to 15456         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15457 to 15472         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15473 to 15488         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15489 to 15504         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15505 to 15520         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15521 to 15536         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15537 to 15552         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15553 to 15568         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15569 to 15584         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15585 to 15600         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15601 to 15616         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15617 to 15632         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15633 to 15648         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15649 to 15664         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15665 to 15680         0    0    0    0   48    0    0    0    0    0    0    0   62    0    0    0
15681 to 15696         0    0    0  192  127    0    0    0    0    0    0  240  255    0    0    0
15697 to 15712         0    0   0   254  255    1    0    0    0    0  192  255  255    1    0    0
15713 to 15728         0    0  248  255  255    3    0    0    0    0  255  255  255    7    0    0
15729 to 15744         0  224  255  255  255    7    0    0    0  248  255  255  255   15    0    0
15745 to 15760         0  255  255  255  255   31    0    0  224  255  255  255  255   63    0    0
15761 to 15776       252  255  255  255  255   63    0    0  255  255  255  255  255  127    0    0
15777 to 15792       255  255  255  255  255  255    0    0  255  255  255  255  255  255    0    0
15793 to 15808       255  255  255  255  255  255    1    0  255  255  255  255  255  255    3    0
15809 to 15824       255  255  255  255  255  255    7    0  255  255  255  255  255  255    7    0
15825 to 15840       255  255  255  255  255  255   15    0  255  255  255  255  255  255   31    0
15841 to 15856       255  255  255  255  255  255   31    0  255  255  255  255  255  255   63    0
15857 to 15872       255  255  255  255  255  255  127    0  255  255  255  255  255  255  255    0
15873 to 15888         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15889 to 15904         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15905 to 15920         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15922 to 15936         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
25937 to 15952         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15953 to 15968         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15969 to 15984         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
15985 to 16000         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16001 to 16016         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16017 to 16032         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16033 to 16048         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16049 to 16064         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16055 to 16080         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16081 to 16096         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16097 to 16112         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16113 to 16128         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16129 to 16144         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16145 to 16160         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16161 to 16176         0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
16177 to 16192         0    0    0    0    0    0    0    0    0    0    0    0  120    0    0    0
16193 to 16208         0    0    0    0  127    0    0    0    0    0    0  224  255    0    0    0
16209 to 16224         0    0    0  252  255    1    0    0    0    0    0  255  255    3    0    0
16225 to 16240         0    0  224  255  255    3    0    0    0    0  255  255  255    7    0    0
16241 to 16256         0  128  255  255  255   15    0    0    0  240  255  255  255   15    0    0
16257 to 16272         0  252  255  255  255   31    0    0  128  255  255  255  255   63    0    0
16273 to 16288       240  255  255  255  255  127    0    0  254  255  255  255  255  127    0    0
16289 to 16304       255  255  255  255  255  255    0    0  255  255  255  255  255  255    1    0
16305 to 16320       255  255  255  255  255  255    3    0  255  255  255  255  255  255    3    0
16321 to 16336       255  255  255  255  255  255    7    0  255  255  255  255  255  255   15    0
16337 to 16352       255  255  255  255  255  255   15    0  255  255  255  255  255  255   31    0
16353 to 16368       255  255  255  255  255  255   63    0  255  255  255  255  255  255  127    0
16369 to 16384       255  255  255  255  255  255  127    0  255  255  255  255  255  255  255    0
步骤603开始处理访问如此安排的信息。更具体而言,在步骤603中计算,
y ( i , j ) ( p , q ) = Y ( i , j ) ( p , q ) > > 5
u ( i , j ) ( p , q ) = U ( i , j ) ( p , q ) > > 2
v ( i , j ) ( p , q ) = V ( i , j ) ( p , q ) > > 2
其中,类似于以上所述,p指的是被处理帧的特定水平片,q指的是该帧的特定列或垂直片,i指的是被处理块内的特定行,j指的是被处理块内的特定列,以及“>>”为右移运算。这样做只剩下了像素U值的想要的第8到第3最低有效位,像素V值的第8到第3最低有效位,以及像素Y值的第8到第6最低有效位。之后,在步骤605中,如下计算用于当前像素的查询表地址:
LUT _ Addres s ( i , j ) ( p , q ) = u ( i , j ) ( p , q ) < < 9 + v ( i , j ) ( p , q ) < < 3 + y ( i , j ) ( p , q ) , 这里“<<”为左移运算。
这样做将提取的比特组合在组合地址中并且指向对应于该像素的一个字节。之后,在步骤607,通过将由Y分量的第2到第5最低有效位构成的值用作字节的索引,来确定对应于该像素的字节内的特定比特。为此目的,步骤607计算 b = mod ( Y ( i , j ) ( p , q ) < < 2,8 ) , 这里mod为求模函数。
在步骤609中,提取在计算的查询表地址的字节的第b个比特位置的值,并将其分配为变量m的值,并且提供作为输出。再次,在该示意性的实施例中,如果提取的比特为1,则U为选择的色度部分,而如果提取的比特为0时,则V为所选择的色度部分。
然后处理流程在步骤611退出。
本领域的普通技术人员将容易意识到,如何将上述内容适于其他格式的像素,例如RGB或YIQ。
应该注意到如果期望对表格Huffman编码,可能有利的是,应该颠倒上述为1选择U和为0选择V的对应关系,假设如实验已经得出的,为大部分的像素组合选择U。
图8所示为特定色度部分选择以包含用于像素的加水印信息所采用的另一示意性处理流程。当必须选择一个适于包含水印信息的色度部分时,在步骤801开始处理流程。如图6所示,为了讨论图8,假定像素以YUV格式表示。而且,应该注意到,优选地,对于原始视频的每个原始2×2亮度块,如果原始视频已表示为4-4-4格式,那么应该只有用于每个色度分量的一个Y值,即每对各自对应的U和V值。为此目的,可以下采样原始块的Y值以便与U和V具有相同的分辨率。可替换地,计算与特定U和V值关联的Y值的平均值或一些其他组合,并将其用作用于图8处理的Y值。
与图6的实施例相比,根据本发明的一个方面为了进一步减少图8实施例中的存储要求,不仅YUV色彩空间划分为一些区域,每个区域包括对应于Y、U和V值的至少一个集合的位置,并且例如基于实验观察,为每个区域分配一个色度部分,其中选择这些色度部分用于任何像素,这些像素的Y、U和V值落入区域内,如结合图6所示的,但是U值小于预定值例如最大值的一半的任何像素将具有选择用于加水印的U色度部分。因此,对于8比特Y、U和V值,如果U值小于128,则总是选择U色度部分加水印,而不管V或Y值如何。这是因为人类的视觉系统对蓝色分量U较V分量而言不那么敏感。
通过让色度部分选择表的最高有效地址位对应于地址的U值导出比特,有利地,能够将表的大小减小达一半。这将通过在形成表地址之前,增加一个测试以确定是否U值小于最大值的一半来实现,如果测试结果为“是”,这简单地表示选择U色度部分并跳过访问表的剩余处理,而且还通过在计算地址的U值导出比特之前,将实际U值减去最大值U的一半来实现。因此,取消对应最高有效U位为0的应用于图6的表部分,并且只保留最高有效U位为1的表部分。但是,在形成U值导出比特之前,通过将U值减去最大U值的一半来移位表剩余部分的索引。
从而,使用具有对应于U值的最高有效位的地址,对应于V值的下一个最低有效值,以及对应于Y值的最低有效值来寻址安排的表格。换言之,可以如下形成字节的地址:
U6|U5|U4|U3|U2|V7|V6|V5|V4|V3|V2|Y7|Y6|Y5
这里U6、U5、U4、U3和U2为像素U值的第7到第3最低有效位的值,V7、V6、V5、V4、V3和V2为像素V值的第8到第3最低有效位的值,以及Y7、Y6和Y5为像素Y值的第8到第6最低有效位的值。然后,通过使用Y分量的第5到第2最低有效位例如Y4、Y3和Y2来规定字节内的特定比特。
为此目的,条件分支点802进行测试以确定是否U(i,j) (p,q)<预定值,该值例如为最大U值的一半。应该注意到为了节约一个比特,以及一半的表大小,优选地预定值应该为2的幂。如果步骤802的测试结果为“否”,这表示U值不小于预定值,例如U最大值的一半,例如128,因此要被选择的色度部分将作为Y、U和V的函数,因此必须访问该表,并将控制传递到步骤803以开始访问该表的处理。在步骤803中
计算
y ( i , j ) ( p , q ) = Y ( i , j ) ( p , q ) > > 5
Figure A20041008261700502
例如 u ( i , j ) ( p , q ) = ( U ( i , j ) ( p , q ) - 128 ) > > 2
以及 v ( i , j ) ( p , q ) = V ( i , j ) ( p , q ) > > 2
其中,类似于以上所述,这里,p指的是被处理帧的特定水平片,q指的是该帧的特定列或垂直片,i指的是被处理块内的特定行,j指的是被处理块内的特定列,以及“>>”为右移运算。这样做只剩下了像素U值的想要的第7到第3最低有效位,像素V值的第8到第3最低有效位,以及像素Y值的第8到第6最低有效位。之后,在步骤805中,如下计算用于当前像素的查询表地址:
LUT _ Addres s ( i , j ) ( p , q ) = u ( i , j ) ( p , q ) < < 9 + v ( i , j ) ( p , q ) < < 3 + y ( i , j ) ( p , q ) , 这里“<<”为左移运算。
这样做将提取的比特组合在组合地址中并且指向对应于该像素的一个字节。之后,在步骤807,通过将由Y分量的第5到第2最低有效位构成的值用作字节的索引,来确定对应于该像素的字节内的特定比特。为此目的,步骤807计算 b = mod ( Y ( i , j ) ( p , q ) < < 2,8 ) , 这里mod为求模函数。
在步骤809中,在计算的查询表地址提取字节的第b个比特位置的值,并将其存储在变量m中。在步骤811中变量m的值提供作为输出。再次,如果输出比特为1,则U为选择的色度部分,而如果提取的比特为0时,则V为所选择的色度部分。然后处理流程在步骤813退出。
如果步骤802的测试结果为“是”,这表示应该选择U色度部分,因为像素颜色不主要为蓝色,因而人类的视觉系统将不会检测到像素蓝色的改变,将控制传递到步骤815,在步骤中将变量m设定等于1。这样做保证了选择U。然后将控制传递到步骤811,并且如上所述继续进行处理。
尽管在色彩选择中的上述改进利用了像素的一定的Y、U和V值,不利的是,仍有可能显现出轻微可检测的闪烁。这是因为为了经得住类似MPEG编码,可能需要为所选色度部分的平均值增加大值。
图9所示为根据本发明的原理构造的示意性发送机,其中在数据印象到块的色度部分的平均值之前,通过复制印象数据至少一次,优选为两次或更多次,从而可以减少闪烁。在单独的连续帧的相同块位置中发送原始的以及每个复制的数据。优选地,具有携带相同数据的相同位置块的这些帧在显示顺序上是连续的。而且,帧的具体块可以嵌入一个特定的已知数据序列,例如巴克序列,而不是编码的用户数据。
图9中所示的本发明的实施例类似于图1所示的本发明的实施例。图9中所有具有相同标记的组件基本上和图1所示的组件操作相同。除了在图9中所示的图1的这些组件以外还有转发器925和可选的序列附加器927。另外,图1的位映象器123可选地在图9中代替为位映象器923。只有在想要以下结合位映象器923描述附加功能时,才有必要用位映象器923代替位映象器123。
转发器925从块交织器121或可选的序列附加器927接收比特,转发器925存储接收的比特并为至少两个帧的相同位置的块输出这些比特。在本发明的一个实施例中,已经发现当转发器925存储接收的比特并为三个帧的相同位置的块输出它们时可以获得好的结果。本领域的普通技术人员通过为转发的数据选择帧数量,将能够权衡任何感知的闪烁与水印数据的期望吞吐量。
可选的序列附加器927将特定已知的数据序列,例如巴克序列嵌入到帧的特定块中,数据序列代替了编码的用户数据。将数据序列编码的特定块可以分布于一帧的整个块中。每组初始和转发的数据帧可以应用不同的已知序列。这样做将使得接收机能够检测帧的集合。可替换地,可以为每一组应用相同的序列,但是用于序列的这些特定块对于连续的组来说是不同的。
图10所示为根据本发明的原理构造的接收机的示意性实施例,该接收机用于接收诸如图9的发送机所产生的加有水印的视频信号。图10所示的本发明的实施例类似于图2所示的实施例。图10中所有具有相同附图标记的组件与图2所示的组件基本上操作相同。除了图10所示的图2的这些组件以外,还有序列处理器1025和帧加权单元1027。而且,图2的信道解码器221可选地代替为图10中的信道解码器1021。
例如如图10所示的接收机可以使用序列处理器1025检测组同步。这可以通过以下来实现,将来自组长度数量的连续帧中每一帧的组所识别序列的值进行相加,从而将其应用为同步模式,并确定是否结果超出了预定阈值。如果超出了该阈值,假定增加期望同步模式值的第一帧为该组中的第一帧。如果没有超出该阈值,假定增加值的第一帧为不是一组中的第一帧。这类似于在同步模式上执行自相关。本领域的普通技术人员将意识到可以使用其他传统的技术来避免错误匹配,并处理由于错误而丢失第一帧,诸如在宣布组同步之前搜寻最大值。
有利地,一旦接收机检测到规则的组模式,在存在模式偏差的任何时候,接收机将能够意识到已经移除了原始视频序列的一个帧。这种信息可由序列处理器1025提供作为一个输出。
例如,可以监视视频信号内的经销商的各种广告片。可以为该经销商分配一个唯一的代码,该代码嵌入到到广告片的每一帧中。并使接收机知道该特定的唯一代码和加有水印的帧的哪些块应该包含该代码。通过检测加水印帧内的代码出现,接收机能够识别一帧为属于经销商其中一个广告片的帧。一旦检测到包含该代码的帧,能够对包含该代码的序列帧数量进行计数,以确定广告片的长度。如果基于原始加水印的广告片的已知长度,所计数的帧数小于期望的帧数,那么可以假定广告片不适合于通过移除对应于期望帧数和所计数帧数之差的该帧数来缩短。本领域的普通技术人员将会意识到可以应用其他的传统技术来避免错误的匹配,和处理由于错误而丢失第一帧。
广告片的每一帧或广告片内帧的组,可以利用唯一的标识符,例如一个帧或组编号来加水印,该标识符为帧上的不同序列的一部分。当由于一个或更多帧丢失而检测到期望序列中的间隙时,当每个帧具有唯一的标识符时可以具体地识别这些丢失帧。当标识符只分配给组以及在每组中已知帧的数量时,只能识别任何丢失帧所属的特定组,以及计数丢失了多少帧。
尽管可以应用数据复制来减少闪烁,正如如上所述,但是这样做可能限制检测丢失帧的能力为只识别丢失帧的组,而不是能够识别该特定的帧。所以,尽管通常复制水印数据,至少可以不复制一个单独的帧标识符。包含这种非复制帧的这些块,如果它们引起闪烁,则位于将最不可能引起注意的位置,例如帧的角上。这样做提供了减少可检测闪烁的大部分好处,同时还允许检测丢失的特定的各个帧。
如果经销商有不同的广告片,每个广告片可以具有其他嵌入到至少一个帧中的序列,以识别正在接收的该经销商的特定广告片。
如果多个经销商具有加水印的广告片,只要给每个经销商分配一个唯一的代码,监视具有第一唯一代码的第一经销商广告片出现的系统,将忽略具有第二唯一代码的第二经销商的广告片。可替换地,单个系统可能监视用于来自不同经销商的广告片出现的视频信号,其中每个经销商具有一个唯一代码,并且根据其代码由经销商来分离结果。
当多个经销商具有加水印的广告片时,每个经销商应用相同的代码,并且代码甚至位于用于每个经销商的帧内的相同块位置上。但是,使用一个用于每个经销商的唯一密钥,加密包括在该帧内的所有接下来的数据,并且每个经销商具有一个接收机,该接收机仅知道用于该经销商的密钥。所以,每个经销商能够仅仅解密和接收来自其自己广告片的数据。可替换地,通过在一帧的块上加扰数据,可以加密用于每个经销商的数据。每个接收机应该只知道用于它的相关经销商的加扰模式。
可以连续执行、或在期望广播广告片的时间窗内监视代码的初始出现,该出现表示一个广告片的开始。
代替简单地在一组的多个帧上重复数据,然后使用位映象器123(图1),为一个块的色度部分的平均值增加的量,取决于块的复杂度及期望的量化等级,并可能在一个组上一帧一帧地轻微变化,甚至在相应的一帧一帧的位置上块的复杂度相同时。根据本发明的一个方面,与增加到平均值的值相比所做的改变较小,以将水印比特置于平均值内。这些改变可由位映象器923(图9)来执行,借此提供附加的编码增益,这可能有利地应用于在接收机提高数据的可靠性。但是,这样做可能导致低纹理区域可见质量的稍微减小,因为块内的一些像素可能具有比位于相同位置的以前像素所不同的值。但是,由于这种减小处于像素级,因此典型地它不会引起注意。
在本发明的一个示意性实施例中,利用印象到其上的相同水印数据发送三个时间连续帧的组。该组的中间帧加有如上结合图3所述的水印,而不会根据在图3中所确定值来改变增加到块所选择色度部分之平均值的量。
该组在时间上的第一帧还具有一个通过位映象器923(图9)要增加到块所选色度部分之平均值上的计算值,即偏差,其中如结合图3所示来开发该增加值。但是,偏差,例如增加到平均值以将水印比特放置在平均值内的该值绝对值的四分之一或优选地为一半,另外被增加到所选用于携带水印数据的色度部分的计算平均值上。因此,例如,如果将平均值增加1以将水印比特放置在平均值内,那么其一半将增加到平均值中。当一个块中有64个像素时,这转换为增加32到该块所有像素的所选色度部分的求和值。因此,加法器133将接收一个比假如未增加偏差的值更高的值。同理,作为另一个实例,如果增加-4到平均值中以将水印比特放置于平均值内,以及如果应用增加到平均值的该值绝对值的一半,当一个块中有64个像素时,这将转换为给该块所有像素所选色度部分的求和值增加128。
注意到该附加的偏差量,例如32,将根据其亮度变化量分布于各个像素中。而且,附加偏差不依赖于任何增加到平均值的以使其位于一个安全范围的值。因此,平均值可能落入安全范围之外。但是,移出安全范围造成的错误概率的增加大于根据应用该偏差产生的编码增益所带来的偏移。
该组在时间上的最后一帧具有一个通过位映象器923(图9)计算的值,即从该块所选色度部分的平均值中减去一个偏差,该值如结合图3所述那样开发。但是,根据本发明的一个方面,偏差,例如增加到平均值以将水印比特放置在平均值内的该值绝对值的四分之一或优选为一半,另外应该从所选用于携带水印数据的色度部分的计算平均值中减去。因此,例如,如果-3被增加到平均值中以将水印比特放置于平均值内,那么将从平均值减去-3绝对值的一半即1.5。当在一个块中有64个像素时,这转换为从该块所有像素所选色度部分的求和值中减去96。因此,加法器133将接收一个比假如未增加偏差的值更低的值。同理,作为另一个实例,如果为平均值增加2以将水印比特放置于平均值内,那么从该平均值中减去2的绝对值的一半即1。当在一个块中有64个像素时,这转换为从该块所有像素所选色度部分的求和值中减去64。
应该注意到丢失减去的偏差量,例如32,将根据其亮度变化量分布于各个像素中。而且还应该注意到减去该偏差不依赖于给平均值增加的以使其位于一个安全范围内的任何值。因此,平均值可能落入安全范围之外。但是,移出安全范围造成的错误概率的增加大于所产生的编码增益所带来的偏移。
一种考虑这样如何有效的方式请参见图5。如上所述,为了达到安全范围外部边界的一个值,没有考虑到通常正好足够用于给块所选色度部分的平均值增加或减去偏差量。因此,在任何偏差之前,多个帧在安全范围上或靠近其边界。未增加或减少任何值的中间帧还位于边界的右边。增加一个极小偏差的帧可以稍微一定到安全范围内的更好位置上,或者它可能轻微移出安全范围。减去一个极小偏差的帧移动到如增加偏差的帧的正确方向。因此,在最坏情况下,对于三帧的一个组而言,一个将位于安全范围的边界上,一个将稍微位于安全范围之外。这产生了独立扩展的值。
由于类似MPEG编码所执行的量化以及在MPEG去量化过程中增加的各个MPEG偏差,可以进一步扩大偏差的影响。当在这些连续帧上发送相同的比特时,这能够导致位于连续帧内用于相同位置块的接收数据值之间产生显著的差别。
在例如如图10所示的接收机中,例如在帧加权单元1027中,根据认为“是”为每一帧提供的质量等级来使用最大比率合并方法,适当地加权从每一帧中提取的数据。为此目的,序列处理器1025可以为帧加权单元1027提供:a)帧同步信息,以便帧加权单元1027能够知道哪些帧集合在一起,以及b)每一帧的同步模式中的错误数量。质量等级根据认为在接收帧中有多少错误,以及根据在期望用于该帧的同步模式中有多少错误来确定,并且由序列处理器1025提取。表1示出了用于每一同步模式的错误数量和各个加权,其中已经利用同步模式中的这种错误数量,根据经验导出适合于一帧的该加权。换言之,可将从每一帧中提取数据的值视为作为组合处理一部分的通过其相关加权所加权的软数据。
根据这些加权,提取用于连续帧中对应块位置的相同数据比特的多个实例并将其进行组合以形成单个的接收比特。这可以通过以下计算实现:
bit _ out = ( 2 n - 1 ) w 1 bi t 1 + w 2 bit 2 + w 3 bit 3 ( w 1 + w 2 + w 3 ) , 这里
bit_out为三帧的组最后输出的比特;
w1、w2和w3为时间帧中第一、第二和第三帧的加权;
bit1、bit2和bit3为来自时间帧中第一、第二和第三帧的相同位置块的比特;以及
n为软解码器输入精度的比特数量。
为了最佳利用软信息,信道解码器1021为所谓的软解码器,它能够应用软数据比特,即每个表示为非二进制数的数据比特,其范围取决于软解码器输入精度。例如,8比特输入精度的软解码器操作于0到255之间的值。为此目的,接收硬比特的加权平均值 w 1 bit 1 + w 2 bit 2 + w 3 bi t 3 ( w 1 + w 2 + w 3 ) 与2n-1相乘,借此将加权平均值转换为适当精度的软解码所能够处理的软值。
当特定帧的确定质量低于预定的阈值时,可以假定特定帧不包含任何的水印数据以及没有为该帧提取任何数据。
本领域的普通技术人员将容易意识到,哪一帧增加了值,哪一帧减去了值以及哪一帧未发生改变;不论加和减都是必要的;一组中帧的数量;以及对相加或相减值或所产生的值所执行的任何舍入到整数取决于实施者的判断。
    同步比特错误数量   加权因子w
    0   1
    1   0.9
    2   0.8
    3   0.7
    4   0.6
    5   0.5
    6   0.4

Claims (17)

1、一种用于给视频信号加水印的方法,该方法包括以下步骤:
通过将要印象到视频信号上的附加信息的至少所选比特放置在所述视频信号的块上的色度部分平均值的至少一个选择比特中,复制所述比特;以及
提供在连续帧的相同块位置中要印象的所述原始和复制比特。
2、根据权利要求1定义的本发明,其中所述块位置基于所述视频信号,该信号具有用于满分辨率的原始输入视频信号的每个2×2块的一个Y值、一个U值和一个V值。
3、根据权利要求1定义的本发明,其中将要印象到所述连续帧的第一帧上的附加信息的所有所述比特被复制以印象到所述连续帧的至少第二帧上,该帧用于显示,而在所述连续帧的所述第一帧和所述第二帧之间不显示任何帧。
4、根据权利要求1定义的本发明,还包括给所述连续帧的至少一个帧的至少一个块的色度部分平均值增加一个偏差的步骤,所述连续帧具有在相同的块位置中印象到连续帧上的所述原始和复制比特。
5、根据权利要求4定义的本发明,其中所述偏差为第一偏差,它为增加到所述连续帧中第一帧的正值,所述方法还包括给所述连续帧的至少第二帧的至少一个块的色度部分平均值增加一个第二偏差的步骤,所述连续帧具有在相同的块位置中印象到连续帧上的所述原始和复制比特,所述第二偏差为一个负值。
6、根据权利要求4定义的本发明,其中所述偏差为第一偏差,它为增加到所述连续帧中第一帧的正值,所述方法还包括给所述连续帧的至少第二帧的至少一个块的色度部分平均值增加一个第二偏差的步骤,所述连续帧具有在相同的块位置中印象到连续帧上的所述原始和复制的比特,所述第二偏差为一个负值,并且所述至少第二帧的所述至少一个块和所述第一帧的所述至少一个块位于所述至少第二帧内的相同位置处。
7、根据权利要求4定义的本发明,其中,为所述至少一个块的像素的色度部分增加值,直到这种增加值的累计等于所述偏差和块中像素数量之乘积时为止,所述增加独立于对所述像素的色度部分所作的任何其他改变。
8、根据权利要求1定义的本发明,还包括将规定数据序列包含在要印象到所述视频信号的色度部分上的所述附加信息内的步骤。
9、根据权利要求8定义的本发明,其中在所述视频信号加水印之后,对于所述视频信号的接收机而言已知所述规定数据序列。
10、根据权利要求8定义的本发明,其中所述规定数据序列印象在所述视频信号的多个帧的相同位置的规定块上。
11、一种包含附加信息的视频信号的接收机所使用的方法,其中该附加信息印象在所述视频信号的色度部分上,该方法包括以下步骤:
组合提取的来自规定帧的相同块位置的初始附加信息来确定最终的附加信息;
提供所述最终的附加信息作为输出。
12、根据权利要求11定义的本发明,还包括确定在所述组合步骤中组合的所述每一个规定帧的质量的步骤;以及
其中在所述组合步骤中,来自所述规定帧相同块位置的所述初始附加信息组合为每个所述规定帧的所述确定质量的函数。
13、根据权利要求12定义的本发明,其中当一帧的所述确定质量低于规定阈值时,所述帧被视为它不包含任何附加信息。
14、根据权利要求11定义的本发明,其中将所述最终的附加信息提供给信道解码器,该解码器将所述最终的附加信息视为软比特。
15、一种用于给视频信号加水印的设备,包括:
用于通过替换在视频信号的块上的色度部分平均值的至少一个选择比特,复制要印象到所述视频信号上的附加信息的至少所选比特的装置;以及
用于提供在连续帧的相同块位置中要印象的所述原始和复制比特的装置。
16、一种用于从视频信号中提取附加信息的接收机,该视频信号包含印象到所述视频信号的色度部分上的非视频信息,该接收机包括:
用于从所述视频信号中提取所述非视频信息的提取器;和
接收至少所述提取的非视频信息并检测至少一个规定序列的序列处理器,其中所述规定序列已被印象在所述视频信号的至少一帧上。
17、根据权利要求16所定义的本发明,其中所述序列处理器为多个成组帧中的每个帧确定所述至少一个规定序列中的错误数量,所述接收机还包括:
帧加权单元,它使用作为所述多个帧中每一个帧中的所述错误数量的函数导出的每一帧质量测量,以将从所述多个帧提取的相同块位置上的非视频信息组合为用于所述成组帧的所述块位置的输出值。
CN2004100826179A 2003-09-29 2004-09-24 给数字视频加水印的方法和设备 Expired - Fee Related CN1645937B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/673,894 2003-09-29
US10/673,894 US7646881B2 (en) 2003-09-29 2003-09-29 Watermarking scheme for digital video

Publications (2)

Publication Number Publication Date
CN1645937A true CN1645937A (zh) 2005-07-27
CN1645937B CN1645937B (zh) 2011-04-20

Family

ID=34194894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100826179A Expired - Fee Related CN1645937B (zh) 2003-09-29 2004-09-24 给数字视频加水印的方法和设备

Country Status (8)

Country Link
US (1) US7646881B2 (zh)
EP (1) EP1519312B1 (zh)
JP (3) JP2005110274A (zh)
KR (1) KR101110083B1 (zh)
CN (1) CN1645937B (zh)
AU (1) AU2004214556B2 (zh)
BR (1) BRPI0406441A (zh)
CA (1) CA2477515C (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006025409A (ja) * 2004-06-11 2006-01-26 Canon Inc 画像処理装置及び画像処理方法
US7630512B2 (en) 2005-05-26 2009-12-08 Alcatel-Lucent Usa Inc. Method for performing recoverable video and image watermarking which survives block-based video and image compression
US7894523B2 (en) 2005-09-05 2011-02-22 Lg Electronics Inc. Method for modeling coding information of a video signal for compressing/decompressing coding information
US20070153025A1 (en) * 2005-12-29 2007-07-05 Mitchell Owen R Method, apparatus, and system for encoding and decoding a signal on a viewable portion of a video
FR2897487B1 (fr) * 2006-02-13 2008-05-16 Adentis Sa Fichier numerique marque par une suite de marques dont la concatenation forme un message et procede d'extraction d'une marque d'un tel fichier numerique marque
WO2007122216A1 (en) * 2006-04-25 2007-11-01 Thomson Licensing Digital watermarking method
JP2008131282A (ja) * 2006-11-20 2008-06-05 Sony Corp 映像伝送方法、映像伝送システム及び映像処理装置
US7974438B2 (en) * 2006-12-11 2011-07-05 Koplar Interactive Systems International, Llc Spatial data encoding and decoding
JP5300741B2 (ja) * 2007-01-12 2013-09-25 シフォルーション ベー フェー ビデオ透かし入れのための方法および装置
US8315574B2 (en) * 2007-04-13 2012-11-20 Broadcom Corporation Management of variable-rate communication links
US8001445B2 (en) * 2007-08-13 2011-08-16 Provigent Ltd. Protected communication link with improved protection indication
US8040985B2 (en) 2007-10-09 2011-10-18 Provigent Ltd Decoding of forward error correction codes in the presence of phase noise
BRPI0917456B1 (pt) * 2008-08-19 2020-09-15 Contentarmor Método para atendimento a fluxo de vídeo de codificação aritmética binária adaptativa com base em contexto (cabac)
CN102187673B (zh) * 2008-08-19 2014-07-30 汤姆森特许公司 亮度评估
JP5373909B2 (ja) * 2008-08-19 2013-12-18 トムソン ライセンシング 圧縮ビデオにおける構文要素のcabac/avc準拠の透かし入れ
WO2010021700A1 (en) * 2008-08-19 2010-02-25 Thomson Licensing A propagation map
EP2314073B1 (en) * 2008-08-20 2014-04-30 Thomson Licensing Selection of watermarks for the watermarking of compressed video
US8477942B2 (en) * 2008-10-21 2013-07-02 Motorola Mobility Llc Method and apparatus for managing service lists
BR112012019745B1 (pt) 2010-02-09 2020-11-10 Contentarmor Método de detecção de marca dágua utilizando um mapa de propagação
US8379911B2 (en) * 2010-12-10 2013-02-19 Infosys Technologies Limited Method and system for efficient watermarking of video content
US8805170B2 (en) * 2012-03-07 2014-08-12 Broadcom Corporation System and method for memory storage of video data
JP6497468B1 (ja) * 2018-06-06 2019-04-10 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法、及び画像改ざん判定プログラム
US11087557B1 (en) * 2020-06-03 2021-08-10 Tovy Kamine Methods and systems for remote augmented reality communication for guided surgery

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993152B2 (en) * 1994-03-17 2006-01-31 Digimarc Corporation Hiding geo-location data through arrangement of objects
US6590996B1 (en) * 2000-02-14 2003-07-08 Digimarc Corporation Color adaptive watermarking
US6373960B1 (en) * 1998-01-06 2002-04-16 Pixel Tools Corporation Embedding watermarks into compressed video data
US6829301B1 (en) * 1998-01-16 2004-12-07 Sarnoff Corporation Enhanced MPEG information distribution apparatus and method
US6298166B1 (en) * 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
JP3266569B2 (ja) 1998-07-29 2002-03-18 日本電気株式会社 電子透かしデータによる画像属性変更システム
JP2000115728A (ja) * 1998-10-07 2000-04-21 Sony Corp 映像信号伝送システム、映像信号出力装置、映像信号処理装置および映像信号伝送方法
JP2000152195A (ja) * 1998-11-05 2000-05-30 Sony Corp 付加情報伝送方法、付加情報伝送システム、情報信号出力装置、情報信号処理装置
JP2000175161A (ja) 1998-12-01 2000-06-23 Kdd Corp 動画像に対する透かしデータ埋め込み装置および検出装置
JP2002539487A (ja) * 1999-03-10 2002-11-19 ディジマーク コーポレイション 信号処理方法及び装置
US7154638B1 (en) * 2000-05-23 2006-12-26 Silverbrook Research Pty Ltd Printed page tag encoder
US6785401B2 (en) 2001-04-09 2004-08-31 Tektronix, Inc. Temporal synchronization of video watermark decoding
EP1402737B1 (en) * 2001-06-21 2007-04-25 Koninklijke Philips Electronics N.V. Embedding and detection of watermark in a motion image signal
US7006656B2 (en) * 2001-10-15 2006-02-28 The Research Foundation Of Suny Lossless embedding of data in digital objects
US6538599B1 (en) * 2001-11-16 2003-03-25 Raytheon Company Noncoherent gain enhancement technique for non-stationary targets
EP1588556B1 (en) * 2003-01-20 2006-09-27 Koninklijke Philips Electronics N.V. Watermark embedding and detection of a motion image signal

Also Published As

Publication number Publication date
KR101110083B1 (ko) 2012-03-08
BRPI0406441A (pt) 2005-08-09
AU2004214556B2 (en) 2010-01-21
JP2012186853A (ja) 2012-09-27
JP6162734B2 (ja) 2017-07-12
US7646881B2 (en) 2010-01-12
EP1519312A1 (en) 2005-03-30
JP2005110274A (ja) 2005-04-21
CA2477515C (en) 2009-10-20
AU2004214556A1 (en) 2005-04-14
KR20050031410A (ko) 2005-04-06
JP2015128299A (ja) 2015-07-09
US20050069169A1 (en) 2005-03-31
CN1645937B (zh) 2011-04-20
CA2477515A1 (en) 2005-03-29
EP1519312B1 (en) 2015-12-23

Similar Documents

Publication Publication Date Title
CN1645937A (zh) 给数字视频加水印的方案
CN1606351A (zh) 用于数字视频加水印的色彩选择方案
CN1178460C (zh) 图象编码方法和图象编码装置
CN1075321C (zh) 图像编码装置及方法
CN1545813A (zh) 图象编码装置、图象译码装置、图象编码方法、图象译码方法、图象编码程序和图象译码程序
CN1270536C (zh) 修改比特流
CN1139256C (zh) 图像编码装置及图像解码装置
CN1281064C (zh) 利用与像素块分类信息对应的映射系数的图像编码和解码
CN1926576A (zh) 用于数字编码3d立体视频图像的方法和系统
CN1586042A (zh) 可变长编码方法以及可变长译码方法
CN1918602A (zh) 多模α图像处理
CN1268135C (zh) 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体
CN1649384A (zh) 图像处理设备、图像处理程序、及存储介质
CN1620142A (zh) 可逆子波变换和嵌入代码流处理
CN1897703A (zh) 视频编码方法和装置以及视频解码方法和装置
CN1169303C (zh) 数据处理装置和方法以及记录介质
CN1153468C (zh) 编码装置、译码装置和编码、译码方法以及图象处理装置
CN1178461C (zh) 图像编码装置、图像译码装置、传真装置
CN1957616A (zh) 动图像编码方法和动图像解码方法
CN1922890A (zh) 分段可逆视频编码方法、分段可逆视频译码方法、分段可逆视频编码装置、分段可逆视频译码装置和它们的程序及程序记录媒体
CN1977540A (zh) 用于图像编码/解码和扩展图像压缩解压缩的方法和设备
CN1707502A (zh) 图像处理装置及其控制方法
CN1229758C (zh) 正交变换图像的分辨率变换装置和方法
CN1941910A (zh) 编码坐标内插符、解码比特数据流的装置及方法
CN1669329A (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
CP01 Change in the name or title of a patent holder

Address after: New jersey, USA

Patentee after: ALCATEL-LUCENT USA Inc.

Address before: New jersey, USA

Patentee before: Lucent Technologies Inc.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20190603

Address after: American New York

Patentee after: Origin Asset Group Co.,Ltd.

Address before: New jersey, USA

Patentee before: ALCATEL-LUCENT USA Inc.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110420

Termination date: 20210924

CF01 Termination of patent right due to non-payment of annual fee