首页> 中国专利> 动态图像加密装置、动态图像加密方法及动态图像加密用计算机程序

动态图像加密装置、动态图像加密方法及动态图像加密用计算机程序

摘要

动态图像加密装置具有:决定多个组中的各块所属的组的组决定部;组解密时刻信息计算部,其按每个组来算出解密时刻;组信息附加部,其将表示各块所属的组的组信息附加到输出数据中;符号量控制部,其在组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲器;以及加密处理部,其基于符号量的控制信息来对各块进行加密。

著录项

  • 公开/公告号CN103202015A

    专利类型发明专利

  • 公开/公告日2013-07-10

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN201180051895.6

  • 申请日2011-01-13

  • 分类号H04N7/26;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人舒艳君

  • 地址 日本神奈川县

  • 入库时间 2024-02-19 19:46:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-03

    授权

    授权

  • 2013-08-07

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20110113

    实质审查的生效

  • 2013-07-10

    公开

    公开

说明书

技术领域

本发明涉及例如将各图片分割成多个块并按每个块来进行加密的 动态图像加密装置、动态图像加密方法以及动态图像加密用计算机程 序。

背景技术

在近年来的动态图像加密中,各图片被按照压缩效率不同的加密模 式中的某个模式加密。例如,各图片被按照仅利用图片内预测来加密的 画面内预测图片(I图片)、采用图片间预测的单向预测图片(P图片)、 双向预测图片(B图片)中的某一种来加密。根据图片类型或者图像复 杂度而产生的符号量不同,在各时刻产生的符号量会产生偏差。因此, 为了以一定的传送率来传送包含加密后的动态图像的数据流,需要数据 流的发送缓冲器和接收缓冲器。该缓冲器会产生缓冲器延迟,这成为动 态图像解密装置中的显示延迟的原因之一。如果减小缓冲器的尺寸,则 由于图片间的符号量分配的自由度减少,所以虽然动态图像解密装置存 在画质劣化的趋势,但能够减少缓冲器延迟。

在现有的动态图像加密的国际标准即MPEG-2Video(ISO·IEC 13818-2/ITU-T H.262,以下称为“MPEG-2”)或者MPEG-4AVC/ H.264(ISO·IEC14496-10/ITU-T H.264,以下称为“H.264”)中, 规定了分别被称为“Video Buffering Verifier(VBV)和Coded Picture  Buffer(CPB)”的理想解密装置中的数据流接收缓冲器的动作。为了不 使理想解密装置的接收缓冲器产生上溢以及下溢,动态图像加密装置必 须控制符号量。理想解密装置被规定为进行解密处理所需的时间为0的 瞬时解密。例如,专利文献1中公开了一种与VBV相关的动态图像加 密装置的控制方法。

专利文献1:日本特开平3-148981号公报

非专利文献1:MPEG-2Test Model5.April 1993.ISO-IEC/JTC1/SC29/WG11/N0400 (http://www.mpeg.org/MPEG/MSSG/tm5/)

非专利文献2:JCTVC-A116,“Description of video coding  technology proposal by Fraunhofer HHI”,Joint Collaborative Team  on Video Coding of ITU-T SG16WP3and ISO/IEC JTC1/SC29/WG11, April2010

动态图像加密装置为了不使理想解密装置的接收缓冲器产生上溢 以及下溢,按照在理想解密装置对某张图片进行解密的时刻,保证该图 片的数据聚集到接收缓冲器中的方式来控制符号量。

接收缓冲器的下溢是指在动态图像加密装置以一定的传送率发送数 据流的情况下,各图片的符号量多,到动态图像解密装置应该解密、显 示的时刻,解密图片所需的数据的传送未完成,从而在解密接收缓冲器 内不存在必要数据的情况。该情况下,由于动态图像解密装置无法进行 解密处理,所以发生帧跳过(frame skip)。

为了能够不引起接收缓冲器的下溢地进行解密处理,动态图像解密 装置使数据流从接收时刻开始延迟规定的时间来显示图片。

如上所述,在理想解密装置中,规定为处理时间为0,瞬时完成解密 处理。因此,如果将第i个图片向动态图像加密装置输入的输入时刻设 为t(i),将理想解密装置中的第i个图片的解密时刻设为dt(i),则该图 片能够显示的时刻同样为dt(i)。由于在所有图片中图片的显示期间 {t(i+1)-t(i)}和{dt(i+1)-dt(i)}相等,所以解密时刻dt(i)变成从输入时 刻t(i)延迟了固定时间dly量的时刻{dt(i)=t(i)+dly}。因此,动态图像 加密装置必须在时刻dt(i)之前使动态图像解密装置的接收缓冲器传送 完成解密所需的数据。

参照图1来说明现有的接收缓冲器的样子。图1中横轴表示时刻, 纵轴表示接收缓冲器的缓冲器占有量。而且,实线的曲线图100表示各 时刻下的缓冲器占有量。

在接收缓冲器中,缓冲器占有量以规定的传送率恢复,在各图片的 解密时刻为了对该图片进行解密而使用的量的数据被从缓冲器抽出。第 i个图片的数据从时刻at(i)被开始输入到接收缓冲器,第i个图片的最 后的数据在时刻ft(i)被输入。理想解密装置在时刻dt(i)完成第i个图片 的解密,能够在该时刻dt(i)显示第i个图片。

理想解密装置为瞬时解密,另一方面,实际的动态图像解密装置需 要规定的解密处理时间,一般1个图片的解密处理时间短于图片的显示 期间,但需要与图片的显示期间接近的时间。第i个图片的数据从时刻 at(i)到ft(i)被输入到接收缓冲器,但无法保证各块的解密所需的数据在 从at(i)到ft(i)内的哪个时刻到达。为此,实际的动态图像解密装置从时 刻ft(i)开始第i个图片的解密处理。因此,如果将1个图片的解密处理 所需的最长处理时间设为ct,则实际的动态图像解密装置仅能保证在时 刻ft(i)+ct完成解密处理。

动态图像加密装置所保证的是在时刻dt(i)之前该图片的解密所需 的数据到达解密接收缓冲器、即ft(i)为dt(i)以前。因此,在ft(i)最迟的 情况下,ft(i)与dt(i)相等。此时,解密处理完成得到保证的时刻为 dt(i)+ct。为了按照要显示的图片的间隔一定的方式来显示所有图片,动 态图像解密装置与理想解密装置相比,必须至少使各图片的显示时刻延 迟ct。

发明内容

鉴于此,本说明书的目的在于,提供一种降低解密处理的延迟的动 态图像加密装置以及动态图像加密方法。

根据1个实施方式,提供一种将动态图像数据所含的各图片分割成 多个块来进行加密的动态图像加密装置。该动态图像加密装置具有:组 决定部,其决定多个组中各块所属的组;组解密时刻信息计算部,其按 每个组算出解密时刻;组信息附加部,其将表示各块所属的组的组信息 附加到输出数据中;符号量控制部,其在对组所含的所有块进行解密所 需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该 组所含的各块的符号量,以便在由解密时刻信息计算部算出的该组的解 密时刻之前到达动态图像解密装置的数据流接收缓冲器;以及加密处理 部,其基于符号量的控制信息来对各块进行加密。

另外,根据另一个实施方式,提供一种将动态图像数据所含的各图 片分割成多个块来进行加密的动态图像加密方法。该动态图像加密方法 包含:决定多个组中各块所属的组,按每个组算出解密时刻,将表示各 块所属的组的组信息附加到输出数据中,在组所含的所有块的解密所需 的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组 所含的各块的符号量,以便在该组的解密时刻之前到达动态图像解密装 置的数据流接收缓冲器,基于符号量的控制信息来对各块进行加密。

并且,根据又一个实施方式,提供一种将动态图像数据所含的各图 片分割成多个块来进行加密的动态图像加密用计算机程序。该动态图像 加密用计算机程序包含使计算机实现下述动作的指令:决定多个组中各 块所属的组,按每个组算出解密时刻,将表示各块所属的组的组信息附 加到输出数据中,在组所含的所有块的解密所需的数据被以规定的传送 率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量, 以便在该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲 器,基于符号量的控制信息来对各块进行加密。

本发明的目的以及优点通过权利要求中特别指出的技术特征以及 组合来实现并且达成。

应理解上述一般的记述以及下述的详细记述均是例示性、说明性的 记述,并不如权利要求那样用于限定本发明。

本说明书中公开的动态图像加密装置以及动态图像加密方法能够 降低解密处理的延迟。

附图说明

图1是表示现有技术涉及的接收缓冲器的缓冲器占有量的迁移的 图。

图2是1个实施方式涉及的动态图像加密装置的概要构成图。

图3对蓄积由1个实施方式涉及的动态图像加密装置传送来的加密 动态图像数据流的接收缓冲器的缓冲器占有量的迁移进行表示的图。

图4是表示使最初的组的解密时刻延迟了的情况的接收缓冲器的缓 冲器占有量的迁移的图。

图5是表示1个实施方式涉及的动态图像加密处理的动作流程图的 图。

图6是第1实施方式涉及的块的最终位的说明图。

图7是第2实施方式涉及的块的最终位的说明图。

图8(A)是表示第3实施方式涉及的1个块的压缩数据的构造的图。 图8(B)是说明压缩数据和通过可变长度加密变被换后的位列之间的 关系的图。

图9(A)是导出被第3实施方式涉及的可变长度加密部可变长度加 密后的块的最终位位置的流程图(1)。

图9(B)是导出被第3实施方式涉及的可变长度加密部可变长度加 密后的块的最终位位置的流程图(2)。

图9(C)是导出被第3实施方式涉及的可变长度加密部可变长度加 密后的块的最终位位置的流程图(3)。

图10是第4实施方式涉及的可变长度加密部具有的熵加密部的概要 构成图。

图11是第4实施方式涉及的块的最终位的说明图。

图12是第4实施方式涉及的可变长度加密部的二进制码加密部以及 复用部的举动的说明图。

图13(A)是导出被第4实施方式涉及的可变长度加密部可变长度 加密后的块的最终位位置的流程图(1)。

图13(B)是导出被第4实施方式涉及的可变长度加密部可变长度加 密后的块的最终位位置的流程图(2)。

图13(C)是导出被第4实施方式涉及的可变长度加密部可变长度 加密后的块的最终位位置的流程图(3)。

具体实施方式

以下,参照附图来说明1个实施方式涉及的动态图像加密装置。

图2是1个实施方式涉及的动态图像加密装置的概要构成图。动态 图像加密装置10具有加密处理部11、符号量控制部12、组决定部13、 组解密时刻信息计算部14、组信息附加部15以及位(bit)计数器25。 动态图像加密装置10所具有的这些各部分别作为单独的电路被安装于 动态图像加密装置10。或者,动态图像加密装置10所具有的这些各部 也可以作为实现各部的功能的电路被集成后的1个集成电路而安装于动 态图像加密装置10。或者,动态图像加密装置10所具有的这些各部也 可以是由在动态图像加密装置10所具有的处理器上执行的计算机程序 来实现的功能模块。

动态图像数据所含的加密对象图片被未图示的控制部以块为单位 分割,按各个块被输入给加密处理部11。各块例如具有16×16像素。

各块被输入给正交变换部21。而且,正交变换部21对各块分别进行 例如离散余弦变换(Discrete Cosine Transform,DCT)等正交变换处理, 来算出频率系数的组。算出的频率系数的组被输入给量化部22。此外, 在针对各块通过对已经加密后的图片进行动态补偿等而生成预测图像 的情况下,也可以将通过各块和预测图像间的差分运算而求出的预测误 差图像输入给正交变换部21。

其中,图片可以是帧或者域(field)中的任1个。帧是动态图像数 据中的1个静止图像,另一方面,域是通过从帧中仅取出奇数行数据或 者偶数行数据而得到的静止图像。

另外,加密后的动态图像可以是彩色动态图像,或者是单色动态图 像。

量化部22例如通过将各频率系数除以根据由符号量控制部12的量 化值计算部24算出的量化值而决定的量化刻度,来对各频率系数进行 量化。通过该量化,可削减各频率系数的信息。量化值越大,则量化的 精度越差,各频率系数的信息越被大幅削减。

由量化部22量化后的各频率系数被输入给可变长度加密部23。另外, 为了创建针对之后被加密的图片或者块的预测图像,量化后的各频率系 数也可以被逆量化,并被进一步逆正交变换而储存到未图示的图像存储 器中。

可变长度加密部23对块的压缩数据(包含量化后的各频率系数以 及加密模式等块头部(head)信息)进行可变长度加密。而且,可变长 度加密部23使由该可变长符号表示的位系列包含在输出数据流中。

另外,由可变长度加密部23产生的位系列的位量按每个块由位计数 器25相加,并被作为产生符号量通知给符号量控制部12的缓冲器占有 量计算部26。

针对可变长度加密部23的实施方式的详细内容将后述。

组决定部13基于从未图示的控制部接收到的块计数信息,按照规 定方法来决定加密处理中的块所属的组。块计数信息是表示图片所含的 各块的编号的信息,例如,针对图片左上端的块的编号被设定成1,按 照光栅扫描的顺序来对各块分配编号。而且,对图片右下端的块分配最 大的编号。此外,块计数信息也可以含有按照其他顺序对各块分配的编 号。

为了使各个组的解密处理时间均等化,优选组决定部13按照各组 所含的块的数量尽量相等的方式来决定多个组。例如,如果以块行 (block line)为单位将各块分割成组,则组决定部13能够在任意的图 片尺寸中使各组所含的块的数量相等。例如,图片尺寸是相当高精度电 视播放(High Definition Television,HDTV)的1920像素×1088像素, 如果块尺寸是16像素×16像素,则块行数是68。因此,该情况下,加 密对象图片所含的各块被分类成68个组的某1个。

此外,组所含的块的数量也可以被设为从1到画面整体块数之间的 值。

组决定部13将加密对象块所属的组的识别信息通知给符号量控制部 12的缓冲器占有量计算部26。另外,组决定部13将组的总数N通知给 组解密时刻信息计算部14以及组信息附加部15。此外,组决定部13 也可以将各组的位于最前头的块的索引通知给组信息附加部15。

以下,以将加密对象图片所含的水平方向的块数设为M,将垂直方 向的块数设为N,使所有块以1个块行单位等分割成N个组的情况为例 进行说明。

设加密对象图片按照加密顺序是第i个图片,组解密时刻信息计算 部14基于从第i个图片的输入时刻t(i)延迟了规定的延迟时间dly量后 的该图片的解密时刻dt(i){=t(i)+dly},来算出表示第n个组被解密的 时刻的解密时刻dgt(i,n)。或者,组解密时刻信息计算部14也可以取 代dgt(i,n),而算出与dgt(i,n)等价的{dgt(i,n)-dgt(i,n-1)}作为 解密时刻。另外,组解密时刻信息计算部14也能以成为适当的单位、 例如成为1/90000秒单位的倍数的方式来将解密时刻四舍五入。

例如为了使各组的解密处理所需要的时间变得均匀,组解密时刻信 息计算部14按照将每1图片的解密处理所需的时间以组数N等分割的 方式,来决定各组的解密时刻。该情况下,第n个(n=1,2,...,N)组 的解密时刻按照下式来算出。

[数1]

dgt(i,n)=dt(i-l)+{dt(i)-dt(i-l)}·n/N   (I)

另外,解密处理所需要的时间也可以按每个组不均匀。尤其是组解 密时刻信息计算部14可以如下式那样,仅使与首先被加密/解密的组对 应的解密时刻dgt(i,1)比对每1图片的解密处理所需要的时间进行了等 分割时的解密时刻迟。

[数2]

dgt(i,l)≥dt(i-l)+{dt(i)-dt(i-l)}/N   (2)

其中,dt(i)、dt(i-1)分别是第i个图片以及第(i-1)个图片的解密时刻。

并且,组解密时刻信息计算部14也可以按照下式来决定第2个以后 被加密/解密的组的解密时刻dgt(i,n)(n≥2)。

[数3]

dgt(i,n)=dgt(i,l)+{dt(i)-dgt(i,l)}·(n-l)/(N-l)(n≥2)   (3)

通过如此决定解密时刻,组解密时刻信息计算部14能够使由缓冲器 占有量计算部26算出的缓冲器占有量在最初的组的加密处理开始前变 大。结果,提高了符号量控制的自由度。

组解密时刻信息计算部14将包含各组的解密时刻的解密时刻信息向 缓冲器占有量计算部26以及组信息附加部15输出。

缓冲器占有量计算部26计算理想解密装置的数据流接收缓冲器的 缓冲器占有量的推定值。将进行传送的位速率设为R,以d来表示缓冲 器占有量。在加密处理中的块的可变长度加密处理完成,其产生符号量 是b的情况下,b被从位计数器25通知给缓冲器占有量计算部26。而 且,缓冲器占有量计算部26从d中减去b。

缓冲器占有量计算部26在进行了各组的最后的块的加密处理后,按 照下式来恢复缓冲器占有量d。

[数4]

d=d+(dgt(i,n+l)-dgt(i,n))·R   (4)

每当针对1个块的可变长度加密处理结束,缓冲器占有量计算部26 便将求出的缓冲器占有量d通知给量化值计算部24。

量化值计算部24基于缓冲器占有量,算出针对各块的量化值。此 时,量化值计算部24按照组所含的所有块的产生符号量的合计为刚刚 开始该组的最初的块的加密处理之前的缓冲器占有量d以下的方式,即 按照在加密处理中d不为负值的方式来控制量化值。

量化值计算部24按照例如MPEG-2中的标准化团体参照软件Test Model5(参照非专利文献1)的量化值算出方法来算出量化值。接着, 量化值计算部24将缓冲器占有量d与规定的阈值DTH1相比较。当量 化值为其可以取得的值的范围中的最大值时,若将各块中产生的最大符 号量设为b0,将加密处理中的块所属的组中尚未进行加密处理的块的 数设为M0,则阈值DTH1由下式表示。

[数5]

DTHl=b0·M0+offset   (5)

(5)式中的offset是余量(margin)项。将d和阈值DTH1比较后 的结果如果是d小于DTH1,则量化值计算部24将量化值设为最大值。

另外,作为b0,也可以利用频率系数全部为0时的块的符号量。此 时,如果d小于DTH1,则量化值计算部24按照加密对象块的所有频 率系数被量化成0的方式来决定量化值。通过该控制,如果组内的加密 处理未完成的剩余块的符号量的平均值未超过b0,则虚拟的解密接收 缓冲器不会发生下溢。

由此,如果符号量控制部12将来自动态图像加密装置10的输出数 据流实际上按照规定的率R传送给动态图像解密装置,则能够按照动态 图像解密装置的接收缓冲器不发生下溢的方式,来控制动态图像数据的 符号量。

量化值计算部24将求出的量化值通知给量化部22。

为了和动态图像解密装置共享各块所属的组以及每个组的解密时 刻,动态图像加密装置10至少将表示属于各组的块的组信息以及包含 各组的解密时刻的解密时刻信息附加到输出数据流中。而且,动态图像 加密装置10将组信息以及解密时刻信息通知给动态图像解密装置。

鉴于此,组信息附加部15例如将组信息以各图片或者规定的图片间 隔附加到输出数据流的头部信息中。

头部信息例如可以采用MPEG-2中规定的序列头(Sequence  Header)、或者H.264中规定序列参数集(Sequence Parameter Set)或 者Supplemental Enhancement Information。此外,每个组的解密时刻 也可以被附加到MPEG-2中规定的图片头部(Picture Header)、或者 H.264中规定的划分头部(Slice Header)等必定附随于各图片的头部信 息。

在按照各组所含的块的数相等的方式来决定组的情况下,动态图像 加密装置10向动态图像解密装置通知所有的块被等分割成N个组的情 况。因此,从组决定部13对组信息附加部15通知组数N作为组信息。 组信息附加部15对该组信息进行加密。在MPEG-2以及H.264中,以 被称为“宏块”的16x16像素的块单位来进行加密,该块数通常不超过 能够以20bit表现的范围。由于组的数N的最大值最多与块数的最大值 相等,所以N的加密也只要以固定bit长度来加密即可。

另外,在不限于各组所含的块的数相等的情况下,与组数N一起从 组决定部13对组信息附加部15通知各组的最前头块的索引信息作为组 信息。组信息附加部15首先对组数N进行加密,依次对各组的最前头 块的索引信息进行加密。针对最前头块的索引信息的加密方法例如可利 用固定bit(位)长度的加密方式。另外,组信息附加部15为了对组数 N以及各组的最前头块的索引信息进行加密,也可以利用霍夫曼符号之 类的可变长度加密方式等其他加密方式。

另外,每个组的解密时刻被从组解密时刻信息计算部14通知给组 信息附加部15。此时,从第1组到最后的组即第N个组,解密时刻被 以dgt(i,n)-dgt(i,n-1)和差量值的形式从组解密时刻信息计算部14通 知给组信息附加部15。其中,关于第1组的解密时刻,dgt(i,0)被设定 成前一图片的最后组的解密时刻dgt(i-1,N){=dt(i-1)}。组信息附加部 15对各组的解密时刻进行加密,将该加密后的解密时刻附加给各图片的 数据,并通知给动态图像解密装置。组信息附加部15只要在将各差量 值以适当的精度、例如1/90000秒的精度量化后,以32bit左右的固定 bit长度来加密即可。另外,在此说明了以固定bit长度进行加密的例子, 但组信息附加部15也可以利用任意的可变长度加密方式来对表示各组 的解密时刻的差量值进行加密。

动态图像解密装置基于被通知的组数N和各组的解密时刻信息,来 算出显示延迟量。在按照各组所含的块数相等的方式来设定各组的情况 下,将1个图片的解密处理所需的最长处理时间设为ct,显示延迟量为 ct/N。

参照图3以及图4来明通过上述实施方式涉及态图像加密装置10, 来实现动态图像解密装置中动态图像的解密的低延迟化。

图3是表示对由动态图像加密装置10传送来的加密动态图像数据流 进行蓄积的接收缓冲器的缓冲器占有量的迁移的图。另外,图4是表示 使第1组的解密时刻延迟后的情况下的接收缓冲器的缓冲器占有量的迁 移的图。其中,在3以及图4中,横轴表示时间,纵轴表示缓冲器占有 量。另外,组数N=4。而且,图3中的曲线图300表示缓冲器占有量的 时间迁移。另外,由箭头301表示的期间表示各组的解密所需要的最大 时间ct/N。同样,图4的曲线图400表示缓冲器占有量的时间迁移。

按照对第n组所含的块进行解密所需的数据在由(1)式表示的时 刻dgt(i,n)之前到达接收缓冲器的方式,动态图像加密装置10控制各 块的符号量。1个图片的解密处理所需的最长处理时间ct和第(i-1)个图 片以及第i个图片的最后组的解密时刻dt(i-1){=dgt(i-1,N)}、dt(i) {=dgt(i,N)}之间满足下式。

[数6]

ct≥{dt(i)-dt(i-l)}   (6)

在此,在各组所含的块数相等的情况下,由于如图3所示,下式成 立,所以在第i个图片的最后组的解密时刻dgt(i,N)之前,针对第i个 图片的第1~(N-1)个组的块的解密处理完成。

[数7]

dgt(i,n+I)≥dgt(i,n)+ct/N   (7)

若假设对第N个组所含的块进行解密所需的数据在时刻dgt(i,N)到 达了动态图像解密装置的接收缓冲器,则自此开始第N个组的解密处 理,作为解密处理时间,需要ct/N。因此,能够在下式表示的时刻完成 所有块的解密并进行显示。从而,针对理想解密装置的可显示时刻的延 迟从ct缩短到ct/N。

[数8]

dgt(i,N)十Ct/N=dt(i)+ct/N   (8)

在以组单位算出解密时刻的情况下,第i个图片的第1组的解密时 刻dgt(i,1)与第i个图片的解密时刻dt(i)相比,早了{dt(i)-dt(i-1)} (N-1)/N。因此,如由图1以及图3的虚线302表示的1个图片单位的缓 冲器占有量所示那样,与现有技术相比,接收缓冲器的占有量降低,该 组能够使用的符号量减少,并且组间的符号量的分配自由度减低。如图 1那样,由于从对接收缓冲器输入各图片的数据开始,在以1个图片的 显示期间程度各图片被解密那样的低延迟中,缓冲器占有量变小,所以 缓冲器占有量减少的影响相对变大。

为了避免这样的问题,以恢复缓冲器占有量为目的,优选如(2) 式所示那样延迟第1组的解密时刻。通过延迟第1组的解密时刻,如图 4所示,能够对缓冲器传送的位量变多,因此可提高图片的产生符号量 的自由度。此时,最迟的解密完成时刻变成由下式算出的值。

[数9]

min(dgt(i,l)+ct,dt(i)+Ct/N)   (9)

其中,函数min(x,y)是返回变量x、y中较小一方的值的函数。

比较(9)式和(8)式可知,即便使第1组的解密时刻延迟,对于 ct大的动态图像解密装置,虽然相对于不使第1组的解密时刻延迟的情 况延迟增加,但在ct十分短的动态图像解密装置中,延迟并不增加。

图5是由1个实施方式涉及的动态图像加密装置10执行的动态图 像加密处理的动作流程图。动态图像加密装置10按每个图片来执行以 下的动态图像加密处理。

组决定部13决定各块所属的组(步骤S101)。而且,组决定部13将 表示块所属的组的识别信息通知给符号量控制部12的缓冲器占有量计 算部26。另外,组决定部13将组的总数N通知给组解密时刻信息计算 部14以及组信息附加部15。此外,组决定部13也可以将位于各组最前 头的块的索引通知给组信息附加部15。

接着,组解密时刻信息计算部14按每个组算出解密时刻(步骤S102)。 而且,组解密时刻信息计算部14将表示各组的解密时刻的信息通知给 缓冲器占有量计算部26以及组信息附加部15。

另外,组信息附加部15对表示各块所属的组的组信息以及解密时 刻信息进行加密,将该加密后的组信息以及解密时刻信息附加到输出数 据流中(步骤S103)。

另一方面,缓冲器占有量计算部26推定组所含的所有块的解密所需 的数据被以规定的传送率传送给动态图像解密装置的情况下的、各组的 解密时刻的接收缓冲器的缓冲器占有量(步骤S104)。此时,缓冲器占 有量计算部26参照从位计数器25接收到的至此经被加密了的组内的块 的符号量。而且,缓冲器占有量计算部26将推定出的缓冲器占有量通 知给符号量控制部12的量化值计算部24。量化值计算部24按照在各组 的解密时刻之前各组的所有数据到达动态图像解密装置的数据流接收 缓冲器的方式,来控制属于各组的块的符号量(步骤S105)。而且,量 化值计算部24算出与该符号量对应的量化值作为符号量的控制信息, 将该量化值通知给加密处理部11的量化部22。

加密处理部11的正交变换部21按每个块来进行正交变换处理,算 出各块的频率系数的组(步骤S106)。而且,正交变换部21将各块的 频率系数的组输出给量化部22。

量化部22基于作为符号量的控制信息的量化值来对各块的频率系数 的组进行量化(步骤S107)。而且,量化部22将量化后的各频率系数 输出给加密处理部11的可变长度加密部23。可变长度加密部23对量化 后的各频率系数进行可变长度加密(步骤S108)。而且,可变长度加密 部23输出得到的可变长符号。该可变长符号和从组信息附加部15输出 的组信息、解密时刻信息等被保存在输出数据流中。另外,可变长度加 密部23将每个块的符号量输出给位计数器25。

在步骤S108之后,动态图像加密装置10结束动态图像加密处理。

以下说明四个可变长度加密部23的实施方式以及各实施方式中的 组的最终位的定义。组的最终位被定义为组内的最终块的最终位。

第1实施方式涉及的可变长度加密部23以在MPEG-4AVC/H.264 中规定的Context-based Adaptive Variable Length Coding(CAVLC)为 基准,对块的压缩数据进行可变长度加密。

图6是由第1实施方式涉及的可变长度加密部23生成的输出数据 流中的各块的最终位的说明图。在图6中,最上方表示的1个块的压缩 数据1100可包含宏块跳过(以下标记为“MbSkipRun”)1110和宏块 层(以下标记为“MacroblockLayer”)1111。

MbSkipRun1110表示前一个块和当前块之间的跳过的块的数目。因 此,如果MbSkipRun1110是0,则前一个块和当前块之间的所有块不 被跳过。另外,MacroblockLayer1111是块加密种类、活动向量信息以 及量化DCT系数等块压缩数据。块的跳过是指该被跳过的块的 MacroblockLayer1111不包含在输出数据流中。

在图片是帧间加密图片的情况下,由于块的跳过不被允许,所以 MbSkipRun1110总是为0。因此,输出数据流中不包含MbSkipRun1110。

首先,说明MbSkipRun1110为0时的块(包含帧间图片内的所有 块)成为组内的最终块的情况。该情况下,输出数据流内的位列1200 中包含与最终块x的压缩数据相关的位列1202、与比最终块x(x是1 以上的整数)靠前的块(~(x-1))对应的位列整体1201。

位列1202是对最终块x的MbSkipRun(=0)以及MacroblockLayer 进行了可变长度加密后的位列。位列1202中的Code0是对MbSkipRun 进行了可变长度加密后的位列,Code M(M=[1,N[x])是对 MacroblockLayer的各要素进行了可变长度加密后的位列。N[x]是最终 块x的MacroblockLayer的要素数。

在该例子中,最终块x的最终位成为由箭头1210表示的位列Code  N[x]的最终位。

接着,说明MbSkipRun为(L-1)(其中(L-1)>0),并且在输出数据流 中下一个图片头部以及划分头部(slice header)出现之前,后续块的 MacroblockLayer出现时的最终位。该情况下,输出数据流内的位列 1300中包含与被跳过的块的前一个块(x-L)相关的位列1301和与被跳过 的块的后1个块x相关的位列1302。而且,位列1301是对块(x-L)的 MbSkipRun以及MacroblockLayer进行了可变长度加密后的位列。同 样,位列1302是对块x的MbSkipRun以及MacroblockLayer进行了 可变长度加密后的位列。与位列1302所含的MbSkipRun相当的Code0 是对值(L-1)进行了可变长度加密后的位列。

在该例子中,块(x-L)与块x之间存在MacroblockLayer不被包含在 输出数据流中的、(L-1)个块(x-L+1)~块(x-1)。因此,在块(x-L+1)~块 (x-1)中的某1个为最终块的情况下,这些块的最终位是由箭头1310表 示的、与MbSkipRun=(L-1)相当的码Code0的最终位。另外,在块x 为最终块的情况下,块x的最终位是以箭头1311表示的、位列1302所 含的Code N[x]的最终位。

下面,说明MbSkipRun为(L-1)(其中(L-1)>0),并且在输出数据流 中,属于同一图片的下一个划分头部在后续块的MacroblockLayer之前 出现的情况的最终位。该情况下,输出数据流内的位列1400中包含与 被跳过的块的前一个块y相关的位列1401和对与被跳过的块(y+1)之后 的块对应的MbSkipRun进行了可变长度加密后的位列1402。而且,位 列1401是对块y的MbSkipRun以及MacroblockLayer进行了可变长 度加密后的位列。另外,位列1402所含的Code0是对值(L-1)进行了可 变长度加密后的位列。

并且,位列1400中包含表示划分的终端的位列(以下标记为 “RbspTrailingBits”)1403和表示下一个划分的最前头的位列即划分头 部(以下标记为“SliceHeader”)1404。RbspTrailingBits1403是表示该 RbspTrailingBits出现之前的划分的位列的终端的、具有预先设定的规 定值的位列。RbspTrailingBits1403被设定成通过动态图像解密装置至 少参照RbspTrailingBits1403的最前头的位,可知是划分的终端。另外, 划分头部1404中包含意味着划分最前头的块地址的参数 FirstMbInSlice。在该例中,参数FirstMbInSlice为z。

该情况下,在块y与下一个划分的最前头块z之间存在 MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+1)~块 (y+L-1(=z-1))。因此,在块(y+1)~块(y+L-1(=z-1))中的某1个为最终 块的情况下,这些块的最终位成为由箭头1410表示的位列 RbspTrailingBits1403的最前头位。此外,该情况的最终位也可以被设 定成比位列RbspTrailingBits1403内的最前头位靠后的位。

接着,说明MbSkipRun为(L-1)(其中(L-1)>0),并且在输出数据流 中,属于其他图片的划分头部或者图片头部在后续的块的 MacroblockLayer之前出现的情况下的最终位。该情况下,输出数据流 内的位列1500中包含与被跳过的块的前一个块y相关的位列1501和对 与被跳过的块(y+1)之后的块对应的MbSkipRun进行了可变长度加密后 的位列1502。而且,位列1501是对块y的MbSkipRun及 MacroblockLayer进行了可变长度加密后的位列。另外,位列1502所 含的Code0是对值(L-1)进行了可变长度加密后的位列。

并且,位列1500中包含表示划分的终端的RbspTrailingBits1503和 表示下一个图片的最前头的图片头部1504以及表示下一个划分的最前 头的位列即SliceHeader1505。该情况下,由于下一个划分的最前头的 块是图片的最初的块,所以SliceHeader1505所含的参数FirstMbInSlice 的值是0。

该情况下,在块y之后到图片的最终块(w-1)为止,存在 MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+1)~块 (y+L-1(=w-1))。其中,w是图片内的块总数。因此,在块(y+1)~块 (y+L-1(=w-1))中的某1个为最终块的情况下,这些块的最终位成为由箭 头1510表示的位列RbspTrailingBits1503的最前头位。此外,该情况 下的最终位也可以被设定成比位列RbspTrailingBits1503内的最前头位 靠后的位。

接着,说明第2实施方式涉及的可变长度加密部23。第2实施方式 涉及的可变长度加密部23也以在MPEG-4AVC/H.264中规定的 CAVLC为基准来对块的压缩数据进行可变长度加密。但是,与第1实 施方式不同,该实施方式在块的压缩数据的构造中取代利用表现被跳过 的块数的MbSkipRun,而利用表示各个块被跳过的宏块跳过标志。并 且,各块的压缩数据中被附加表示该块是否被分割的分裂标志(split  flag)。

图7是由第2实施方式涉及的可变长度加密部23生成的输出数据 流中的各块的最终位的说明图。在图7中,1个块的压缩数据2100从最 前头按照顺序可以含有分裂标志(以下标记为“MbSplitFlag”)2110、 跳过标志(以下标记为“MbSkipFlag”)2111以及MacroblockLayer2112。

MbSplitFlag2110表示当前块(例如16像素×16像素的宏块)是否 被分割成4个子块(例如8像素×8像素的块)。例如,在当前块被分割 的情况下,MbSplitFlag2110为'1',另一方面,如果当前块未被分割, 或者当前块被跳过,则MbSplitFlag2110为'0'。

MbSkipFlag2111表示当前块是否被跳过。例如,在当前块被跳过的 情况下,MbSkipFlag2111为'1',另一方面,如果当前块未被跳过,则 MbSkipFlag2111为'0'。另外,MacroblockLayer2112是块加密种类、 活动向量信息以及量化DCT系数等块压缩数据。块的跳过是指该被跳 过的块的MacroblockLayer2112不包含在输出数据流中。

此外,在当前的块被分割的情况下,由于MbSkipFlag2111可被视 为'0',所以在输出数据流内也可以省略MbSkipFlag2111。而且,该情 况下,在输出数据流中,紧接着MbSplitFlag2110保存4个子块各自的 压缩数据。

在图片是帧间加密图片的情况下,由于不允许块的跳过,所以 MbSkipFlag2111总是为'0'。因此,输出数据流中不包含 MbSkipFlag2111。

首先,说明MbSkipFlag2111为'0'的情况的块(包含帧间图片内的 所有块)为组内的最终块的情况。该情况下,输出数据流内的位列2200 中包含与最终块x的压缩数据相关的位列2202和与比最终块x(x是1 以上的整数)靠前的块(~(x-1))对应的位列整体2201。另外,位列2202 的下一个Code0表示与块(x+1)的压缩数据相关的位列。

位列2202是对最终块x的MbSplitFlag(=0)、MbSkipFlag(=0)以及 MacroblockLayer进行了可变长度加密后的位列。位列2202中的Sp是 对MbSplitFlag进行了可变长度加密后的位列,Sk是对MbSkipFlag进 行了可变长度加密后的位列。另外,Code M(M=[1,N[x])是对 MacroblockLayer的各要素进行了可变长度加密后的位列。N[x]是最终 块x的MacroblockLayer的要素数。

在该例子中,最终块x的最终位成为由箭头2210表示的位列Code  N[x]的最终位。

接着,说明在具有值为1的MbSkipFlag的块、即被跳过的块连续 (L-1)(其中(L-1)>0)个后,出现具有值为'0'的MbSkipFlag的块、即未被 跳过的块的情况下的最终位。输出数据流内的位列2300中包含与未被 跳过的块(x-L)的压缩数据相关的位列2301。并且,在位列2300中,紧 接着位列2301包含被跳过的块(x-L+1)~块(x-1)的MbSplitFlag(=0)、 MbSkipFlag(=1)以及与之后的块x的压缩数据相关的位列2302。另外, 位列2302的下一个Code0表示与块(x+1)的压缩数据相关的位列。

在本例中,块(x-L)与块x之间存在MacroblockLayer不被包含在输 出数据流中的、(L-1)个块(x-L+1)~块(x-1)。因此,在块(x-L+p)(p= {1,...,L-1})中的某1个为最终块的情况下,这些块的最终位成为 由箭头2310表示的、(L-1)个MbSkipFlag(=1)码内从左开始第p个码的 最终位。另外,在块x为最终块的情况下,块x的最终位成为由箭头2311 表示的位列2302所含的Code N[x]的最终位。

接着,说明在具有值为'1'的MbSkipFlag的块连续(L-1)(其中(L-1)>0) 个后,出现属于同一图片的下一个划分头部的情况的最终位。该情况下, 输出数据流内的位列2400中包含与被跳过的块的前一个块y的压缩数 据相关的位列2401。并且,在位列2400中,紧接着位列2401包含对与 被跳过的块(y+1)以后的块对应的MbSplitFlag(=0)、MbSkipFlag(=1) 进行了可变长度加密后的位列2402。而且,位列2401是对块y的 MbSplitFlag(=0)、MbSkipFlag(=0)以及MacroblockLayer进行了可变 长度加密后的位列。

并且,位列2400中包含表示划分的终端的RbspTrailingBits2403和 表示下一个划分的最前头的SliceHeader2404。RbspTrailingBits2403是 表示该RbspTrailingBits出现之前的划分的位列的终端、具有预先设定 的规定值的位列。RbspTrailingBits2403被设定成通过动态图像解密装 置至少参照RbspTrailingBits2403的最前头的位,能知晓是划分的终端。 另外,划分头部2404中包含意味着划分最前头的块地址的参数 FirstMbInSlice。在该例子中,参数FirstMbInSlice为z。

该情况下,块y与下一个划分的最前头块z之间存在 MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+1)~块 (y+L-1(=z-1))。因此,在块(y+p)(p={1,...,L-2})的某1个为最终 块的情况下,这些块的最终位成为由箭头2410表示的(L-2)个 MbSkipFlag(=1)码内从左开始第p个码的最终位。另外,在块(z-1)为最 终块的情况下,最终位成为由箭头2411表示的位列 RbspTrailingBits2403的最前头位。此外,该情况的最终位也可以被设 定成比位列RbspTrailingBits2403内的最前头位靠后的位。

接着,说明在具有值为1的MbSkipFlag的块连续(L-1)(其中(L-1)>0) 个后,出现属于其他图片的划分头部或者图片头部的情况的最终位。该 情况下,输出数据流内的位列2500中包含与被跳过的块的前一个块y 的压缩数据相关的位列2501。并且,在位列2500中,紧接着位列2501 包含对与被跳过的块(y+1)以后的块对应的MbSplitFlag(=0)、 MbSkipFlag(=1)进行了可变长度加密后的位列2502。而且,位列2501 是对块y的MbSplitFlag(=0)、MbSkipFlag(=0)以及MacroblockLayer 进行了可变长度加密后的位列。

并且,位列2500中包含表示划分的终端的RbspTrailingBits2503、 表示下一个图片的最前头的图片头部2504以及表示下一个划分的最前 头的位列即SliceHeader2505。该情况下,由于下一个划分的最前头的 块是图片的最初的块,所以SliceHeader2505所含的参数FirstMbInSlice 的值为0。

该情况下,在块y以后到图片的最终块(w-1)为止,存在 MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+1)~块 (y+L-1(=w-1))。其中,w是图片内的块总数。因此,在块(y+p)(p={1,..., L-2})的某1个为最终块的情况下,这些块的最终位成为由箭头2510 表示的(L-2)个MbSkipFlag(=1)码内从左开始第p个码的最终位。另外, 在块(w-1)为最终块的情况下,最终位成为由箭头2511表示的位列 RbspTrailingBits2503的最前头位。此外,该情况的最终位也可以被设 定成比位列RbspTrailingBits2503内的最前头位靠后的位。

根据该第2实施方式的变形例,也可以省略MbSplitFlag。在省略 MbSplitFlag的情况下,最终块的最终位也与图7相关地如上述那样决 定。

接着,说明第3实施方式涉及的可变长度加密部23。第3实施方式 涉及的可变长度加密部23以在MPEG-4AVC/H.264中规定的 Content-based Adaptive Binary Arithmetic Coding(CABAC)为基准对 块的压缩数据进行可变长度加密。CABAC是算术加密处理的一例。

参照图8(A)以及图8(B),来说明输出数据的位数据流中的各块 的最终位。图8(A)是表示1个块的压缩数据的构造的图。如图8(A) 所示,1个块的压缩数据3100从最前头开始按顺序可以包含 MbSkipFlag3110、MacroblockLayer3111、划分结束标志(以下标记为 “EndOfSliceFlag”)3112。

MbSkipFlag3110表示当前的块是否被跳过。例如,在当前块被跳过 的情况下,MbSkipFlag3110为'1',另一方面,如果当前块未被跳过, 则MbSkipFlag3110为'0'。另外,MacroblockLayer3111是块加密种类、 活动向量信息、以及量化DCT系数等块压缩数据。块的跳过是指该被 跳过块的MacroblockLayer3111不被包含在输出数据流中。

由于在图片是帧间加密图片的情况下,不允许块的跳过,所以 MbSkipFlag3110总是为'0'。因此,输出数据流中不包含 MbSkipFlag3110。

EndOfSliceFlag3112表示当前块是否是划分的最终块。例如,在当 前块是最终块的情况下,EndOfSliceFlag3112为'1',另一方面,如果当 前块不是最终块,则EndOfSliceFlag3112为'0'。

图8(B)是说明压缩数据和被可变长度加密变换后的位列之间的关 系的图。CABAC与CAVLC不同,按压缩数据的每个位来应用算术加 密。因此,变换后的位列和变换前的压缩数据之间的关系并不一一对应。 变换后的位列内的1个位有时与压缩数据的多个位对应。

如图8(B)所示,作为输出数据流的位列的一例的位列3210包含 12个位。该情况下,点的集合3211表示与位列3210所含的各位对应的、 通过对位列3210进行算术解密而得到的压缩数据所含的二进制码 (bin)。二进制码是对压缩数据进行二进制表现的码,是与各代码字 (codeword)对应的压缩数据中的位或者位列。在该例子中,位列3210 与二进制码0~二进制码7对应。而且,二进制码0~二进制码2包含 在块0中,二进制码3~二进制码5包含在块1中,二进制码6包含在 块2中,二进制码7包含在块3中。点的集合3211所含的各点分别表 示在该点的上方表示出的变换后的位列3210所含的位被用于对在该点 的左侧表示出的二进制码进行解密。例如,二进制码0被利用第0个位 和第1个位解密。另外,二进制码1被利用第1个位解密。另外,二进 制码5被利用从第3个位到第11个位解密。

被CABAC加密后的块的最终位成为该块的压缩数据所含的二进制 码x的解密所采用的位列的最后位。其中,二进制码x是对块的压缩数 据按顺序二进制化时的最后的位。在图8(B)所示的例子中,块0的 最终位是由箭头3250表示的位列3210的第3个位。另外,块1~块3 的最终位分别是由箭头3251表示的位列3210的第11个位。这样,有 时多个块具有公共的最终位。

在通过CABAC对块进行加密的情况下,块的压缩数据的二进制化 数据的最终位总是为EndOfSliceFlag。而且,当在图片中存在w个块时, 输出数据流中必定有w个MbSkipFlag和w个EndOfSliceFlag。因此, 图片内的第x个块的最终位成为第x个EndOfSliceFlag的解密所使用的 位列内的最后的位。

图9(A)~图9(C)是第3实施方式涉及的对输出数据的位数据 流中的组的最终位进行确定的处理的流程图。动态图像加密装置10的 可变长度加密部23按照该流程图,导出输出数据的位数据流中的属于 第i个图片的第j个组G(i,j)的最终块的最终位的位置BitEnd(i,j)。 动态图像加密装置10在BitEnd(i,j)的位置的位被输入到动态图像加密 装置10的发送缓冲器时,判断为对组G(i,j)进行解密所需的所有位均 被输入到动态图像加密装置10的发送缓冲器。

该流程图从第i个图片的头部(图片头部以及片头部)刚刚被加密 之后开始。而且,首先可变长度加密部23对变量j、m、c进行初始化 (步骤S201)。变量j、m、c分别表示图片内组的索引、图片内的块的 索引以及进位数(carry count)。其中,针对进位数c将后述。

接着,可变长度加密部23通过进行索引m的块的压缩处理、压缩 数据的二进制化以及上下文模型化(context modeling),来取得算术加 密处理(与在MPEG-4AVC/H.264中规定的EncodingDecision()对应) 的对象的二进制码的排列B[](步骤S202)。其中,上述压缩处理是将 表示块是否是划分的最终块的EndOfSliceFlag除去的处理。在此,块m 的算术加密处理对象的二进制码的总数被表现为getNumBins(m)。可变 长度加密部23将处理对象的二进制码的索引b0设定成0,另外,将块 m的最终二进制码的索引b1设定成getNumBins(m)。

可变长度加密部23取得对第b0个二进制码进行算术加密之前的位 数据流的最终位位置p(步骤S203)。然后,可变长度加密部23对第 b0个二进制码进行算术加密(步骤S204)。由此,例如在从0位到7位 之间,新生成的位被附加到位数据流的最后。然后,可变长度加密部23 取得第b0个二进制码的算术加密处理后的位数据流的最终位位置q(步 骤S205)。

在步骤S205后,可变长度加密部23判定进位数c是否为1以上(步 骤S206)。进位数c是在对某个组的最后的块的EndOfSliceFlag进行了 算术加密处理时,在新的位未被添加到位数据流中的情况下增加1的数。 即,在进位数c具有1以上的值的情况下,进位数c意味着组x(x=j-1、..、 j-c)的解密处理所需的所有位未被作为位数据流输出。

如果进位数c为1以上(步骤S206-是),则可变长度加密部23将 对第b0个二进制码进行算术加密前的位数据流的最终位位置p与对第 b0个二进制码进行了算术加密后的位数据流的最终位位置q相比较(步 骤S207)。

在位位置p与位位置q不同的情况下(步骤S207-是),通过第b0 个二进制码的算术加密处理来生成新的位。该情况下,第b0个二进制 码以及在其以前被算术加密处理的未作为位数据流输出的与组x(x =j-1、..、j-c)的最后块的EndOfSliceFlag相当的位被作为位数据流输出。 即,组x的解密所需的所有位在q的位置被输出。可变长度加密部23 将对在该时刻输出的各组进行解密所需的位列的最终位位置BitEnd() 设定成位位置q(步骤S208)。其中,针对步骤S208的处理的详细内容 将后述。

在该时刻,针对索引比j小的所有组,输出解密处理所需的所有位作 为位数据流。因此,可变长度加密部23将进位数c重置成0(步骤S209)。

在步骤S209后,可变长度加密部23判断是否对算术加密处理对象 的二进制码排列B[]内的所有二进制码进行了处理、即b0是否与b1相 等(步骤S210)。在b0小于b1的情况下(步骤S210-否),可变长度 加密部23在使b0加1后,反复进行步骤S203以后的处理。然后,可 变长度加密部23进行二进制码排列B[]内的剩余的二进制码的处理。另 一方面,在b0与b1相等的情况下(步骤S210-是),可变长度加密部 23在对b0加1后,执行步骤S211以后的处理。此外,无论b0小于b1, 还是与b1相等,b0都在与b1的比较后增加1,但在b0与b1相等的情 况下,随后在步骤S202中b0被重置成0。

另外,如果在步骤S206中进位数c为0(步骤S206-否),则可变 长度加密部23不进行步骤S207~S209的处理,而执行步骤S210的处 理。并且,在步骤S207中位位置p与位位置q相等的情况下(步骤S207 -否),不通过对第b0个二进制码进行算术加密来生成新的位。该情况 下,可变长度加密部23也不进行步骤S208~S209的处理而执行步骤 S210的处理。

如图9(B)所示,可变长度加密部23取得在对EndOfSliceFlag进 行算术加密前的位数据流的最终位位置p(步骤S211)。然后,可变长 度加密部23对EndOfSliceFlag进行算术加密(步骤S212),取得对 EndOfSliceFlag进行算术加密后的位数据流的最终位位置q(步骤 S213)。

可变长度加密部23判定进位数c是否为1以上,且对 EndOfSliceFlag进行算术加密前的位数据流的最终位位置p和对 EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q是否不同 (步骤S214)。在进位数c为1以上且最终位位置p和最终位位置q不 同的情况下(步骤S214-是),输出组x(x=j-1、..、j-c)的最后的块的 EndOfSliceFlag作为位数据流。即,输出对组x进行解密所需的所有位 作为位数据流。鉴于此,可变长度加密部23将对在该时刻输出的各组 进行解密所需的位列的最终位位置BitEnd()设定成位位置q(步骤 S215),然后将进位数c重置为0(步骤S216)。

在步骤S216后,或者在步骤S214中进位数c为0或者最终位位置 p与最终位位置q相等的情况下(步骤S214-否),可变长度加密部23 判定当前块m是否为组j的最终块(步骤S217)。其中,getLastBlock(j) 表示组j的最后的块的索引。在当前块m不是组j的最终块的情况(步 骤S217-否),组j内存在未处理的块。鉴于此,可变长度加密部23在 对m加1后,反复进行步骤S202以后的处理。

另一方面,在块m是组j的最终块的情况下(步骤S217-是),可 变长度加密部23对m加1。然后,可变长度加密部23将对 EndOfSliceFlag进行算术加密前的位数据流的最终位位置p和对 EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q进行比较 (步骤S218)。

在最终位位置p不同于最终位位置q的情况下(步骤S218-是),通 过对EndOfSliceFlag进行算术加密来生成新的位。因此,输出对组j 的最终块的全部进行解密所需的所有位作为位数据流。鉴于此,可变长 度加密部23将对在该时刻输出的组j进行解密所需的位列的最终位位 置BitEnd()设定成位位置q(步骤S219),并且,使组的索引j加1(步 骤S220)。

另一方面,在最终位位置p与最终位位置q相等的情况下(步骤S218 -否),即使EndOfSliceFlag被算术加密,也可以不生成新的位。因此, 可变长度加密部23将进位数c加1,并且使组的索引j加1(步骤S221)。

在步骤S220或者步骤S221的处理后,可变长度加密部23判定当 前块m是否是图片内的最终块(步骤S222)。其中,getNumBlockInPic() 表示图片内的总块数。

如果当前块m不是图片内的最终块(步骤S222-否),则由于图片 内存在未处理的块,所以可变长度加密部23反复进行步骤S202以后的 处理。另一方面,如果当前块m是图片内的最终块(步骤S222-是), 则由于可变长度加密部23完成了1个图片的所有块的加密,所以结束 最终位确定处理。

参照图9(C),来说明在步骤S208、S215以及S219中进行的最终 位位置的设定处理的流程。

可变长度加密部23将对第i个图片的第(j-c)组进行解密所需的位列 的最终位位置BitEnd(i,(j-c))设定成q(步骤S250)。之后,可变长度 加密部23判定进位数c是否为0以下(步骤S251)。在进位数c大于0 的情况下(步骤S251-否),还剩余需要设定最终位位置BitEnd()的组。 鉴于此,可变长度加密部23使进位数c减去1,之后再次执行步骤S250 的处理。另一方面,在进位数c是0以下的情况下(步骤S251-是), 不存在需要设定最终位位置BitEnd()的组。因此,可变长度加密部23 结束最终位位置的设定处理。

下面,说明第4实施方式涉及的可变长度加密部23。第4实施方式 涉及的可变长度加密部23按照非专利文献2公开的方法来对块的压缩 数据进行可变长度加密。

非专利文献2中公开的方法基本上与CABAC同样地利用算术加密 技术。但是,在该方法中,取代逐位对二进制化后的压缩数据进行算术 加密,而采用基于二进制化后的压缩数据的各位的推定概率的多个算术 加密部。各算术加密部分别被分配单独的推定概率,二进制化后的压缩 数据的各位在与其推定概率对应的算术加密部中被算术加密。

在该方法中,由于各算术加密部对固定的推定概率的位列进行处 理,所以实际上也可以取代算术加密运算,而通过将输入的n位映射到 m位的输出来对压缩数据进行可变长度加密。其中,m、n分别是1以 上的整数。在本说明书中为了方便,将输出的m位称为“字(word)”。 可变长度加密后的压缩数据被以字单位输出到输出数据的位数据流。

在非专利文献2所公开的方法中,与CABAC同样,变换后的位列 与变换前的压缩数据的关系并不一一对应。另外,与之前被输入到算术 加密部的二进制码相当的字有时也会比在比该二进制码靠后输入到算 术加密部的二进制码相当的字靠后出现在输出数据的位数据流中。

图10是第4实施方式涉及的可变长度加密部23所具有的熵加密部 700的概要构成图。熵加密部700对被输入的块的压缩数据进行熵加密, 输出作为结果而得到的数据流。为此,熵加密部700具有二进制化部 701、上下文模型化部702、概率量化部703、K个二进制码加密部704 -1~704-k(其中,K是2以上的整数)以及复用部705。

二进制化部701对被输入的块的压缩数据所含的各标号(symbol) 进行二进制化,以位列表示各标号。因此,二进制化部701例如以 MPEG-4AVC/H.264为基准对各标号进行二进制化。例如,在I-Slice 内的宏块种类mbType是表示4x4帧间预测、或者是表示8x8帧间预测 的标号“INxN”的情况下,该标号以'0'表示。另外,在块种类mbType 是表示PCM加密的标号“IPCM”的情况下,该标号被以'11'表示。从 二进制化部701输出的位列被输入给上下文模型化部702。

上下文模型化部702对被从二进制化部701输入的位列的各位,分 别分配内容。内容例如根据周围块的块的压缩数据来决定。而且,在想 要熵加密的块的压缩数据与周围块的压缩数据类似的情况下和不类似 的情况下,通过采用不同的内容,来提高算术加密的效率。上下文模型 化部702按位列的每个位,输出该值(0或者1)、决定出的内容的Least  Probable bit(LPB)以及LPB概率,输出的位、LPB以及LPB概率被输 入给概率量化部703。LPB表示在过去与该内容成对从上下文模型化部 702输出的位列的各位中的、出现频度小的一方的值。另外,LPB概率 表示LPB的产生概率。例如,在过去的位列所含的10个位是[0,0,0, 1,1,1,1,1,1,1]的情况下,LPB是0,LPB概率为0.3。

概率量化部703对从上下文模型化部702输出的各位的LPB概率分 别进行量化。例如,概率量化部703将从0到1连续的概率值量化成K 个离散值。例如,在LPB概率为0.3并且K为4的情况下,概率量化 部703将LPB概率的值0.3的量化值设为0.25(=1/4)。从概率量化部703 输出的位被输入到K个二进制码加密部704-1~704-k中与该位的 LPB概率的量化值对应的二进制码加密部。

二进制码加密部704-1~704-k分别对与彼此不同的LPB概率的 量化值对应的位进行算术加密。例如,如上所述,如果LPB概率的量 化值是1/4,则与该LPB概率对应的位被输入到二进制码加密部704- 1~704-k中与离散概率1/4对应的二进制码加密部。而且,各二进制 码加密部对复用部705的缓冲器内保存的记录(entry)的位列中与二进 制码加密部对应的量化LPB概率的记录的位列追加该位。而且,每当 位列能够变换时,各二进制码加密部便将该位列变换成字。

复用部705例如具有缓冲器,将从各二进制码加密部写入的位列以 及与位列对应的字保存在该缓冲器中。复用部705在能够输出字之前, 将该字保存在缓冲器内。而且,复用部705在所保存的字能够输出的时 刻将该字作为输出数据的位数据流输出。

此外,由于可以假设为被输入到各二进制码加密部的位(二进制码) 具有相同的LPB,所以各二进制码加密部以及复用部也可以取代进行算 术加密自身,而将包含多个输入位的位列作为1个二进制码列进行可变 长度加密。该情况下,例如表示位列(二进制码列)和字之间的关系的 变换表被存储在各二进制码加密部中。而且,各二进制码加密部参照该 变换表将二进制码列变换成字。例如,在LPB是1并且LPB概率是0.15 (即0的产生概率是0.85)的情况下,输入二进制码列“0000”被变换 成"1",输入二进制码列"11"被变换成"00001"。

参照图11,来说明输出数据的位数据流中的各块的最终位。图11 是说明压缩数据和被可变长度加密变换后的位列之间的关系的图。其 中,块的压缩数据的构造与图8(A)所示的构造相同。

如图11所示,作为输出数据流的位列的一例的位列4100包含15 个位。该情况下,点的集合4101表示与位列4100所含的各位对应的、 通过对位列4100进行算术解密能够得到的压缩数据所含的二进制码。 在该例子中,位列4100与二进制码0~二进制码10对应。而且,二进 制码0~二进制码2包含在块0中,二进制码3~二进制码5包含在块1 中,二进制码6、7包含在块2中,二进制码8~二进制码10包含在块 3中。点的集合4101所含的各点分别表示在该点上方所示的变换后的位 列4100所含的位被用于对在该点左侧表示的二进制码进行解密。例如 二进制码0、二进制码5以及二进制码7利用第0个~第3个位来解密。 反而言之,二进制码0、二进制码5以及二进制码7这3位被变换成位 列4100中的第0个~第3个这4位。

从点集合4101可知,对属于块1的最后的二进制码5进行解密所 需的位列(位0~位3)比对属于块1的最初的二进制码3进行解密所需 的位列(位7~位8)靠前出现在输出数据的位数据流4100内。这样, 第4实施方式与第3实施方式不同,相对于块的各二进制码的次序,输 出数据的位数据流上的对应的字的次序有时逆转。

块的最终位如下所述。

与块被CABAC加密的情况同样,块的压缩数据的二进制化数据的 最前头位以及最终位总是MbSkipFlag以及EndOfSliceFlag。而且,当 在图片中块为w个时,输出数据的位数据流中必定存在w个 MbSkipFlag和w个EndOfSliceFlag。

但是,在该实施方式中,被可变长度加密后的块x的最终位在对块 x的压缩数据的二进制化数据的各位进行解密所需的字中,成为输出数 据的位数据流中的位置最靠后的字A的最后位。在图11所示的例子中, 块0、块1以及块2的最终位分别是以箭头4200表示的、位列4100的 第8个位。另外,块3的最终位是以箭头4201表示的位列4100的第14 个位。

图12是第4实施方式涉及的可变长度加密部的二进制码加密部以 及复用部的举动的说明图。二进制码加密部704-1~704-k参照从输 入二进制码列向输出字变换的变换映射800,将由具有同一量化LPB概 率的位构成的输入二进制码列变换成字。为了简化说明,复用部705对 从各二进制码加密部704-1~704-k向复用部705输入的二进制码列 应用同1个变换映射。例如二进制码列"0000"被变换成字"1"。

在该例子中,利用概率量化部703对输入位列801的各位附加表 示量化LPB概率的概率索引802。在该例子中,LPB概率被量化成4 个值中的某个值,各量化LPB概率分别被分配概率索引0~3。而且, 输入位列801的各位从最前头的位850开始按顺序被输入到与该位的概 率索引对应的二进制码加密部。例如,概率索引为'0'的位被输入给二进 制码加密部704-1,概率索引为'1'位被输入给二进制码加密部704-2。

表860~863分别表示位850~853被输入到某个二进制码加密部 的时刻的被保存在复用部705所具有的缓冲器中的数据。

在表860~863中,1个行与复用部705的缓冲器内保存的1个记录 对应。而且,在各表内,按照生成的顺序从上到下依次标记记录。复用 部705将缓冲器内保存的记录的字从上向下按次序输出,作为输出数据 的位数据流。"#"是缓冲器内的记录的索引。"Idx"是对应的二进制码加 密部的索引,在该例子中,为了容易理解,二进制码加密部的索引具有 与对被输入到该二进制码加密部的输入位附加的概率索引相同的值。 “输入”是被输入的位列(二进制码列)。“字”是与被输入的位列对应 的字。假如在不存在与输入位列对应的字的情况下(例如输入位列是 "00"的情况),各表中字被标记为"N/A"。

在向二进制码加密部704-1~704-k中的某个输入位850之前的 状态下,设复用部705的缓冲器为空。

在复用部705的缓冲器为空的状态下,如果位被输入到二进制码加 密部,则被输入了位的二进制码加密部在复用部705的缓冲器创建新的 记录。在该例子中,如表860所示,通过概率索引为'0'且值为'0'的位 850被输入到二进制码加密部704-1,在复用部705的缓冲器内创建记 录索引为'0'的最初的记录。由于位850的概率索引为'0',所以该记录的 "Idx"是'0'。另外,由于位850的值是'0',所以最初的记录的输入位列 是"0"。由于字尚未完成,所以该记录的字是"N/A"。

接着,对二进制码加密部704-2输入概率索引为'1'且值为'0'的 位851。该情况下,由于与该位的概率索引相当的记录在复用部705的 缓冲器内中尚不存在,所以如表861所示,生成新的记录。该第2个记 录的"Idx"是'1'。另外,由于字尚未完成,所以第2个记录的字是"N/A"。

以后,每当新的位被输入到二进制码加密部,二进制码加密部704 -1~704-k以及复用部705便按照以下的1)~4)的规则,将复用部 705的缓冲器内的记录的二进制码列变换成字,另外,输出能够适当输 出的记录的字。

1)二进制码加密部704-1~704-k按照复用部705的缓冲器内 的记录索引的升序来搜索与输入位的概率索引对应的记录。

2)如果存在与输入位的概率索引对应的字是"N/A"的记录,则二 进制码加密部704-1~704-k对该记录的输入位列进行更新。具体而 言,二进制码加密部704-1~704-k在该记录的输入位列的后面附加 新的输入位。复用部705判定更新后的位列与变换表800的二进制码列 的哪个一致。假如存在一致的二进制码列,则二进制码加密部704-1~ 704-k将与该二进制码列对应的字作为该记录的字。

3)如果不存在与输入位的概率索引对应的、字不为"N/A"的记录, 则二进制码加密部704-1~704-k创建与该概率索引对应的新的记 录。

4)字不为"N/A"的记录能够作为位数据流输出,但记录的输出顺 序遵从复用部705的缓冲器内的记录索引的降序。这是为了动态图像解 密装置正常地对被复用的字进行解密(从字向二进制码列的逆变换)所 需的制限。在比着眼的记录的记录索引小且字为"N/A"的记录残留在复 用部705的缓冲器的情况下,即使着眼的记录的字不是"N/A",复用部 705也无法输出该着眼的记录。

复用部705在输出记录的情况下,将该记录的字追加到输出数据的 位数据流。输出了的记录被从复用缓冲器去除。

表862表示向二进制码加密部704-1输入了概率索引为'0'并且值 为'0'的位852的时刻的、复用部705的缓冲器的状态。该情况下,记录 索引为'1'到'4'的记录处于能够输出的状态。但是,由于记录索引为'0' 的记录的字是"N/A",所以复用部705还无法输出所有记录的字作为位 数据流。即,产生可变长度加密的延迟。

表863表示向二进制码加密部704-1输入了概率索引为'0'并且值 为'1'的位853的时刻的复用部705的缓冲器的状态。在该时刻,开始记 录索引为'0'的记录的字不是"N/A"。因此,复用部705能够输出记录索 引为'0'到'4'的所有记录。

在刚输出了记录索引'0'到'4'的所有记录之后,新追加的记录的索 引为'5'。即,新建记录的记录索引是对包含所输出的记录的所有记录中 的最大索引加上1后的值。复用部705将对作为位数据流而输出的最后 记录的记录索引加上1后的值存储为下一个位数据流的输出记录最前头 索引FirstIndex。其中,FirstIndex在图片加密开始时被重置成0。

图13(A)~图13(C)是第4实施方式涉及的对输出数据的位 数据流中的组的最终位进行确定的处理的流程图。动态图像加密装置10 的可变长度加密部23按照该流程图,导出输出数据的位数据流中的属 于第i个图片的第j个组G(i,j)的最终块的最终位的位置BitEnd(i,j)。 动态图像加密装置10在BitEnd(i,j)的位置的位被输入到动态图像加密 装置10的发送缓冲器时,判断为对组G(i,j)进行解密所需的所有位被 输入到动态图像加密装置10的发送缓冲器。

图13(A)~图13(C)所示的流程图的各步骤的处理除了以下 叙述的步骤之外,与图9(A)~图9(C)所示的流程图所对应的步骤 的处理相同。例如,步骤S301的处理与步骤S201的处理相同。因此, 关于以下叙述的步骤以外的步骤的详细内容,请参照与图9(A)~图9 (C)所示的流程图关联的说明。

可变长度加密部23的二进制码加密部704-1~704-k对第b0 个二进制码进行加密,第b0个二进制码(另外,在包含第b0个二进制 码的位列能够变换的情况下,是对应的字)被保存在复用部705的缓冲 器中(步骤S304)。然后,可变长度加密部23取得复用部705作为位 数据流而输出的位列的最终位位置q(步骤S305)。另外,可变长度加 密部23从复用部705取得下一个位数据流的最前头记录索引 FirstIndex,将该索引设为t。

然后,若在步骤S306中进位数c为1以上,则可变长度加密部 23将对第b0个二进制码进行算术加密前的位数据流的最终位位置p与 对第b0个二进制码进行了算术加密后的位数据流的最终位位置q相比 较。并且,可变长度加密部23判定下一个位数据流的最前头记录索引t 是否大于索引s(步骤S307)。其中,索引s表示与虽然已经算术加密 但未作为位数据流输出的EndOfSliceFlag对应的记录中的最大记录索 引。

在最终位位置p与最终位位置q不同且索引t大于索引s的情况 下(步骤S307-是),通过第b0个二进制码的算术加密处理来生成新 的位。该情况下,虽然以前被算术加密但未作为位数据流而被输出的组 x(x=j-1、...、j-c)的最后块的EndOfSliceFlag所对应的最后的字被作为 位数据流输出。即,组x的解密所需的所有位在q的位置被输出。鉴于 此,可变长度加密部23将在该时刻输出的各组解密所需的位列的最终 位位置BitEnd()设定成位位置q(步骤S308)。

另一方面,在最终位位置p与最终位位置q相等,或者索引t与索 引s相等的情况下(步骤S307-否),不生成新的位。因此,可变长度 加密部23不进行步骤S308以及S309的处理地进行步骤S310的处理。

如图13(B)所示,可变长度加密部23对EndOfSliceFlag进行 算术加密(步骤S312),然后取得对EndOfSliceFlag进行了算术加密后 的位数据流的最终位位置q(步骤S313)。另外,可变长度加密部23从 复用部705取得下一个位数据流的最前头记录索引FirstIndex,将该索 引作为t。并且,可变长度加密部23从复用部705取得虽然已经被算术 加密但未作为位数据流而输出的EndOfSliceFlag所对应记录中的最大 记录索引,将该索引作为s。

可变长度加密部23判定是否进位数c为1以上且对 EndOfSliceFlag进行算术加密前的位数据流的最终位位置p和对 EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q是否不 同。并且,可变长度加密部23判定索引t是否大于索引s(步骤S314)。 在进位数c是1以上、p与q不同,并且t大于s的情况下(步骤S314 -是),组x(x=j-1、..、j-c)的最后块的EndOfSliceFlag被作为位数据 流输出。即,对组x进行解密所需的所有位被作为位数据流输出。鉴于 此,可变长度加密部23将对在该时刻输出的各组进行解密所需的位列 的最终位位置BitEnd()设定成位位置q(步骤S315)。

另一方面,在进位数c是0,或者p与q相等,或者t与s相等的 情况下(步骤S314-否),对组x进行解密所需的所有位未被输出。鉴 于此,可变长度加密部23不进行步骤S315以及S316的处理,而判定 当前块m是否为组j的最终块(步骤S317)。在当前块m不是组j的最 终块的情况下(步骤S317-否),组j内存在未处理的块。鉴于此,可 变长度加密部23在对m加1后,反复执行步骤S302以后的处理。

另一方面,在块m为组j的最终块的情况下(步骤S317-是), 可变长度加密部23对m加1。而且,可变长度加密部23将对 EndOfSliceFlag进行算术加密前的位数据流的最终位位置p和对 EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q相比较, 并且将索引t和索引s相比较(步骤S318)。

在p与q不同,并且t大于s的情况下(步骤S318-是),通过对 EndOfSliceFlag进行算术加密来生成新的位。因此,对组j的最终块的 全部进行解密所需的所有位被作为位数据流输出。鉴于此,可变长度加 密部23将对在该时刻输出的组j进行解密所需的位列的最终位位置 BitEnd()设定成位位置q(步骤S319)。

另一方面,在p与q相等,或者t与s相等的情况下(步骤S318- 否),即使EndOfSliceFlag被算术加密也不生成新的位。因此,可变长 度加密部23对进位数c加1,并且对组的索引j加1(步骤S321)。

如以上说明那样,该动态图像加密装置以组为单位对将图片分割 后的块进行分类,根据按该组推定的解密时刻来对组所含的块的符号量 进行调整,能够降低解密延迟。

也可以将通过在计算机上执行来实现上述实施方式或者其变形例 涉及的动态图像加密装置的各部的功能的计算机程序记录到半导体存 储器或者光记录介质等的记录介质中进行发布。

上述的实施方式或者其变形例涉及的动态图像加密装置可被用于 各种用途。例如,该动态图像加密装置可被组装到摄像机、影像发送装 置、影像接收装置、电视电话系统、计算机或者移动电话机中。

在此列举的所有例以及特定的用语意图在于帮助读者理解本发明 以及促进该技术的发展,不应该解释成与表示本发明的优良性以及低劣 性有关的、本说明书的任何构成例的构成限于这种特定列举出的例子以 及条件。尽管详细说明了本发明的实施方式,但是应理解为在不脱离本 发明的精神以及范围前提下,能够进行各种变更、置换以及修正。

附图标记说明:10…动态图像加密装置;11…加密处理部;12…符 号量控制部;13…组决定部;14…组解密时刻信息计算部;15…组信息 附加部;21…正交变换部;22…量化部;23…可变长度加密部;24…量 化值计算部;25…位计数器;26…缓冲器占有量计算部;700…熵加密 部;701…二进制化部;702…上下文模型化部;703…概率量化部;704 -1~704-k…二进制码加密部;705…复用部。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号