処理中

しばらくお待ちください...

設定

設定

1. CN101543078 - Information processing device and method

注意: このテキストは、OCR 処理によってテキスト化されたものです。法的な用途には PDF 版をご利用ください。
信息处理设备和方法


技术领域
本发明涉及一种信息处理设备和方法,并且尤其涉及一种能够实现在分组传输/接收时减小延迟的信息处理设备和方法。
背景技术
至今,在例如使用视频和声频的通信系统(如双向电视会议系统)中和广播台等中的具有无压缩环境的混合系统中,已经要求以最小延迟传输视频和声频数据。特别是在最近几年,随着视频和声频质量的改进,数据量一直在增加,并且相应地已经要求具有进一步的减小延迟的数据传输。
例如,在MPEG(运动画面专家组)和H.26x压缩体系中,基于运动预测已经增大压缩比。当进行运动预测时,算法变得复杂,并且涉及的处理时间与帧大小的平方成比例地增加。原则上,出现几个帧的编码延迟。当进行双向实时通信时,延迟时间几乎成为250ms的可允许延迟时间,这是不可忽略的长度。
而且,由JPEG(联合摄影专家组)2000代表的帧内编解码器不使用帧间差别信息。因而,不发生上述延迟。然而,由于压缩在逐帧基础上进行,所以编解码器在编码开始之前必须等待至少一个帧。由于当前通用系统在多数情况下采用30帧每秒,所以编码开始之前大约16ms的等待时间是必需的。
因此,已经要求进一步减小这种延迟,并且在除编码和解码之外的部分中,如在封装过程和去封装过程中,减小延迟也已经成为必要的。例如,已经设想一种减小缓冲存储器的容量的方法以减小传输延迟(例如,见专利文件1)。
现在,经常有传输差错出现在传输视频和声频数据的数字视频通 信的通信过程中,并且影响再现质量。
专利文件1:日本未审查专利申请公报No.2005-12753
发明内容
已经采取一些类型的措施以克服这样的传输差错。为了进一步减小数据传输中的延迟,这种处理中也要求减小延迟以克服传输差错。
鉴于这样的常规情况而提出本发明,能够实现在发送/接收数据时出现的延迟时间的减小。
本发明的一方面是一种编码图像数据的信息处理设备,包括:比较装置,用来以行块为单位比较构成图像数据的帧或场,该行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当;生成装置,用来根据比较装置获得的比较结果,生成指示隐藏行块中的差错的方法的隐藏信息;编码装置,用来通过编码预先按顺序重新排序的系数数据来生成编码数据,所述顺序是执行合成在频带中分解的多个子带的系数数据以生成图像数据的合成处理时使用所述系数数据的顺序;以及控制装置,用来控制编码装置以多路复用所述生成装置生成的隐藏信息和所述编码装置生成的编码数据。
所述控制装置可以控制所述编码装置,从而封装编码数据并使隐藏信息用作首部。
所述编码装置可以包括:系数编码装置,用来编码系数数据以生成编码数据;和封装装置,用来封装编码数据。
隐藏信息可以包括标志信息,其指示构成帧或场的行块是否可以用构成另一帧或另一场的行块替换。
对图像数据,比较装置可以将帧之间的差值或场之间的差值与阈值相比较。
当帧之间的差值或场之间的差值小于或等于阈值时,生成装置可以将标志信息设置成可替换的。
隐藏信息可以包括指示当构成帧或场的行块可以用构成另一帧或另一场的行块替换时,可用于替换的先前画面或场的范围的信息。
隐藏信息可以包括标志信息,其指示当构成帧或场的行块可以用构成另一帧或另一场的行块替换时,是否可以使用能够用于替换的画面或场之后的画面或场进行替换。
系数数据可以以行块为单位按从低频分量到高频分量的顺序重新排序。
进一步,本发明的一方面是一种用于编码图像数据的信息处理设备的信息处理方法,其中:比较装置以行块为单位比较构成图像数据的帧或场,该行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当;生成装置根据比较装置获得的比较结果,生成指示隐藏行块中的差错的方法的隐藏信息;编码装置通过编码预先按顺序重新排序的系数数据来生成编码数据,所述顺序是在执行合成在频带中分解的多个子带的系数数据以生成图像数据的合成处理时使用所述系数数据的顺序;以及控制装置,其控制编码装置以多路复用生成装置生成的隐藏信息和编码装置生成的编码数据。
本发明的另一方面是一种信息处理设备,其对通过编码图像数据获得的编码数据进行差错隐藏处理,包括:获取装置,用来对构成图像数据的帧或场,以行块为单位,从通过编码预先按顺序重新排序的系数数据获得的编码数据中,获得指示隐藏行块中的差错的方法的隐藏信息,所述行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当,所述顺序是在执行合成通过在频带中分解图像数据获得的多个子带的系数数据以生成图像数据的合成处理时使用所述系数数据的顺序;和隐藏装置,用来以行块为单位,根据获取装置获得的差错隐藏信息所指示的隐藏差错的方法,进行隐藏编码数据中包含的差错的过程。
可以封装所述编码数据并使隐藏信息用作首部,并且获取装置可以获得作为首部的隐藏信息。
信息处理设备还可以包括解码装置,用来解码隐藏装置已经隐藏 处理过的编码数据以生成图像数据。
信息处理设备还可以包括记录装置,用来将隐藏装置已经隐藏处理过的编码数据记录在记录介质中。
进一步,本发明的另一方面是一种用于信息处理设备的信息处理方法,其对通过编码图像数据获得的编码数据进行差错隐藏处理,其中:获取装置,对构成图像数据的帧或场,以行块为单位,从通过编码预先按顺序重新排序的系数数据获得的编码数据中,获得指示隐藏行块中的差错的方法的隐藏信息,所述行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当,所述顺序是在执行合成通过在频带中分解图像数据获得的多个子带的系数数据以生成图像数据的合成处理时使用所述系数数据的顺序;和隐藏装置,以行块为单位,根据获取装置获得的差错隐藏信息所指示的隐藏差错的方法,进行隐藏编码数据中包含的差错的过程。
根据本发明的一个方面,以行块为单位,比较构成图像数据的帧或场,所述行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当;根据比较结果,生成指示隐藏行块中的差错的方法的隐藏信息;通过编码预先按顺序重新排序的系数数据来获得编码数据,所述顺序是在执行合成在频带中分解的多个子带的系数数据以生成图像数据的合成处理时使用系数数据的顺序;以及进行控制以多路复用所生成的隐藏信息和编码数据。
根据本发明的另一方面,对构成图像数据的帧或场,以行块为单位,从通过编码预先按顺序重新排序的系数数据获得的编码数据中,获得指示隐藏行块中的差错的方法的隐藏信息,所述行块包括与生成系数数据所需要的行数相当的图像数据,该系数数据与至少最低频率分量的子带的一行相当,所述顺序是在执行合成通过在频带中分解图像数据获得的多个子带的系数数据以生成图像数据的合成处理时使用所述系数数据的顺序;以及以行块为单位,根据获得的差错隐藏信 息指示的隐藏差错的方法,进行隐藏编码数据中包含的差错的过程。
根据本发明可发送/接收数据。具体地说,可减小在数据传输/接收中出现的延迟时间。
附图说明
图1是方块图,表示本发明所应用的传输系统的示范构造。
图2是方块图,表示图1的编码单元的示范结构。
图3是概况图,用来描述小波变换的概况。
图4是概况图,用来描述小波变换的概况。
图5是概况图,表示其中使用5×3滤波器的基于提升(lifting)的滤波执行到分解级=2的例子。
图6包括概况图,表示根据本发明的小波变换和逆小波变换的流程概况。
图7是表示界区(precinct)首部的示范结构图。
图8是表示画面首部的示范结构图。
图9是表示在编码单元与封装处理单元之间交换信息的例子的图。
图10是方块图,表示图1的封装处理单元的详细示范结构。
图11是示意图,用来描述界区的例子。
图12是示意图,用来描述分组的示范生成。
图13是示意图,用来描述RTP首部的示范结构。
图14是示意图,用来描述RTP有效负载首部的示范结构。
图15是示意图,用来描述共用首部的示范结构。
图16是表示量化参数信息的示范结构图。
图17是表示尺寸信息的示范结构图。
图18包括表示格式信息的示范结构图。
图19是表示画面信息的示范结构图。
图20是表示颜色信息的示范结构图。
图21是方块图,表示图1的去封装处理单元的详细示范结构。
图22是表示控制模式过渡的方式的例子。
图23是表示在去封装处理单元与解码单元之间交换信息的例子的图。
图24是方块图,表示图1的解码单元的详细示范结构。
图25是流程图,用来描述编码过程的示范流程。
图26是流程图,用来描述封装过程的示范流程。
图27是流程图,用来描述启动模式过程的示范流程。
图28是流程图,用来描述模式共用过程的示范流程。
图29是流程图,用来描述等待(standby)模式过程的示范流程。
图30是流程图,用来描述处理模式过程的示范流程。
图31是流程图,用来描述损失模式过程的示范流程。
图32是流程图,用来描述解码控制过程的示范流程。
图33是流程图,用来描述解码过程的示范流程。
图34是流程图,用来描述差错通知处置过程的示范流程。
图35是示意图,描述差错通知处置的方式的例子。
图36是表示RTP有效负载首部的另一示范结构图。
图37是表示段(segment)信息的示范结构图。
图38是流程图,用来描述封装过程的另一示范流程。
图39是概况图,表示发送设备和接收设备的各元件进行并行操作的方式的例子概况。
图40是方块图,表示图1的编码单元的另一示范结构。
图41是概况图,用来描述在编码单元侧进行重新排序小波系数的过程的情况下的过程流程。
图42是概况图,用来描述在解码单元侧进行重新排序小波系数的过程的情况下的过程流程。
图43是方块图,表示图1的编码单元的另一示范结构。
图44是方块图,表示与图43的编码单元相对应的解码单元的示范结构。
图45是方块图,表示本发明所应用的传输系统的另一示范构造。
图46是方块图,表示图45的发送设备和接收设备的详细示范结构。
图47是示意图,表示隐藏首部的示范结构。
图48是示意图,表示待传输的图像数据的示范结构。
图49是流程图,描述分析过程的示范流程。
图50是流程图,描述隐藏首部生成过程的示范流程。
图51是描述损失分析过程的流程图。
图52是表示本发明所应用的信息处理系统的示范构造。
附图标记说明
100:传输系统、102:发送设备、103:接收设备、110:线路、132:去封装处理单元、133:解码单元、202:RTP首部生成单元、203:共用首部生成单元、204:扩展首部生成单元、205:画面信息生成单元、206:标志检查单元、207:尺寸检查单元、208:片段处理单元、209:封装单元、252:首部信息分析单元、253:控制模式改变单元、254:控制单元、255:首部提供单元、256:数据提供单元、257:差错通知单元、258:控制信号提供单元、351:控制信息获取单元、352:解码控制单元、353:解码处理执行单元、354:首部获取单元、355:数据获取单元、356:差错通知获取单元、357:丢弃处理单元、602:发送设备、603:接收设备、621:分析单元、622:存储单元、623:隐藏首部生成单元、631:损失分析单元、632:存储单元、640:隐藏首部、643:替换头部画面ID、644:RF、645:SF、646:替换头部画面ID
具体实施方式
下文将描述本发明的实施例。
图1是方块图,表示本发明所应用的传输系统的示范构造。
在图1,传输系统100是数据传输系统,其中发送设备102压缩和编码由图像捕获设备101生成的图像数据、并且封装和发送图像数据;接收设备103接收经线路110传输的分组,并且去封装和解码分组;及显示设备104基于获得图像数据显示图像。
图像捕获设备101具有使用CCD(电荷耦合器件)、CMOS(互补金 属氧化物半导体)等的图像拾取装置。图像捕获设备101捕获对象的图像,将捕获图像转换成数字数据的图像数据,及将获得的图像数据提供到发送设备102。
发送设备102包括编码单元121、封装处理单元122、及发送单元123。发送设备102在编码单元121使用预定方法编码从图像捕获设备101供给的图像数据;在封装处理单元122封装通过编码获得的编码数据;以及在发送单元123使用预定通信方法将生成的分组发送到线路110。
线路110是任意传输介质,其连接发送设备102和接收设备103并且将分组从发送设备102传输到接收设备103。
接收设备103包括接收单元131、去封装处理单元132、及解码单元133。接收设备103在接收单元131接收经线路110传输的分组;在去封装处理单元132从接收的分组提取编码数据;在解码单元133使用与发送设备102的编码单元121相对应的解码方法来解码提取的编码数据;及将获得的基带图像数据输出到显示设备104。
显示设备104包括显示器,并且基于从接收设备103供给的图像数据在显示器上显示图像。
图1的这种传输系统100是能够减小从当图像被图像捕获设备101捕获时到图像被显示在显示设备104时的延迟时间的系统,其通过减小由于封装处理单元122进行封装过程造成的延迟时间和由于去封装处理单元132进行去封装过程造成的延迟时间。
图1的传输系统100,图像捕获设备101显示为提供待由发送设备102发送的图像数据的设备。然而,这种设备能够是任何设备,只要它能提供图像数据。而且,显示设备104显示为使用接收设备103接收的图像数据的设备。然而,这种设备能够是任何设备,只要它能够使用图像数据。
而且,仅图像数据被描述为待传输的数据。然而,其它数据,如声频数据,可以与图像数据一起传输。
发送设备102进行的分组发送方法可以是只发送到接收设备103 的单播、是发送到包括接收设备103的多个设备的多播、或是发送到多个且未指定设备的广播。
线路110能够是任何形式,只要线路110可传输分组。线路110可以是有线的或无线的,或者可以包括两者。而且,尽管在图1的线路110使用一个箭头表示,但线路110可以是专用或通用传输电缆,可以包括一个或多个通信网络,如LAN(局域网)和互联网,或者可以包括一些类型的通信中继设备。进一步,线路110的线路数量(通道数量)能够是任何数量。
接下来,将描述在图1显示的发送设备102和接收设备103的各个单元的细节。
图2是方块图,表示在图1的发送设备102的编码单元121的内部示范结构。在图2,编码单元121包括小波变换单元150、中间计算缓冲单元151、系数重新排序缓冲单元152、系数重新排序单元153、速率控制单元154、及熵编码单元155。
输入到编码单元121的图像数据被临时累计在中间计算缓冲单元151中。小波变换单元150对中间计算缓冲单元151中累计的图像数据施加小波变换。就是说,小波变换单元150从中间计算缓冲单元151读出图像数据,使用分析滤波器施加滤波过程以生成低频分量和高频分量的系数数据,以及将生成的系数数据存储在中间计算缓冲单元151中。小波变换单元150包括水平分析滤波器和垂直分析滤波器,并且对一组图像数据项在屏幕水平方向和屏幕垂直方向上都进行分析滤波过程。小波变换单元150再次读出在中间计算缓冲单元151中存储的低频分量的系数数据,并且使用分析滤波器对读出的系数数据施加滤波过程,以进一步生成高频分量和低频分量的系数数据。生成的系数数据被存储在中间计算缓冲单元151中。
小波变换单元150重复这个过程。当分解级达到预定级时,小波变换单元150从中间计算缓冲单元151读出系数数据,并且将读出的系数数据写入在系数重新排序缓冲单元152中。
系数重新排序单元153按预定顺序读出在系数重新排序缓冲单元152中写入的系数数据项,并且将读出系数数据提供到熵编码单元155。熵编码单元155使用预定熵编码系统,如Huffman编码或算术编码,进行供给系数数据的编码。
熵编码单元155与速率控制单元154联合操作。压缩和编码数据的比特速率被控制成是大体恒定值。就是说,速率控制单元154基于来自熵编码单元155的编码数据信息,将控制信号提供到熵编码单元155,从而进行控制以在熵编码单元155压缩和编码的数据的比特速率达到目标值的时刻或就在比特速率达到目标值之前,终止熵编码单元155进行的编码过程。熵编码单元155在响应于从速率控制单元154供给的控制信号而终止编码过程的时刻输出编码数据。
注意,当熵编码单元155初始进行从系数重新排序单元153读出的系数数据的量化,并且将信息源编码过程(如Huffman编码或算术编码)应用于获得的量化系数时,可期望进一步改进压缩效果。任何方法可用作量化方法。例如,可以使用通用手段,就是将系数数据W除以量化步幅大小Δ的技术,如下面公式(1)指示的那样:
量化系数=W/Δ...(1)
这种情形的量化步幅大小Δ在例如速率控制单元154计算。
熵编码单元155将通过编码获得的编码数据提供到分组处理单元122。
接下来,将更详细地描述由图2的小波变换单元150进行的过程。首先,描述小波变换的概况。在图像数据的小波变换中,如图3示意表示的那样,将图像数据分割成高空间频带和低空间频带的过程,对于作为分割结果而获得的低空间频带中的数据递归地进行。相应地,通过将在低空间频带中的数据分割成更小区域,能够实现高效压缩和编码。
注意,图3的例子对应于其中将图像数据的最低频率分量区域分割成低频分量区域L和高频分量区域H的过程被重复三次、并且指示分割层的总数的分解级是3的情形。在图3,“L”和“H”分别代表低频分量和高频分量。“L”和“H”的顺序指示了前者指示作为水平方向 的分割结果获得的带,并且后者指示作为垂直方向的分割结果获得的带。而且,在“L”和“H”之前的数字指示该区域的层。更低频率分量的层由更小的数字代表。
而且,如从图3显示的例子清楚可知的那样,处理逐步地从屏幕的右下区域到左上区域进行,并且由此分割低频带分量。就是说,在图3的例子中,屏幕的右下区用作包括最小数量的低频分量(包括最大数量的高频分量)的区3HH。通过将屏幕分割成四个区域获得的左上区被进一步分割成四个区域,并且在这四个区域中,左上区域被进一步分割成四个区域。最左上角部的区域用作包括最大数量的低频分量的区域0LL。
对低频分量重复地进行变换和分割,因为图像的能量集中在低频分量。这也可从如下事实理解:当分解级从分解级=1(其例子表示在图4的A中)的状态,前进到其中分解级=3(其例子表示在图4的B中)的状态时,形成若干子带,如图4的B所示。例如,在图3的小波变换的分解级是3,结果形成十个子带。
小波变换单元150通常使用低频滤波器和高频滤波器构成的滤波器组进行上述过程。注意,数字滤波器通常具有多个抽头(tap)长度(即滤波器系数)的脉冲响应,并且相应地必须预先缓冲与进行滤波过程需要的一样多的输入图像数据或系数数据项。而且,如在多个阶段进行小波变换那样,也必须缓冲与进行滤波过程需要的一样多的先前阶段生成的小波变换系数。
作为这种小波变换的具体例子,将描述使用5×3滤波器的方法。使用5×3滤波器的这种方法也由JPEG 2000标准采纳,并且是一种优良方法,因为它可使用少量滤波器抽头进行小波变换。
5×3滤波器的脉冲响应(Z变换表达式),如下面公式(2)和公式(3)指示的那样,由低频滤波器H 0 (z)和高频滤波器H 1 (z)构成。由公式(2)和(3),可理解低频滤波器H 0 (z)有五个抽头,并且高频滤波器H 1 (z)有三个抽头。
H 0 (z)=(-1+2z-1+6z-2+2z-3-z-4)/8  ...(2)
H 1 (z)=(-1+2z-1-z-2)/2              ...(3)
根据这些公式(2)和公式(3),可直接计算低频分量和高频分量的系数。这里,通过使用提升技术(lifting technique)可减少滤波过程涉及的计算。
接下来,将更明确地描述这种小波变换方法。图5表明基于提升的使用5×3滤波器的滤波过程执行多达分解级=2的例子。注意,在图5,在图左侧指示为分析滤波器的部分包括小波变换单元150的滤波器。而且,在图的右侧指示为合成滤波器的部分包括以后描述的解码单元中的子波逆变换单元的滤波器。
注意,如下描述中,假定例如在显示装置等中,通过从屏幕的左端到右端扫描像素而构造一行,使在屏幕的左上角的像素用作头部,并且通过在逐行基础上从屏幕的上端到下端进行扫描而构造一屏。
在图5,最左列表示原始图像数据的一行上在对应位置中布置的像素数据被排列在垂直方向上。就是说,在小波变换单元150中的滤波过程通过使用垂直滤波器垂直扫描在屏幕上的像素而进行。从左端起第一列至第三列表示在分解级=1的滤波过程,并且第四列至第六列表示在分解级=2的滤波过程。从左端起第二列表示基于左端的原始图像数据的像素的高频分量输出,并且从左端起第三列表示高频分量输出和基于原始图像数据的低频分量输出。关于在分解级=2的滤波过程,如从左端起在第四列至第六列显示那样,在分解级=1对滤波过程的输出进行处理。
分解级=1的滤波过程中,作为在第一阶段的滤波过程,基于原始图像数据的像素,计算高频分量的系数数据;并且,作为在第二阶段的滤波过程,基于在第一阶段的滤波过程中已经计算的高频分量的系数数据,以及原始图像数据的像素,计算低频分量的系数数据。在分解级=1的示范滤波过程表示在图5左侧(分析滤波器侧)的第一列至第三列中。所计算的高频分量的系数数据被存储在图2的系数重新排序缓冲单元152中。而且,所计算的低频分量的系数数据被存储在图2的中间计算缓冲单元151中。
在图5,系数重新排序缓冲单元152显示为由单点划线围绕的部分,并且中间计算缓冲单元151显示为由虚线围绕的部分。
基于中间计算缓冲单元151保持的在分解级=1的滤波过程的结果,进行在分解级=2的滤波过程。在分解级=2的滤波过程,将在分解级=1的滤波过程中作为低频分量系数计算的系数数据当作包括低频分量和高频分量的系数数据,并且进行与在分解级=1的滤波过程相类似的滤波过程。在分解级=2的滤波过程中计算的高频分量系数数据和低频分量的系数数据被存储在系数重新排序缓冲单元152中。
小波变换单元150在屏幕的水平方向和垂直方向都进行诸如以上描述之类的滤波过程。例如,首先,小波变换单元150进行在水平方向上在分解级=1的滤波过程,并且将生成的高频分量和低频分量的系数数据存储在中间计算缓冲单元151。接下来,小波变换单元150对中间计算缓冲单元151存储的系数数据进行在垂直方向上在分解级=1的滤波过程。关于水平和垂直方向在分解级=1的过程,形成四个区:区域HH和区域HL,基于通过把高频分量进一步分解成高频分量和低频分量获得的对应系数数据项;和区域LH和区域LL,基于通过把低频分量进一步分解成高频分量和低频分量获得的对应系数数据项。
随后,在分解级=2,对在分解级=1生成的低频分量的系数数据在水平方向和垂直方向都进行滤波过程。就是说,在分解级=2,将在分解级=1分割和形成的区域LL进一步分割成四个区,并且在区域LL中进一步形成区域HH、区域HL、区域LH及区域LL。
小波变换单元150配置为通过将滤波过程分割成在屏幕垂直方向上每组几行的处理,以步进方式将基于小波变换的滤波过程进行多次。在图5的例子中,从屏幕的第一行开始的过程的第一过程对七行进行滤波过程。第二过程是从第八行开始的过程并且其后以四行为单位进行滤波过程。该行数是基于分解成高频分量和低频分量之后生成与一行相当的最低频率分量所需要的行数。
注意,下文,包括其它子带的、生成与一行(与最低频率分量的子带的一行相当的系数数据)相当的最低频率分量所需要的一组行称作界区(或行块)。这里所述的行是指与小波变换之前的图像数据相对应的画面或场中或在每个子带中形成的一行相当的像素数据或系数数据。就是说,所述界区(行块)在小波变换之前的原始图像数据中,指示与生成与小波变换之后的最低频率分量的子带的一行相当的系数数据需要的行数相当的像素数据组、或通过进行这个像素数据组的小波变换获得的每个子带的系数数据组。
根据图5,基于系数C4和中间计算缓冲单元151存储的系数C a 计算作为分解级=2进行滤波过程的结果获得的系数C5,并且基于中间计算缓冲单元151存储的系数C a 、系数C b 、及系数C c 计算系数C4。进一步,基于系数重新排序缓冲单元152存储的系数C2和系数C3、和第五行的像素数据,计算系数C c 。而且,基于第五行至第七行的像素数据计算系数C3。相应地,为了获得在分解级=2的低频分量的系数C5,需要第一行至第七行的像素数据。
相反,在第二滤波过程及其后,可使用在至今滤波过程已经计算的并且存储在系数重新排序缓冲单元152中的系数数据,并因此需要的行数可以很少。
就是说,根据图5,作为分解级=2的滤波过程结果获得的低频分量的系数中,基于系数C4、系数C8及中间计算缓冲单元151存储的系数C c ,计算系数C9,其是系数C5的下个系数。系数C4使用上述第一滤波过程已经被计算,并且存储在系数重新排序缓冲单元152。类似地,系数C c 使用上述第一滤波过程已经被计算,并且存储在中间计算缓冲单元151。相应地,在该第二滤波过程中,仅进行用来计算系数C8的新滤波过程。
这个新滤波过程通过进一步使用第八行至第十一行进行。
由于第二滤波过程及其后能够使用至今滤波过程已计算的并且存储在中间计算缓冲单元151和系数重新排序缓冲单元152中的数据,所以所需要的全部是以四行为单位的每个过程。
注意,当屏幕上的行数与用来编码的行数不匹配时,通过预定方法 拷贝原始图像数据的行,从而行数成为与用来编码的行数相同,然后进行滤波过程。
相应地,以步进方式对整个屏幕的行(在逐个界区的基础上)进行多次滤波过程,所述滤波过程用来获得与最低频率分量的一行相当的系数数据项一样多,由此当发送编码数据时能够以减小延迟获得解码图像。
为了进行小波变换,需要执行小波变换本身使用的第一缓冲器、和用来存储执行直到预定分解级的处理时生成的系数的第二缓冲器。第一缓冲器与中间计算缓冲单元151相对应,并且在图5显示为由虚线围绕。而且,第二缓冲器与系数重新排序缓冲单元152相对应,并且在图5显示为由单点划线围绕。由于第二缓冲器存储的系数在解码时使用,所以系数在后续阶段受到熵编码处理。
接下来,将描述系数重新排序单元153进行的处理。如以上已经描述那样,在小波变换单元150计算的系数数据项被存储在系数重新排序缓冲单元152,其顺序被重新排序,由系数重新排序单元153读出,并被送到在编码单元单位的熵编码单元155。
如以上已经描述的那样,在小波变换中,从高频分量侧到低频分量侧生成系数。在图5的例子中,在第一次,在分解级=1的滤波过程中基于原始图像的像素数据依次生成高频分量的系数C1、系数C2、及系数C3。随后,对于在分解级=1的滤波过程中获得的低频分量的系数数据进行在分解级=2的滤波过程,并且相应地依次生成低频分量的系数C4和系数C5。就是说,在第一次,按系数C1、系数C2、系数C3、系数C4及系数C5的顺序生成系数数据。因为小波变换的原理,系数数据的生成顺序总是成为这种顺序(从高频到低频的顺序)。
相反,在解码侧,为了以减小的延迟立即进行解码,必须从低频分量开始进行图像的生成和输出。因此,希望从最低频率分量侧到高频分量侧重新排序在编码侧生成的系数数据,并且将重新排序的系数数据提供到解码侧。
使用图5的例子将更明确地进行描述。在图5的右侧表示用来进行子波逆变换的合成滤波器侧。解码侧的包括第一行输出图像数据的第一 合成过程(子波逆变换过程)使用编码侧在第一滤波过程中生成的最低频率分量系数的C4和系数C5、以及系数C1进行。
就是说,在第一合成过程中,将系数数据按系数C5、系数C4、及系数C1的顺序从编码侧提供到解码侧,并在解码侧,借助于在合成级=2的过程,其是与分解级=2相对应的合成过程,对系数C5和系数C4进行合成过程以生成系数C f ,并且将系数C f 存储在缓冲器。随后,借助于在合成级=1的过程,其是与分解级=1相对应的合成过程,对这个系数C f 和系数C1进行合成过程以输出第一行。
因而,在第一合成过程中,在编码侧按系数C1、系数C2、系数C3、系数C4、及系数C5的顺序生成并且存储在系数重新排序缓冲单元152的系数数据被重新排序成系数C5、系数C4、系数C1、...的顺序,并且提供到解码侧。
注意,在图5的右侧表示的合成滤波器侧中,对于从编码侧供给的系数,编码侧的系数编号在括号中描述,并且合成滤波器的行顺序在括号外描述。例如,系数C1(5)指示这是图5左侧的分析滤波器侧的系数5,并且是合成滤波器侧的第一行。
在第二次滤波过程及此后编码侧生成的系数数据在解码侧的合成过程,可使用先前合成过程时合成的或从编码侧供给的系数数据进行。在图5的例子中,解码侧进行的第二合成过程,其使用编码侧在第二滤波过程生成的低频分量的系数C8和系数C9来进行,还需要在编码侧在第一滤波过程中生成的系数C2和系数C3,以及第二行至第五行被解码。
就是说,在第二合成过程,系数数据按系数C9、系数C8、系数C2、系数C3的顺序从编码侧提供到解码侧。在解码侧,在合成级=2的过程,使用系数C8和系数C9和在第一合成过程时从编码侧供给的系数C4,生成系数C g ,并且将系数C g 存储在缓冲器。使用这个系数C g 、上述系数C4、及在第一合成过程生成的并且存储在缓冲器中的系数C f ,系数C h 被生成并且存储在缓冲器。
随后,在合成级=1的过程,使用在合成级=2的过程中生成的并且存储在缓冲器中的系数C g 和系数C h 、和从编码侧供给的系数C2(在合成滤 波器显示为系数C6(2))和系数C3(在合成滤波器显示为系数C7(3))进行合成过程,并且解码第二行至第五行。
相应地,在第二合成过程,在编码侧按系数C2、系数C3、(系数C4、系数C5)、系数C6、系数C7、系数C8、及系数C9的顺序生成的系数数据按系数C9、系数C8、系数C2、系数C3、...的顺序重新排序,并且提供到解码侧。
在第三合成过程及其后,类似地,在系数重新排序缓冲单元152中存储的系数数据按预定顺序被重新排序并提供到解码侧,并且以一次四行来解码所述行。
注意,在对应于编码侧的包括屏幕的较底端行的滤波过程的解码侧的合成过程(下文称作最后一次)中,在至此过程中生成的并且存储在缓冲器中的全部系数数据被输出,因此输出行的数量增大。在图5的例子中,最后一次输出八行。
注意,例如,通过在读出系数重新排序缓冲单元152存储的系数数据时按预定顺序设置读出地址,进行使用系数重新排序单元153的系数数据重新排序过程。
使用图6将更明确地描述上述过程。图6与使用5×3滤波器施加基于小波变换的滤波过程直到分解级=2的例子相对应。在小波变换单元150,如图6A的例子显示的那样,在水平和垂直方向对输入图像数据的第一行至第七行进行第一滤波过程(在图6A的In-1)。
在第一滤波过程中在分解级=1的过程,与三行相当的系数项,系数C1、系数C2及系数C3被生成,并且如图6B的例子显示的那样,被布置在分解级=1分别形成的区域HH、区域HL及区域LH中(在图6B的WT-1)。
而且,通过在水平和垂直方向上在分解级=2的滤波过程,将在分解级=1形成的区域LL进一步分割成四个区。至于在分解级=2生成的系数C5和系数C4,在分解级=1的区域LL中,基于系数C5的一行被布置在区域LL中,并且基于系数C4的一行被布置在区域HH、区域HL、及区域LH的每一个中。
使用小波变换单元150的第二滤波过程中及其后,滤波过程以四行为单位进行(在图6A的In-2...)。在分解级=1生成每两行的系数数据(在图6B的WT-2),并且在分解级=2生成每一行的系数数据。
在图5的例子的第二次,与两行相当的系数数据项,系数C6和系数C7,通过在分解级=1的滤波过程生成,并且如在图6B的例子显示的那样,从第一滤波过程生成的下个系数数据项开始,布置在分解级=1形成的区域HH、区域HL及区域LH中。类似地,在基于分解级=1的区域LL中,与一行相当并且借助于分解级=2的滤波过程生成的系数C9被布置在区域LL中,并且与一行相当的系数C8被布置在区域HH、区域HL、及区域LH的每一个中。
如图6B那样,当解码小波变换的数据时,如图6C的例子显示那样,对于编码侧的基于第一行至第七行的第一滤波过程,解码侧的基于第一合成过程的第一行被输出(在图6C中的Out-1)。此后,对于编码侧的第二至最后滤波过程之前的一个滤波过程,解码侧一次输出四行(在图6C的Out-2...)。随后,对于编码侧的最后一个滤波过程,在解码侧输出八行。
在小波变换单元150从高频分量侧到低频分量侧生成的系数数据项被依次存储在系数重新排序缓冲单元152中。当与能够实现系数数据的上述重新排序所需要的一样多的系数数据项被累计在系数重新排序缓冲单元152中时,系数重新排序单元153按照合成过程中需要的项的顺序重新排序系数数据项,并且从系数重新排序缓冲单元152读出系数数据项。读出的系数数据项依次提供到熵编码单元155。
如以上已经描述的那样在逐个界区基础上编码的图像数据(编码数据)提供到封装处理单元122。这个时候,熵编码单元155在逐个界区的基础上,将关于图像数据的信息作为首部信息(界区首部)提供到封装处理单元122。图7表示界区首部的示范结构。
如图7所示,界区首部171包括与四个字相当的数据(32×4比特),并且包括诸如PID、AT、AID、FT、CF、IF、界区时间戳、量化系数、及界区代码长度之类的信息。
PID(界区ID)是指示从画面的头部计数的界区数量的12-比特信息。AT(对准单元类型)是指示在界区中构建的对准单元的属性的4-比特信息。对准单元是界区中的编码数据,该界区按预定数据单元为单位(如按编码单元为单位)被分割。就是说,界区由一个或多个对准单元构成。AID(对准单元ID)是指示从界区的头部计数的对准单元数量的5-比特信息。FT(场类型)是指示画面是场类型的哪种(渐进或交织)的2-比特标志信息。CF(分量标志)是指示如下事实的3-比特信息:在包括亮度分量Y、色度分量Cb及色度分量Cr的各个分量中,多个分量被分组成一个对准单元或界区。
IF(不完全标志)是指示这是由于某种原因不能被编码的对准单元或界区的1-比特标志信息。这种失效的范围限于PID、AT及AID所指示的有效负载。
界区时间戳(Precinct Time Stamp)是指示界区的时间戳的最低有效32比特的信息。量化系数(QP Y或C)是指示在量化界区的亮度分量Y或色度分量C时使用的量化系数的值的16-比特信息。界区代码长度(Precinct Code Length Y或C)是指示界区的亮度分量Y或色度分量C的编码数据的数据长度的26-比特信息。
进一步,熵编码单元155在逐个画面的基础上,将关于图像数据的信息作为首部信息(画面首部)提供到封装处理单元122。图8表示画面首部的示范结构。
如图8所示,画面首部172包括与26个字相当的数据(32×26比特),并且包括诸如PI、w、CEF、CBD、DL、WF、PDI、SF、FR、AR、DBSZ、完全时间戳、V0开始位置、SD、H开始位置、VF、V总尺寸、TSD、H总尺寸、PXCS、V尺寸、VSD、H尺寸、BRT、CTS及WTm之类的信息。
PI(简档指示)是进行简档规定的5-比特信息。w是指示在分组中是否包括加权表的1-比特标志信息,该加权表是用来设置加权系数的定制值的表格信息。CEF(颜色扩展标志)是指示是否使用颜色信息的扩展首部的1-比特标志信息。CBD(分量比特深度)是指示分量的比特深度的5-比特信息。通过从预定值减去“8”获得的值被存储。DL(DWT级)是指示小波变换的分割次量(分解级)的3-比特信息。WF(子波滤波器)是指示在小波变换中使用的滤波器类型的2-比特信息。PDI(画面间断性指示)是指示时间戳的连续性的1-比特信息。SF(取样格式)是指示色度取样方法的2-比特信息。
FR(帧速率)是指示帧速率的1-比特信息。AR(纵横比)是指示像素纵横比的6-比特信息。DBSZ(解码器缓冲器大小)是指示在解码器的界区缓冲器大小的4-比特信息。完全时间戳(FTS)是指示全尺寸时间戳的46-比特信息。
V0开始位置(FFVS(第一场垂直开始))是指示在头部场在垂直方向的有效像素开始位置的13-比特信息。SD(Start Diff)是指示在FFVS与第二场之间的差别的2-比特信息。H开始位置(HS(水平开始))是指示在水平方向的有效像素开始位置的13-比特信息。VF(视频格式)是指示压缩信号的视频格式的4-比特信息。
V总尺寸(FFVTS(第一场垂直总尺寸))是指示在头部场包括空白的像素总数的13-比特信息。TSD(Total Size Diff)是指示在FFVTS与第二场之间的差别的2-比特信息。H总尺寸(HTS(水平总尺寸))是指示在水平方向包括空白的像素总数的13-比特信息。PXCS(像素时钟定标)是指示时钟定标因数的3-比特信息。
V尺寸(FFVVS(第一场垂直有效尺寸))是指示在头部场在垂直方向的有效像素尺寸的13-比特信息。VSD(Valid Size Diff)是指示在FFVVS与第二场之间的差别的2-比特信息。H尺寸(HVS(水平有效尺寸))是指示在水平方向的有效像素尺寸的13-比特信息。BRT(B值复位时序)是指示用来复位B值的时序的2-比特信息。
CTS(定制表格尺寸)是指示定制表格尺寸的16-比特信息。存在与指定值的数量一样多的后续定制值,并且其尺寸是CTS×2字节。WTm是指示第m加权表的16×m-比特信息。
注意,实际上,如图9所示,除数据之外,将属性信息、VALID信息等从编码单元121提供到封装处理单元122。属性信息是指示供给的数 据是首部还是图像数据或指示供给数据是亮度分量的数据还是色度分量的数据的信息。VALID信息是给出数据阅读时序的通知的信息。
封装处理单元122基于分别指定的该数据的尺寸和分组尺寸,进行以预定数据单元(界区)为单位供给的编码数据的封装过程。
图10是方块图,表示在图1的封装处理单元122的内部示范结构。
在图10,封装处理单元122包括数据获取单元201、RTP(实时传送协议)首部生成单元202、共用首部生成单元203、扩展首部生成单元204、画面信息生成单元205、标志检查单元206、尺寸检查单元207、片段处理单元208、封装单元209及输出单元210。
数据获取单元201基于与数据一起供给的属性信息、VALID信息等,获得从编码单元121供给的编码数据、分组等。例如,当获得界区首部171时,数据获取单元201将这提供到RTP首部生成单元202、共用首部生成单元203、扩展首部生成单元204、标志检查单元206、及尺寸检查单元207。而且,例如,当获得画面首部172时,数据获取单元201将这提供到画面信息生成单元205。进一步,例如,当获得编码数据时,数据获取单元201将这提供到片段处理单元208。
当数据获取单元201获得界区首部时,RTP首部生成单元202基于获得的界区首部生成作为RTP分组的首部的RTP首部。RTP首部的细节将在以后描述。RTP首部生成单元202将生成的RTP首部提供到封装单元209,并且将处理终止的通知给共用首部生成单元203。
在接收到来自RTP首部生成单元202的通知时,共用首部生成单元203基于数据获取单元201获得的界区首部171,生成共用首部,它是被添加到从界区生成的每个分组上的共用首部。共用头部分组括关于界区的基本信息。共用首部的细节将在以后描述。共用首部生成单元203将生成的共用首部提供到封装单元209,并且将处理终止的通知给扩展首部生成单元204。
在接收到来自共用首部生成单元203的通知时,扩展首部生成单元204基于数据获取单元201获得的界区首部171,生成扩展首部的信息,所述扩展首部根据需要添加与界区有关并且不包括在共用首部中的信息。通过生成这种扩展首部,发送器可进行灵活和高效的首部生成。尽管扩展首部中的信息内容是任意的,内容包括例如关于量化系数的信息和关于尺寸的信息。扩展首部的细节将在以后描述。扩展首部生成单元204将生成的扩展首部提供到封装单元209,并且将处理终止的通知给画面信息生成单元205。
在接收到来自扩展首部生成单元204的通知时,当数据获取单元201获得画面首部172时,画面信息生成单元205基于画面首部172,生成分组括关于该画面的信息的画面信息。画面信息的细节将在以后描述。画面信息生成单元205将生成的画面信息提供到封装单元209,使画面信息插入在扩展首部中,及将处理终止的通知给标志检查单元206。注意,当数据获取单元201没有获得画面首部172时,画面信息生成单元205不生成画面信息,并且将处理终止的通知给标志检查单元206。
在接收到来自画面信息生成单元205的通知时,标志检查单元206参考在数据获取单元201获得的界区首部171中包括的IF,并且根据标志的值确定在分组中是否包括编码数据。例如,当“IF=1”时,标志检查单元206确定界区中的数据编码失败,并且使数据获取单元201丢弃(不获取)不可解码的编码数据。进一步,标志检查单元206控制封装单元209仅封装首部信息(不包括有效负载)。另一方面,例如,当“IF=0”时,标志检查单元206确定界区的编码是成功的,使封装单元209封装包括有效负载的数据,及将处理终止的通知给尺寸检查单元207。
在接收到来自标志检查单元206的通知时,尺寸检查单元207基于在数据获取单元201获得的界区首部中包括的界区代码长度,检查该界区的数据尺寸是否大于预先分开设置的分组尺寸(一个分组中包括的有效负载的数据尺寸的最大值)。例如,当界区的数据尺寸大于分组尺寸时,尺寸检查单元207控制片段处理单元208以分组尺寸为单位分割由数据获取单元201获得的编码数据。相反,例如,当界区的数据尺寸不大于分组尺寸时,尺寸检查单元207控制片段处理单元208不分割由数据获取单元201获得的编码数据。
当界区的数据尺寸大于分组尺寸时,在尺寸检查单元207的控制下, 片段处理单元208以分组尺寸为单位分割由数据获取单元201获得的编码数据,并且将分割数据提供到封装单元209。就是说,这种情况下,每当数据获取单元201获得与一个分组尺寸相当的编码数据时,考虑到所述首部部分,片段处理单元208将与一个分组尺寸相当的编码数据作为一个有效负载提供到封装单元209。
相反,当界区的数据尺寸不大于分组尺寸时,在尺寸检查单元207的控制下,片段处理单元208将由数据获取单元201获得的编码数据按原样提供到封装单元209。就是说,这种情况下,片段处理单元208将由数据获取单元201获得的与一个界区相当的编码数据,作为一个有效负载提供到封装单元209。
使用从每个单元供给的首部信息,封装单元209封装从片段处理单元208供给的有效负载。例如,当一个界区的编码数据由片段处理单元208分割成多个有效负载时,封装单元209将必要的首部信息的相应项添加到各个有效负载,并且单独地封装它们。另一方面,例如,当片段处理单元208不分割编码数据时,封装单元209将必要的首部信息添加到从片段处理单元208供给的一个有效负载,并且将有效负载与首部信息一起封装。进一步,例如,当标志检查单元206给出指令在分组中不包括有效负载时,封装单元209响应于该指令仅进行首部信息的封装。
而且,封装单元209适当设置标志信息项的值,例如在生成的各个分组的共用首部中包括的SFF和M。SFF(开始片段标志)是指示分组是否是包括界区的头部的分组(头部分组)的标志信息。M(标识)是指示分组是否是包括界区的末端部分的分组(尾部分组)的标志信息。这些标志信息项在去封装处理单元132进行去封装过程时被参考。
例如,当片段处理单元208分割编码数据时,封装单元209在通过分割一个界区的编码数据生成的有效负载组中,将头部有效负载的分组的SSF设置到1,并且将最后有效负载的分组的M设置到1。
可替换地,当片段处理单元208不分割编码数据时,封装单元209将一个生成分组的SSF和M各自设置到1。
相应地,通过以这种方式设置诸如SFF和M之类的标志信息,去封 装处理单元132简单地通过参考标志信息可容易找出分组是界区的头部分组或尾部分组还是除这些分组之外的分组。因此,去封装处理单元132如以后将描述的那样可减少等待时间,并且可减少去封装过程造成的延迟时间。
封装单元209将生成的分组提供到输出单元210。
输出单元210将从封装单元209供给的RTP分组提供到发送单元123(图1),并且使发送单元123将它发送到接收设备103(图1)。
如以上已经描述的那样,编码单元121,如图11所示,将一个画面(帧或场)分割成多个界区,并且进行各个界区的编码。
封装处理单元122,如图12所示,通过以预定分组尺寸为单位分割编码数据而封装一个界区的编码数据。当界区的数据尺寸不大于分组尺寸时生成一个分组。在图12的例子中,从一个界区的编码数据生成五个分组。下面说明图像数据的示范传输格式。
图13表示RTP首部的结构,该RTP首部由RTP首部生成单元202生成,并且是RTP分组的首部信息。在RTP首部221,提供版本号(V)、填充(P)、扩展首部的存在(X)、源数量(计数)(CC)、标识信息(标识位)(M)、有效负载类型(PT)、顺序号、时间戳、及同步源标识符(SSRC)的各个字段。
版本号(V)是指示RTP的版本号的2-比特信息。填充(P)是1-比特标志信息,并且当其值是“1”时,它指示一个或多个填充八比特组(嵌入数据)被添加在有效负载的末端。扩展首部的存在(X)是1-比特标志信息,并且当其值是“1”时,它指示除固定-长度首部之外,添加了扩展首部(存在首部扩展)。源数量(CC)是指示CSRC标识符的数量的4-比特信息,并且当来自多个数据源的数据(如举例而言,多点电话会议中那样)被组装成一个RTP分组时,指示各个数据源的标识符的数量。
标识信息(M)是1-比特标志信息,并且指示例如在有效负载的任意事件。使用这个标识信息(M)的方法被设置在例如有效负载类型(PT)。有效负载类型(PT)是指定由分组携带的有效负载的格式的7-比特信息。
顺序号是指示RTP数据包的顺序的16-比特数字信息。初始值被随 意设置。在其后的后续包中,值增加“1”。这个顺序号指示待传输的全部编码数据(图像数据)的分组的顺序。
时间戳是指示RTP分组的第一字节的取样时间的32-比特信息。取样时钟由有效负载的数据简档确定。例如,让声频信号的取样频率是8kHz。由于时间戳的值每125微秒增加“1”,并且让RTP数据分组是20-毫秒-数据,所以时间戳的值在逐个分组的基础上增加160。注意,初始值被随意设置。
同步源标识符(SSRC)是指示这个分组的源的32-比特标识符。这种信息被随意生成。当传送地址变化时,这个SSRC也被更新。
共用首部生成单元203、扩展首部生成单元204、及画面信息生成单元205生成在RTP首部之后的有效负载首部中包括的各种信息项。图14表示有效负载首部的示范结构。如图14所示,有效负载首部由共用首部231、量化参数信息232、尺寸信息233、格式信息234、画面信息235、及颜色信息236构成,并且添加在有效负载237之前。
共用首部231是共用首部生成单元203生成的首部信息,并且包括关于界区的基本信息。这个共用首部231是基本首部,并且添加到所有分组。
量化参数信息232是扩展首部生成单元204生成的扩展首部,并且包括关于量化系数的信息。尺寸信息233是扩展首部生成单元204生成的扩展首部,并且包括关于数据尺寸的信息。格式信息234是扩展首部生成单元204生成的扩展首部,并且包括关于数据格式的信息。画面信息235是画面信息生成单元205生成的扩展首部,并且包括关于原始图像(就是编码、封装及传输的图像数据)的信息。颜色信息236是扩展首部生成单元204生成的扩展首部,并且包括关于图像数据的颜色的信息。
量化参数信息232、格式信息234、画面信息235、及颜色信息236作为扩展首部添加到界区的头部分组(包括未分段的分组)。尺寸信息233作为扩展首部添加到任意分组。
就是说,当尺寸信息要添加到所有分组时,界区的头部分组包括共用首部231至有效负载237全部。相反,除界区的头部分组之外的分组 只包括共用首部231、尺寸信息233及有效负载237。
将描述每个信息项的细节。
图15是表示共用首部231的示范结构图。如图15所示,共用首部231包括诸如PID、AT、AID、SFF、M、TSF、NF、FT、CF、IF、X、及TS之类的信息。就是说,共用首部231的第一字(从顶部起第一行)和第二字(从顶部起第二行)通过使用从编码单元121供给的界区首部171的第一字(Word0)和第二字(Word1)按原样生成,并且将SFF、M、TSF、及NF添加到已经是第一字的空字段(保留)的四比特中。
SFF(开始段标志)是指示这个分组是否在PID、AT、及AID指示的有效负载的头部的1-比特信息。就是说,当这个分组是在界区的头部的分组(头部分组)时,SFF的值被设置到“1”,否则,它被设置到“0”。
M(标识)是指示这个分组是否包括PID、AT、及AID指示的有效负载的末端部分的1-比特信息。就是说,当这个分组是包括界区或对准单元的末端部分的分组(尾部分组)时,M的值被设置到“1”,否则,它被设置到“0”。
TSF(时间戳标志)是指示时间戳是否包括在共用首部中的1-比特标志信息。就是说,当TSF的值是“1”时,界区首部171的第二字(Word1)被添加到共用首部231的第二字。
NF(下个标志)是指示后续有效负载的存在的1-比特标志信息。就是说,当多个界区或对准单元的有效负载被添加到这个分组、并且当这个首部不是用于这个分组中的最近界区或对准单元时,NF的值设置到“1”。
TS(时间戳)是这个分组的有效负载所属的界区的时间戳的最低有效32-比特信息,并且与界区首部171的第二字(Word1)相对应。
注意在图15显示的第三字(从顶部起第三行)指示依次添加到共用首部231的扩展首部。
图16是表示在扩展首部中包括的量化参数信息232的示范结构图。如图16所示,量化参数信息232是包括诸如ET、QP及X之类的信息。扩展首部生成单元204使用从编码单元121供给的界区首部171的第三字(Word2)生成这个量化参数信息232。
ET(扩展类型)是指示扩展首部的内容的5-比特信息。当使用这个量化参数信息232时的指定值是任意的,如“00011”。QP(量化参数)是指示量化系数的值的16-比特信息。X(扩展)是指示是否使用扩展首部的标志。
图17是表示在扩展首部中包括的尺寸信息233的示范结构图。如图17所示,尺寸信息233是包括ET、SS、X等的信息。扩展首部生成单元204使用从编码单元121供给的界区首部171的第四个字(Word3)生成这个尺寸信息233。
ET(扩展类型)是指示扩展首部的内容的5-比特信息。当使用这个尺寸信息233时的指定值是任意的,如“00100”。SS(段尺寸)是26-比特信息,指示以字长计算的段(segment)的有效负载尺寸。X(扩展)是指示是否使用扩展首部的标志。
如图7和图15至图17所示,编码单元121将具有与共用首部231和扩展首部(量化参数信息232和尺寸信息233)相同格式的界区首部171提供到封装处理单元122。相应地,封装处理单元122的共用首部生成单元203和扩展首部生成单元204可容易和迅速地生成共用首部和扩展首部。
图18是表示在扩展首部中包括的格式信息234的示范结构图。格式信息234基本包括诸如ET、FTI、及X之类的信息,如图18中的A所示。扩展首部生成单元204使用例如从编码单元121供给的信息生成这个格式信息234。
ET(扩展类型)是指示扩展首部的内容的5-比特信息。当使用这个格式信息234时的指定值是任意的,如“00101”。FTI(格式类型标识符)是指示关于哪种格式类型写入信息的信息。FTI的值是任意的。例如,当写入Bayer信息时,值“00001”被设置。X(扩展)是指示是否使用扩展首部的标志。
在图18的B中,表示其中写入Bayer信息的情况下格式信息234的示范结构。在这种情况下,格式信息234除ET、FTI、及X之外包括诸如MT、SMT、BLF、VLOF、SSF、EVF、DC、BL、RBL、RVLO、DSS、NSS、及EV之类的信息。
MT(马赛克类型)是指示有效负载的马赛克类型的4-比特信息。SMT(开始马赛克类型)是指示在帧的左上角的第一像素信息的4-比特信息。BLF(黑色级标志)是指示黑色级信息的存在的1-比特标志信息。VLOF(垂直行偏移标志)是指示垂直行校正信息的存在的1-比特标志信息。SSF(快门速度标志)是指示快门速度信息的存在的1-比特标志信息。EVF(EV标志)是指示EV信息的存在的1-比特标志信息。DC(缺陷校正)是指示是否进行缺陷校正的1-比特标志信息。
BL(黑色级)是指示黑色级数值的32-比特标志信息。RBL(修正黑色级)是指示黑色级校正偏移值的32-比特信息。仅当BLF的值是“1”时,BL和RBL才存在。
RVLO(修正垂直行偏移)是指示垂直行校正偏移值的32-比特信息。仅当VLOF的值是“1”时,RVLO才存在。
DSS是指示快门速度分子(APEX单元)的32-比特信息。NSS是指示快门速度分母(APEX单元)的32-比特信息。仅当SSF的值是“1”时,DSS和NSS才存在。
EV是指示EV值的32-比特信息。仅当EVF的值是“1”时,EV才存在。
图19是表示在扩展首部中包括的画面信息235的示范结构图。如图19所示,画面信息235包括诸如ET、PI、CEF、CBD、DL、WF、PDI、SF、FR、AR、DBSZ、FTS、FFVS、SD、HS、VF、FFVTS、TSD、HTS、PXCS、FFVVS、VSD、HVS、BRT、WCF、X、CTS、及WTm之类的信息。画面信息生成单元205使用从编码单元121供给的画面首部172生成这个画面信息235。
就是说,通过将ET添加到第一字(Word0)的空字段(保留)和将WCF和X添加到从编码单元121供给的画面首部172的第六字(Word5)的空字段(保留),获得画面信息235。
ET(扩展类型)是指示扩展首部的内容的5-比特信息。当使用这个画面信息235时的指定值是任意的,如“00010”。WCF(加权定制标志)是指示是否使用加权系数的定制值的1-比特标志信息。仅当WCF的值是“1” 时,CTS才存在。X(扩展)是指示是否使用在这个首部之后的扩展首部的标志。
如图8和图19所示,编码单元121将具有与画面信息235相同格式的画面首部172提供到封装处理单元122。相应地,在封装处理单元122中的画面信息生成单元205可容易和迅速地生成画面信息235。
图20是表示在扩展首部中包括的颜色信息236的示范结构图。如图20所示,颜色信息236包括诸如ET和X之类的信息。扩展首部生成单元204使用从编码单元121供给的信息等生成这个颜色信息236。
ET(扩展类型)是指示扩展首部的内容的5-比特信息。X(扩展)是指示是否使用扩展首部的标志。
封装处理单元122如以上那样在逐个分组的基础上封装编码数据,并且将分组提供到发送单元123。发送单元123经线路110依次将这些分组发送到接收设备103。
按上述格式从发送单元123发送的分组经线路110提供到在接收设备103中的接收单元131。在接收到这些分组时,接收单元131将它们提供到去封装处理单元132。
图21是方块图,表示去封装处理单元132的内部示范结构。如图21所示,去封装处理单元132包括例如分组获取单元251、首部信息分析单元252、控制模式改变单元253、控制单元254、首部提供单元255、数据提供单元256、差错通知单元257、及控制信号提供单元258。
分组获取单元251获得从接收单元131供给的分组。这时,当分组获取单元251获得直到RTP有效负载首部的信息时,分组获取单元251继续获取,并且依次将已获得的信息项提供到首部信息分析单元252。就是说,在有效负载的获取完成之前,分组获取单元251将首部信息提供到首部信息分析单元252。而且,分组获取单元251也将首部信息提供到首部提供单元255,并且也将有效负载提供到数据提供单元256。
首部信息分析单元252分析分组获取单元251获得的RTP分组的首部信息,就是说,RTP首部和有效负载首部,并且将分析结果提供到控制模式改变单元253和控制单元254。
基于从首部信息分析单元252供给的首部信息分析结果,控制模式改变单元253控制该控制单元254的操作模式,并且根据需要改变模式。
以在控制模式改变单元253的控制下改变的控制模式,控制单元254基于从首部信息分析单元252供给的分析结果,控制首部提供单元255、数据提供单元256、差错通知单元257、及控制信号提供单元258的操作。
在控制单元254的控制下,首部提供单元255提取从分组获取单元251供给的有效负载首部中包括的各种信息项,恢复界区首部171和画面首部172,并将界区首部171和画面首部172提供到解码单元133。在控制单元254的控制下,数据提供单元256将从分组获取单元251供给的有效负载数据提供到解码单元133。在控制单元254的控制下,差错通知单元257将差错通知(如分组损失的发生)给解码单元133。在控制单元254的控制下,控制信号提供单元258将除首部和数据之外的各种控制信息项提供到解码单元133。
如图22所示,作为控制单元254的控制模式有四种模式,开始模式301、等待模式302、处理模式303、及损失模式304。基于首部信息分析单元252分析首部信息的结果,控制模式改变单元253找出RTP分组接收状态,并且根据状态将控制单元254的控制模式变到最佳模式。
开始模式301是用来处理全部编码数据的第一分组的模式。在开始去封装过程时,控制单元254设置到这个开始模式301。等待模式302是用来处理界区的头部分组的模式。在处理界区的尾部分组之后,控制单元254被设置到这个等待模式302。处理模式303是用来在没有分组损失发生时,处理不同于界区的头部的每个分组的模式。当没有分组损失发生时,对于不同于界区的头部的每个分组,控制单元254被设置到这个处理模式303。损失模式304是用来处理当差错(如分组损失)发生时界区的剩余分组的模式。当分组损失发生时,控制单元254被设置到这个损失模式304。
以后将描述在每种模式中去封装处理单元132的操作细节。
注意,实际上如图23所示,除数据以外,开始信息、结束信息、VALID信息、属性信息、差错通知等从去封装处理单元132提供到解码单元133。
开始信息是指示界区或对准单元的头部分组的有效负载的信息。当去封装处理单元132将界区或对准单元的头部分组的有效负载提供到解码单元133时,将值“1”设置到这个开始信息。结束信息是指示界区或对准单元的尾部分组的有效负载的信息。当去封装处理单元132将界区或对准单元的尾部分组的有效负载提供到解码单元133时,将值“1”设置到这个结束信息。
属性信息是指示供给的数据是首部还是图像数据、或指示供给的数据是亮度分量的数据还是色度分量的数据的信息。VALID信息是给出数据读取时序的通知的信息。差错通知是将差错发生(如分组损失)通知给解码单元133的信息。
图24是方块图,表示在图1的解码单元133的内部示范结构。如图24所示,解码单元133包括控制信息获取单元351、解码控制单元352、解码处理执行单元353、首部获取单元354、数据获取单元355。差错通知获取单元356、及丢弃处理单元357。
控制信息获取单元351从去封装处理单元132获得诸如开始信息、结束信息、VALID信息、及属性信息之类的控制信息,并且将控制信息提供到解码控制单元352。基于控制信息,解码控制单元352使解码处理执行单元353在预定时序开始解码过程。
基于从去封装处理单元132供给并且由首部获取单元354获得的首部信息,解码处理执行单元353进行对数据获取单元355获得的编码数据的解码过程。解码处理执行单元353如图24所示包括缓冲单元361、熵解码单元362、及子波逆变换单元363。缓冲单元361临时保存从数据获取单元355供给的编码数据,并且根据需要将编码数据提供到熵解码单元362。而且,缓冲单元361临时保存系数数据,其是解码编码数据的结果的并且从熵解码单元362供给,并且根据需要将系数数据提供到子波逆变换单元363。
在解码控制单元352的控制下,熵解码单元362读出在缓冲单元361中保存的编码数据,并且使用与编码单元121的熵编码单元155相对应的方法解码编码数据,以生成系数数据。注意,当在熵编码单元155中 进行量化时,在熵解码单元362进行熵解码过程之后,熵解码单元362额外进行获得系数数据的去量化过程。熵解码单元362将获得的系数数据提供到缓冲单元361,并且使缓冲单元361累计获得的系数数据。
子波逆变换单元363在预定时序读出在缓冲单元361中累计的系数数据,使用与编码单元121的小波变换单元150相对应的方法进行子波逆变换过程,及将获得的基带图像数据作为输出图像数据输出到显示设备104。
首部获取单元354获得从去封装处理单元132供给的诸如界区首部和画面首部之类的首部信息,将它提供到缓冲单元361,并使缓冲单元361保存它。数据获取单元355获得从去封装处理单元132供给的有效负载数据,将它提供到缓冲单元361,并使缓冲单元361保存它。
差错通知获取单元356从去封装处理单元132供给的差错通知,其给出在接收过程等中分组损失发生的通知,并且将它提供到丢弃处理单元357。当丢弃处理单元357获得差错通知时,丢弃处理单元357丢弃在解码处理执行单元353的缓冲单元361中累计的编码数据。就是说,当在分组接收过程中发生分组损失时(基于顺序号确认分组损失的发生时),由于分组损失已发生的当前界区的正常熵解码过程是不可执行的,所以丢弃处理单元357丢弃其中分组损失已发生的当前界区的、累计在缓冲单元361中的全部编码数据。
接下来,将描述每个单元执行的过程流程。首先,参照在图25的流程图将描述在发送设备102的编码单元121执行的编码过程的示范流程。
编码过程开始时,小波变换单元150在步骤S1初始化待处理的界区数值A。在正常情况下,数值A被设置到“1”。当设置结束时,小波变换单元150在步骤S2获得与生成在最低频率子带中从顶部起第A行需要的行数(就是说,一个界区)相当的图像数据。在步骤S3,对于该图像数据,小波变换单元150执行垂直分析滤波过程,其对屏幕垂直方向上布置的图像数据进行分析滤波。在步骤S4,小波变换单元150执行水平分析滤波过程,其进行在屏幕水平方向布置的图像数据的分析滤波。
在步骤S5,小波变换单元150确定分析滤波过程是否已经进行到最 终级。当确定分解级还未达到最终级时,过程返回到步骤S3,并且对于当前分解级重复步骤S3和步骤S4的分析滤波过程。
当在步骤S5确定分析滤波过程已经进行到最终级时,小波变换单元150使过程前进到步骤S6。
在步骤S6,系数重新排序单元153按从低频到高频的顺序重新排序界区A(从画面(帧或场)的顶部起第A界区)的系数。在步骤S7,熵编码单元155在逐行基础上进行系数的熵编码。
当熵编码结束时,熵编码单元155在步骤S8发送界区首部171(图7),并且在步骤S9确定待处理的当前界区是否是画面的头部界区(就是说,A=1)。当确定当前界区是在画面的头部时,过程转到步骤S10,并且熵编码单元155发送画面首部172(图8)。当在步骤S10的处理结束时,过程转到步骤S11。另一方面,当在步骤S9确定待处理的当前界区不是画面的头部界区时,省略在步骤S10的处理,并且过程转到步骤S11。
在步骤S11,熵编码单元155在首部信息之后将界区A中的编码数据发送到外部。
在步骤S12,小波变换单元150使数值A的值增加“1”以使下个界区待处理。在步骤S13,小波变换单元150确定在待处理的界区中是否存在未处理的图像输入行。当确定存在时,过程返回到步骤S2,并且其后的过程对待处理的新界区重复。
按以上重复执行从步骤S2至步骤S13的处理,并且编码每个界区。而且,当在步骤S13确定不存在未处理的图像输入行时,小波变换单元150结束画面的编码过程。对下个画面开始新的编码过程。
在常规小波变换方法的情况下,首先对整个画面进行水平分析滤波过程,并且然后对整个画面进行垂直分析滤波过程。然后,对由此获得的整个低频分量依次进行类似的水平分析滤波过程和类似的垂直分析滤波过程。按以上递归地重复分析滤波过程,直到分解级达到最终级。因此必须将每个分析滤波过程的结果保存在缓冲器中。这时,缓冲器需要保存该时刻在所述分解级滤波整个画面或整个低频分量的结果。这意味着巨大存储器容量是必需的(待保存的数据量巨大)。
而且,在这种情况下,不能进行后续阶段的系数重新排序和熵编码,直到画面的整个小波变换结束,并且延迟时间增加。
相反,在编码单元121的小波变换单元150的情况下,如以上已经描述的那样,在逐个界区的基础上连续进行垂直分析滤波过程和水平分析滤波过程直到最终级。因而,与常规方法相比,一次(同时)需要保存(缓冲)的数据量很小,并且应该准备的缓冲器的存储器量可显著地减小。而且,由于分析滤波过程进行到最终级,所以后续阶段的诸如系数重新排序和熵编码之类的处理也可进行(就是说,可在逐个界区的基础上进行系数重新排序和熵编码)。因此,与常规方法相比,可显著减少延迟时间。
而且,由于熵编码单元155将在逐个界区基础上的界区首部171和在逐个画面基础上的画面首部172,与编码数据一起,提供到封装处理单元122,所以封装处理单元122可容易生成首部信息。而且,由于界区首部171和画面首部172的格式类似于封装处理单元122添加到分组上的有效负载首部的格式,所以封装处理单元122可更容易生成首部信息。
进一步,当编码因为某种原因失败时,熵编码单元155设置界区首部171的IF,由此指示界区或对准单元是未编码的界区或对准单元。通过参考这个IF,封装处理单元122可容易地制止封装、且发送不可解码的不必要数据到接收设备103
接下来,参照在图26的流程图描述封装处理单元122进行的封装过程的示范流程。
在步骤S31,在封装处理单元122的数据获取单元201确定界区首部171是否获得,并保持等待,直到确定获得界区首部171。当确定获得从数据获取单元201供给的界区首部171时,过程转到步骤S32。
在步骤S32,RTP首部生成单元202生成RTP首部221。在步骤S33,共用首部生成单元203基于界区首部171生成共用首部231。这时,共用首部生成单元203将SFF、M、TSF、及NF字段添加到界区首部171的第一字(Word0)。
在步骤S34,扩展首部生成单元204基于界区首部171生成扩展首部,如量化参数信息232、尺寸信息233、格式信息234、及颜色信息236。
在步骤S35,画面信息生成单元205确定是否获得画面首部172。当确定获得画面首部172时,过程转到步骤S36。在步骤S36,画面信息生成单元205参考画面首部172,并且确定w的值是否是“1”。当确定w的值是“1”时,在步骤S37,画面信息生成单元205将加权表(WTm)也包括在画面信息中从而被封装。当在步骤S37的处理结束时,过程转到步骤S39。
可替换地,当在步骤S36确定w的值是“0”时,画面信息生成单元205在步骤S38从画面信息删除加权表(WTm)。当在步骤S38的处理结束时,过程转到步骤S39。
进一步,当在步骤S35确定没有获得画面首部时,过程转到步骤S39。
在步骤S39,标志检查单元206确定在界区首部171中IF的值是否是0。当确定在界区首部171中IF的值是0时,过程转到步骤S40。
在步骤S40,尺寸检查单元207确定界区的数据尺寸是否大于分组的有效负载的最大尺寸(分组尺寸)。
当确定界区的尺寸大于分组尺寸时,过程转到步骤S41。在步骤S41,片段处理单元208以分组尺寸为单位分割一个界区中的编码数据,以生成彼此不同的有效负载。当在步骤S41的处理结束时,过程转到步骤S43。
可替换地,当在步骤S40确定界区的数据尺寸不大于分组尺寸时,片段处理单元208不分割编码数据。就是说,这种情况下,省略在步骤S41的处理,并且过程转到步骤S43。
进一步,当在步骤S39未确定“IF=0”时,过程转到步骤S42。在步骤S42,数据获取单元201在标志检查单元206的控制下,丢弃供给的编码数据。当在步骤S42的处理结束时,过程转到步骤S43。
在步骤S43,封装单元209使用每个有效负载和首部信息生成RTP分组,并且在步骤S44,对每个分组设置诸如SFF和M之类的标志信息。
以上设置标志信息的每个项时,输出单元210将对应的RTP分组发送到发送单元123。
在步骤S45,数据获取单元201确定是否处理所有界区。当确定未处理的界区存在时,过程返回到步骤S31,并且重复其后的过程。可替 换地,当在步骤S45确定所有界区都被处理时,封装过程结束。
如以上那样,封装处理单元122基于从编码单元121供给的首部信息可容易地生成共用首部和扩展首部。
而且,如以上已经描述的那样,在步骤S36至步骤S38,画面信息生成单元205基于在界区首部171中的w的值可容易和迅速地控制加权表的添加。就是说,画面信息生成单元205仅简单地通过检查在界区首部171中的w的值,才在需要时适当添加加权表。相应地,可抑制从发送设备102传送到接收设备103的数据量的不必要增加和每个单元上的负载的不必要增加。
进一步,如以上已经描述的那样,当在界区首部171中IF的值在步骤S39中是“1”时,标志检查单元206在步骤S42控制数据获取单元201,从而不获得编码数据并且不把有效负载添加到分组。就是说,在这种情况下,从封装处理单元122输出的RTP分组仅包括首部信息,而不包括有效负载。相应地,封装处理单元122通过简单地参考从编码单元121供给的界区首部171可容易和迅速地减少不可解码的不必要数据的发送,并且可抑制在发送单元123、线路110、接收设备103等上的负载的不必要增加。
而且,如以上已经描述的那样,当尺寸检查单元207在步骤S40基于界区首部171确定界区的尺寸是否大于分组尺寸时,封装处理单元122可容易和迅速地确定是否分段一个界区的编码数据而不累计它。
进一步,在步骤S44,封装单元209对界区的头部分组设置共用首部231中的SFF标志,并且对界区的尾部分组设置共用首部231中的M标志。由于这些标志被设置,所以接收设备103的去封装处理单元132简单地通过参考首部信息可容易地识别界区的头部和界区的末端。相应地,去封装处理单元132可迅速和容易地进行去封装过程,如以后将描述的那样。
进一步,这时,由于共用首部231中的IF标志已经被设置,所以在接收设备103的去封装处理单元132简单地通过参考首部信息可容易地识别分组不包括有效负载。相应地,去封装处理单元132可迅速和容易 地进行去封装过程,如以后将描述的那样。
接下来,将描述由接收分组的接收设备103的去封装处理单元132执行的过程。如以上已经描述的那样,去封装处理单元132以四种控制模式进行去封装过程。在开始去封装过程时,去封装处理单元132设置到开始模式301。
首先,参照在图27的流程图将描述在开始模式301中去封装处理单元132执行的开始模式过程的示范流程。
在步骤S61,分组获取单元251确定是否获得分组,并且保持等待直到确定经接收单元131获得分组。当确定获得分组时,过程转到步骤S62。在步骤S62,首部信息分析单元252获得分组的首部信息,并且确定是否“PID=0”、“CF=4”、及“SFF=1”。就是说,首部信息分析单元252确定分组是否是在界区的头部的界区第一分组并且包括一组多个分量。当确定不是“PID=0”、“CF=4”、及“SFF=1”时,过程返回步骤S61,并且重复其后的过程。就是说,重复在步骤S61的处理和在步骤S62的处理,直到确定“PID=0”、“CF=4”、及“SFF=1”。当确定“PID=0”、“CF=4”、及“SFF=1”时,过程转到步骤S63。
在步骤S63,控制单元254执行模式共用过程,其是界区的头部分组的去封装过程,其在每个模式中执行,如以后将描述的那样。以后将描述模式共用过程的细节。当模式共用过程结束时,控制模式被变到另一模式,并因此,开始模式过程结束。
如以上那样,在开始模式中,控制单元254简单地通过参考在共用首部231中的SFF的值可容易地检测界区的头部分组,其在画面的头部。而且,通过检测在画面头部的界区的头部分组,控制单元254可在该时刻开始模式共用过程,并且开始从界区提取有效负载。就是说,控制单元254可找出新界区而不用检查界区的尾部分组。因而,有效负载提取开始时序能够更早,并且可减小延迟时间。
接下来,参照在图28的流程图将描述在图27的步骤S63中执行的模式共用过程的示范流程。这个模式共用过程,如以后将描述的那样,也是其它模式中执行的过程。当去封装处理单元132还未检查到前一界 区的尾部分组,但已经检查到新界区的头部分组时,去封装处理单元132进行该界区的去封装过程。
因此,模式共用过程在分组获取单元251已经获得分组的状态下开始。
当模式共用过程开始时,在步骤S82,首部信息分析单元252参考共用首部231,并且确定是否“IF=0”。当确定“IF=1”时,过程转到步骤S83。
当确定“IF=1”时,控制单元254在步骤S83控制首部提供单元255和数据提供单元256,并且使它们仅将分组的首部部分传送到解码单元133。在IF=1的情况下,基本上分组不包括有效负载。即使分组包括有效负载,有效负载也是不可解码的。因而,控制单元254控制数据提供单元256,并且禁止有效负载的传送。
当在步骤S83的处理结束时,控制模式改变单元253在步骤S84将控制模式变到等待模式以等待下个界区的头部分组。等待模式中的过程将在以后描述。当控制模式改变时,模式共用过程结束。
当在步骤S82确定“IF=0”时,过程转到步骤S85。在这种情况下,有效负载的编码数据是正常的编码数据。在步骤S85,在控制单元254控制下首部提供单元255将界区首部的四个字传送到解码单元133。
在步骤S86,首部信息分析单元252参考共用首部231,并且确定是否“PID=0”和“CF=4”。当确定“PID=0”和“CF=4”时,过程转到步骤S87。在步骤S87,首部信息分析单元252参考共用首部231,并且确定是否“w=1”。当确定“w=1”时,过程转到步骤S88,并且在控制单元254控制下首部提供单元255将画面首部172的26个字传送到解码单元133,从而也包括加权表。当在步骤S88的处理结束时,过程转到步骤S90。
可替换地,当在步骤S87确定不是“w=1”时,过程转到步骤S89,并且在控制单元254控制下首部提供单元255仅将画面首部172的六个字传送到解码单元133,从而也不包括加权表。当在步骤S89的处理结束时,过程转到步骤S90。
可替换地,当在步骤S86未确定“PID=0”和“CF=4”时,这个界区不是在画面头部的界区。因而,在控制单元254控制下首部提供单元255不将画面首部172传送到解码单元133。因此,在这种情况下,过程转到步骤S90。
在步骤S90,在控制单元254控制下数据提供单元256将分组的剩余有效负载,就是说编码数据,传送到解码单元133。在步骤S91,首部信息分析单元252参考共用首部231,并且确定是否“M=1”。当“M=1”并且确定待处理的分组是界区的尾部分组时,过程转到步骤S92,并且在控制模式改变单元253控制下控制单元254将控制模式变到等待模式。就是说,由于尾部分组的处理已经结束,所以将控制模式变到等待模式以等待下个界区的头部分组。当控制模式改变时,模式共用过程结束。
可替换地,当在步骤S91确定不是“M=1”并且待处理的分组不是界区的尾部分组时,过程转到步骤S93,并且在控制模式改变单元253控制下控制单元254将控制模式变到处理模式。就是说,由于不是尾部分组的该分组的传送处理已经正常结束,所以将控制模式变到等待同一界区的后续分组的处理模式。当控制模式改变时,模式共用过程结束。当在图27的步骤S63执行模式共用过程时,随着模式共用过程终止,过程返回到图27的步骤S63,并且结束所述开始模式过程。
如以上那样,去封装处理单元132基于SFF和M的值可容易地辨别界区的头部分组和尾部分组。而且,由于去封装处理单元132可基于M辨别尾部分组,所以去封装处理单元132在逐个界区的基础上可容易和适当改变模式。相应地,去封装处理单元132可适当进行每个界区的去封装过程。进一步,由于去封装处理单元132基于SFF可辨别头部分组,所以去封装处理单元132可找出界区的更新而不用检查尾部分组。就是说,例如,即使当分组损失发生时,就是说即使当获得分组的顺序号与最近获得分组的顺序号不连续时,如果该分组是新界区的头部分组,则去封装处理单元132能够开始从新界区的分组提取有效负载,而不用等待下个界区。就是说,去封装处理单元132可减少不必要等待时间。不用说,由于去封装处理单元132不仅在开始模式、而且在处理模式和损失模式中执行模式共用过程时都可减少等待时间,所以可实现减少延迟 时间。
而且,如在步骤S83那样,去封装处理单元132简单地通过参考共用首部231可容易地制止将不可解码的不必要有效负载提供到解码单元133。相应地,可减轻在解码单元133上解码过程的负载。注意,由于在解码过程中可使用首部信息,所以控制单元254仅传送首部信息。
接下来,参照在图29的流程图将描述等待模式过程的示范流程。等待模式过程是在等待下个界区的头部分组的模式中的过程。当控制模式由控制模式改变单元253改变到等待模式时,等待模式过程开始。
当等待模式过程开始时,分组获取单元251在步骤S111确定是否接收到分组,并且保持等待直到确定接收到分组。当分组从接收单元131供给并且确定接收到分组时,过程转到步骤S112。
在步骤S112,首部信息分析单元252参考RTP首部221,并且确定顺序号是否与最近接收分组连续。当顺序号与最近接收分组不连续时,指示分组接收已经失败(分组损失已经发生)。当顺序号与最近接收分组连续时,并且当确定没有分组损失发生时,过程转到步骤S113。
在步骤S113至步骤S122的每种处理与参照图28描述的模式共用过程的步骤S82和步骤S83、步骤S85至步骤S91及步骤S93的每种处理相类似地执行。
就是说,在步骤S113的处理与步骤S82相对应,并且在步骤S114的处理与步骤S83相对应。注意,在等待模式过程的情况下,由于模式已经是等待模式,所以省略与图28的步骤S84相对应的处理,并且过程转到步骤S111(这等效于将模式改变到等待模式并且开始在图28的等待模式过程)。
而且,步骤S115至步骤S121分别与图28的步骤S85至步骤S91相对应。注意,在等待模式过程的情况下,由于模式已经是等待模式,所以当在步骤S121确定“M=1”时,省略与图28的步骤S92相对应的处理,并且过程转到步骤S111(这等效于将模式改变到等待模式并且开始在图28的等待模式过程)。
注意,当在步骤S121确定不是“M=1”时,过程转到步骤S122。在步骤S122的这种处理与图28的步骤S93的处理相对应。当控制模式改变单元253将控制模式改变到处理模式时,等待模式过程结束。
可替换地,当在步骤S112确定顺序号与最近接收分组不连续并且分组损失已经发生时,过程转到步骤S123。
在步骤S123,首部信息分析单元252参考共用首部231,并且确定是否“SFF=1”。当确定“SFF=1”时,过程返回到步骤S113,并且重复其后的过程。由于在逐个界区的基础上进行解码过程,所以如果在界区中没有分组损失发生,则该界区是可解码的。就是说,当“SFF=1”时,指示分组损失没有出现在待处理的当前分组所属的界区中,而是在过去的界区中。另外,在等待模式的情况下,完成使用解码单元133在过去界区中的编码数据的累计。因此,即使当分组损失发生时,如果新获得的分组是新界区的头部分组,则忽略该分组损失,并且过程返回到步骤S113。
当在步骤S123确定不是“SFF=1”时,过程转到步骤S124。在这种情况下,分组损失出现在与待处理的分组相同的界区中。因此,这个界区是不可解码的,并因此,取消有效负载的传送。就是说,在步骤S124,在控制单元254控制下数据提供单元256丢弃接收的分组而不将它传送到解码单元133。
如以上已经描述的那样,由于模式是等待模式,完成使用解码单元133在过去界区中的编码数据的累计,并且新界区的编码数据还未累计。因此,在这种情况下,由于解码单元133不必丢弃所述数据,所以去封装处理单元132不必将差错通知给解码单元133。
在步骤S125,在控制模式改变单元253控制下控制单元254在发生差错的界区中,将控制模式改变到损失模式,其是等待要获得的下个界区的分组的模式。当控制模式变到损失模式时,等待模式过程结束。
如以上那样,去封装处理单元132基于SFF和M的值可容易地在等待模式中识别界区的头部分组和尾部分组。而且,由于去封装处理单元132基于M可识别尾部分组,所以去封装处理单元132可在逐个界区的基础上容易和适当改变模式。相应地,去封装处理单元132可适当进行 每个界区的去封装过程。进一步,由于去封装处理单元132基于SFF可识别头部分组,所以去封装处理单元132可找出界区的更新而不用检查尾部分组。就是说,例如,即使当分组损失发生时,就是说即使当获得分组的顺序号与最近获得分组的顺序号不连续时,如果该分组是新界区的头部分组,则去封装处理单元132也可开始从新界区的分组提取有效负载而不用等待下个界区。就是说,去封装处理单元132可减少不必要的等待时间。
接下来,参照在图30的流程图将描述处理模式过程的示范流程。这个处理模式过程是等待在相同界区中的后续分组的模式中的过程。当控制模式由控制模式改变单元253变到处理模式时,处理模式过程开始。
当处理模式过程开始时,分组获取单元251在步骤S141确定是否接收到分组,并且保持等待直到确定接收到分组。当分组从接收单元131供给并且确定接收到分组时,过程转到步骤S142。
在步骤S142,首部信息分析单元252参考RTP首部221,并且确定是否顺序号与最近接收分组连续。当顺序号与最近接收分组连续并且当确定没有分组损失发生时,过程转到步骤S143。
在步骤S143,在控制单元254控制下首部提供单元255从分组中删除共用首部231。在步骤S144,在控制单元254控制下数据提供单元256将剩余有效负载数据传送到解码单元133。在步骤S145,首部信息分析单元252参考共用首部231,并且确定是否“M=1”。当确定不是“M=1”并且分组不是界区的尾部分组时,在同一界区中存在后续分组。因而,过程返回到步骤S141,并且重复其后的过程。
就是说,在重复步骤S141至步骤S145的过程的同时,从界区的每个分组提取有效负载并且传送到解码单元133。
当在步骤S145确定“M=1”并且待处理的分组是界区的尾部分组时,过程转到步骤S146,并且在控制模式改变单元253控制下控制单元254将控制模式改变到等待模式。当控制模式改变到等待模式时,处理模式过程结束。
可替换地,当在步骤S142确定顺序号与最近接收分组不连续并且分 组损失已经发生时,过程转到步骤S147。
在这种情况下,由于该界区中的数据正在累计到解码单元133,在步骤S147,在控制单元254控制下差错通知单元257将传送差错的通知给解码单元133。
当差错通知结束时,在步骤S148,首部信息分析单元252参考共用首部231,并且确定是否“SFF=1”。当确定“SFF=1”时,过程转到步骤S149。在步骤S149,控制单元254执行参照在图28的流程图描述的模式共用过程。在这种情况下,当模式共用过程结束时,过程返回到在图30的步骤S149,并且处理模式过程结束。
可替换地,当在步骤S148确定不是“SFF=1”时,过程转到步骤S150,并且在控制单元254控制下数据提供单元256丢弃接收的分组。在步骤S151,在控制模式改变单元253控制下控制单元254将控制模式改变到损失模式。当控制模式改变到损失模式时,处理模式过程结束。
如以上那样,去封装处理单元132基于SFF和M的值可容易地在处理模式中识别界区的头部分组和尾部分组。而且,由于去封装处理单元132基于M可识别尾部分组,所以去封装处理单元132可在逐个界区的基础上容易和适当改变模式。相应地,去封装处理单元132可适当进行每个界区的去封装过程。进一步,由于去封装处理单元132基于SFF可识别头部分组,所以去封装处理单元132可找出界区的更新而不用检查尾部分组。
例如,当没有分组损失发生时,去封装处理单元132从连续供给的各个分组提取有效负载,基于M的值检查尾部分组,当确定该界区的处理结束时,将模式变到等待模式。当分组损失发生时,去封装处理单元132将差错通知给解码单元133。当分组不是头部分组时,该分组被丢弃。模式被变到损失模式,从而过程等待要检查的下个界区的分组。注意,当“SFF=1”时,就是说,当在检查分组损失时获得的分组是新界区的头部分组时,去封装处理单元132执行模式共用过程,从而不将模式改变到等待模式或损失模式,就是说不用等待新界区中的分组,去封装处理单元132可开始从该界区提取有效负载。因而,使有效负载提取开始时 序更早,并且可减少延迟时间。
接下来,参照图31的流程图将描述损失模式过程的示范流程。这个损失过程是在当分组损失出现在相同界区中时,等待接收下个界区中的分组的模式中的过程。当控制模式由控制模式改变单元253改变到损失模式时,损失模式过程开始。
当损失模式过程开始时,分组获取单元251在步骤S171确定是否接收到分组,并且保持等待直到确定接收到分组。当分组从接收单元131供给并且确定接收到分组时,过程转到步骤S172。
在步骤S172,首部信息分析单元252参考共用首部231,并且确定是否“SFF=1”。当确定不是“SFF=1”并且分组不是界区的头部分组时,过程转到步骤S173,并且首部信息分析单元252现在确定是否“M=1”。当确定不是“M=1”时,就是说当确定包不是界区的尾部分组时,过程返回步骤S171,并且重复其后的过程。
当在步骤S173确定“M=1”时,过程转到步骤S174,并且在控制模式改变单元253控制下控制单元254将控制模式变到等待模式。当控制模式变到等待模式时,损失模式过程结束。
可替换地,当在步骤S172确定“SFF=1”时,控制单元254执行参照在图28的流程图描述的模式共用过程。在这种情况下,当模式共用过程结束时,过程返回到在图31的步骤S175,并且损失模式过程结束。
就是说,去封装处理单元132基于SFF和M的值也可容易地在损失模式中识别界区的头部分组和尾部分组。而且,由于去封装处理单元132基于M可识别尾部分组,所以去封装处理单元132可在逐个界区的基础上容易和适当改变模式。相应地,去封装处理单元132可适当进行每个界区的去封装过程。进一步,由于去封装处理单元132基于SFF可识别头部分组,所以去封装处理单元132可找出界区的更新而不用检查尾部分组。
在损失模式的情况下,去封装处理单元132在获得分组时基本在等待。当基于M的值检测到尾部分组时,将模式变到等待模式,并且去封装处理单元132为获得下个界区的头部分组作好准备。而且,当基于SFF 的值检测到头部分组时,去封装处理单元132执行模式共用过程,由此开始从该界区提取有效负载。
相应地,去封装处理单元132可使有效负载提取开始时序更早并减少延迟时间。
通过根据以上情形切换控制模式时进行去封装过程,使用所提供的去封装缓冲器,去封装处理单元132基于供给分组的首部信息可适当进行连续处理,而不用在逐个界区的基础上累计分组。去封装处理单元132可容易和迅速地进行去封装过程。而且,当分组损失发生时,去封装处理单元132根据需要给出差错通知。因而,解码单元133可制止执行不必要的解码过程,并且减轻解码过程的负载。
进一步,在IF值的基础上,去封装处理单元132可容易地制止将不可解码的不必要的有效负载提供到解码单元133。相应地,可减轻在解码单元133的解码过程的负载。
解码单元133如以上那样响应于去封装处理单元132进行的处理,进行从去封装处理单元132供给的编码数据的解码过程。因此,解码单元133执行解码控制过程以控制解码过程的执行。参照在图32的流程图将描述解码控制过程的示范流程。这个解码控制过程从编码数据的供给开始时到编码数据的供给结束时执行。
在步骤S191,数据获取单元355获得从去封装处理单元132供给的编码数据。在步骤S192,缓冲单元361累计编码数据。在步骤S193,控制信息获取单元351获得控制信息。在步骤S194,解码控制单元352基于控制信息获取单元351获得的控制信息,确定由数据获取单元355获得的数据是否是界区的头部分组的有效负载。当确定数据是界区的头部分组的有效负载时,过程转到步骤S195。在步骤S195,解码控制单元352基于控制信息获取单元351获得的控制信息,确定数据获取单元355获得的、在缓冲单元361中累计的数据项是否是连续的。当确定没有分组损失发生并且数据获取单元355获得的、在缓冲单元361中累计的数据项是连续的时,过程返回到步骤S191,对下个编码数据项重复从步骤S191起的过程。
可替换地,当在步骤S195确定分组损失发生并且数据项不是连续的时,过程转到步骤S196。在步骤S196,解码控制单元352控制熵解码单元362开始补充过程。熵解码单元362在逐个界区的基础上进行解码过程。当界区的数据缺少时,熵解码单元362使用另一个界区等的数据进行补充过程。
因此,当解码控制单元352获得与最近获取单元不连续的头部分组时,解码控制单元352控制熵解码单元362执行最近界区的补充过程。当补充过程结束时,过程转到步骤S197。
在步骤S197,解码控制单元352确定是否结束解码控制过程。当确定不结束解码控制过程时,过程返回到步骤S191,并且重复其后的过程。可替换地,当在步骤S197确定结束解码控制过程时,解码控制过程结束。
可替换地,当在步骤S194确定数据获取单元355获得的数据不是界区的头部分组的有效负载时,过程转到步骤S198,并且解码控制单元352确定数据获取单元355获得的数据是否是界区的尾部分组的有效负载。当确定数据是界区的尾部分组的有效负载时,过程转到步骤S199,并且解码控制单元352控制熵解码单元362开始在缓冲单元361中累计的编码数据的解码过程。当在步骤S199的处理结束时,过程返回到步骤S197。
可替换地,当在步骤S198确定数据获取单元355获得的数据不是界区的尾部分组的有效负载时,过程返回到步骤S197。
接下来,参照在图33的流程图将描述在图32的步骤S199中开始的解码过程的示范流程。这个解码过程由图32的解码控制过程控制,并且在逐个界区的基础上执行。
当解码过程开始时,熵解码单元362在步骤S211获得在缓冲单元361中累计的编码数据,并且在步骤S212在逐行基础上进行编码数据的熵解码。在步骤S213,缓冲单元361保存解码的获得的系数数据。在步骤S214,子波逆变换单元363确定与一个界区相当的系数数据是否累计在缓冲单元361中。当确定与一个界区相当的系数数据没有累计在缓冲单元361中时,过程返回到步骤S211,执行其后的过程。子波逆变换单元363保持等待,直到与一个界区相当的系数数据累计在缓冲单元361 中。
当在步骤S214确定与一个界区相当的系数数据累计在缓冲单元361中时,子波逆变换单元363使过程前进到步骤S215,并且读出与保存在缓冲单元361中的与一个界区相当的系数数据。
然后,对读出的系数数据,子波逆变换单元363在步骤S216执行垂直合成滤波过程,其进行在屏幕垂直方向布置的系数数据的合成滤波过程,并且在步骤S217执行水平合成滤波过程,其进行在屏幕水平方向布置的系数数据的合成滤波过程。在步骤S218,确定合成滤波过程是否完成到级1(分解级的值是“1”的情况下的级),就是说,是否逆变换进行到在小波变换之前的状态。当确定级未达到级1时,过程返回到步骤S216,并且重复步骤S216和步骤S217中的滤波过程。
当在步骤S218确定逆变换过程完成到级1时,子波逆变换单元363使过程前进到步骤S219,并且将通过进行逆变换过程获得的图像数据输出到外部。
在步骤S220,熵解码单元362确定是否结束解码过程。当确定不结束解码过程时,过程返回到步骤S211,并且重复其后的过程。可替换地,当由于界区结束等在步骤S220确定结束解码过程时,熵解码单元362结束解码过程。
在常规子波逆变换方法的情况下,首先对于待处理的分解级的全部系数在屏幕水平方向进行水平合成滤波过程,并且然后对于待处理的分解级的全部系数在屏幕垂直方向进行垂直合成滤波过程。就是说,每次进行每个合成滤波过程时,必须将合成滤波过程的结果保存在缓冲器。这个时候,缓冲器需要保存该时刻在该分解级的合成滤波结果和下个分解级的所有系数。这意味着巨大存储器容量是必需的(要保存的数据量巨大)。
而且,在这种情况下,不进行图像数据输出,直到在画面(交织系统的情况下的场)中的全部子波逆变换结束,因此从输入到输出的延迟时间增加。
相反,在解码单元133的子波逆变换单元363的情况下,如以上已经描述的那样,垂直合成滤波过程和水平合成滤波过程在逐个界区的基础上被连续进行直到级1。因而,与常规方法相比,一次(同时)需要缓冲的数据量很小,并且应该准备的缓冲器的存储器的量可显著减小。而且,由于合成滤波过程(子波逆变换过程)进行到级1,所以在获得界区中的整个图像数据之前可依次输出图像数据项(在逐个界区的基础上),并且与常规方法相比可显著减少延迟时间。
接下来,参照在图34的流程图将描述差错通知处置过程的示范流程,该差错通知处置过程是响应于来自去封装处理单元132的差错通知的过程,并且在解码单元133中与图32的解码控制过程并行进行。
在图34,当差错通知处置过程开始时,差错通知获取单元356在步骤S241确定是否从去封装处理单元132获得差错通知。过程在等待,直到确定获得差错通知。当在步骤S241确定获得差错通知时,过程转到步骤S242。在步骤S242,丢弃处理单元357确定当前正在接收的界区(编码数据属于其中出现分组损失的最近界区)在缓冲单元361中是否存在。
当确定当前正接收的界区在缓冲单元361中存在时,过程转到步骤S243。在步骤S243,丢弃处理单元357丢弃正在接收的累计在缓冲单元361中的数据片(slice)。当步骤S243的处理结束时,过程转到步骤S244。可替换地,当在步骤S242确定当前正接收的数据片在缓冲单元361中不存在时,省略在步骤S243的处理,并且过程转到步骤S244。
在步骤S244,丢弃处理单元357确定是否结束差错通知处置过程。当去封装过程继续并且确定不结束差错通知处置过程时,过程返回到步骤S241,并且重复其后的过程。可替换地,当在步骤S244确定结束差错通知处置过程时,差错通知处置过程结束。
如以上那样,由于解码单元133响应来自去封装处理单元132的差错通知而丢弃其中出现分组损失的编码数据片,解码单元133可设置成不进行不必要解码过程。由于如以上那样可进行适当解码过程,所以解码单元133可容易和迅速地进行解码过程。可减轻解码过程的负载,并且可降低电路尺寸和成本。
去封装处理单元132进行的差错通知的示范方式表示在图35。
在图35,假定去封装处理单元132和解码单元133经六根信号线彼此连接。去封装处理单元132将通过从接收分组1删除RTP首部等提取的编码数据(Data1)提供到解码单元133。这时,当编码数据(Data1)在新片的头部时,在控制单元254控制下,去封装处理单元132中的控制信号提供单元258给出开始信息(START)的通知。
当下个到达分组是分组5时,确定有分组损失。这时,由于Data1(是界区的一部分)已经传输到解码单元133,所以在控制单元254控制下,去封装处理单元132中的差错通知单元257进行差错通知。而且,由于分组5是“SFF=1”,所以在控制单元254控制下,去封装处理单元132的控制信号提供单元258给出开始信息(START)的通知。
注意,如以上已经描述的那样,当界区的数据尺寸大于分组尺寸时,封装处理单元122通过分割所述数据生成多个分组,否则,封装处理单元122如以上那样生成一个分组。可替换地,当界区的数据尺寸小于分组尺寸时,多个界区中的数据项可以组成一个分组。
在这种情况下,有效负载首部的结构是这样的,如图36所示,依次布置首部信息和有效负载。在图36的例子的情况下,在共用首部231至有效负载237(是第一界区中的数据项)之后,配置段信息431、量化参数信息432、尺寸信息433、格式信息434、画面信息435、颜色信息436及有效负载437。此后,布置在第三界区中的数据项等。
段信息431是第二界区的共用首部,如图37所示,基本上包括与共用首部231类似的信息。就是说,段信息431基于界区首部171生成。注意,当在另一界区中的数据在这个界区之后存在时,共用首部231中(类似地在段信息431中)的NF的值设置到“1”。
参照在图38的流程图将描述在这种情况下封装过程的示范流程。
如图38所示,这种情况下的封装过程也基本上与参照图26描述的情况相类似地执行。在步骤S301至步骤S312的每种处理与在图26的步骤S31至步骤S42的每种处理相类似地执行,并且在步骤S315至步骤S317的每种处理与在图26的步骤S43至步骤S45的每种处理相类似地执行。
注意,当在步骤S310确定界区的尺寸不大于分组尺寸时,封装处理单元122的尺寸检查单元207确定新的有效负载是否可添加到相同分组上。当确定分组大小有一些空间并且相应地可添加有效负载时,过程转到步骤S314,并且数据获取单元201确定是否获得界区首部,并保持等待直到确定获得界区首部。当确定获得界区首部时,过程返回到步骤S303,并且对于待添加到该分组上的界区重复之后的过程。就是说,重复从步骤S303至步骤S310、步骤S313、及步骤S314的循环过程,由此依次将界区添加到相同分组上,直到编码数据的总数据尺寸变得大于分组尺寸。
注意,当步骤S313确定有效负载不能添加到分组时,过程返回到步骤S315,并且执行其后的过程。就是说在这种情况下,用一个界区中的编码数据生成一个分组。
通过如以上那样进行封装过程,多个界区的数据可包括在一个分组中。
如以上图1显示的传输系统100的各单元执行的各种过程被适当并行执行,如图39所示。
图39是表示由图1显示的传输系统100的各单元执行过程的各元件的并行操作例子的概况图。这个图39与上述的图6相对应。第一小波变换WT-1(在图39中的B)在小波变换单元150(图2)应用于图像数据的输入In-1(在图39中的A)。如参照图5已经描述的那样,这个第一小波变换WT-1在输入最初三行的时刻开始,并且生成系数C1。就是说从图像数据输入In-1直到小波变换WT-1开始发生与三行相当的延迟。
生成的系数数据被存储在系数重新排序缓冲单元152(图2)中。随后,小波变换应用于输入图像数据,完成第一过程时,过程直接转到第二小波变换WT-2。
与用于第二小波变换WT-2的图像数据输入In-2和第二小波变换WT-2的过程相并行地,三个系数C1、系数C4、及系数C5的重新排序ord-1由系数重新排序单元153(图2)执行(在图39中的C)。
注意,从完成小波变换WT-1到重新排序ord-1开始的延迟是基于设备或系统构造的延迟,如传输控制信号以指令系数重新排序单元153进行重新排序所涉及的延迟、系数重新排序单元153响应于控制信号而开始过程所需要的延迟、以及程序处理需要的延迟,并且不是编码过程中涉及的基本延迟。
系数数据项被从系数重新排序缓冲单元152读出,按照它们结束被重新排序并提供到熵编码单元155(图2)的顺序,并且进行其熵编码EC-1(在图39中的D)。这个熵编码EC-1可开始而无需等待所有三个系数C1、系数C4、及系数C5的重新排序的完成。例如,基于首先输出的系数C5的一行的重新排序完成的时刻,可开始系数C5的熵编码。在这种情况下,从重新排序Ord-1过程开始到熵编码EC-1过程开始的延迟与一行相当。
预定信号处理施加到已完成熵编码单元155的熵编码EC-1的编码数据上,并且然后经线路110传输到接收设备103(在图39中的E)。这时,编码数据被封装和传输。
在第一过程输入与七行相当的图像数据之后,直到屏幕下端行的图像数据项被依次输入到发送设备102的编码单元121。根据图像数据的输入In-n(n是2或更大),编码单元121对每四行进行小波变换WT-n、重新排序Ord-n及熵编码EC-n,如上述的那样。对六行在编码单元121中响应于最近过程进行重新排序Ord和熵编码EC。这些过程在编码单元121并行进行,如图39的A至图39的D所示那样。
用熵编码EC-1由编码单元121编码的编码数据的分组被传输到接收设备103,被去封装处理等,并且随后提供到解码单元133。解码单元133的熵解码单元362依次对提供到其的利用熵编码EC-1编码的编码数据进行熵编码的解码iEC-1,并且恢复系数数据(在图39中的F)。恢复的系数数据项依次存储在缓冲单元361中。当与进行逆小波变换所需要的一样多的系数数据项存储在缓冲单元361中时,子波逆变换单元363从缓冲单元361读出系数数据,并且利用读出的系数数据进行子波逆变换iWT-1(在图39中的G)。
如参照图5已经描述的那样,在系数C4和系数C5被存储在缓冲单 元361时,可开始子波逆变换单元363进行的子波逆变换iWT-1。因此,从熵解码单元362进行解码iEC-1开始到子波逆变换单元363进行子波逆变换iWT-1开始的延迟等效于两行。
当在子波逆变换单元363中完成与第一小波变换的三行相当的子波逆变换iWT-1时,用子波逆变换iWT-1生成的图像数据的输出Out-1执行(在图39中的H)。在输出Out-1,如使用图5和6已描述那样,输出第一行的图像数据。
在编码单元121进行的第一过程输入与三行相当的编码系数数据之后,利用熵编码EC-n(n是2或更大)编码的系数数据项被依次输入到解码单元133。解码单元133对每四行进行输入系数数据的熵解码iEC-n和子波逆变换iWT-n,并且依次进行子波逆变换iWT-n恢复的图像数据的输出Out-n,如以上已经描述那样。对六行进行响应于编码单元121进行的最近时间的熵解码iEC和子波逆变换iWT,并且输出Out输出八行。这些过程在解码单元133并行进行,如在图39的F至图39的H中表明的那样。
通过如以上已经描述那样,按照从屏幕的上部部分到下部部分的顺序并行地在编码单元121和解码单元133进行各个过程,能以较短的延迟进行图像压缩过程和图像解码过程。
参照图39,计算使用5×3滤波器进行直到分解级=2的小波变换的情况下从图像输入到图像输出的延迟时间。从第一行图像数据输入到编码单元121到第一行图像数据从解码单元133输出时的延迟时间是如下各个因素的总和。注意,这里排除了依据系统构造不同的延迟,如传输线路中的延迟和设备的每个单元的实际处理时序中涉及的延迟。
(1)从第一行输入直到与七行相当的小波变换WT-1完成的延迟D_WT
(2)与三行相当的系数重新排序Ord-1涉及的时间D_Ord
(3)与三行相当的熵编码EC-1涉及的时间D_EC
(4)与三行相当的熵解码涉及的时间D_iEC
(5)与三行相当的子波逆变换iWT-1涉及的时间D_iWT
参照图39,尝试上述的各个因素造成的延迟的计算。在(1)的延迟D_WT是与十行相当的时间。在(2)的时间D_Ord、在(3)的时间D_EC、在(4)的时间D_iEC、及在(5)的时间D_iWT各自与三行相当。而且,在开始重新排序Ord-1之后一行,在编码单元121中可开始熵编码EC-1。类似地,在开始熵解码iEC-1之后的两行,在解码单元133中可开始子波逆变换iWT-1。而且,在熵编码EC-1完成与一行相当的编码时,熵解码iEC-1可开始处理。
因此,在图39的例子中,从第一行的图像数据输入到编码单元121到第一行的图像数据从解码单元133输出的延迟时间与10+1+1+2+3=17行相当。
使用更具体的例子,将考虑延迟时间。在输入图像数据是基于HDTV(高清晰度电视)的交织视频信号的情况下,例如,一帧配置为1920像素×1080行的分辨率,并且一场是1920像素×540行。因此,当帧频率假定是30Hz时,用作一场的540行在16.67毫秒(=1秒/60字段)的时间段输入到编码单元121。
因此,与七行相当的图像数据输入涉及的延迟时间是0.216毫秒(=16.67毫秒×7/540行),该时间例如相对于一场的更新时间是非常短的时间。而且,就上述的(1)的延迟D_WT、(2)的时间D_Ord、(3)的时间D_EC、(4)的时间D_iEC、及(5)的时间D_iWT的总和而论,待处理的行数量很小,并且相应地延迟时间被极大缩短。如果用来进行各过程的元件由硬件实施,则可进一步减小处理时间。
这里,将描述SFF和M标志信息。
如以上已经描述的那样,在传输系统100,由于对延迟时间增加的容忍度很低,所以已经要求尽可高效地传输数据和以高效方式进行必要处理。
至今,存在以预定数据单元为单位进行编码和解码的系统。当封装和传输编码数据时,如图1的传输系统100那样,一些将在数据单元中的编码数据分割成数据项,并且封装和传输各个数据项。注意,在常规系统的情况下,由于对延迟时间的容忍度大,所以与数据单元相当的分 组在封装过程中被累计,并且以数据单元为单位进行封装过程。相应地,只有与数据单元相当的全部编码数据才提供到解码单元,并解码。
然而,使用这种方法,在封装处理单元和在编码单元生成对缓冲的需要,这在要求减小延迟时间的传输系统100中是不希望的。
因此,如以上已经描述的那样,基于传输编码数据项的处理在各个单元中可按它们供给顺序进行的事实,去封装处理单元132依次从接收分组提取有效负载数据,并且将它提供到解码单元133而不用累计它。解码单元133每当累计到与一个界区相当的依次供给的编码数据时,开始解码过程。相应地,可减小缓冲编码数据的次数,并且传输系统100可进一步减少延迟时间。
SFF和M是指示界区头部和界区末端的标志信息。基于标志信息,去封装处理单元132可检测界区头部和界区末端,并且将其通知解码单元133。基于来自去封装处理单元132的通知,解码单元133可找出界区断点,并且开始在逐个界区基础上的解码过程。
仅为了进行这个,仅指示界区末端的M就足够了。假设有将界区分割成多个项获得的分组和不被分割的分组的混合。如果有指示进行分割的标志信息,则识别这些分组是可能的。
然而,实际上,接收单元131未能接收(损失)分组的事件也是可设想的。当分组损失如以上那样发生时,由于去封装处理单元132不进行分组的缓冲,在正常时间所述处理必定从这里改变。例如,当分组损失发生时,在传输系统100的情况下,因为不能保证发送该分组的发送设备102再次发送所需要的时间,所以该界区的编码数据不被全部供给。就是说,由于分组损失的发生,解码单元133不能够执行该界区的解码过程。
因此,例如,当分组损失出现在界区中间时,也可设想直到界区中该点的编码数据被累计在解码单元133中。在这种情况下,去封装处理单元132将分组损失的出现通知解码单元133,并且使解码单元133丢弃与丢失分组的编码数据相同的界区中的编码数据。相应地,解码单元133可避免该界区的不必要解码过程(将失败的解码过程)的执行,并且可减轻负载。
而且,一旦分组损失发生,界区中其后的编码数据就成为不必要的。因此,即使当去封装处理单元132接收到分组时,去封装处理单元132也不将编码数据提供到解码单元133,直到获得下个界区等。当获得新的界区的分组时,去封装处理单元132开始供给编码数据。
相应地,去封装处理单元132根据情形改变控制模式,并且按需要进行适当处理。因此,去封装处理单元132参考SFF和M,并且检测界区的头部和末端。这时,当只有指示末端的M时,去封装处理单元132不能确定有界区变化,直到当检测到界区末端时。例如,当界区的尾部分组丢失时,去封装处理单元132必须进一步等待下个新界区。不仅延迟时间增加,而且解码过程也不能在解码单元133进行。这可能使恢复图像的图像质量退化。
相反,通过参考SFF的值和检测头部分组,去封装处理单元132不仅可减少不必要的等待时间,如重新开始将数据提供到解码单元133,而且仅进行头部分组的例外处理,例如不仅将编码数据而且将首部信息提供到解码单元133,省略了将分组损失发生通知解码单元133的差错通知、以及即使当分组损失发生时也继续将编码数据提供到解码单元133。
相应地,去封装处理单元132可基于SFF和M标志信息适当进行处理,并且可进一步减小延迟时间。
而且,基于这个SFF和M,去封装处理单元132将供给编码数据在界区头部或末端的事实通知解码单元133。相应地,解码单元133可容易地找出界区头部和末端。因而,例如,当已提供界区末端时,解码单元133可开始解码过程;当已提供新界区(不是连续的)的头部时,解码单元133可进行先前丢失界区的补充过程。就是说,解码单元133基于来自去封装处理单元132的通知可容易和迅速进行这样的控制。
如以上那样,SFF和M不简单地是用来给出去封装过程的开始时序通知的标志信息,而是用来使去封装处理单元132和解码单元133在适当时序选择和执行适当过程的标志信息,从而进一步减小延迟时间直到当编码数据被解码和输出。
现在,在图2,已经描述了系数的重新排序紧在小波变换之后(在熵 编码之前)进行,但唯一必需的是按从低频到高频的顺序将编码数据提供到解码单元133的子波逆变换单元363(就是说,仅需要按从通过编码属于低频子带的系数数据获得的编码数据到通过编码属于高频子带的系数数据获得的编码数据的顺序,供给编码数据),并且重新排序时序可以不同于紧接在小波变换之后。
例如,可以重新排序通过熵编码获得的编码数据的顺序。图40是方块图,表示这种情况下编码单元的示范结构。
在图40的情况下,编码单元500,如在图2的编码单元121的情况那样,包括小波变换单元150、中间计算缓冲单元151、熵编码单元155及速率控制单元154,并且代替图2的系数重新排序缓冲单元152和系数重新排序单元153,包括代码重新排序缓冲单元501和代码重新排序单元502。
代码重新排序缓冲单元501是用来重新排序在熵编码单元155编码的编码数据的输出顺序的缓冲器,并且代码重新排序单元502按预定顺序读出代码重新排序缓冲单元501累计的编码数据,由此重新排序编码数据的输出顺序。
就是说,在图40的情况下,从小波变换单元150输出的小波系数提供到熵编码单元155并被编码。通过编码获得的各个编码数据项依次提供到代码重新排序缓冲单元501,并且临时累计其中以便重新排序。
代码重新排序单元502按希望顺序读出代码重新排序缓冲单元501中写入的编码数据,并且将编码数据输出到编码单元500外。
在图40的例子的情况下,熵编码单元155按小波变换单元150输出的顺序进行各个系数数据项的编码,并且将获得的编码数据写入到代码重新排序缓冲单元501中。就是说,将编码数据按照与小波变换单元150输出小波系数的顺序相对应的顺序存储在代码重新排序缓冲单元501中。正常情况下,比较属于一个界区的两项系数数据时,小波变换单元150在较早时间输出属于较高频率子带的系数数据项,并且在较晚时间输出属于较低频率子带的系数数据项。就是说,各个编码数据项按从属于高频子带的系数数据的熵编码获得的编码数据到属于低频子带的系数数据的熵 编码获得的编码数据的顺序,依次存储在代码重新排序缓冲单元501中。
相反,独立于这种顺序,代码重新排序单元502按任意顺序读出代码重新排序缓冲单元501中累计的各个编码数据项,由此进行编码数据的重新排序。
例如,代码重新排序单元502优先地读出编码属于低频子带的系数数据获得的编码数据,并且最后读出编码属于最高频率子带的系数数据获得的编码数据。通过以这种方式从低频到高频读出编码数据,代码重新排序单元502使解码单元133按获得顺序来解码各个编码数据项,并且可减少在解码单元133进行解码过程中发生的延迟时间。
代码重新排序单元502读出在代码重新排序缓冲单元501中累计的编码数据,并且将这输出到编码单元500外部。
注意,由图40表示的编码单元500编码和输出的数据可由解码单元133解码,该解码单元133已经使用图24描述,如从图2的编码单元121输出的编码数据的情况那样。
而且,用来进行重新排序过程的时序可以不同于以上描述。例如,重新排序可以在编码单元进行,如图41的例子所示,或者可以在解码单元进行,如图42的例子所示。
在重新排序由小波变换生成的系数数据的过程中,关于系数重新排序缓冲器的存储容量,较大的容量是必需的,并且对于系数重新排序过程本身也要求很高的处理能力。即使在这种情况下,当编码单元的处理能力高于或等于一定水平时,也根本不会有问题发生。
这里,将考虑编码单元安装在处理能力比较低的装置(如所谓的移动终端,例如移动电话终端或PDA(个人数字助手))上的情形。例如,图像捕获功能添加到其上的移动电话终端(称做有摄像机功能的移动电话终端)的产品最近几年已经广泛普及。可以设想通过使用小波变换和熵编码进行有摄像机功能的这样一种移动电话终端捕获的图像数据的压缩和编码,并且经无线或有线通信传输图像数据。
关于举例的这种移动终端,CPU(中央处理单元)的处理能力受到限制,并且对于存储器容量有一定上限。相应地,上述系数重新排序中涉及的处理负载等引起不可忽略的问题。
因此,如图42的例子所示,编码单元上的负载通过将重新排序过程嵌入在解码单元中减轻,由此能够将编码单元安装在处理能力较低的装置上,如移动终端上。
图43是方块图,表示这种情况下编码单元的示范结构。注意,在图43,对与上述图2共同部分给予相同的附图标记,并且省略其详细描述。
这个图43显示的编码单元510的结构是通过从上述图2显示的编码单元121的结构除去系数重新排序单元153和系数重新排序缓冲单元152获得的结构。就是说,编码单元510如编码单元121那样,包括小波变换单元150、中间计算缓冲单元151、速率控制单元154、及熵编码单元155。
输入图像数据被临时累计在中间计算缓冲单元151中。小波变换单元150对中间计算缓冲单元151中累计的图像数据施加小波变换,并且依次将生成的系数数据项按生成系数数据项的顺序提供到熵编码单元155。就是说,生成的系数数据根据小波变换的顺序按照从高频分量到低频分量的顺序提供到熵编码单元155。熵编码单元155对供给的系数施加熵编码,而输出数据的比特速率正由速率控制单元154控制。通过对小波变换生成的系数数据进行熵编码获得的编码数据从熵编码单元155输出。
图44是方块图,表示与这个编码单元510相对应的解码单元的示范结构。注意,在图44,对与上述图24共同部分给予相同的附图标记,并且省略其详细描述。
如图44所示,这种情况下的解码单元520,如图24的解码单元133所示,包括控制信息获取单元351、解码控制单元352、解码处理执行单元353、首部获取单元354、数据获取单元355、差错通知获取单元356及丢弃处理单元357。解码处理执行单元353还包括系数重新排序缓冲单元521。
从图43描述的编码单元510的熵编码单元155输出的编码数据在图44的解码单元520经缓冲单元361提供到熵解码单元362,并且编码数 据的熵编码被解码以生成系数数据。这种系数数据经缓冲单元361被存储在系数重新排序缓冲单元521中。当与能够实现系数数据的重新排序需要的一样多的系数数据项被累计在系数重新排序缓冲单元521时,子波逆变换单元363按从低频分量到高频分量的顺序重新排序在系数重新排序缓冲单元521中存储的系数数据以读出系数数据,并且使用所述系数数据按照读出顺序进行子波逆变换。在要使用5×3滤波器的情况下,这将如上述的图42显示的情形。
就是说,例如在从一帧的头部开始处理的情况下,在已经解码其熵编码的系数C1、系数C4及系数C5被存储在系数重新排序缓冲单元521中时,子波逆变换单元363从系数重新排序缓冲单元521读出系数数据,并且进行子波逆变换。被子波逆变换单元363子波逆变换的数据项被依次输出作为输出图像数据。
注意也在这种情况下,如使用图39已经描述的那样,由编码单元510的各个元件进行的过程、编码数据到传输线路的传输、及由解码单元520的各个元件进行的过程并行执行。
如以上那样本发明可应用于各种模式并且可容易应用于各种用途(就是说,高度多样化)也是重要优点。
现在,如以上已经描述的那样,频繁发生的是,传送差错出现在传输视频和声频数据的数字视频通信的通信过程中,并且影响再现质量。
希望以各种方式减小这些传输差错的影响。作为其一种方法,例如,有一种试图恢复错误数据本身的方法(恢复数据的方法)。然而,在这种方法的情况下,尽管如果恢复成功则可再现整个图像,但可能导致延迟时间增加,从而用来恢复数据的时间成为必需的,或者有效速率由于差错恢复而下降。
相反,有一种方法(差错隐藏方法)尽管按原样留下错误数据但是使解码之后的差错尽可能不被注意到,其中例如按原样显示没有差错的紧邻地前一图像、或从先前和后续图像来估计差错部分。
在这种差错隐藏方法的情况下,尽管不能再现整个图像,但没有必要等待数据恢复数据,因为该方法简单地用另一个数据项(如先前或后 续帧)替换发生差错的数据。因此,处理能以较短延迟进行。然而,这样的数据替换需要以画面(帧或场)为单位、或比这更粗糙的粒度下进行。
例如,对于画面(帧或场)部分中发生的差错,当只有该部分用先前或后续画面替换时,该部分中的图案与其它部分中的图案不匹配,相应地,图像可以不从整个画面构建。因而,整个画面(或多个画面范围)必须被替换。因此,对于这样的数据替换需要一个或多个画面的延迟,因而难以实现在数据传输中进一步减少延迟。
相应地,下面将描述一种减小传输差错的影响、同时抑制延迟时间增加的方法。
图45表示本发明所应用的传输系统的另一种示范构造。
图45显示的传输系统600基本上是与图1显示的传输系统100相类似的系统。传输系统600是一种数据传输系统,其中:发送设备602压缩和编码由图像捕获设备101生成的图像数据,并且封装和发送图像数据;接收设备603接收经线路110传输的分组,并且去封装和解码分组;及显示设备104基于获得的图像数据显示图像。
发送设备602和接收设备603的更详细示范结构显示在图46。
如图46所示,发送设备602除编码单元121、封装处理单元122、及发送单元123外,还包括分析单元621、存储单元622及隐藏首部生成单元623。
分析单元621对输入图像数据的差错隐藏进行分析。注意,差错隐藏是隐藏在数据传输时发生的传输差错。存储单元622包括存储介质,如硬盘或半导体存储器,并且保存要求数量的一个或多个画面的输入图像数据。分析单元621将输入图像数据与从存储单元622读出的一个先前画面的图像数据相比较。注意,假定分析单元621以界区(行块)为单位进行处理以减小延迟,尽管分析单元621可以任何数据单元为单位进行分析。就是说,分析单元621比较在两个连续画面(帧或场)中的相同位置的界区的图像。分析单元621将比较结果作为分析结果提供到隐藏首部生成单元623。
隐藏首部生成单元623基于分析结果生成隐藏首部,其是指示隐藏 在界区中的差错的方法的隐藏信息。更明确地说,隐藏首部生成单元623在接收设备603进行差错隐藏处理时,生成首部信息(隐藏首部),其包括指示能够替换其中发生差错的界区的界区的信息(指示哪个画面的哪个界区中的哪个数据项可用来进行替换的信息),并且将这个提供到封装处理单元122。
封装处理单元122从编码单元121供给的编码数据和隐藏首部生成单元623供给的隐藏首部生成(封装)传输分组。就是说,封装处理单元122将隐藏首部添加(多路复用)到编码数据,并且封装多路复用数据。以这种方式生成的分组由发送单元123发送到接收设备603。
而且,如图46所示,接收设备603除接收单元131、去封装处理单元132、及解码单元133之外,还包括损失分析单元631和存储单元632。
从发送设备602发送的分组由接收单元131接收,并且由去封装处理单元132去封装以提取编码数据。提取的编码数据提供到损失分析单元631。而且这时,去封装处理单元132与编码数据一起提取隐藏首部,并且将隐藏首部提供到损失分析单元631。
基于隐藏首部,损失分析单元631通过适当使用存储单元632中存储的编码数据对传输差错的出现进行差错隐藏。注意,假定损失分析单元631以界区为单位进行处理以减少延迟,尽管损失分析单元631可以任何数据单元为单位进行分析。
存储单元632包括存储介质,如硬盘或半导体存储器,并且保存所要求数量的过去传输的编码数据(过去编码数据)。参考隐藏首部,损失分析单元631指定可用于数据替换的过去编码数据(就是说哪个画面的哪个界区中的哪个数据项用于替换)。然后,损失分析单元631从存储单元632读出指定的编码数据,并且用该数据替换发生传输差错的界区。
解码单元133解码从损失分析单元631供给的差错隐藏处理后的编码数据,并且输出基带图像数据。
接下来,将描述隐藏首部。图47是表明隐藏首部的示范结构图。如图47所示,隐藏首部640是32-比特信息,并且包括画面ID 641、界区ID 642、替换头部画面ID 643、RF(替换标志)644、SF(滑动标志)645、 以及替换头部界区ID 646。
画面ID 641是8-比特标识信息,其标识在整个运动图像数据中的当前画面(待处理)。界区ID 642是标识在画面中的当前界区(待处理)的8-比特标识信息。替换头部画面ID 643是指示一组画面(待处理)的头部画面的8-比特标识信息,所述一组画面各自具有可替换当前界区(待处理)的界区、并且在时间方向上连续直到当前画面。就是说,替换头部画面ID 643是指示可用来替换当前界区(待处理)的先前画面的范围的信息。标识在整个运动图像数据中的所述画面的标识信息(与画面ID 641相同类型的ID)被设置在这个替换头部画面ID 643中。
RF 644是1-比特标志信息,并且指示当前界区(待处理)是否可用所述替换头部画面ID 643之后的画面数据来替换。不用说,尽管通过参考替换头部画面ID 643,能够确定是否可使用过去画面进行替换,使用RF644有助于所述确定。
SF 645是1-比特标志信息,并且是指示当前界区(待处理)是否可用在相同画面中的过去界区的数据替换的比特。替换头部界区ID 646是6-比特信息,指示在空间方向连续直到当前画面(待处理)的当前界区(待处理)、并且可替换当前界区(待处理)的一组界区的头部界区。就是说替换头部界区ID 646是指示可用来替换当前界区(待处理)的先前界区的范围的信息。
标识在所述画面中的当前界区(待处理)的标识信息(与界区ID 642相同类型的ID)被压缩成六比特,并设置在这个替换头部界区ID 646。
注意,这个隐藏首部640的比特长度是任意的。因此,替换头部界区ID 646的比特长度能够是与界区ID 642相同的比特长度。而且,上述每个信息项的比特长度是任意的。
如以上那样,指示可替换当前界区(待处理)的数据范围的信息被包含在隐藏首部640中。损失分析单元631基于这种信息找出所述范围,并且使用包含在所述范围中的保存在存储单元632中的编码数据来替换所述数据。
参照图48,将更明确地说描述隐藏首部640的每个信息项。图48 是表示从发送设备602传输到接收设备603的图像数据的示范外观。
图48显示的画面651至画面653示意表示从发送设备602传输到接收设备603的图像数据的一些画面。画面651至画面653是在时间方向按这一顺序连续的三个画面。就是说,在三个画面中,画面651是时间上的最前(旧)画面,画面653是时间上的最后(新)画面。
这里,为了简化描述,假定画面651至画面653各自由三个界区构成。就是说,画面651由界区651-1至界区651-3构成;画面652由界区652-1至界区652-3构成;及画面653由界区653-1至界区653-3构成。
而且,假定这些界区的数据项按照图48从上部部分到下部部分的顺序传输。就是说在图48显示的界区中,画面651的界区651-1首先传输,并且画面653的界区653-3最后传输。
进一步,假定界区653-3是当前界区(待处理)并且传输差错出现在这个界区653-3。
这时,当添加到界区653-3中的(全部或一些)分组的隐藏首部640中的RF 644和SF 645的值是关断(例如“0”)时,不存在能够界区653-3的界区。
而且,当RF 644的值是关断并且SF 645的值是开通(例如“1”)时,在画面653中存在能够用于替换的界区。例如,当替换头部界区ID 646是指示界区653-2的值时,界区653-3可用界区653-2替换。可替换地,例如,当替换头部界区ID 646是指示界区653-1的值时,界区653-3可用界区653-1和界区653-2的任一个替换。
实际上在大多数情况下,一个界区由大致相当于几行的像素构成。一般图像的情况下,相邻界区常常具有很高相似性和很小差别。就是说,同一画面中的较近界区具有能够用于替换的较高概率。因此,在隐藏首部640,在能够用于替换的界区中,距离当前界区(待处理)最远的界区(在时间上最早)由替换头部界区ID 646指示。换句话说,保证在替换头部界区ID 646所指示的界区以后的界区(直到当前界区)能够用于替换。
而且,当RF 644的值是开通时,在另一画面中存在能够用于替换的界区。例如,当替换头部画面ID 643是指示画面652的值时,界区653-3 可用在画面652中相同位置的界区652-3替换。可替换地,例如,当替换头部画面ID 643是指示画面651的值时,界区653-3可使用画面651中相同位置的界区651-3和画面652中相同位置的界区652-3的任一个替换。
正常运动图像的情况下,基本上连续画面中的图案类似,并且除了特殊点(诸如场景变化之类)之外,之间差别很小。就是说在一般图像的情况下,时间上较接近的画面有较高概率包括能够用于替换的界区。因此,在隐藏首部640,在包括能够用于替换的界区的画面中,距离当前画面(待处理)最远的画面(在时间上最早)由替换头部画面ID 643指示。换句话说,保证在替换头部画面ID 643指示的画面以后的画面(直到当前画面)包括能够用于替换的界区。
注意实际上,当存储单元632不保存该数据时,损失分析单元631不能替换所述界区。例如,当替换头部画面ID 643是指示画面651的值并且当存储单元632保存画面652的数据时,损失分析单元631能够用界区652-3替换界区653-3。
如以上那样,能够用于替换的数据存在的位置(范围)由隐藏首部640指示。就是说,生成这个隐藏首部640的发送设备602指定这个范围。更明确地说,分析单元621计算当前输入界区中的数据与保存在存储单元622的前一个界区中的数据之间的差值。而且,分析单元621计算当前输入界区中的数据与保存在存储单元622的前一个画面的相同位置的界区中的数据之间的差值。基于这些计算结果,分析单元621确定当前输入界区中的数据与同一画面的前一个界区、或前一个画面的相同位置的界区之间的相似性,并且确定替换是否可能。
基于这种确定结果,当替换是可能的时,隐藏首部生成单元623适当更新替换头部画面ID 643和替换头部界区ID 646的信息。
接下来,将描述这些过程的流程。首先,参照图49的流程图,将描述由发送设备602的分析单元621执行的分析过程的示范流程。
当分析过程开始时,分析单元621在步骤S601进行当前界区(待处理)与从存储单元622读出的先前画面中的相同界区(前一个画面中相同 位置的界区)之间的差别计算,并且在步骤S602确定差别是否小于或等于预先设置的预定阈值。当确定差别小于或等于阈值时,分析单元621使过程前进到步骤S603,将“先前画面能够用于替换”设置为分析结果,并且使过程前进到步骤S605。可替换地,当步骤S602确定差别大于阈值时,分析单元621使过程前进到步骤S604,将“先前画面不能够用于替换”设置为分析结果,并且使过程前进到步骤S605。
分析单元621在步骤S605进行当前界区(待处理)与从存储单元622读出的先前界区(前一个界区)之间的差别计算,并且在步骤S606确定差别是否小于或等于预先设置的预定阈值。当确定差别小于或等于阈值时,分析单元621使过程前进到步骤S607,将“先前界区能够用于替换”设置为分析结果,并且结束分析过程。可替换地,当步骤S606确定差别大于阈值时,分析单元621使过程前进到步骤S608,将“先前界区不能够用于替换”设置为分析结果,并且结束分析过程。
通过如上那样执行每个过程,分析单元621可确定各帧之间的图像的相似性,并且将生成隐藏首部640所需要的信息提供给隐藏首部生成单元623。
接下来,参照在图50的流程图将描述隐藏首部生成单元623进行的隐藏首部生成过程的示范流程。
当隐藏首部生成过程开始时,隐藏首部生成单元623在步骤S621确定“先前画面能够用于替换”是否已经设置为分析结果。
当确定已经设置“先前画面能够用于替换”时,隐藏首部生成单元623使过程前进到步骤S622,并且将替换头部画面ID 643的值设置为与最后一次相同的值。在步骤S623,隐藏首部生成单元623接通(例如,“1”)RF644的值,其是先前画面替换标志,并且使过程前进到步骤S626。
可替换地,当步骤S621确定已经设置“先前画面不能够用于替换”时,隐藏首部生成单元623使过程前进到步骤S624,并且将替换头部画面ID 643的值更新到当前画面标识信息。在步骤S625,隐藏首部生成单元623关断(例如,“0”)RF 644的值,其是先前画面替换标志,并且使过程前进到步骤S626。
在步骤S626,隐藏首部生成单元623确定“先前界区能够用于替换”是否已经设置为分析结果。
当确定已经设置“先前界区能够用于替换”时,隐藏首部生成单元623使过程前进到步骤S627,并且将替换头部界区ID 646的值设置为与最后一次相同的值。在步骤S628,隐藏首部生成单元623接通(例如,“1”)SF645的值,其是先前界区替换标志,并且结束隐藏首部生成过程。
可替换地,当在步骤S626确定已经设置“先前界区不能够用于替换”时,隐藏首部生成单元623使过程前进到步骤S629,并且将替换头部界区ID 646的值更新到当前界区标识信息。在步骤S630,隐藏首部生成单元623关断(例如,“0”)SF 645的值,其是先前界区替换标志,并且结束隐藏首部生成过程。
通过如以上那样执行每个过程,隐藏首部生成单元623可生成所参考的隐藏首部640,以减小传输差错的影响,同时抑制延迟时间的增加。由于将这个隐藏首部640提供给接收设备603,所以接收设备603能够以比画面单位更小的界区为单位适当进行差错隐藏处理。
接下来,参照在图51的流程图将描述使用这个隐藏首部640进行损失分析过程的示范流程。
当损失分析过程开始时,损失分析单元631在步骤S651确定损失(差错)是否出现在当前界区(待处理),并且当确定没有损失发生时,结束损失分析过程。
可替换地,当在步骤S651确定损失发生时,损失分析单元631使过程前进到步骤S652,并且确定是否已经获得隐藏首部640。当确定还未获得隐藏首部640时,由于难以进行正确的差错隐藏,所以损失分析单元631结束损失分析过程。
可替换地,当在步骤S652确定已经获得隐藏首部640时,损失分析单元631使过程前进到步骤S653,并且基于隐藏首部640的信息,确定是否可能使用先前画面中的相同界区(前一个画面中在相同位置的界区)替换。当RF 644的值是开通(例如,“1”)并因而确定替换是可能的时,损失分析单元631使过程前进到步骤S654。
在步骤S654,损失分析单元631确定从存储单元632读出的先前画面的画面ID值是否大于或等于替换头部画面ID 643,就是说,替换头部画面ID指示的画面是否比从存储单元632读出的先前画面更老。当确定从存储单元632读出的先前画面在替换头部画面ID指示的画面以后时,损失分析单元631使过程前进到步骤S655,用从存储单元632读出的先前画面中的相同位置的界区替换当前界区(待处理),以及结束损失分析过程。可替换地,当在步骤S654确定从存储单元632读出的先前画面的画面ID值小于替换头部画面ID时,由于能够用于替换的画面数据没有保存在存储单元632,所以损失分析单元631结束损失分析过程。
可替换地,当在步骤S653确定使用从存储单元632读出的先前画面中的相同位置的界区的替换是不可能的时,损失分析单元631使过程前进到步骤S656,并且确定是否可能使用从存储单元632读出的同一画面中的先前界区(在同一画面中的前一个界区)替换。当SF 645的值是关断(例如“0”)并因而确定替换是不可能的时,损失分析单元631结束损失分析过程。
可替换地,当在步骤S656确定SF 645的值是开通(例如“1”)并且确定使用从存储单元632读出的同一画面中的先前界区的替换是可能的时,损失分析单元631使过程前进到步骤S657,并且确定从存储单元632读出的先前界区的界区ID的值是否大于或等于替换头部界区ID 646。
当确定从存储单元632读出的先前界区的界区ID的值小于替换头部界区ID 646时,就是说当确定从存储单元632读出的先前界区是在替换头部界区ID 646指示的界区以前的界区时,由于没有能够用于替换的界区保存在存储单元632,所以损失分析单元631结束损失分析过程。
可替换地,当确定从存储单元632读出的先前界区的界区ID的值大于或等于替换头部界区ID 646时,就是说当确定从存储单元632读出的先前界区是在替换头部界区ID 646指示的界区以后的界区时,损失分析单元631使过程前进到步骤S658,用从存储单元632读出的同一画面中的先前界区替换当前界区(待处理),以及结束损失分析过程。
如以上那样,损失分析单元631进行损失分析过程。相应地,通过 上述方式执行过程,损失分析单元631基于隐藏首部640,以比画面单位更小的界区为单位可适当进行差错隐藏处理。就是说,损失分析单元631可减小传输差错的影响、同时抑制延迟时间增加。
注意,接收设备603可以确定替换是否可能,并且能够以比画面单位更小的单元为单位进行替换而不使用上述隐藏首部640。在该情况下,接收设备603中的缓冲器的数量增加,这带来延迟时间增加的可能。而且,在接收设备603侧,由于有数据缺陷的可能性,所以校正确定可能需要很长时间。
因此,如以上已经描述的那样,在具有数据整体的发送设备602,确定替换是否可能,并且使用隐藏首部640,使该信息发送到接收设备603,从而发送设备602能够使接收设备603减小传输差错的影响、同时抑制延迟时间增加。
上述过程序列可由硬件执行,或者可由软件执行。当过程序列由软件执行时,配置软件的程序从程序记录介质安装到专用硬件中嵌入的计算机、通用个人计算机(例如它使用安装在其中的各种程序可执行各种功能)、或包括多个设备的信息处理系统的信息处理设备。
图52是方块图,表示基于程序执行上述过程序列的信息处理系统的示范构造。
如图52所示,信息处理系统800是用信息处理设备801、使用PCI总线802连接到信息处理设备801的存储装置803、多个磁带录像机(VTR)的VTR 804-1至VTR 804-S、鼠标805、键盘806、及用于用户对这些进行操作输入的操作控制器807来配置,并且是如上述那样基于安装程序进行图像编码过程、图像解码过程等的系统。
例如,在信息处理系统800的信息处理设备801可存储编码数据,其通过编码在存储装置803中RAID(独立磁盘冗余阵列)构成的大容量存储装置803存储的运动图像内容而获得,在存储装置803中存储解码图像数据(运动图像内容),其通过解码在存储装置803中存储的编码数据而获得,及经VTR 804-1至VTR 804-S将编码数据和解码数据存储在录像带。而且,信息处理设备801设置为能够将在VTR 804-1至VTR 804-S中安装的录像带记录的运动图像内容带到存储装置803。这时,信息处理设备801可以编码运动图像内容。
信息处理设备801具有微处理器901、GPU(图形处理单元)902、XDR(终极数据速率)-RAM 903、南桥904、HDD(硬盘驱动器)905、USB接口(USB I/F)906、及声音输入/输出编解码器907。
GPU 902经专用总线911连接到微处理器901。XDR-RAM 903经专用总线912连接到微处理器901。南桥904经专用总线连接到微处理器901的I/O控制器944。也连接到南桥904的是HDD 905、USB接口906、及声音输入/输出编解码器907。扩音器921连接到声音输入/输出编解码器907。而且,显示器922连接到GPU 902。
此外,经PCI总线802也连接到南桥904的是鼠标805、键盘806、VTR 804-1至VTR 804-S、存储装置803及操作控制器807。
鼠标805和键盘806从用户接收操作输入,并且经PCI总线802和南桥904将指示来自用户操作输入内容的信号提供到微处理器901。存储装置803和VTR 804-1至VTR 804-S配置为能够记录或再现预定数据。
根据需要进一步连接到PCI总线802的是驱动器808-诸如磁盘、光盘、磁光盘、或半导体存储器之类的可移除介质811适当安装到该驱动器808,并且从其读出的计算机程序根据需要安装在HDD 905中。
微处理器901配置有多核配置,其中执行诸如OS(操作系统)之类的基本程序的通用主CPU芯941、经内部总线945连接到主CPU芯941的多个(这种情况下为八个)RISC(精简指令集计算机)型信号处理处理器的副CPU芯942-1至副CPU芯942-8、进行例如具有256[兆字节]容量的XDR-RAM 903的存储器控制的存储器控制器943、以及管理南桥904的数据输入和输出的I/O(进/出)控制器944被集成在一个芯片,并且实现例如4[GHz]的操作频率。
激活时,微处理器901基于HDD 905存储的控制程序读出HDD 905存储的必要应用程序,在XDR-RAM 903中打开应用程序,以及以后基于应用程序和操作人员操作执行必要控制过程。
而且,通过执行软件,微处理器901例如可实现上述编码过程和解码过程,将作为编码结果获得的编码流经南桥904提供到HDD 905用于存储,以及对从作为解码结果获得的运动图像内容再现的视频图像执行数据传送到GPU 902,以便显示在显示器922。
尽管使用微处理器901的每个CPU芯的方法是任意的,例如,主CPU芯941可以进行与图像编码过程和图像解码过程的控制相关的处理,并且可以控制八个副CPU芯942-1至副CPU芯942-8如参照图39描述的那样并行地同时执行过程,如小波变换、系数重新排序、熵编码、熵解码、子波逆变换、量化以及去量化。这时,当主CPU芯941设置为在逐个界区的基础上将处理分配给八个副CPU芯942-1至副CPU芯942-8的每一个时,在逐个界区的基础上并行地同时执行编码过程和解码过程,如参照图39描述的情形那样。就是说,可改进编码过程和解码过程的效率,可减少整个处理的延迟时间,及进一步,可减小处理必需的负载、处理时间及存储器容量。不用说,每个过程也使用其它方法可进行。
例如,微处理器901的八个副CPU芯942-1至副CPU芯942-8的一些可设置为执行编码过程,其余的可设置为并行地同时进行解码过程。
而且,例如,当独立的编码器或解码器、或编解码器处理设备连接到PCI总线802时,微处理器901的八个副CPU芯942-1至副CPU芯942-8可以设置为经南桥904和PCI总线802控制这些设备执行的过程。进一步,当连接多个这样的设备时,或者当这些设备包括多个解码器或编码器时,微处理器901的八个副CPU芯942-1至副CPU芯942-8可以设置为以共享方式控制多个解码器或编码器执行的过程。
这时,主CPU芯941管理八个副CPU芯942-1至副CPU芯942-8的操作,将过程分配给各个副CPU芯,以及检索处理结果。进一步,主CPU芯941进行不同于这些副CPU芯进行的那些过程。例如,主CPU芯941接受从鼠标805、键盘806、或操作控制器807经南桥904供给的命令,并且响应命令执行各种过程。
GPU 902除了最后呈现过程之外(例如当移动从移动图像内容再现的视频图像以显示在显示器922时的粘贴纹理),控制用来同时在显示 器922显示从移动图像内容再现的多个视频图像和静止图像内容的静止图像时的协调变换计算过程、从移动图像内容再现的视频图像和静止图像内容的静止图像的放大/缩小过程等等的功能,由此减轻微处理器901的处理负载。
在微处理器901的控制下,GPU 902对提供给移动图像内容的视频图像数据和静止图像内容的图像数据施加预定信号处理,将作为结果获得的视频图像数据和图像数据发送到显示器922,并且将图像信号显示在显示器922。
现在,从微处理器901的八个副CPU芯942-1至副CPU芯942-8并行地同时解码的多个移动图像内容项再现的视频图像,经总线911被数据传送到GPU 902。这时的传送速度是例如最大30[G字节/秒],并且相应地,甚至具有特效的复杂再现视频图像也可迅速、平稳显示。
另外,微处理器901对视频图像数据的声频数据和移动图像内容的声频数据施加声频混合处理,并且将作为结果获得的编辑声频数据经南桥904和声音输入/输出编解码器907发送到扩音器921,由此基于来自扩音器921的声频信号输出声频。
当上述过程序列由软件执行时,配置所述软件的程序从网络或记录介质安装。
这种记录介质例如图52所示,不仅用可移除介质811(在其上已记录程序并且与设备的主体分离地分布)将程序分发给用户,如磁盘(包括软盘)、光盘(包括CD-ROM和DVD)、磁光盘(包括MD)或半导体存储器;而且用HDD 905、存储装置803等(在其上已经记录程序并且在它们预先嵌在设备主体中的状态下分发给用户)。不用说,记录介质也可以是半导体存储器,如ROM或闪烁存储器。
上文中,已经描述了八个副CPU芯配置在微处理器901。然而,本发明不限于此。副CPU芯的数量是任意的。而且,微处理器901不必配置有诸如主CPU芯和副CPU芯之类的多个芯,并且微处理器901可以使用具有单个芯(一个芯)的CPU构造。而且,代之以微处理器901,可以使用多个CPU,或者可以使用多个信息处理设备(就是说在彼此联合操 作的多个设备中执行程序,该程序执行本发明的过程)。
本说明书的记录介质所记录的程序的步骤当然可以包括根据描述顺序在时间上顺序进行的过程,但也包括不必在时间上顺序执行、而是并行或独立执行的过程。
而且,在本说明书的系统是指多个装置(设备)构成的装备整体。
注意,以上描述成是单个设备的结构可以分割从而配置为多个设备。相反,以上描述成是多个设备的结构可以合并从而配置为单个设备。而且,不用说,各设备的结构可以添加除上述那些结构之外的结构。进一步,一个设备的结构部分可以包含在另一设备的结构中,只要整个系统的结构和操作大体相同。
工业应用性
上述本发明容易以高速进行数据传输,并且适用于各种设备或系统,只要它们压缩、编码及传输图像,并且在传输目的地解码压缩编码并输出图像。本发明特别适于要求从图像压缩和编码到解码和输出具有很短延迟的设备或系统。
例如,本发明适于用在医疗远程医疗分析的用途,如在观看摄像机捕获的视频图像的同时操作随动机械手并且进行医疗治疗。而且,本发明适于用在广播站等中的编码并传输图像以及解码并显示或记录图像的系统。
另外,本发明可应用于进行视频图像的实况覆盖分配的系统、教育机构中学生与老师之间允许交互通信的系统等。
此外,本发明可应用于具有图像捕获功能的移动终端,如具有摄像机功能的移动电话,视频会议系统,包括监视摄像机和记录由监视摄像机捕获的视频图像的记录器的系统等。