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

文档序号:7885832阅读:260来源:国知局
专利名称:动态图像加密装置、动态图像加密方法及动态图像加密用计算机程序的制作方法
技术领域
本发明涉及例如将各图片分割成多个块并按每个块来进行加密的动态图像加密装置、动态图像加密方法以及动态图像加密用计算机程序。
背景技术
在近年来的动态图像加密中,各图片被按照压缩效率不同的加密模式中的某个模式加密。例如,各图片被按照仅利用图片内预测来加密的画面内预测图片(I图片)、采用图片间预测的单向预测图片(P图片)、双向预测图片(B图片)中的某一种来加密。根据图片类型或者图像复杂度而产生的符号量不同,在各时刻产生的符号量会产生偏差。因此,为了以一定的传送率来传送包含加密后的动态图像的数据流,需要数据流的发送缓冲器和接收缓冲器。该缓冲器会产生缓冲器延迟,这成为动态图像解密装置中的显示延迟的原因之一。如果减小缓冲器的尺寸,则由于图片间的符号量分配的自由度减少,所以虽然动态图像解密装置存在画质劣化的趋势,但能够减少缓冲器延迟。在现有的动态图像加密的国际标准即MPEG-2Video (IS0.IEC13818-2/ITU-TH.262,以下称为“MPEG-2”)或者 MPEG-4AVC/H.264 (ISO *IEC14496-10/ITU-T H.264,以下称为“H.264”)中,规定了分别被称为“Video Buffering Verifier (VBV)和 Coded PictureBuffer(CPB) ”的理想解密装置中的数据流接收缓冲器的动作。为了不使理想解密装置的接收缓冲器产生上溢以及下溢,动态图像加密装置必须控制符号量。理想解密装置被规定为进行解密处理所需的时间为O的瞬时解密。例如,专利文献I中公开了一种与VBV相关的动态图像加密装置的控制方法。专利文献1:日本特开平3 - 148981号公报非专利文献l:MPEG-2Test Model5.Aprill993.1SO-1EC/JTC1/SC29/WG11/N0400(http://www.mpeg.0rg/MPEG/MSSG/tm5/)非专利文献2:JCTVC-A116,“Description of video coding technologyproposal by Fraunhofer HHI,,,Joint Collaborative Team on Video Coding of ITU-TSG16WP3and IS0/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个图片的解密,能够在该时刻dt⑴显示第i个图片。理想解密装置为瞬时解密,另一方面,实际的动态图像解密装置需要规定的解密处理时间,一般I个图片的解密处理时间短于图片的显示期间,但需要与图片的显示期间接近的时间。第i个图片的数据从时刻at(i)到ft(i)被输入到接收缓冲器,但无法保证各块的解密所需的数据在从at (i)到ft⑴内的哪个时刻到达。为此,实际的动态图像解密装置从时刻ft(i)开始第i个图片的解密处理。因此,如果将I个图片的解密处理所需的最长处理时间设为ct,则实际的动态图像解密装置仅能保证在时刻ft(i)+ct完成解密处理。动态图像加密装置所保证的是在时刻dt(i)之前该图片的解密所需的数据到达解密接收缓冲器、即ft (i)为dt⑴以前。因此,在ft⑴最迟的情况下,ft (i)与dt⑴相等。此时,解密处理完成得到保证的时刻为dt(i)+ct。为了按照要显示的图片的间隔一定的方式来显示所有图片,动态图像解密装置与理想解密装置相比,必须至少使各图片的显示时刻延迟Ct。

发明内容
鉴于此,本说明书的目的在于,提供一种降低解密处理的延迟的动态图像加密装置以及动态图像加密方法。根据I个实施方式,提供一种将动态图像数据所含的各图片分割成多个块来进行加密的动态图像加密装置。该动态图像加密装置具有:组决定部,其决定多个组中各块所属的组;组解密时刻信息计算部,其按每个组算出解密时刻;组信息附加部,其将表示各块所属的组的组信息附加到输出数据中;符号量控制部,其在对组所含的所有块进行解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在由解密时刻信息计算部算出的该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲器;以及加密处理部,其基于符号量的控制信息来对各块进行加密。另外,根据另一个实施方式,提供一种将动态图像数据所含的各图片分割成多个块来进行加密的动态图像加密方法。该动态图像加密方法包含:决定多个组中各块所属的组,按每个组算出解密时刻,将表示各块所属的组的组信息附加到输出数据中,在组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲器,基于符号量的控制信息来对各块进行加密。并且,根据又一个实施方式,提供一种将动态图像数据所含的各图片分割成多个块来进行加密的动态图像加密用计算机程序。该动态图像加密用计算机程序包含使计算机实现下述动作的指令:决定多个组中各块所属的组,按每个组算出解密时刻,将表示各块所属的组的组信息附加到输出数据中,在组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲器,基于符号量的控制信息来对各块进行加密。本发明的目的以及优点通过权利要求中特别指出的技术特征以及组合来实现并且达成。应理解上述一般的记述以及下述的详细记述均是例示性、说明性的记述,并不如权利要求那样用于限定本发明。本说明书中公开的动态图像加密装置以及动态图像加密方法能够降低解密处理的延迟。


图1是表示现有技术涉及的接收缓冲器的缓冲器占有量的迁移的图。图2是I个实施方式涉及的动态图像加密装置的概要构成图。图3对蓄积由I个实施方式涉及的动态图像加密装置传送来的加密动态图像数据流的接收缓冲器的缓冲器占有量的迁移进行表示的图。图4是表示使最初的组的解密时刻延迟了的情况的接收缓冲器的缓冲器占有量的迁移的图。图5是表示I个实施方式涉及的动态图像加密处理的动作流程图的图。图6是第I实施方式涉及的块的最终位的说明图。图7是第2实施方式涉及的块的最终位的说明图。图8 (A)是表示第3实施方式涉及的I个块的压缩数据的构造的图。图8 (B)是说明压缩数据和通过可变长度加密变被换后的位列之间的关系的图。图9 (A)是导出被第3实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(I)。图9 (B)是导出被第3实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(2)。图9 (C)是导出被第3实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(3)。图10是第4实施方式涉及的可变长度加密部具有的熵加密部的概要构成图。图11是第4实施方式涉及的块的最终位的说明图。图12是第4实施方式涉及的可变长度加密部的二进制码加密部以及复用部的举动的说明图。图13 (A)是导出被第4实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(I)。图13 (B)是导出被第4实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(2)。图13 (C)是导出被第4实施方式涉及的可变长度加密部可变长度加密后的块的最终位位置的流程图(3)。
具体实施例方式以下,参照附图来说明I个实施方式涉及的动态图像加密装置。图2是I个实施方式涉及的动态图像加密装置的概要构成图。动态图像加密装置10具有加密处理部11、符号量控制部12、组决定部13、组解密时刻信息计算部14、组信息附加部15以及位(bit)计数器25。动态图像加密装置10所具有的这些各部分别作为单独的电路被安装于动态图像加密装置10。或者,动态图像加密装置10所具有的这些各部也可以作为实现各部的功能的电路被集成后的I个集成电路而安装于动态图像加密装置10。或者,动态图像加密装置10所具有的这些各部也可以是由在动态图像加密装置10所具有的处理器上执行的计算机程序来实现的功能模块。动态图像数据所含的加密对象图片被未图示的控制部以块为单位分割,按各个块被输入给加密处理部11。各块例如具有16X16像素。各块被输入给正交变换部21。而且,正交变换部21对各块分别进行例如离散余弦变换(Discrete Cosine Transform, DCT)等正交变换处理,来算出频率系数的组。算出的频率系数的组被输入给量化部22。此外,在针对各块通过对已经加密后的图片进行动态补偿等而生成预测图像的情况下,也可以将通过各块和预测图像间的差分运算而求出的预测误差图像输入给正交变换部21。其中,图片可以是帧或者域(field)中的任I个。帧是动态图像数据中的I个静止图像,另一方面,域是通过从帧中仅取出奇数行数据或者偶数行数据而得到的静止图像。另外,加密后的动态图像可以是彩色动态图像,或者是单色动态图像。量化部22例如通过将各频率系数除以根据由符号量控制部12的量化值计算部24算出的量化值而决定的量化刻度,来对各频率系数进行量化。通过该量化,可削减各频率系数的信息。量化值越大,则量化的精度越差,各频率系数的信息越被大幅削减。由量化部22量化后的各频率系数被输入给可变长度加密部23。另外,为了创建针对之后被加密的图片或者块的预测图像,量化后的各频率系数也可以被逆量化,并被进一步逆正交变换而储存到未图示的图像存储器中。可变长度加密部23对块的压缩数据(包含量化后的各频率系数以及加密模式等块头部(head)信息)进行可变长度加密。而且,可变长度加密部23使由该可变长符号表示的位系列包含在输出数据流中。另外,由可变长度加密部23产生的位系列的位量按每个块由位计数器25相加,并被作为产生符号量通知给符号量控制部12的缓冲器占有量计算部26。针对可变长度加密部23的实施方式的详细内容将后述。组决定部13基于从未图示的控制部接收到的块计数信息,按照规定方法来决定加密处理中的块所属的组。块计数信息是表示图片所含的各块的编号的信息,例如,针对图片左上端的块的编号被设定成1,按照光栅扫描的顺序来对各块分配编号。而且,对图片右下端的块分配最大的编号。此外,块计数信息也可以含有按照其他顺序对各块分配的编号。为了使各个组的解密处理时间均等化,优选组决定部13按照各组所含的块的数量尽量相等的方式来决定多个组。例如,如果以块行(block line)为单位将各块分割成组,则组决定部13能够在任意的图片尺寸中使各组所含的块的数量相等。例如,图片尺寸是相当高精度电视播放(High Definition Television, HDTV)的1920像素X 1088像素,如果块尺寸是16像素X 16像素,则块行数是68。因此,该情况下,加密对象图片所含的各块被分类成68个组的某I个。此外,组所含的块的数量也可以被设为从I到画面整体块数之间的值。组决定部13将加密对象块所属的组的识别信息通知给符号量控制部12的缓冲器占有量计算部26。另外,组决定部13将组的总数N通知给组解密时刻信息计算部14以及组信息附加部15。此外,组决定部13也可以将各组的位于最前头的块的索引通知给组信息附加部15。以下,以将加密对象图片所含的水平方向的块数设为M,将垂直方向的块数设为N,使所有块以I个块行单位等分割成N个组的情况为例进行说明。设加密对象图片按照加密顺序是第i个图片,组解密时刻信息计算部14基于从第i个图片的输入时刻t(i)延迟了规定的延迟时间dly量后的该图片的解密时刻dt(i){=t(i)+dly},来算出表示第η个组被解密的时刻的解密时刻dgt(i,n)。或者,组解密时刻信息计算部14也可以取代dgt(i, η),而算出与dgt(i,n)等价的{dgt (i, n)-dgt (i, n_l) }作为解密时刻。 另外,组解密时刻信息计算部14也能以成为适当的单位、例如成为1/90000秒单位的倍数的方式来将解密时刻四舍五入。例如为了使各组的解密处理所需要的时间变得均匀,组解密时刻信息计算部14按照将每I图片的解密处理所需的时间以组数N等分割的方式,来决定各组的解密时刻。该情况下,第η个(η=1,2,...,Ν)组的解密时刻按照下式来算出。[数I]dgt(i’n) = dt (i_l) + {dt (i)-dt (i_l)}.n/N (I)另外,解密处理所需要的时间也可以按每个组不均匀。尤其是组解密时刻信息计算部14可以如下式那样,仅使与首先被加密/解密的组对应的解密时刻dgt (i,I)比对每I图片的解密处理所需要的时间进行了等分割时的解密时刻迟。[数2]dgt(i’l) ≥ dt (1-1) + {dt (i) -dt (i~l)} /N (2)其中,dt(i)、dt(i_l)分别是第i个图片以及第(1-Ι)个图片的解密时刻。并且,组解密时刻信息计算部14也可以按照下式来决定第2个以后被加密/解密的组的解密时刻dgt (i, η) (n ≥2) ο[数3]dgt (i, n) = dgt (i, I) + {dt (i)-dgt (i, I)}.(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+1) -dgt (i, η)).R (4)每当针对I个块的可变长度加密处理结束,缓冲器占有量计算部26便将求出的缓冲器占有量d通知给量化值计算部24。量化值计算部24基于缓冲器占有量,算出针对各块的量化值。此时,量化值计算部24按照组所含的所有块的产生符号量的合计为刚刚开始该组的最初的块的加密处理之前的缓冲器占有量d以下的方式,即按照在加密处理中d不为负值的方式来控制量化值。量化值计算部24按照例如MPEG-2中的标准化团体参照软件TeStM0del5 (参照非专利文献I)的量化值算出方法来算出量化值。接着,量化值计算部24将缓冲器占有量d与规定的阈值DTHl相比较。当量化值为其可以取得的值的范围中的最大值时,若将各块中产生的最大符号量设为b0,将加密处理中的块所属的组中尚未进行加密处理的块的数设为MO,则阈值DTHl由下式表示。[数5]DTHl=b0.M0+offset (5)(5)式中的offset是余量(margin)项。将d和阈值DTHl比较后的结果如果是d小于DTHl,则量化值计算部24将量化值设为最大值。另外,作为b0,也可以利用频率系数全部为O时的块的符号量。此时,如果d小于DTH1,则量化值计算部24按照加密对象块的所有频率系数被量化成O的方式来决定量化值。通过该控制,如果组内的加密处理未完成的剩余块的符号量的平均值未超过b0,则虚拟的解密接收缓冲器不会发生下溢。由此,如果符号量控制部12将来自动态图像加密装置10的输出数据流实际上按照规定的率R传送给动态图像解密装置,则能够按照动态图像解密装置的接收缓冲器不发生下溢的方式,来控制动态图像数据的符号量。量化值计算部24将求出的量化值通知给量化部22。为了和动态图像解密装置共享各块所属的组以及每个组的解密时刻,动态图像加密装置10至少将表示属于各组的块的组信息以及包含各组的解密时刻的解密时刻信息附加到输出数据流中。而且,动态图像加密装置10将组信息以及解密时刻信息通知给动态图像解密装置。鉴于此,组信息附加部15例如将组信息以各图片或者规定的图片间隔附加到输出数据流的头部信息中。头部信息例如可以采用MPEG-2中规定的序列头(Sequence Header )、或者H.264 中规定序列参数集(Sequence Parameter Set)或者 Supplemental EnhancementInformation。此外,每个组的解密时刻也可以被附加到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。此时,从第I组到最后的组即第N个组,解密时刻被以dgt(i,n)-dgt(i,n-1)和差量值的形式从组解密时刻信息计算部14通知给组信息附加部15。其中,关于第I组的解密时刻,dgt(i,0)被设定成前一图片的最后组的解密时刻dgt (1-1,N) {=dt(i_l)}。组信息附加部15对各组的解密时刻进行加密,将该加密后的解密时刻附加给各图片的数据,并通知给动态图像解密装置。组信息附加部15只要在将各差量值以适当的精度、例如1/90000秒的精度量化后,以32bit左右的固定bit长度来加密即可。另外,在此说明了以固定bit长度进行加密的例子,但组信息附加部15也可 以利用任意的可变长度加密方式来对表示各组的解密时刻的差量值进行加密。动态图像解密装置基于被通知的组数N和各组的解密时刻信息,来算出显示延迟量。在按照各组所含的块数相等的方式来设定各组的情况下,将I个图片的解密处理所需的最长处理时间设为ct,显示延迟量为ct/N。参照图3以及图4来明通过上述实施方式涉及态图像加密装置10,来实现动态图像解密装置中动态图像的解密的低延迟化。图3是表示对由动态图像加密装置10传送来的加密动态图像数据流进行蓄积的接收缓冲器的缓冲器占有量的迁移的图。另外,图4是表示使第I组的解密时刻延迟后的情况下的接收缓冲器的缓冲器占有量的迁移的图。其中,在3以及图4中,横轴表示时间,纵轴表示缓冲器占有量。另外,组数N=4。而且,图3中的曲线图300表示缓冲器占有量的时间迁移。另外,由箭头301表示的期间表示各组的解密所需要的最大时间ct/N。同样,图4的曲线图400表示缓冲器占有量的时间迁移。按照对第η组所含的块进行解密所需的数据在由(I)式表示的时刻dgt(i,η)之前到达接收缓冲器的方式,动态图像加密装置10控制各块的符号量。I个图片的解密处理所需的最长处理时间Ct和第(1-ι)个图片以及第i个图片的最后组的解密时刻dt (1-1){=dgt (1-1, N) }、dt (i) {=dgt (i, N) }之间满足下式。[数6]ct ≥ {dt (i)—dt (i_l)} (6)在此,在各组所含的块数相等的情况下,由于如图3所示,下式成立,所以在第i个图片的最后组的解密时刻dgt(i,N)之前,针对第i个图片的第I (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个图片的第I组的解密时刻dgt(i,I)与第i个图片的解密时刻dt⑴相比,早了 {dt(i)-dt(1-l)} (N-l)/N。因此,如由图1以及图3的虚线302表示的I个图片单位的缓冲器占有量所示那样,与现有技术相比,接收缓冲器的占有量降低,该组能够使用的符号量减少,并且组间的符号量的分配自由度减低。如图1那样,由于从对接收缓冲器输入各图片的数据开始,在以I个图片的显示期间程度各图片被解密那样的低延迟中,缓冲器占有量变小,所以缓冲器占有量减少的影响相对变大。为了避免这样的问题,以恢复缓冲器占有量为目的,优选如(2)式所示那样延迟第I组的解密时刻。通过延迟第I组的解密时刻,如图4所示,能够对缓冲器传送的位量变多,因此可提高图片的产生符号量的自由度。此时,最迟的解密完成时刻变成由下式算出的值。[数9]min(dgt(i, l)+ct, dt(i)+Ct/N) (9)其中,函数min(x, y)是返回变量x、y中较小一方的值的函数。比较(9)式和(8)式可知,即便使第I组的解密时刻延迟,对于ct大的动态图像解密装置,虽然相对于不使第I组的解密时刻延迟的情况延迟增加,但在ct十分短的动态图像解密装置中,延迟并不增加。图5是由I个实施方式涉及的动态图像加密装置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的实施方式以及各实施方式中的组的最终位的定义。组的最终位被定义为组内的最终块的最终位。第I实施方式涉及的可变长度加密部23以在MPEG-4AVC/H.264中规定的Context-based Adaptive Variable Length Coding (CAVLC)为基准,对块的压缩数据进行可变长度加密。图6是由第I实施方式涉及的可变长度加密部23生成的输出数据流中的各块的最终位的说明图。在图6中,最上方表示的I个块的压缩数据1100可包含宏块跳过(以下标记为 “MbSkipRun”)1110 和宏块层(以下标记为 “MacroblockLayer”)1111。MbSkipRunlllO表示前一个块和当前块之间的跳过的块的数目。因此,如果MbSkipRunlllO是0,则前一个块和当前块之间的所有块不被跳过。另外,MacroblockLayerll 11是块加密种类、活动向量信息以及量化DCT系数等块压缩数据。块的跳过是指该被跳过的块的MacroblockLayerllll不包含在输出数据流中。在图片是帧间加密图片的情况下,由于块的跳过不被允许,所以MbSkipRunlllO总是为O。因此,输出数据流中不包含MbSkipRunlllO。首先,说明MbSkipRunlllO为O时的块(包含帧间图片内的所有块)成为组内的最终块的情况。该情况下,输出数据流内的位列1200中包含与最终块X的压缩数据相关的位列1202、与比最终块X (X是I以上的整数)靠前的块( (x-Ι))对应的位列整体1201。位列1202是对最终块X的MbSkipRun (=0)以及MacroblockLayer进行了可变长度加密后的位列。位列1202中的CodeO是对MbSkipRun进行了可变长度加密后的位列,CodeM(M= [I, N[x])是对MacroblockLayer的各要素进行了可变长度加密后的位列。N[x]是最终块X的MacroblockLayer的要素数。
在该例子中,最终块X的最终位成为由箭头1210表不的位列Code N[x]的最终位。接着,说明MbSkipRun为(L_l)(其中(L_l) >0),并且在输出数据流中下一个图片头部以及划分头部(slice header)出现之前,后续块的MacroblockLayer出现时的最终位。该情况下,输出数据流内的位列1300中包含与被跳过的块的前一个块(x-L)相关的位列1301和与被跳过的块的后I个块X相关的位列1302。而且,位列1301是对块(χ-L)的MbSkipRun以及MacroblockLayer进行了可变长度加密后的位列。同样,位列1302是对块X的MbSkipRun以及MacroblockLayer进行了可变长度加密后的位列。与位列1302所含的MbSkipRun相当的CodeO是对值(L-1)进行了可变长度加密后的位列。在该例子中,块(x-L)与块X之间存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(x-L+1) 块(x-Ι)。因此,在块(x-L+1) 块(x-Ι)中的某I个为最终块的情况下,这些块的最终位是由箭头1310表示的、与MbSkipRun=(L-1)相当的码CodeO的最终位。另外,在块X为最终块的情况下,块X的最终位是以箭头1311表示的、位列1302所含的Code N[x]的最终位。下面,说明MbSkipRun为(L_l)(其中(L_l) >0),并且在输出数据流中,属于同一图片的下一个划分头部在后续块的MacroblockLayer之前出现的情况的最终位。该情况下,输出数据流内的位列1400中包含与被跳过的块的前一个块y相关的位列1401和对与被跳过的块(y+Ι)之后的块对应的MbSkipRun进行了可变长度加密后的位列1402。而且,位列1401是对块y的MbSkipRun以及MacroblockLayer进行了可变长度加密后的位列。另外,位列1402所含的CodeO是对值(L-1)进行了可变长度加密后的位列。并且,位列1400中包含表示划分的终端的位列(以下标记为“RbspTrailingBits”)1403和表示下一个划分的最前头的位列即划分头部(以下标记为“SliceHeader”)1404。RbspTrailingBitsl403 是表不该 RbspTrailingBits 出现之前的划分的位列的终端的、具有预先设定的规定值的位列。RbspTraiIingBitsl403被设定成通过动态图像解密装置至少参照RbspTrailingBitsl403的最前头的位,可知是划分的终端。另夕卜,划分头部1404中包含意味着划分最前头的块地址的参数FirstMblnSlice。在该例中,参数 FirstMbInSlice 为 z。该情况下,在块y与下一个划分的最前头块z之间存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+Ι) 块(y+L-l(=z-l))。因此,在块(y+Ι) 块(y+L-l(=z-l))中的某I个为最终块的情况下,这些块的最终位成为由箭头1410表示的位列RbspTrailingBitsl403的最前头位。此外,该情况的最终位也可以被设定成比位列RbspTraiIingBits 1403内的最前头位靠后的位。接着,说明MbSkipRun为(L_l)(其中(L_l) >0),并且在输出数据流中,属于其他图片的划分头部或者图片头部在后续的块的MacroblockLayer之前出现的情况下的最终位。该情况下,输出数据流内的位列1500中包含与被跳过的块的前一个块y相关的位列1501和对与被跳过的块(y+Ι)之后的块对应的MbSkipRun进行了可变长度加密后的位列1502。而且,位列1501是对块y的MbSkipRun及MacroblockLayer进行了可变长度加密后的位列。另外,位列1502所含的CodeO是对值(L-1)进行了可变长度加密后的位列。并且,位列1500中包含表示划分的终端的RbspTrailingBitsl503和表示下一个图片的最前头的图片头部1504以及表示下一个划分的最前头的位列即SliceHeaderl505。该情况下,由于下一个划分的最前头的块是图片的最初的块,所以SliceHeaderl505所含的参数FirstMbInSlice的值是O。该情况下,在块y之后到图片的最终块(w-1)为止,存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+Ι) 块(y+L-l(=w-l))。其中,w是图片内的块总数。因此,在块(y+Ι) 块(y+L-l(=w-l))中的某I个为最终块的情况下,这些块的最终位成为由箭头1510表示的位列RbspTrailingBitsl503的最前头位。此外,该情况下的最终位也可以被设定成比位列RbspTrailingBitsl503内的最前头位靠后的位。接着,说明第2实施方式涉及的可变长度加密部23。第2实施方式涉及的可变长度加密部23也以在MPEG-4AVC/H.264中规定的CAVLC为基准来对块的压缩数据进行可变长度加密。但是,与第I实施方式不同,该实施方式在块的压缩数据的构造中取代利用表现被跳过的块数的MbSkipRun,而利用表示各个块被跳过的宏块跳过标志。并且,各块的压缩数据中被附加表示该块是否被分割的分裂标志(spI it flag)。图7是由第2实施方式涉及的可变长度加密部23生成的输出数据流中的各块的最终位的说明图。在图7中,I个块的压缩数据2100从最前头按照顺序可以含有分裂标志(以下标记为“MbSplitFlag”)2110、跳过标志(以下标记为“MbSkipFlag”)2111以及MacroblockLayer2112 οMbSplitFlag2110表示当前块(例如16像素X 16像素的宏块)是否被分割成4个子块(例如8像素X8像素的块)。例如,在当前块被分割的情况下,MbSplitFlag2110为’ I’,另一方面,如果当前块未被分割,或者当前块被跳过,则MbSplitFlag2110为’O’。MbSkipFlag2111表示当前块是否被跳过。例如,在当前块被跳过的情况下,MbSkipFlag2111为’ I’,另一方面,如果当前块未被跳过,则MbSkipFlag2111为’O’。另外,MaCix)blOCkLayer2112是块加密种类、活动向量信息以及量化DCT系数等块压缩数据。块的跳过是指该被跳过的块的MacroblockLayer2112不包含在输出数据流中。此外,在当前的块被分割的情况下,由于MbSkipFlag2111可被视为’O’,所以在输出数据流内也可以省略MbSkipFlag2111。而且,该情况下,在输出数据流中,紧接着MbSplitFlag2110保存4个子块各自的压缩数据。在图片是帧间加密图片的情况下,由于不允许块的跳过,所以MbSkipFlag2111总是为’O’。因此,输出数据流中不包含MbSkipFlag2111。首先,说明MbSkipFlag2111为’ O’的情况的块(包含帧间图片内的所有块)为组内的最终块的情况。该情况下,输出数据流内的位列2200中包含与最终块X的压缩数据相关的位列2202和与比最终块X (X是I以上的整数)靠前的块( (x-Ι))对应的位列整体2201。另外,位列2202的下一个CodeO表示与块(x+1)的压缩数据相关的位列。位列2202 是对最终块 X 的 MbSplitFlag(=0)、MbSkipFlag (=0)以及MacroblockLayer进行了可变长度加密后的位列。位列2202中的Sp是对MbSplitFlag进行了可变长度加密后的位列,Sk是对MbSkipFlag进行了可变长度加密后的位列。另外,Code M(M=[l,N[x])是对MacroblockLayer的各要素进行了可变长度加密后的位列。N[x]是最终块X的MacroblockLayer的要素数。在该例子中,最终块X的最终位成为由箭头2210表不的位列Code N[x]的最终位。接着,说明在具有值为I的MbSkipFlag的块、即被跳过的块连续(L_l)(其中(L-1) >0)个后,出现具有值为’O’的MbSkipFlag的块、即未被跳过的块的情况下的最终位。输出数据流内的位列2300中包含与未被跳过的块(x-L)的压缩数据相关的位列2301。并且,在位列2300中,紧接着位列2301包含被跳过的块(χ-L+l) 块(x_l)的MbSplitFlag(=0) ,MbSkipFlag(=1)以及与之后的块x的压缩数据相关的位列2302。另外,位列2302的下一个CodeO表示与块(x+1)的压缩数据相关的位列。在本例中,块(x-L)与块X之间存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(χ-L+l) 块(x-Ι)。因此,在块(x-L+p) (P= {1,...,L-1})中的某 I 个为最终块的情况下,这些块的最终位成为由箭头2310表示的、(L-1)个MbSkipFlag (=1)码内从左开始第P个码的最终位。另外,在块X为最终块的情况下,块X的最终位成为由箭头2311表示的位列2302所含的Code N[x]的最终位。接着,说明在具有值为’I’的MbSkipFlag的块连续(L-1)(其中(L_1)>0)个后,出现属于同一图片的下一个划分头部的情况的最终位。该情况下,输出数据流内的位列2400中包含与被跳过的块的前一个块y的压缩数据相关的位列2401。并且,在位列2400中,紧接着位列2401包含对与被跳过的块(y+Ι)以后的块对应的MbSplitFlag(=0)、MbSkipFlag (=1)进行了可变长度加密后的位列2402。而且,位列2401是对块y的MbSplitFlag(=0) >MbSkipFlag(=0)以及 MacroblockLayer 进行了可变长度加密后的位列。并且,位列2400中包含表示划分的终端的RbspTrailingBits2403和表示下一个划分的最前头的 SliceHeader2404。RbspTraiIingBits2403 是表不该 RbspTrailingBits出现之前的划分的位列的终端、具有预先设定的规定值的位列。Rb s P T r a i I i n gB i t s 2 4 O 3被设定成通过动态图像解密装置至少参照RbspTraiIingBits2403的最前头的位,能知晓是划分的终端。另外,划分头部2404中包含意味着划分最前头的块地址的参数FirstMblnSlice。在该例子中,参数 FirstMblnSlice 为 z。该情况下,块y与下一个划分的最前头块z之间存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+Ι) 块(y+L-l(=z-l))。因此,在块(y+p) (p= {I,...,L-2})的某I个为最终块的情况下,这些块的最终位成为由箭头2410表示的(L-2)个MbSkipFlag (=1)码内从左开始第p个码的最终位。另外,在块(z_l)为最终块的情况下,最终位成为由箭头2411表示的位列RbspTrailingBits2403的最前头位。此外,该情况的最终位也可以被设定成比位列RbspTrailingBits2403内的最前头位靠后的位。接着,说明在具有值为I的MbSkipFlag的块连续(L_l)(其中(L_1)>0)个后,出现属于其他图片的划分头部或者图片头部的情况的最终位。该情况下,输出数据流内的位列2500中包含与被跳过的块的前一个块y的压缩数据相关的位列2501。并且,在位列2500中,紧接着位列2501包含对与被跳过的块(y+Ι)以后的块对应的MbSplitFlag(=0)、MbSkipFlag (=1)进行了可变长度加密后的位列2502。而且,位列2501是对块y的MbSplitFlag(=0) >MbSkipFlag(=0)以及 MacroblockLayer 进行了可变长度加密后的位列。并且,位列2500中包含表示划分的终端的RbspTrailingBits2503、表示下一个图片的最前头的图片头部2504以及表示下一个划分的最前头的位列即SliceHeader2505。该情况下,由于下一个划分的最前头的块是图片的最初的块,所以SliceHeader2505所含的参数 FirstMblnSlice 的值为 O。该情况下,在块y以后到图片的最终块(w-Ι)为止,存在MacroblockLayer不被包含在输出数据流中的、(L-1)个块(y+Ι) 块(y+L-l(=w-l))。其中,w是图片内的块总数。因此,在块(y+P) (p= {1,...,L-2})的某I个为最终块的情况下,这些块的最终位成为由箭头2510表示的(L-2)个MbSkipFlag(=1)码内从左开始第p个码的最终位。另外,在块(w-Ι)为最终块的情况下,最终位成为由箭头2511表示的位列RbspTrailingBits2503的最前头位。此外,该情况的最终位也可以被设定成比位列RbspTrailingBits2503内的最前头位靠后的位。根据该第2实施方式的变形例,也可以省略MbSplitFlag。在省略MbSplitFlag的情况下,最终块的最终位也与图7相关地如上述那样决定。接着,说明第3实施方式涉及的可变长度加密部23。第3实施方式涉及的可变长度加密部 23 以在 MPEG-4AVC/H.264 中规定的 Content-based Adaptive Binary ArithmeticCoding(CABAC)为基准对块的压缩数据进行可变长度加密。CABAC是算术加密处理的一例。参照图8 (A)以及图8 (B),来说明输出数据的位数据流中的各块的最终位。图8(A)是表示I个块的压缩数据的构造的图。如图8 (A)所示,I个块的压缩数据3100从最前头开始按顺序可以包含MbSkipFlag3110、MacroblockLayer3111、划分结束标志(以下标记为 “EndOfSliceFlag”) 3112。MbSkipFlag3110表示当前的块是否被跳过。例如,在当前块被跳过的情况下,MbSkipFlag3110为’ I’,另一方面,如果当前块未被跳过,则MbSkipFlag3110为’O’。另外,MacroblockLayer3111是块加密种类、活动向量信息、以及量化DCT系数等块压缩数据。块的跳过是指该被跳过块的MacroblockLayerflll不被包含在输出数据流中。由于在图片是帧间加密图片的情况下,不允许块的跳过,所以MbSkipFlag3110总是为’O’。因此,输出数据流中不包含MbSkipFlag3110。End0fSliceFlag3112表示当前块是否是划分的最终块。例如,在当前块是最终块的情况下,End0fSliceFlag3112为’ I’,另一方面,如果当前块不是最终块,则End0fSliceFlag3112 为,O,。图8(B)是说明压缩数据和被可变长度加密变换后的位列之间的关系的图。CABAC与CAVLC不同,按压缩数据的每个位来应用算术加密。因此,变换后的位列和变换前的压缩数据之间的关系并不—对应。变换后的位列内的I个位有时与压缩数据的多个位对应。如图8 (B)所示,作为输出数据流的位列的一例的位列3210包含12个位。该情况下,点的集合3211表示与位列3210所含的各位对应的、通过对位列3210进行算术解密而得到的压缩数据所含的二进制码(bin)。二进制码是对压缩数据进行二进制表现的码,是与各代码字(codeword)对应的压缩数据中的位或者位列。在该例子中,位列3210与二进制码O 二进制码7对应。而且,二进制码O 二进制码2包含在块O中,二进制码3 二进制码5包含在块I中,二进制码6包含在块2中,二进制码7包含在块3中。点的集合3211所含的各点分别表不在该点的上方表不出的变换后的位列3210所含的位被用于对在该点的左侧表示出的二进制码进行解密。例如,二进制码O被利用第O个位和第I个位解密。另外,二进制码I被利用第I个位解密。另外,二进制码5被利用从第3个位到第11个位解密。被CABAC加密后的块的最终位成为该块的压缩数据所含的二进制码X的解密所采用的位列的最后位。其中,二进制码X是对块的压缩数据按顺序二进制化时的最后的位。在图8 (B)所不的例子中,块O的最终位是由箭头3250表不的位列3210的第3个位。另外,块I 块3的最终位分别是由箭头3251表示的位列3210的第11个位。这样,有时多个块具有公共的最终位。在通过CABAC对块进行加密的情况下,块的压缩数据的二进制化数据的最终位总是为EndOfSliceFlag。而且,当在图片中存在w个块时,输出数据流中必定有w个MbSkipFlag和w个EndOfSliceFlag。因此,图片内的第x个块的最终位成为第x个EndOfSIiceFlag的解密所使用的位列内的最后的位。图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中规定的EncodingDecisionO对应)的对象的二进制码的排列B[](步骤S202)。其中,上述压缩处理是将表示块是否是划分的最终块的EndOfSliceFlag除去的处理。在此,块m的算术加密处理对象的二进制码的总数被表现为getNumBins (m)。可变长度加密部23将处理对象的二进制码的索引b0设定成0,另外,将块m的最终二进制码的索引bl设定成getNumBins(m)。可变长度加密部23取得对第b0个二进制码进行算术加密之前的位数据流的最终位位置P (步骤S203)。然后,可变长度加密部23对第bO个二进制码进行算术加密(步骤
5204)。由此,例如在从O位到7位之间,新生成的位被附加到位数据流的最后。然后,可变长度加密部23取得第b0个二进制码的算术加密处理后的位数据流的最终位位置q (步骤
5205)。在步骤S205后,可变长度加密部23判定进位数c是否为I以上(步骤S206)。进位数c是在对某个组的最后的块的EndOfSliceFlag进行了算术加密处理时,在新的位未被添加到位数据流中的情况下增加I的数。即,在进位数c具有I以上的值的情况下,进位数c意味着组X (x=j_l、..、j-c)的解密处理所需的所有位未被作为位数据流输出。如果进位数c为I以上(步骤S206 —是),则可变长度加密部23将对第b0个二进制码进行算术加密前的位数据流的最终位位置P与对第bo个二进制码进行了算术加密后的位数据流的最终位位置q相比较(步骤S207)。在位位置P与位位置q不同的情况下(步骤S207 —是),通过第b0个二进制码的算术加密处理来生成新的位。该情况下,第b0个二进制码以及在其以前被算术加密处理的未作为位数据流输出的与组x(x=j_l、..、j-c)的最后块的EndOfSliceFlag相当的位被作为位数据流输出。即,组X的解密所需的所有位在q的位置被输出。可变长度加密部23将对在该时刻输出的各组进行解密所需的位列的最终位位置BitEndO设定成位位置q(步骤S208)。其中,针对步骤S208的处理的详细内容将后述。在该时刻,针对索引比j小的所有组,输出解密处理所需的所有位作为位数据流。因此,可变长度加密部23将进位数c重置成O (步骤S209)。在步骤S209后,可变长度加密部23判断是否对算术加密处理对象的二进制码排列B[]内的所有二进制码进行了处理、即bO是否与bl相等(步骤S210)。在bO小于bl的情况下(步骤S210 —否),可变长度加密部23在使bO加I后,反复进行步骤S203以后的处理。然后,可变长度加密部23进行二进制码排列B[]内的剩余的二进制码的处理。另一方面,在bO与bl相等的情况下(步骤S210 —是),可变长度加密部23在对bO加I后,执行步骤S211以后的处理。此外,无论bO小于bl,还是与bl相等,bO都在与bl的比较后增加1,但在bO与bl相等的情况下,随后在步骤S202中bO被重置成O。另外,如果在步骤S206中进位数c为O (步骤S206 —否),则可变长度加密部23不进行步骤S207 S209的处理,而执行步骤S210的处理。并且,在步骤S207中位位置p与位位置q相等的情况下(步骤S207 —否),不通过对第bO个二进制码进行算术加密来生成新的位。该情况下,可变长度加密部23也不进行步骤S208 S209的处理而执行步骤S210的处理。如图9 (B)所示,可变长度加密部23取得在对EndOfSliceFlag进行算术加密前的位数据流的最终位位置P (步骤S211)。然后,可变长度加密部23对EndOfSliceFlag进行算术加密(步骤S212),取得对EndOfSliceFlag进行算术加密后的位数据流的最终位位置q (步骤S213)。可变长度加密部23判定进位数c是否为I以上,且对EndOfSliceFlag进行算术加密前的位数据流的最终位位置P和对EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q是否不同(步骤S214)。在进位数c为I以上且最终位位置P和最终位位置q不同的情况下(步骤S214—是),输出组x(x=j-l、..、j-c)的最后的块的EndOfSliceFlag作为位数据流。即,输出对组X进行解密所需的所有位作为位数据流。鉴于此,可变长度加密部23将对在该时刻输出的各组进行解密所需的位列的最终位位置BitEndO设定成位位置q (步骤S215),然后将进位数c重置为O (步骤S216)。在步骤S216后,或者在步骤S214中进位数c为O或者最终位位置P与最终位位置q相等的情况下(步骤S214 —否),可变长度加密部23判定当前块m是否为组j的最终块(步骤S217)。其中,getLastBlock(j)表示组j的最后的块的索引。在当前块m不是组j的最终块的情况(步骤S217 —否),组j内存在未处理的块。鉴于此,可变长度加密部23在对m加I后,反复进行步骤S202以后的处理。另一方面,在块m是组j的最终块的情况下(步骤S217 —是),可变长度加密部23对m加I。然后,可变长度加密部23将对EndOfSliceFlag进行算术加密前的位数据流的最终位位置P和对EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q进行比较(步骤 S218)。在最终位位置P不同于最终位位置q的情况下(步骤S218 —是),通过对EndOfSliceFlag进行算术加密来生成新的位。因此,输出对组j的最终块的全部进行解密所需的所有位作为位数据流。鉴于此,可变长度加密部23将对在该时刻输出的组j进行解密所需的位列的最终位位置BitEndO设定成位位置q (步骤S219),并且,使组的索引j加I (步骤 S220)。另一方面,在最终位位置P与最终位位置q相等的情况下(步骤S218 —否),即使EndOfSliceFlag被算术加密,也可以不生成新的位。因此,可变长度加密部23将进位数c加1,并且使组的索引j加I (步骤S221)。在步骤S220或者步骤S221的处理后,可变长度加密部23判定当前块m是否是图片内的最终块(步骤S222)。其中,getNumBlocklnPicO表示图片内的总块数。如果当前块m不是图片内的最终块(步骤S222 —否),则由于图片内存在未处理的块,所以可变长度加密部23反复进行步骤S202以后的处理。另一方面,如果当前块m是图片内的最终块(步骤S222 -是),则由于可变长度加密部23完成了 I个图片的所有块的加密,所以结束最终位确定处理。参照图9 (C),来说明在步骤S208、S215以及S219中进行的最终位位置的设定处
理的流程。可变长度加密部23将对第i个图片的第(j-c)组进行解密所需的位列的最终位位置BitEnd(i,(j-c))设定成q (步骤S250)。之后,可变长度加密部23判定进位数c是否为O以下(步骤S251 )。在进位数c大于O的情况下(步骤S251 —否),还剩余需要设定最终位位置BitEndO的组。鉴于此,可变长度加密部23使进位数c减去1,之后再次执行步骤S250的处理。另一方面,在进位数c是O以下的情况下(步骤S251 —是),不存在需要设定最终位位置BitEndO的组。因此,可变长度加密部23结束最终位位置的设定处理。下面,说明第4实施方式涉及的可变长度加密部23。第4实施方式涉及的可变长度加密部23按照非专利文献2公开的方法来对块的压缩数据进行可变长度加密。非专利文献2中公开的方法基本上与CABAC同样地利用算术加密技术。但是,在该方法中,取代逐位对二进制化后的压缩数据进行算术加密,而采用基于二进制化后的压缩数据的各位的推定概率的多个算术加密部。各算术加密部分别被分配单独的推定概率,二进制化后的压缩数据的各位在与其推定概率对应的算术加密部中被算术加密。在该方法中,由于各算术加密部对固定的推定概率的位列进行处理,所以实际上也可以取代算术加密运算,而通过将输入的η位映射到m位的输出来对压缩数据进行可变长度加密。其中,m、η分别是I以上的整数。在本说明书中为了方便,将输出的m位称为“字(word)”。可变长度加密后的压缩数据被以字单位输出到输出数据的位数据流。在非专利文献2所公开的方法中,与CABAC同样,变换后的位列与变换前的压缩数据的关系并不一一对应。另外,与之前被输入到算术加密部的二进制码相当的字有时也会比在比该二进制码靠后输入到算术加密部的二进制码相当的字靠后出现在输出数据的位数据流中。图10是第4实施方式涉及的可变长度加密部23所具有的熵加密部700的概要构成图。熵加密部700对被输入的块的压缩数据进行熵加密,输出作为结果而得到的数据流。为此,熵加密部700具有二进制化部701、上下文模型化部702、概率量化部703、K个二进制码加密部704 — I 704 - k (其中,K是2以上的整数)以及复用部705。二进制化部701对被输入的块的压缩数据所含的各标号(symbol)进行二进制化,以位列表示各标号。因此,二进制化部701例如以MPEG-4AVC/H.264为基准对各标号进行二进制化。例如,在1-Slice内的宏块种类mbType是表示4x4巾贞间预测、或者是表示8x8帧间预测的标号“INxN”的情况下,该标号以’O’表示。另外,在块种类mbType是表示PCM加密的标号“IPCM”的情况下,该标号被以’ 11’表不。从二进制化部701输出的位列被输入给上下文模型化部702。上下文模型化部702对被从二进制化部701输入的位列的各位,分别分配内容。内容例如根据周围块的块的压缩数据来决定。而且,在想要熵加密的块的压缩数据与周围块的压缩数据类似的情况下和不类似的情况下,通过采用不同的内容,来提高算术加密的效率。上下文模型化部702按位列的每个位,输出该值(O或者I)、决定出的内容的LeastProbable bit (LPB)以及LPB概率,输出的位、LPB以及LPB概率被输入给概率量化部703。LPB表示在过去与该内容成对从上下文模型化部702输出的位列的各位中的、出现频度小的一方的值。另外,LPB概率表示LPB的产生概率。例如,在过去的位列所含的10个位是
的情况下,LPB 是 0,LPB 概率为 0.3。概率量化部703对从上下文模型化部702输出的各位的LPB概率分别进行量化。例如,概率量化部703将从O到I连续的概率值量化成K个离散值。例如,在LPB概率为0.3并且K为4的情况下,概率量化部703将LPB概率的值0.3的量化值设为0.25 (=1/4)。从概率量化部703输出的位被输入到K个二进制码加密部704 — I 704 — k中与该位的LPB概率的量化值对应的二进制码加密部。二进制码加密部704 — I 704 — k分别对与彼此不同的LPB概率的量化值对应的位进行算术加密。例如,如上所述,如果LPB概率的量化值是1/4,则与该LPB概率对应的位被输入到二进制码加密部704 — I 704 - k中与离散概率1/4对应的二进制码加密部。而且,各二进制码加密部对复用部705的缓冲器内保存的记录(entry)的位列中与二进制码加密部对应的量化LPB概率的记录的位列追加该位。而且,每当位列能够变换时,各二进制码加密部便将该位列变换成字。复用部705例如具有缓冲器,将从各二进制码加密部写入的位列以及与位列对应的字保存在该缓冲器中。复用部705在能够输出字之前,将该字保存在缓冲器内。而且,复用部705在所保存的字能够输出的时刻将该字作为输出数据的位数据流输出。此外,由于可以假设为被输入到各二进制码加密部的位(二进制码)具有相同的LPB,所以各二进制码加密部以及复用部也可以取代进行算术加密自身,而将包含多个输入位的位列作为I个二进制码列进行可变长度加密。该情况下,例如表示位列(二进制码列)和字之间的关系的变换表被存储在各二进制码加密部中。而且,各二进制码加密部参照该变换表将二进制码列变换成字。例如,在LPB是I并且LPB概率是0.15 (即O的产生概率是0.85)的情况下,输入二进制码列“0000”被变换成"1",输入二进制码列"11"被变换成"00001"。参照图11,来说明输出数据的位数据流中的各块的最终位。图11是说明压缩数据和被可变长度加密变换后的位列之间的关系的图。其中,块的压缩数据的构造与图8 (A)所示的构造相同。如图11所示,作为输出数据流的位列的一例的位列4100包含15个位。该情况下,点的集合4101表示与位列4100所含的各位对应的、通过对位列4100进行算术解密能够得到的压缩数据所含的二进制码。在该例子中,位列4100与二进制码O 二进制码10对应。而且,二进制码O 二进制码2包含在块O中,二进制码3 二进制码5包含在块I中,二进制码6、7包含在块2中,二进制码8 二进制码10包含在块3中。点的集合4101所含的各点分别表示在该点上方所示的变换后的位列4100所含的位被用于对在该点左侧表示的二进制码进行解密。例如二进制码O、二进制码5以及二进制码7利用第O个 第3个位来解密。反而言之,二进制码O、二进制码5以及二进制码7这3位被变换成位列4100中的第O个 第3个这4位。从点集合4101可知,对属于块I的最后的二进制码5进行解密所需的位列(位O 位3)比对属于块I的最初的二进制码3进行解密所需的位列(位7 位8)靠前出现在输出数据的位数据流4100内。这样,第4实施方式与第3实施方式不同,相对于块的各二进制码的次序,输出数据的位数据流上的对应的字的次序有时逆转。块的最终位如下所述。与块被CABAC加密的情况同样,块的压缩数据的二进制化数据的最前头位以及最终位总是MbSkipFlag以及EndOfSliceFlag。而且,当在图片中块为w个时,输出数据的位数据流中必定存在w个MbSkipFlag和w个EndOfSliceFlag。但是,在该实施方式中,被可变长度加密后的块X的最终位在对块X的压缩数据的二进制化数据的各位进行解密所需的字中,成为输出数据的位数据流中的位置最靠后的字A的最后位。在图11所示的例子中,块O、块I以及块2的最终位分别是以箭头4200表示的、位列4100的第8个位。另外,块3的最终位是以箭头4201表示的位列4100的第14个位。图12是第4实施方式涉及的可变长度加密部的二进制码加密部以及复用部的举动的说明图。二进制码加密部704 — I 704 — k参照从输入二进制码列向输出字变换的变换映射800,将由具有同一量化LPB概率的位构成的输入二进制码列变换成字。为了简化说明,复用部705对从各二进制码加密部704 — I 704 — k向复用部705输入的二进制码列应用同I个变换映射。例如二进制码列"0000"被变换成字"I"。在该例子中,利用概率量化部703对输入位列801的各位附加表示量化LPB概率的概率索引802。在该例子中,LPB概率被量化成4个值中的某个值,各量化LPB概率分别被分配概率索引O 3。而且,输入位列801的各位从最前头的位850开始按顺序被输入到与该位的概率索引对应的二进制码加密部。例如,概率索引为’O’的位被输入给二进制码加密部704 -1,概率索引为’ I’位被输入给二进制码加密部704 — 2。表860 863分别表示位850 853被输入到某个二进制码加密部的时刻的被保存在复用部705所具有的缓冲器中的数据。在表860 863中,I个行与复用部705的缓冲器内保存的I个记录对应。而且,在各表内,按照生成的顺序从上到下依次标记记录。复用部705将缓冲器内保存的记录的字从上向下按次序输出,作为输出数据的位数据流。〃#"是缓冲器内的记录的索引。〃Idx"是对应的二进制码加密部的索引,在该例子中,为了容易理解,二进制码加密部的索引具有与对被输入到该二进制码加密部的输入位附加的概率索引相同的值。“输入”是被输入的位列(二进制码列)。“字”是与被输入的位列对应的字。假如在不存在与输入位列对应的字的情况下(例如输入位列是"00"的情况),各表中字被标记为"N/A"。
在向二进制码加密部704 — I 704 — k中的某个输入位850之前的状态下,设复用部705的缓冲器为空。在复用部705的缓冲器为空的状态下,如果位被输入到二进制码加密部,则被输入了位的二进制码加密部在复用部705的缓冲器创建新的记录。在该例子中,如表860所示,通过概率索引为’O’且值为’O’的位850被输入到二进制码加密部704 — 1,在复用部705的缓冲器内创建记录索引为’O’的最初的记录。由于位850的概率索引为’O’,所以该记录的〃 Idx〃是’O’。另外,由于位850的值是’O’,所以最初的记录的输入位列是〃0〃。由于字尚未完成,所以该记录的字是"N/A"。接着,对二进制码加密部704 — 2输入概率索引为’ I’且值为’ O’的位851。该情况下,由于与该位的概率索引相当的记录在复用部705的缓冲器内中尚不存在,所以如表861所示,生成新的记录。该第2个记录的〃 Idx〃是’I’。另外,由于字尚未完成,所以第2个记录的字是"N/A"。以后,每当新的位被输入到二进制码加密部,二进制码加密部704 — I 704 — k以及复用部705便按照以下的I) 4)的规则,将复用部705的缓冲器内的记录的二进制码列变换成字,另外,输出能够适当输出的记录的字。I)二进制码加密部704 — I 704 — k按照复用部705的缓冲器内的记录索引的
升序来搜索与输入位的概率索引对应的记录。2)如果存在与输入位的概率索引对应的字是〃N/A〃的记录,则二进制码加密部704 — I 704 — k对该记录的输入位列进行更新。具体而言,二进制码加密部704 — I
704- k在该记录的输入位列的后面附加新的输入位。复用部705判定更新后的位列与变换表800的二进制码列的哪个一致。假如存在一致的二进制码列,则二进制码加密部704 -1 704 — k将与该二进制码列对应的字作为该记录的字。3)如果不存在与输入位的概率索引对应的、字不为〃N/A〃的记录,则二进制码加密部704 — I 704 - k创建与该概率索引对应的新的记录。4)字不为"N/A"的记录能够作为位数据流输出,但记录的输出顺序遵从复用部705的缓冲器内的记录索引的降序。这是为了动态图像解密装置正常地对被复用的字进行解密(从字向二进制码列的逆变换)所需的制限。在比着眼的记录的记录索引小且字为"N/A"的记录残留在复用部705的缓冲器的情况下,即使着眼的记录的字不是"N/A",复用部705也无法输出该着眼的记录。复用部705在输出记录的情况下,将该记录的字追加到输出数据的位数据流。输出了的记录被从复用缓冲器去除。表862表示向二进制码加密部704 — I输入了概率索引为’O’并且值为’ O’的位852的时刻的、复用部705的缓冲器的状态。该情况下,记录索引为’I’到’4’的记录处于能够输出的状态。但是,由于记录索引为’O’的记录的字是〃 N/A",所以复用部705还无法输出所有记录的字作为位数据流。即,产生可变长度加密的延迟。表863表示向二进制码加密部704 — I输入了概率索引为’O’并且值为’ I’的位853的时刻的复用部705的缓冲器的状态。在该时刻,开始记录索引为’O’的记录的字不是〃N/A〃。因此,复用部705能够输出记录索引为’O’到,4,的所有记录。在刚输出了记录索弓丨’0’到’4’的所有记录之后,新追加的记录的索引为’5’。即,新建记录的记录索引是对包含所输出的记录的所有记录中的最大索引加上I后的值。复用部705将对作为位数据流而输出的最后记录的记录索引加上I后的值存储为下一个位数据流的输出记录最前头索引Firstlndex。其中,FirstIndex在图片加密开始时被重置成O。图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 — I 704 — k对第b0个二进制码进行加密,第bo个二进制码(另外,在包含第bO个二进制码的位列能够变换的情况下,是对应的字)被保存在复用部705的缓冲器中(步骤S304)。然后,可变长度加密部23取得复用部
705作为位数据流而输出的位列的最终位位置q(步骤S305)。另外,可变长度加密部23从复用部705取得下一个位数据流的最前头记录索引Firstlndex,将该索引设为t。然后,若在步骤S306中进位数c为I以上,则可变长度加密部23将对第bO个二进制码进行算术加密前的位数据流的最终位位置P与对第bo个二进制码进行了算术加密后的位数据流的最终位位置q相比较。并且,可变长度加密部23判定下一个位数据流的最前头记录索引t是否大于索引s (步骤S307)。其中,索引s表示与虽然已经算术加密但未作为位数据流输出的EndOf SI i ceFIag对应的记录中的最大记录索引。在最终位位置P与最终位位置q不同且索引t大于索引s的情况下(步骤S307 —是),通过第bO个二进制码的算术加密处理来生成新的位。该情况下,虽然以前被算术加密但未作为位数据流而被输出的组x(x=j-l、...、j-c)的最后块的EndOfSliceFlag所对应的最后的字被作为位数据流输出。即,组X的解密所需的所有位在q的位置被输出。鉴于此,可变长度加密部23将在该时刻输出的各组解密所需的位列的最终位位置BitEndO设定成位位置q (步骤S308)。另一方面,在最终位位置P与最终位位置q相等,或者索引t与索引s相等的情况下(步骤S307 —否),不生成新的位。因此,可变长度加密部23不进行步骤S308以及S309的处理地进行步骤S310的处理。如图13 (B)所示,可变长度加密部23对EndOfSliceFlag进行算术加密(步骤
5312),然后取得对EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q(步骤
5313)。另外,可变长度加密部23从复用部705取得下一个位数据流的最前头记录索引Firstlndex,将该索引作为t。并且,可变长度加密部23从复用部705取得虽然已经被算术加密但未作为位数据流而输出的EndOfSliceFlag所对应记录中的最大记录索引,将该索引作为S。可变长度加密部23判定是否进位数c为I以上且对EndOfSliceFlag进行算术加密前的位数据流的最终位位置P和对EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q是否不同。并且,可变长度加密部23判定索引t是否大于索引s (步骤S314)。在进位数c是I以上、P与q不同,并且t大于s的情况下(步骤S314 —是),组x(x=j_l、..、j-c)的最后块的EndOfSliceFlag被作为位数据流输出。即,对组x进行解密所需的所有位被作为位数据流输出。鉴于此,可变长度加密部23将对在该时刻输出的各组进行解密所需的位列的最终位位置BitEndO设定成位位置q (步骤S315)。另一方面,在进位数c是O,或者P与q相等,或者t与s相等的情况下(步骤S314 —否),对组X进行解密所需的所有位未被输出。鉴于此,可变长度加密部23不进行步骤S315以及S316的处理,而判定当前块m是否为组j的最终块(步骤S317)。在当前块m不是组j的最终块的情况下(步骤S317—否),组j内存在未处理的块。鉴于此,可变长度加密部23在对m加I后,反复执彳丁步骤S302以后的处理。另一方面,在块m为组j的最终块的情况下(步骤S317 —是),可变长度加密部23对m加I。而且,可变长度加密部23将对EndOfSliceFlag进行算术加密前的位数据流的最终位位置P和对EndOfSliceFlag进行了算术加密后的位数据流的最终位位置q相比较,并且将索引t和索引s相比较(步骤S318)。在P与q不同,并且t大于s的情况下(步骤S318 —是),通过对EndOfSliceFlag进行算术加密来生成新的位。因此,对组j的最终块的全部进行解密所需的所有位被作为位数据流输出。鉴于此,可变长度加密部23将对在该时刻输出的组j进行解密所需的位列的最终位位置BitEndO设定成位位置q (步骤S319)。另一方面,在P与q相等,或者t与s相等的情况下(步骤S318 —否),即使EndOfSliceFlag被算术加密 也不生成新的位。因此,可变长度加密部23对进位数c加1,并且对组的索引j加I (步骤S321)。如以上说明那样,该动态图像加密装置以组为单位对将图片分割后的块进行分类,根据按该组推定的解密时刻来对组所含的块的符号量进行调整,能够降低解密延迟。也可以将通过在计算机上执行来实现上述实施方式或者其变形例涉及的动态图像加密装置的各部的功能的计算机程序记录到半导体存储器或者光记录介质等的记录介质中进行发布。上述的实施方式或者其变形例涉及的动态图像加密装置可被用于各种用途。例如,该动态图像加密装置可被组装到摄像机、影像发送装置、影像接收装置、电视电话系统、计算机或者移动电话机中。在此列举的所有例以及特定的用语意图在于帮助读者理解本发明以及促进该技术的发展,不应该解释成与表示本发明的优良性以及低劣性有关的、本说明书的任何构成例的构成限于这种特定列举出的例子以及条件。尽管详细说明了本发明的实施方式,但是应理解为在不脱离本发明的精神以及范围前提下,能够进行各种变更、置换以及修正。附图标记说明:10…动态图像加密装置;11…加密处理部;12…符号量控制部;13…组决定部;14…组解密时刻信息计算部;15...组信息附加部;21…正交变换部;22...量化部;23…可变长度加密部;24…量化值计算部;25…位计数器;26…缓冲器占有量计算部;700…熵加密部;701…二进制化部;702…上下文模型化部;703…概率量化部;704 —I 704 — k…二进制码加密部;705…复用部。
权利要求
1.一种动态图像加密装置,将动态图像数据所含的各图片分割成多个块来进行加密,其特征在于,具有: 组决定部,其决定多个组中各块所属的组; 组解密时刻信息计算部,其按每个所述组算出解密时刻; 组信息附加部,其将表示所述各块所属的组的组信息附加到输出数据中; 符号量控制部,其在所述组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在由所述解密时刻信息计算部算出的该组的解密时刻之前到达该动态图像解密装置的数据流接收缓冲器;以及加密处理部,其基于所述符号量的控制信息来对所述各块进行加密。
2.根据权利要求1所述的动态图像加密装置,其特征在于, 所述组解密时刻信息计算部按照与加密对象图片的最初的组对应的所述解密时刻和与所述加密对象图片的前一个图片的最后的组对应的所述解密时刻之间的差量值大于所述加密对象图片的第2个以后的组所含的连续2个组各自的所述解密时刻间的差量值的方式,来算出每个所述组的解密时刻。
3.一种动态图像加密方法,将动态图像数据所含的各图片分割成多个块来进行加密,其特征在于,包含下述处理: 决定多个组中各块所属的组, 按每个所述组算出解密时刻, 将表示所述各块所属的组的组信息附加到输出数据中,` 在所述组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达该动态图像解密装置的数据流接收缓冲器, 基于所述符号量的控制信息来对所述各块进行加密。
4.根据权利要求3所述的动态图像加密方法,其特征在于, 每个所述组的解密时刻被按照与加密对象图片的最初的组对应的所述解密时刻和与所述加密对象图片的前一个图片的最后的组对应的所述解密时刻之间的差量值大于所述加密对象图片的第2个以后的组所含的连续2个组各自的所述解密时刻间的差量值的方式算出。
5.—种动态图像加密用计算机程序,使计算机执行将动态图像数据所含的各图片分割成多个块来进行加密,其特征在于,使计算机执行下述处理: 决定多个组中各块所属的组, 按每个所述组算出解密时刻, 将表示所述各块所属的组的组信息附加到输出数据中, 在所述组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达该动态图像解密装置的数据流接收缓冲器, 基于所述符号量的控制信息来对所述各块进行加密。
6.根据权利要求5所述的动态图像加密用计算机程序,其特征在于, 每个所述组的解密时刻被按照与加密对象图片的最初的组对应的所述解密时刻和与所述加密对象图片的前一个图片的最后的组对应的所述解密时刻之间的差量值大于所述加密对象图片的第2个以后的组所含的连续2个组各自的所述解密时刻间的差量值的方式算出 。
全文摘要
动态图像加密装置具有决定多个组中的各块所属的组的组决定部;组解密时刻信息计算部,其按每个组来算出解密时刻;组信息附加部,其将表示各块所属的组的组信息附加到输出数据中;符号量控制部,其在组所含的所有块的解密所需的数据被以规定的传送率传送给动态图像解密装置的情况下,控制该组所含的各块的符号量,以便在该组的解密时刻之前到达动态图像解密装置的数据流接收缓冲器;以及加密处理部,其基于符号量的控制信息来对各块进行加密。
文档编号H04N7/26GK103202015SQ20118005189
公开日2013年7月10日 申请日期2011年1月13日 优先权日2010年9月30日
发明者数井君彦, 岛田智史, 中川章, 三好秀诚, 小山纯平 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1