编码设备、编码方法、发送设备以及接收设备的制造方法_3

文档序号:9794459阅读:来源:国知局
编码图像数据的解码定时是在构成基础流(B流)和增强流(E流I)的最低层组内的图片的解码定时的平均定时。因此,在接收器具有解码不仅构成基础流而且构成两个增强流的层组内的图片的编码图像数据的能力的情况下,可以对每个图片连续地并且平稳地执行解码处理。
[0118]图12示出在图3中示出的分层编码的实例中生成基础流(B流)、增强流(E流I)以及增强流(E流2)这3个视频流的情况下每个图片的编码定时(解码定时)的一个实例。这是一个实例,其中,增强流的解码延迟比基础流减少。在这种情况下的解码延迟对应于具有全时间分辨率的编码间隔的12个图片(基础流的编码间隔的1/4)。
[0119]在该实例中,基础流(B流)的图片的编码定时是4的倍数的定时,并且增强流(E流I)的编码定时是4的倍数的基础流(B流)的图片的编码定时的平均定时。而且,增强流(E流I)的编码定时是奇数定时。
[0120]然后,在该实例中,在基础流(B流)的最高层的编码命令之后,立即编码增强流(E流I)。具体而言,增强流(E流I)的图片“10”刚好在基础流(B流)的图片“8”之后编码。而且,在该实例中,在增强流(E流I)的编码命令之后,立即编码增强流(E流2)。具体而言,增强流(E流2)的图片“10”刚好在基础流(B流)的图片“8”之后编码。而且,在该实例中,在增强流(E流I)的编码命令之后,立即编码增强流(E流2)。具体而言,增强流(E流2)的图片“11”刚好在增强流(E流I)的图片“10”之后编码。
[0121]图13示出在图3中示出的分层编码的实例中生成基础流(B流)、增强流(E流I)以及增强流(E流2)这3个视频流的情况下每个图片的编码定时(解码定时)的另一个实例。这是一个实例,其中,增强流的解码延迟比基础流增大。在这种情况下的解码延迟对应于以全时间分辨率的编码间隔(基础流的编码间隔的1/4)的27个图片。在解码延迟如上所述增大的情况下,需要在非压缩数据缓冲器(dpb:解码图片缓冲器)内具有大容量的参考内存。
[0122]在该实例中,基础流(B流)的图片的编码定时是4的倍数的定时,并且增强流(E流I)的编码定时是4的倍数的基础流(B流)的图片的编码定时的平均定时。而且,增强流(E流I)的编码定时是奇数定时。
[0123]然后,在该实例中,在基础流(B流)的最高层编码之后,编码增强流(E流I)。具体而言,增强流(E流I)的图片“14”刚好在基础流(B流)的图片“12”之后编码。而且,在该实例中,在增强流(E流I)编码之后,编码增强流(E流2)。具体而言,增强流(E流2)的图片“27”刚好在增强流(E流I)的图片“26”之后编码。
[0124]图14示出编码器102的HRD(假设参考解码器)控制的一个实例。这是一个实例,其中,生成基础流(B流)和增强流(E流)这两个视频流。在此处,进行描述,基础流作为子流I(子流I)和增强流作为子流2 (子流2)。
[0125]具有阶梯状形状的实线al表示由编码(编码)生成的子流I的数据量的移动,并且每个阶梯对应于一个图片的单元。阶梯的高度表示由编码生成的数据量。
[0126]定时POl表示第一图片的编码图像数据的第一字节输入cpbl(编码图片缓冲器1:压缩数据缓冲器)的定时。Rl表示第一图片的编码图像数据的cpbl的输入位速率。在此处,如果在时间TI输入cpb I中的编码数据的量是QI,那么以下方程成立:Rl = QI /TI。应注意的是,在图中示出的实例中,示出了到另一个图片的编码图像数据的cpbl的输入位速率也是Rl的情况。
[0127]具有阶梯状形状的实线bl表示由在cpbl中解码所消耗的数据量的移动,并且每个阶梯对应于一个图片的单元。阶梯的高度表示由解码消耗的数据量。Qcpbl表示cpdl的占有量。执行编码,以便该占有量在任何时间都不超过cpbl的尺寸(内存容量)。
[0128]而且,具有阶梯状形状的实线al表示由编码(编码)生成的子流2的数据量的移动,并且每个阶梯对应于一个图片的单元。阶梯的高度表示由编码生成的数据量。
[0129]定时P02表示第一图片的编码图像数据的第一字节输入cpb2(编码图片缓冲器2:压缩数据缓冲器)的定时。R2表示第一图片的编码图像数据的cpb2的输入位速率。在此处,如果在时间T2输入cpb2中的编码数据的量是Q2,那么以下方程成立:R2 = Q2/T2。应注意的是,在图中示出的实例中,示出了到另一个图片的编码图像数据的cpb2的输入位速率也是R2的情况。
[0130]具有阶梯状形状的实线b2表示由在cpb2中解码所消耗的数据量的移动,并且每个阶梯对应于一个图片的单元。阶梯的高度表示由解码消耗的数据量。Qcpb2表示cpd2的占有量。执行编码,以便该占有量在任何定时处都不超过cpb2的尺寸(内存容量)。
[0131]在图中示出的实例中,按照图片顺序“1-0”、“1-1”、“1-2”、“1-3”...为子流I,按照图片顺序“2-0”、“2-1”、“2-2”、“2-3”…为子流2,执行解码,如上所述,交替地解码子流I的图片和子流2的图片。每个图片的解码图像数据输入dpb(编码图片缓冲器:未压缩数据)中。在该实例中,从执行解码时到开始显示时的延迟图片的数量是4个图片。
[ΟΙ32] 应注意的是,在上文中,R1和R2表示固定位速率的实例(constant_bit_rate)。然而,不限于此,并且相同的理念可以应用于可变位速率(variable_bit_rate)中。
[0133]图15示出编码器102的一个配置实例。编码器102包括时间ID生成单元121、缓冲延迟控制器122、HRD(假设参考解码器)设置单元123、参数组/SEI编码单元124、切片编码单元125以及NAL打包单元126。
[0134]将关于层的数量(层数)的信息从CPU101中供应给时间ID生成单元121的供应。时间ID生成单元121基于关于层的数量的信息根据层的数量生成temporaljd。例如,在图3中示出的分层编码的实例中,生成temporal_id O到4。
[0135]将最小解码能力(minimum_target_decoder_level_idc)的信息从CPU 101 中供应给缓冲延迟控制器122,并且供应在时间ID生成单元121中生成的temporal_id。缓冲延迟控制器122计算作为每个视频流的cpb缓冲的初始值的“initial_cpb_removal_delay”以及用于每个图片的 “cpb_removal_delay” 和 “dpb_output_delay”。
[0136]缓冲延迟控制器122为每个子流(子流)在cpb缓冲器内控制“Cpb_removal_delay”。缓冲延迟控制器122执行控制,以便在cpb缓冲器内在解码器的解码定时与显示时间之间不发生缓冲故障。在这种情况下,控制“cpb_removal_delay”,以便最低层组的图片的解码定时是规则间隔。而且,在这种情况下,控制“cpb_removal_delay”,以便在比最低层组更高的层组内的图片的解码定时是比层组更低的所有层组的图片的编码图像数据的编码定时的平均定时。而且,控制“cpb_removal_delay”,以便不发生cpb缓冲器故障。应注意的是,编码定时表示在接收器侧上与从压缩数据缓冲器(cpb:编码图片缓冲器)中读取的解码定时相同的意义。
[0137]将在缓冲延迟控制器122内计算的每个视频流的图片的“cpb_removal_delay”和“dpb_output_de lay”供应给HRD (假设参考解码器)设置单元123,并且从CPU 1I中供应关于流的数量(流数量)的信息。HRD设置单元123根据该信息执行HRD设置。
[0138]将HRD设置信息和temporal_id供应给参数组/SEI编码单元124。参数组/SEI编码单元124根据要编码的流的数量,生成每个层的参数组,(例如,VPS、SPS以及PPS)以及SEI。
[0139]例如,生成包括“cpb_removal_delay” 和 “dpb_output_delay” 的图片定时SEI (图片定时SEI)。此外,例如,生成包括“initial_cpb_removal_time”的缓冲周期SEI (缓冲周期SE I)。生成缓冲周期SE I,对应于GOP的顶部图片(访问单元)。
[0140]“初始cpb去除时间”表示用于解码的从压缩的数据缓冲器(cpb)中取出GOP(图片组)的顶部图片的编码图像数据的时间(初始时间)O “cpb_removal_delay”表示从压缩的数据缓冲器(cpb)中取出每个图片的编码图像数据的时间,并且与“initial_cpb_removal_time” 一起确定该时间。而且,“dpb_output_delay”表示在解码和进入压缩的数据缓冲器(dpb)之后取出的时间。
[0141]切片编码单元125编码每个层的图片的图像数据,以获得切片数据(切片段报头、切片段数据)。切片编码单元125使用帧缓冲器,来将“^;^1(^_10_3(31:;^6” (ref_idx_ll_active)(其表示由“预测单元”预测的图片的索引)作为表示时间方向的预测状态的信息插入“切片段报头”内。因此,在执行解码时,确定由temporaljd显示的层等级以及参考源图片。而且,切片编码单元125将当前切片的索引作为“81101'1:_〖61'111_^;1^_。;[0_861:_1(11”或“;[1:_idX_sps”插入“切片段报头”内。
[0142]NAL打包单元(packetizing unit) 126根据由参数组/SEI编码单元124生成的参数组和SEI以及由切片编码单元125生成的切片数据量,生成每个层的图片的编码图像数据,以根据流的数量输出视频流(编码流)。
[OH3] 此时,将表示层的temporal_id加入每个图片的NAL单元报头内(见图4)。而且,占用属于由temporal_id显示的层的图片,作为子层(sub_layer),并且每个子层的位速率的等级指定值“level_idc”被视为“sublayer_level_idc”,并且插入VPS或SPS内。
[0144]图16示出编码器102的处理流程的一个实例。编码器102在步骤STl中开始过程,然后,执行步骤ST2的处理。在步骤ST2中,编码器102在分层编码中设置层的数量N。接下来,编码器102在步骤ST3中将每个层的图片的temporal_id设置为O到(N-1)。
[0145]接下来,在步骤ST4中,编码器102将在目标解码器之中具有最小能力的解码器可以执行解码的层的等级K设置为在O到(N-1)。然后,在步骤ST5中,编码器102在缓冲延迟控制器122中在每个层组中设置图片编码间隔和编码定时。
[0146]接下来,在步骤ST6中,编码器102将在步骤ST5中获得的图片编码间隔和编码定时反应为 “cpb_removal_delay” 和 “dpb_output_delay”,执行HRD设置、参数组/SEI 的编码以及切片编码,并且将其作为NAL单元传递给多路复用模块。然后,在步骤ST7中,编码器102完成该处理。
[0147]现在,返回图2,压缩的数据缓冲器(cpb)103暂时储存视频流,包括由编码器102生成的每个层的图片的编码数据。多路复用器104读取在压缩的数据缓冲器103内储存的视频流,将视频流PES包格式化,将视频流传输包格式化并且多路复用视频流,以获得用作多路复用流的传输流TS。
[0148]如上所述,传输流TS包括具有通过划分多个层所获得的每个层组的图片的编码图像数据的预定数量的视频流。多路复用器104将识别信息插入传输流TS内,所述识别信息用于识别预定数量的视频流中的每个是基础流还是增强流。在这种情况下,在视频基本流回路(视频ES回路)内作为流类型插入识别信息,该回路设置为在节目映射表之下对应于所述预定数量的视频流中的每个。
[0149]在这种情况下,基础流的流类型是“0x24”。而且,重新限定增强流的流类型。例如,增强流的流类型是“0x25”。应注意的是,在具有多个增强流的情况下,所有增强流的流类型不需要相同,并且可重新限定多个流类型,作为增强流的流类型,以便可以识别每个增强流。例如,在具有两个增强流的情况下,第一增强流的流类型是“0x25”,并且第二增强流的流类型是“0x26”。
[0150]多路复用器104在传输流TS的层内插入视频流的配置信息,以便对应于预定数量的流。在多路复用器104将配置信息作为描述符插入视频基本流回路内,所述回路设置为在节目映射表(PMT:节目映射表)下对应于所述预定数量的视频流中的每个。
[ΟΙ51 ] 多路复用器104插入重新限定的多流描述符(multistream_descriptor)以及HEVC描述符(HEVC_descriptor)。图17不出HEVC描述符(HEVC_descriptor)的一个结构实例(语法)。8位字段“descriptor_tag”表示描述符的类型,在此处表示HEVC描述符。8位字段“descriptor_length”表示描述符的长度(尺寸),并且表示后续字节的数量,作为描述符的长度。
[ΟΙ52] 8位字段“level_idc”表示位速率的等级指定值。而且,在“temporal_layer_subset_f lag= I” 的情况下,具有5位字段 “temporal_id_min” 和5位字段 “temporal_id_max”。“temporal_id_min”表示在包含在相应视频流内的分层编码数据的最低层中的temporal_id的值。“temporal_id_max”表示在相应视频流的分层编码数据的最高层内的temporal_id的值。
[0153]图18示出多流描述符(!111111:丨81:代3111_(168(31^口1:01')的一个结构实例(语法)。而且,图19示出在结构实例中的主要信息的内容(语义)。
[0154]8位字段“multistream_descriptor_tag”表示描述符的类型,在此处表示多流描述符。8位字段“multistream_descripto;r_length”表示描述符的长度(尺寸),表示后续字节的数量,作为描述符的长度。在此处,表示2个字节。4位字段“groupjd”表示在一系列服务中相关联的组。在这种情况下,基于其的基础流(基础流)和所有非基础流(非基础流=增强流)具有相同的id。
[°?55] 4位字段“stream_dependency_ordering”按照升序从基础流(基础流)开始在流之间限定依赖关系。“0001”表示基础流。“0010”表示从基础流开始的第二流(增强流)。“0011”表示从基础流开始的第三流。“max_layer_in_group”表示在该组内编码的层中的最大值。
[0156]图20示出在传输流TS包括(例如)服务1(服务I)和服务2(服务2)的视频流组的情况下 “Stream_type”、“Group_id”、“max/min layer”、“max_layer_in_group” 以及“Stream_dependency_ordering,> 的一个实例。
[0157]在该实例中,作为服务I的视频流,包括基础流(基础流)、增强流(增强流I)以及增强流(增强流2)这三个视频流。在服务I中,“GroUp_id”的值是“O”。而且,在服务I中,层的数量是5,并且“max/min layer”的值是“4”,与在图3中示出的分层编码的实例相似。
[0158]而且,服务I分成三个层组。基础流的“Stream_type”的值设置为“0x24”,并且HEVC描述符的“max/min layer”表示为包括在层O到2中的图片。而且,增强流(增强流I)的“Stream_type”的值设置为“0x25”,并且HEVC描述符的“max/min layer”表示为包括在层3中的图片。而且,增强流(增强流2)的“Stream_type”的值设置为“0x25”,并且HEVC描述符的“max/min layer”表示为包括在层4中的图片。
[0159]而且,在该实例中,作为服务2的视频流,包括基础流(基础流)、增强流(增强流I)以及
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1