一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于自适应裁剪的方法和系统与流程

2022-08-13 22:18:32 来源:中国专利 TAG:

用于自适应裁剪的方法和系统
1.相关申请的交叉引用
2.本技术要求于2020年11月6日提交的名称为“methods and systems for modulator”的美国非临时申请序列第17,091,052号的优先权权益,其通过引用整体并入本文,并且要求于2019年11月8日提交的题为“methods and systems for adaptive cropping”的美国临时专利申请序列第62/932597号的优先权的权益,其通过引用整体并入本文。
技术领域
3.本发明一般涉及视频压缩领域。特别地,本发明涉及用于自适应裁剪的方法和系统。


背景技术:

4.视频编解码器可以包括压缩或解压缩数字视频的电子电路或软件。它可以将未压缩的视频转换为压缩格式,反之亦然。在视频压缩的上下文中,压缩视频(及/或执行其某一功能)的设备通常可以称为编码器,且解压缩视频(及/或执行其某一功能)的设备可以称为解码器。
5.压缩数据的格式可以符合标准视频压缩规范。压缩可能是有损的,因为压缩视频缺少原始视频中存在的一些信息。其结果可能包括解压缩视频可能具有比原始未压缩视频更低的质量,因为没有足够的信息来准确地重建原始视频。
6.视频质量、用于表示视频的数据量(例如,由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的容易性、随机访问、端到端延迟(例如,时延)等之间可能存在复杂的关系。
7.运动补偿可以包括在给定参考帧(诸如先前和/或未来帧)的情况下通过考虑视频中的相机和/或对象的运动来预测视频帧或其一部分的方法。它可以在用于视频压缩的视频数据的编码和解码中被采用,例如在使用运动图片专家组(mpeg)的高级视频编码(avc)标准(也称为h.264)的编码和解码中被采用。运动补偿可以根据参考图片到当前图片的变换来描述图片。当与当前图片相比时,参考图片在时间上可以是先前的,当与当前图片相比时,参考图片可以是未来的。当可以从先前发送和/或存储的图片准确地合成图片时,可以提高压缩效率。


技术实现要素:

8.在一个方面,解码器包括电路,该电路被配置为接收比特流,根据比特流识别当前帧和当前帧的裁剪子帧,根据比特流确定与裁剪子帧相关联的缩放常数,以及使用缩放常数重构裁剪子帧的像素数据。
9.在另一方面,一种方法包括由解码器接收比特流,由解码器并且根据比特流识别当前帧和当前帧的裁剪子帧,由解码器并且根据比特流确定与裁剪子帧相关联的缩放常
数,以及由解码器使用缩放常数重构裁剪子帧的像素数据。
10.在下面的附图和说明书中阐述了本文描述的主题的一种或多种变型的细节。根据说明书和附图以及权利要求,本文描述的主题的其他特征和优点将是显而易见的。
附图说明
11.出于说明本发明的目的,附图示出了本发明的一个或多个实施例的各方面。然而,应当理解,本发明不限于附图中所示的精确布置和手段,其中:
12.图1是示出现有裁剪方法的示例性实施例的框图;
13.图2是参考帧和子帧的示例性实施例的图示;
14.图3是参考帧和子帧的示例性实施例的图示;
15.图4是示例参考帧和示例预测帧的图示;
16.图5是示例参考帧和示例预测帧的图示;
17.图6是示出根据当前主题的一些实施方式的示例过程的过程流程图;
18.图7是示出根据当前主题的一些实施方式的能够解码比特流的示例解码器的系统框图;
19.图8是示出根据当前主题的一些实施方式的对视频进行编码的示例过程的过程流程图;
20.图9是示出根据当前主题的一些实施方式的示例视频编码器的系统框图;以及
21.图10是可用于实现本文公开的任何一种或多种方法及其任何一个或多个部分的计算系统的框图。
22.附图不一定按比例绘制,并且可以通过虚线、图解表示和局部视图来示出。在某些情况下,可能已经省略了对于理解实施例不是必需的或使得其他细节难以感知的细节。各个附图中相同的附图标记表示相同的元件。
具体实施方式
23.在传统的视频编码系统中,视频序列被划分为图片组(gop)。在时间和空间预测的意义上,每个gop是自包括的。通常,组中的第一图片被用作后续图片的参考图片。图片之间的时间和空间关系允许使用预测编码进行非常有效的压缩。
24.在某些场景中,在视频的传输期间,可能需要裁剪要解码的帧,例如以降低比特率以便于连续回放。在许多当前最先进的编码器中,通过重新编码和重新发送被称为图片组(gop)的视频的整个部分来管理裁剪,其包括用作参考的帧内(i帧)以及可用于从参考预测其他帧的信息。这需要发送内帧(i-帧),这可能招致额外的成本,因为那些帧负责gop中的大部分比特。作为说明性实例,在其中视频传输系统经历可用带宽的突然下降或其中视频的消费者对视频图片内的某一区感兴趣的情境中,可能需要发送和呈现视频图片内的给定关注区。现有的视频编码系统通过丢弃视频的已经传输的部分并重新编码和重新发送新视频来实现这一点。举例来说,如图1中所说明,可以编码和发送112第一参考图片104和第二参考图片108两者。这不仅是低效的,而且在解码器侧引起延迟,这损害了用户体验。
25.当前主题涉及自适应裁剪的系统和过程,自适应裁剪是一种实现视频编码器/解码器的附加灵活性的技术,允许在各种使用情况下节省比特率。一般来说,自适应裁剪将如
在比特流中用信号表示的裁剪与如在比特流中用信号表示的自适应缩放组合;自适应裁剪可以包括使用参考帧的参考区域作为当前帧的参考来执行预测,其中参考区域“子帧”具有例如以像素定义的小于参考帧的面积的面积。在当前的编码标准中,预测帧是从整个参考帧生成的。在自适应裁剪中,参考帧内的参考区域可以用作参考图片以生成预测帧。该方法可用于缩小视频分辨率,从而降低比特率,聚焦于观看者感兴趣的区域,和/或聚焦于由自动或用户促进的检测识别为包括与一些目的和/或任务更相关的视觉数据的区域。
26.在一些实施例中,自适应裁剪可以在gop内的任何位置处用于任何数量的帧,从而消除对i帧重新编码和/或重传的要求。
27.现在参考图2,示出了帧204的示例性实施例,其可以包括参考帧,其中子帧表示视频视图的裁剪部分。子帧可以例如由如下面进一步详细描述的解码器在参考帧内识别。在不需要单独传输裁剪参考帧的情况下,子帧可以以类似于使用裁剪参考帧的方式用作参考区域以生成解码帧208。替代地,可以在不进行裁剪的情况下使用参考帧来生成当前帧,该当前帧可以如下面进一步详细描述的那样被裁剪和/或重新调整大小,类似地无需重新传输裁剪的参考帧。这种方法带来的优点可以包括节省用于视频传输的带宽、节省用于视频编码的资源和/或节省解码和播放视频所需的时间。结果可以是优异的用户体验以及实现所公开的实施例的设备和/或网络中的资源的更有效使用。
28.作为非限制性和说明性示例,并且现在参考图3,参考帧可以具有由第一宽度d1和第一高度d2定义的第一分辨率,其中d1和d2可以是但不限于诸如像素和/或像素分数的测量单位的数量;参考系的区域可以被定义为测量单元d1和d2的矩形阵列的区域,其被定义为分辨率d1
×
d2。子帧304可以具有宽度w和高度h,定义w
×
h的面积或分辨率。子帧304可以定义参考图片内具有相同或更小尺寸的子图片,其中“更小尺寸”表示w和h中的至少一个小于参考帧的相应尺寸;换句话说,w小于d1或h小于d2。结果,分辨率或面积w
×
h可以小于分辨率或面积d1
×
d2。子帧304可由四元组(x、y、w、h)定义,其中x、y是子帧304的左上角相对于参考图片的左上角的坐标,且w、h是以测量单位表示的子帧304的宽度及高度。应当注意,可以选择替代四元组来定义子帧304,例如但不限于子帧304的替代角的坐标、一组两个对角相对的顶点和/或到任何定义的点的矢量。定义子帧304的数据在gop上可以是静态的;例如,四元组(x、y、w、h)或等效物在gop上可以是静态的。替代地或另外地,定义子帧304的数据可以是动态的。例如但不限于,子帧304在gop的后续图片之间改变,以跟随视频图片中感兴趣的对象和/或人的移动。可以提供为图片组的每个图片定义子帧304的数据;这可以不受限制地通过定义子帧304的一组数据来实现,例如如上所述,对于一组图片中的每个图片,通过定义一个图片中的子帧304的一组数据以及描述子帧304从一个图片到前一个或后一个图片的移动的其他数据等。定义子帧304的数据可在序列参数集(sps)中指定和/或用信号发送;定义子帧304的更新数据可以在用于gop的一个或多个所选图片和/或帧的图片参数集(pps)中提供。
29.仍参看图3,可使用至少垂直偏移及至少水平偏移来用信号发送经裁剪子帧304;例如但不限于,如上所述的四元组可以指定从帧的顶部边缘的垂直偏移、从帧的底部边缘的垂直偏移、从帧的左边缘的水平偏移以及从帧的右边缘的水平偏移,其中可以在重新缩放之前或之后以帧的像素测量偏移,如下面进一步详细描述的。作为非限制性实例,至少垂直偏移可以包括sps_conf_win_top_offset和sps_conf_win_bottom offset,其可在sps中
用信号发送且可分别识别距帧的顶部边缘的垂直偏移和距帧的底部边缘的垂直偏移。作为另一非限制性实例,至少水平偏移可包括sps_conf_win_left_offset和sps_conf_win_right_offset,其可以在sps中用信号发送且可以分别识别从帧的左边缘的水平偏移和从帧的右边缘的水平偏移。
30.继续参考图3,可以用作经裁剪帧的子帧304可以替代地或另外地通过指定要包括在子帧304中和/或从子帧304中排除的一个或多个区块或切片来识别。可以在图片标头中用信号发送帧内的图块编号及位置。在实施例中,信令可以是显式的;替代地或另外,pps可以信号发送图块行、列、行高度及/或列宽度,其中的任一者或全部可由解码器组合及/或利用以确定图块计数及/或数目。例如但不限于,表示为pps_num_exp_tile_columns_minus1的pps参数(其中添加1)可以指定明确提供的图块列宽度的数量。作为另一非限制性示例,参数pps_tile_column_width_minus1[i](其中添加1)可以指定第i图块列的宽度,例如在0到pps_num_exp_tile_columns_minus1(包括端点)范围内的i的编码树块(ctb)为单位。参数pps_tile_row_height_minus1[i]加1(其中加1)可以指定第i个图块行的高度,例如对于i以ctb为单位。用信号发送的参数可替代地或另外指定一个或一个以上图块内的切片的数目和/或尺寸。举例来说,表示为pps_num_exp_slices_in_tile[i]的参数可以指定含有第i个切片的图块中的切片的明确提供的切片高度的数目。表示为pps_slice_width_in_tiles_minus1[i]的参数(其中添加1)可以以图块列为单位指定第i个矩形图块的宽度。例如,当pps_num_exp_slices_in_tiles[i]等于0时,表示为pps_slice_height_in_tiles_minus1[i]的参数(其中添加1)可以以图块行为单位指定第i个矩形图块的高度。本领域技术人员在阅读本公开的全部内容时将意识到可以在比特流和/或报头参数中和/或从比特流和/或报头参数中用信号发送和/或确定图块和/或切片参数的各种替代或附加方式,无论是隐式地还是显式地。
[0031]
进一步参考图3,帧可以被划分为两个或更多个子帧304。子帧304可经识别及/或用信号发送一个或多个图块及/或切片,如上文所描述,包括(但不限于)通过指定包括于给定子帧304中的图块及/或切片。一个或多个此类子帧304可用作如本发明中所描述的裁剪子帧304或从其中排除。
[0032]
继续参考图3,自适应裁剪可以被实现为模式。在解码期间的某个点处的自适应裁剪模式激活的情况下,解码器可能已经接收到分辨率为d1
×
d2的参考帧,并且可以使用如上所述的四元组来选择子区域。在一些实施方式中,编码器可以使用比特流中的额外比特向解码器发信号。信令比特可以是参考帧索引和/或标识gop的索引,在标识解码器处的图片索引的缓冲器内,以及子帧304四元组。然后,解码器可以根据四元组对由索引标识的参考图片执行裁剪操作,并且可选地对经裁剪子帧304执行缩放操作。后续帧可以从裁剪和可选地缩放的子帧304预测,或者在子帧304是根据参考帧解码的帧的情况下,可以在裁剪和可选地缩放之前从参考帧预测。在定义子帧304的数据如上所描述是动态的情况下,可以进一步使用这样的数据和参考帧来预测后续帧;有利地,单个参考帧可以用于相对于参考帧移动的子帧304,而不需要重新传输参考帧。在使用子帧304对当前帧进行解码之前,可以对参考帧本身执行裁剪和/或调整大小;替代地或另外地,可以使用参考帧对当前帧进行解码,然后根据如上所述的信令进行裁剪。类似地,可以在解码当前帧之前对参考帧和/或子帧执行重新缩放,或者在解码之后对当前帧执行重新缩放。
[0033]
现在参考图4,解码器可以在多种模式之一中实现自适应裁剪。在示例性实施例中,并且如图4所示,解码器可以使用降低分辨率模式(rrm)来实现自适应裁剪。rmm预测图片可以具有与子帧相同的分辨率;例如,在子帧具有比参考帧更小的分辨率的情况下,可以以相同的小分辨率提供预测图片。换句话说,裁剪的当前帧可以保留子帧的分辨率而无需重新缩放。获得预测图片所需的所有操作(诸如预测)可以直接在区域上进行,和/或在裁剪之前在参考帧上进行。随后可以将预测图片重新缩放为更小或更大的图片。
[0034]
进一步参考图4,可以通过将参考宽度和高度乘以任意重新缩放常数(rc)(也称为缩放因子和/或常数,其可以替代地或另外地用诸如refpicscale的变量名称来指代)来获得较小和较大帧的宽度和高度。在较小帧的情况下,rc可以具有0和1之间的值。在较大帧的情况下,rc可以具有大于1的值;例如,rc可以具有1和4之间的值。其他值也是可能的。对于一个分辨率维度,重新缩放常数可以与另一分辨率维度不同;例如,可以使用重新缩放常数rch来重新缩放高度,而可以使用另一个重新缩放常数rcw来重新缩放宽度。
[0035]
仍然参考图4,重新缩放可以被实现为模式。在一些实施方案中,编码器可(例如)根据图片参数(例如pps_pic_width_in_luma_samples参数、pps_scaling_win_right_offset参数及/或pps_scaling_win_left_offset参数)向解码器发信号发送使用哪一重新缩放常数。可以在对应于包括当前图片的gop的序列参数集(sps)中和/或在对应于当前图片的图片参数集(pps)中执行信令。举例来说且非限制,编码器可使用例如pps_pic_width_in_luma_samples、pps_pic_height_in_luma_samples、pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset、pps_scaling_win_bottom_offset和/或sps_num_subpics_minus1等字段来用信号发送经重新缩放的参数。例如pps_scaling_window_explicit_signalling_flag等于1的参数可以指定缩放窗口偏移参数存在于pps中;等于0的pps_scaling_window_explicit_signalling_flag可以指示缩放窗口偏移参数不存在于pps中。当sps_ref_pic_resampling_enabled_flag等于0时,pps_scaling_window_explicit_signalling_flag的值可以等于0。pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset可指定应用于图片大小以用于缩放比率计算的偏移。当不存在时,可推断pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset及pps_scaling_win_bottom_offset的值分别等于pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset及pps_conf_win_bottom_offset。
[0036]
进一步参考图4,可以不受限制地分别使用变量currpicscalwinwidthl和currpicscalwinheightl来表示如上所述的w和h参数;可以使用用信号发送的参数和变量之间的一个或多个数学关系从如上所述的用信号发送的参数导出这些变量。例如但不限于,currpicscalwinwidth1可以根据以下等式导出:
[0037]
currpicscalwinwidthl=pps_pic_width_in_luma_samples

[0038]
subwidthc*(pps_scaling_win_right_offset pps_scaling_win_left_offset)
[0039]
作为另一非限制性示例,可以根据下式导出currpicscalwinheightl:
[0040]
currpicscalwinwidthl=pps_pic_width_in_luma_samples-[0041]
subwidthc*(pps_scaling_win_right_offset pps_scaling_win_left_offset)
[0042]
本领域技术人员在阅读本公开的全部内容后将意识到可以用于导出上述变量的各种替代计算。编码器可替代地或另外例如但不限于在pps和/或sps中直接用信号发送一个或多个此类变量rc、rch和/或rcw。
[0043]
替代地或附加地,且仍参看图4,可以使用对所存储的缩放常数及/或常数的索引及/或使用先前用信号表示及/或利用的缩放常数及/或常数用信号表示的帧及/或块的索引的参考在比特流中用信号表示如上文所描述的重新缩放常数及/或重新缩放常数集合。对所存储缩放常数的索引的参考可以明确地用信号发送和/或从在比特流中用信号表示的一个或多个额外参数确定。例如但不限于,解码器可以识别包括当前帧的参考帧和/或图片组;在重新缩放常数先前已在此类图片群组中用信号发送和/或使用的情况下,在参考帧用信号发送为适用于当前帧和/或当前图片群组等的情况下,解码器可识别该重新缩放常数以用作当前帧的重新缩放常数。
[0044]
在一些实施方式中,并且继续参考图4,可以在编码帧和/或子帧的块级上执行重新缩放操作。例如,可以首先重新缩放参考帧,并且随后可以执行预测。可以对缩放的参考帧(具有缩放的分辨率)而不是原始参考帧执行块预测过程。重新缩放参考帧可以包括根据由如上所述的编码器用信号发送的任何参数进行重新缩放;例如但不限于,在例如经由对与参考帧相关联的索引值的参考等发信号发送要与当前图片一起使用的参考帧的情况下,可以在预测之前根据上述重新缩放的任何方法重新缩放发信号发送的参考帧。重新缩放的参考帧可以存储在存储器和/或缓冲器中,其可以包括但不限于通过索引识别包括在其中的帧的缓冲器,根据该索引可以执行帧检索;缓冲器可以包括解码图片缓冲器(dcb)和/或由解码器实现的一个或多个附加缓冲器。预测过程可包括(例如)包括运动补偿的图片间预测。
[0045]
仍参看图4,基于块的重新缩放的一些实施方案可以实现对每一块应用最优滤波器而非对整个帧应用相同滤波器的灵活性。在一些实施方式中,跳过重新缩放模式可以是可能的,使得一些块(例如基于像素的均匀性和比特率成本)可以处于跳过重新缩放模式(使得重新缩放不会改变比特率)。可以在比特流中用信号发送跳过重新缩放模式;例如但不限于,可以在pps参数中用信号发送跳过重新缩放模式。替代地或另外,解码器可基于由解码器设置和/或在比特流中用信号发送的一个或多个参数而确定跳过重新缩放模式是作用中的。
[0046]
仍然参考图4,在重新缩放中使用的空间滤波器可以包括但不限于应用双三次内插的双三次空间滤波器、应用双线性解释的双线性空间滤波器、使用lanczos滤波和/或lanczos重新采样的lanczos滤波器,所述lanczos滤波和/或lanczos重新采样使用sinc滤波器、sinc函数内插和/或信号重构技术等的组合;本领域技术人员在阅读本公开的全部内容后将意识到可以用于与本公开一致的内插的各种滤波器。作为非限制性实例,内插滤波器可包括上文所描述的任何滤波器、低通滤波器,其可(但不限于)通过上取样过程使用,借此可将缩放之前的块及/或帧的像素之间的像素初始化为零,且接着用低通滤波器的输出填充。替代地或另外,可使用任何亮度样本内插滤波过程。亮度样本解释可包括计算半样本内插滤波器索引处的内插值,其落在未经缩放样本阵列的两个连续样本值之间。可以通过从查找表检索系数和/或权重来执行内插值的计算,但不限于此;查找表的选择可以根据编码单元的运动模型和/或缩放比率量来执行,例如,如使用如上所述的缩放常数确定的。计
算可以包括但不限于执行相邻像素值的加权和,其中从查找表检索权重。计算值可以替代地或附加地被移位;例如但不限于,值可以移位min(4,bitdepth-8)、6、max(2,14-bitdepth)等。所属领域的技术人员在审阅本发明的全部内容后将了解可用于内插滤波器的各种替代或额外实施方案。
[0047]
现在参考图5,解码器可以使用相同分辨率模式(srm)来实现自适应裁剪。在srm中,可以例如使用如上所述的重新缩放常数来重新缩放子帧,以匹配视频的全分辨率;例如,w和h可以各自乘以被选择为将w和h缩放到与如上所述的d1和d2相同的大小的rc,诸如但不限于rc=d1/w。可以执行预测和其他操作以使用重新缩放的子帧获得预测图片。
[0048]
现在参考图6,公开了自适应裁剪的方法600的示例性实施例。在步骤605处,在解码器处接收比特流。包括当前块的当前帧可以包括在解码器接收的比特流内。比特流可以包括例如在使用数据压缩时作为解码器的输入的比特流中找到的数据。比特流可以包括解码视频所需的信息。接收可以包括从比特流中提取和/或解析块和相关联的信令信息。在一些实施方式中,当前块可以包括编码树单元(ctu)、编码单元(cu)或预测单元(pu)。
[0049]
在步骤610处,并且继续参考图6,使用比特流来识别第一帧。根据比特流识别第一帧的经裁剪子帧。识别经裁剪子帧可以包括在比特流中接收经裁剪子帧的几何表征;这可以以本公开中描述的任何方式实现,诸如但不限于四元组,诸如如上所述的(x、y、w、h)。几何表征可以包括对定义裁剪子帧的数据的更新,其中裁剪子帧位置相对于参考帧是动态的,如上所述。
[0050]
在步骤615处,并且仍然参考图6,解码器根据比特流来确定与经裁剪子帧相关联的缩放常数。这可以不受限制地如上所述地实现。
[0051]
在步骤620处,并且仍然参考图6,解码器使用缩放常数重构经裁剪子帧的像素数据;这可以不受限制地如上所述地实现。
[0052]
仍然参考图6,在一些实施方式中,子帧可以被显示为例如gop中的图片。
[0053]
在一些实施方式中,并且继续参考图6,第二帧或其一部分在自适应裁剪模式中并且使用子帧作为参考帧。解码可以包括但不限于如上所述的rrm中的解码,或者换句话说,在不重新缩放子帧的情况下执行解码操作。解码可以包括但不限于如上所述的srm中的解码。解码可包括使用经缩放的子帧和缩放常数来生成经缩放的参考帧,以及使用经缩放的参考帧来解码第二帧或其部分。
[0054]
图7是示出能够自适应裁剪的示例解码器700的系统框图。解码器700可以包括熵解码器处理器704、逆量化和逆变换处理器708、去块滤波器712、帧缓冲器716、运动补偿处理器720和/或帧内预测处理器724。
[0055]
在操作中,并且仍然参考图7,比特流728可以由解码器700接收并输入到熵解码器处理器704,熵解码器处理器704可以将比特流的部分熵解码为量化系数。量化系数可以被提供给逆量化和逆变换处理器708,逆量化和逆变换处理器708可以执行逆量化和逆变换以创建残差信号,残差信号可以根据处理模式被添加到运动补偿处理器720或帧内预测处理器724的输出。运动补偿处理器720和帧内预测处理器724的输出可以包括基于先前解码的块的块预测。预测和残差的总和可以由解块滤波器712处理并存储在帧缓冲器716中。
[0056]
在实施例中,并且仍然参考图7,解码器700可以包括被配置为以任何顺序并且以任何重复程度实现如上所述的任何实施例中的如上所述的任何操作的电路。例如,解码器
700可以被配置为重复地执行单个步骤或序列,直到实现期望的或命令的结果;可以迭代地和/或递归地执行步骤或步骤序列的重复,使用先前重复的输出作为后续重复的输入,聚合重复的输入和/或输出以产生聚合结果,减少或递减一个或多个变量(诸如全局变量),和/或将较大的处理任务划分成一组迭代寻址的较小处理任务。解码器可以并行地执行如本公开中描述的任何步骤或步骤序列,诸如使用两个或更多个并行线程、处理器核等同时和/或基本上同时执行步骤两次或更多次;可以根据适合于在迭代之间划分任务的任何协议来执行并行线程和/或进程之间的任务划分。本领域技术人员在阅读本公开的全部内容后将意识到可以使用迭代、递归和/或并行处理来细分、共享或以其他方式处理步骤、步骤序列、处理任务和/或数据的各种方式。
[0057]
图8是示出利用自适应裁剪对视频进行编码的示例过程800的过程流程图,该自适应裁剪可以实现视频编码器/解码器的附加灵活性,从而允许在各种使用情况下节省比特率。在步骤805处,视频帧可以经历初始块分割,例如,使用可以包括将图片帧分割成ctu和cu的树结构宏块分割方案。
[0058]
在步骤810处,并且仍然参考图8,可以执行基于块的自适应裁剪,包括选择帧或其部分的子帧。可以通过自动或专家输入来选择区域。作为非限制性实例,可通过检测某些对象的计算机视觉算法来实现自动选择;对象检测可以包括诸如对象分类等的进一步处理。可以使用人工干预来实现专家输入选择,但不限于此,例如选择视频中感兴趣的人和/或对象的特写,例如监视视频中的人。另一种可能的用例可以是选择对比特率降低贡献最大的最大显著区域。自适应裁剪还可以包括选择子帧的几何表征;例如但不限于,子帧的几何表征的选择可以包括选择如上所述的四元组,例如但不限于(x、y、w、h)。子帧的几何表征的选择可以包括更新信息和/或指示定义子帧的数据从一个帧到另一个帧的变化的信息,如上面关于定义子帧的动态数据所描述的。
[0059]
仍然参考图8,在步骤815处,可以对块进行编码并将其包括在比特流中。例如,编码可以包括利用帧间预测和帧内预测模式。编码可以包括将比特添加到表征(x,y,w,h)、标识自适应裁剪模式等的比特流,例如如上所述。编码可以包括编码更新信息和/或指示定义子帧的数据从一个帧到另一个帧的变化的信息,如上面关于定义子帧的动态数据所描述的。在实施例中,编码器可以如上所述确定并发送重新缩放常数。
[0060]
图9是示出能够自适应裁剪的示例视频编码器900的系统框图。示例视频编码器900可以接收输入视频904,输入视频904可以根据诸如树结构宏块分割方案(例如,四叉树加二叉树)的处理方案被初始地分割或划分。树结构宏块分割方案的示例可以包括将图片帧分割成被称为编码树单元(ctu)的大块元素。在一些实施方案中,每一ctu可一或多次进一步分割成被称作译码单元(cu)的若干子块。该划分的最终结果可以包括可以被称为预测单元(pu)的一组子块。还可以利用变换单元(tu)。
[0061]
仍参看图9,实例视频编码器900可包括帧内预测处理器908、运动估计/补偿处理器912(其也可被称作帧间预测处理器)、变换/量化处理器916、逆量化/逆变换处理器920、环路内滤波器924、经解码图片缓冲器928和/或熵译码处理器932,所述运动估计/补偿处理器912能够构建运动向量候选项列表,包括将全局运动向量候选项添加到运动向量候选项列表。比特流参数可以被输入到熵编码处理器932以包括在输出比特流936中。
[0062]
在操作中,并且继续参考图9,对于输入视频904的帧的每个块,可以确定是经由图
片内预测还是使用运动估计/补偿来处理块。块可以被提供给帧内预测处理器908或运动估计/补偿处理器912。如果要经由帧内预测来处理块,则帧内预测处理器908可以执行处理以输出预测符。如果将经由运动估计/补偿处理块,那么运动估计/补偿处理器912可执行包括以下的处理:构建运动矢量候选者列表,包括将全局运动矢量候选者添加到运动矢量候选者列表(如果适用)。
[0063]
进一步参考图9,可以通过从输入视频中减去预测符来形成残差。残差可以由变换/量化处理器916接收,变换/量化处理器916可以执行变换处理(例如,离散余弦变换(dct))以产生可以被量化的系数。可将经量化系数和任何相关联的信令信息提供到熵译码处理器932以用于熵编码且包括于输出比特流936中。熵编码处理器932可支持与编码当前块相关的信令信息的编码。另外,可将经量化系数提供到可再现像素的逆量化/逆变换处理器920,所述像素可与预测符组合且由环路内滤波器924处理,环路内滤波器924的输出可存储在经解码图片缓冲器928中以供运动估计/补偿处理器912使用,所述运动估计/补偿处理器912能够构建运动向量候选者列表,包括将全局运动向量候选者添加到运动向量候选者列表。
[0064]
继续参考图9,尽管上面已经详细描述了一些变型,但是其他修改或添加是可能的。例如,在一些实施方式中,当前块可以包括任何对称块(8
×
8、16
×
16、32
×
32、64
×
64、128
×
128等)以及任何不对称块(8
×
4、16
×
8等)。
[0065]
在一些实现方式中,并且仍然参考图9,可以实现四叉树加二叉决策树(qtbt)。在qtbt中,在编码树单元级,可以动态地导出qtbt的分区参数以适应本地特性而不传输任何开销。随后,在编码单元级,联合分类器决策树结构可以消除不必要的迭代并控制错误预测的风险。在一些实施方案中,ltr帧块更新模式可用作在qtbt的每一叶节点处可用的额外选项。
[0066]
在一些实施方案中,且仍参看图9,可在比特流的不同层级处用信号发送额外语法元素。举例来说,可通过包括编码于序列参数集(sps)中的启用旗标而针对整个序列启用旗标。此外,ctu旗标可在译码树单元(ctu)层级处译码。
[0067]
一些实施例可以包括存储指令的非暂时性计算机程序产品(即,物理地体现的计算机程序产品),所述指令在由一个或多个计算系统的一个或多个数据处理器执行时使得至少一个数据处理器执行本文中的操作。
[0068]
仍然参考图9,编码器900可以包括被配置为在任何实施例中以任何顺序并且以任何重复程度实现如上面参考图8或图9描述的任何操作的电路。例如,编码器900可以被配置为重复地执行单个步骤或序列,直到实现期望的或命令的结果;可以迭代地和/或递归地执行步骤或步骤序列的重复,使用先前重复的输出作为后续重复的输入,聚合重复的输入和/或输出以产生聚合结果,减少或递减一个或多个变量(诸如全局变量),和/或将较大的处理任务划分成一组迭代寻址的较小处理任务。编码器900可以并行地执行如本公开中描述的任何步骤或步骤序列,诸如使用两个或更多个并行线程、处理器核等同时和/或基本上同时执行步骤两次或更多次;可以根据适合于在迭代之间划分任务的任何协议来执行并行线程和/或进程之间的任务划分。本领域技术人员在阅读本公开的全部内容后将意识到可以使用迭代、递归和/或并行处理来细分、共享或以其他方式处理步骤、步骤序列、处理任务和/或数据的各种方式。
[0069]
继续参考图9,非暂时性计算机程序产品(即,物理地体现的计算机程序产品)可以存储指令,所述指令在由一个或多个计算系统的一个或多个数据处理器执行时,使得至少一个数据处理器执行本公开中描述的操作和/或其步骤,包括但不限于上面参考图6和图8描述的任何操作和/或解码器700和/或编码器900可以被配置为执行的任何操作。类似地,还描述了可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器的计算机系统。存储器可以临时或永久地存储使至少一个处理器执行本文描述的一个或多个操作的指令。另外,方法可以由单个计算系统内或分布在两个或更多个计算系统之间的一个或多个数据处理器来实现。这样的计算系统可以经由一个或多个连接(包括通过网络(例如,互联网、无线广域网、局域网、广域网、有线网络等)的连接)、经由多个计算系统中的一个或多个之间的直接连接等来连接并且可以交换数据和/或命令或其他指令等。
[0070]
本文公开的实施例包括解码器,该解码器包括电路,该电路被配置为接收比特流,根据比特流识别当前帧和当前帧的裁剪子帧,根据比特流确定与裁剪子帧相关联的缩放常数,以及使用缩放常数重构裁剪子帧的像素数据。
[0071]
在实施例中,经裁剪子帧可以在比特流中用信号发送。可在序列参数集(sps)中用信号发送经裁剪子帧。可使用至少垂直偏移和至少水平偏移来用信号发送经裁剪子帧。所述至少垂直偏移可包括sps_conf_win_top_offset及sps_conf_win_bottom offset,且所述至少水平偏移可包括sps_conf_win_left_offset及sps_conf_win_right_offset。缩放常数可以包括垂直缩放分量和水平缩放分量。可以在比特流内用信号发送缩放常数。缩放常数在图片参数集(pps)中用信号发送。缩放常数可根据pps_pic_width_in_luma_samples参数、pps_scaling_win_right_offset参数及pps_scaling_win_left_offset参数用信号发送。解码器可以被配置为通过内插像素值来缩放经裁剪子帧。
[0072]
在实施例中,包括由解码器接收比特流,由解码器根据比特流识别当前帧和当前帧的裁剪子帧,由解码器根据比特流确定与裁剪子帧相关联的缩放常数,以及由解码器使用缩放常数重构裁剪子帧的像素数据。
[0073]
在实施例中,经裁剪子帧可以在比特流中用信号发送。可在序列参数集(sps)中用信号发送经裁剪子帧。可使用至少垂直偏移和至少水平偏移来用信号发送经裁剪子帧。所述至少垂直偏移可包括sps_conf_win_top_offset及sps_conf_win_bottom offset,且所述至少水平偏移可包括sps_conf_win_left_offset及sps_conf_win_right_offset。缩放常数可以包括垂直缩放分量和水平缩放分量。可以在比特流内用信号发送缩放常数。缩放常数在图片参数集(pps)中用信号发送。缩放常数可根据pps_pic_width_in_luma_samples参数、pps_scaling_win_right_offset参数及pps_scaling_win_left_offset参数用信号发送。解码器可以被配置为通过内插像素值来缩放经裁剪子帧。
[0074]
应当注意,本文描述的任何一个或多个方面和实施例可以使用数字电子电路、集成电路、专门设计的专用集成电路(asic)现场可编程门阵列(fpga)、计算机硬件、固件、软件和/或其组合来方便地实现,如在根据本说明书的教导编程的一个或多个机器(例如,用作电子文档的用户计算设备的一个或多个计算设备、诸如文档服务器的一个或多个服务器设备等)中实现和/或实现的。这对于计算机领域的普通技术人员来说是显而易见的。这些各个方面或特征可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序和/或软件中的实现,该可编程系统包括至少一个可编程处理器,其可以是专用的或通用
的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并将数据和指令发送到存储系统、至少一个输入设备和至少一个输出设备。如对于软件领域的普通技术人员将显而易见的,基于本公开的教导,熟练的程序员可以容易地准备适当的软件编码。上面讨论的采用软件和/或软件模块的方面和实现方式还可以包括用于辅助实现软件和/或软件模块的机器可执行指令的适当硬件。
[0075]
这样的软件可以是采用机器可读存储介质的计算机程序产品。机器可读存储介质可以是能够存储和/或编码由机器(例如,计算设备)执行的指令序列并且使机器执行本文描述的方法和/或实施例中的任何一个的任何介质。机器可读存储介质的示例包括但不限于磁盘、光盘(例如,cd、cd-r、dvd、dvd-r等)、磁光盘、只读存储器“rom”设备、随机存取存储器“ram”设备、磁卡、光卡、固态存储器设备、eprom、eeprom、可编程逻辑器件(plds)和/或其任何组合。如本文所使用的,机器可读介质旨在包括单个介质以及物理上分离的介质的集合,诸如例如与计算机存储器组合的光盘或一个或多个硬盘驱动器的集合。如本文所使用的,机器可读存储介质不包括瞬时形式的信号传输。
[0076]
这样的软件还可以包括作为数据信号在数据载体(诸如载波)上携带的信息(例如,数据)。例如,机器可执行信息可以被包括为体现在数据载体中的数据承载信号,其中信号对指令序列或其部分进行编码以供机器(例如,计算设备)执行,以及任何相关信息(例如,数据结构和数据),其使机器执行本文描述的方法和/或实施例中的任何一个。
[0077]
计算设备的示例包括但不限于电子书阅读设备、计算机工作站、终端计算机、服务器计算机、手持设备(例如,平板计算机、智能电话等)、网络设备、网络路由器、网络交换机、网桥、能够执行指定要由该机器采取的动作的指令序列的任何机器,及其任何组合。在一个示例中,计算设备可以包括自助服务终端和/或被包括在自助服务终端中。
[0078]
图8示出了计算机系统800的示例性形式的计算设备的一个实施例的图形表示,其中可以执行用于使控制系统执行本公开的任何一个或多个方面和/或方法的一组指令。还可以设想,可以利用多个计算设备来实现用于使一个或多个设备执行本公开的任何一个或多个方面和/或方法的专门配置的指令集。计算机系统800包括经由总线812彼此通信以及与其他组件通信的处理器804和存储器808。总线812可以包括若干类型的总线结构中的任何一种,包括但不限于使用各种总线架构中的任何一种的存储器总线、存储器控制器、外围总线、本地总线及其任何组合。
[0079]
存储器808可以包括各种组件(例如,机器可读介质),包括但不限于随机存取存储器组件、只读组件及其任何组合。在一个示例中,包括诸如在启动期间帮助在计算机系统800内的元件之间传送信息的基本例程的基本输入/输出系统816(bios)可以存储在存储器808中。存储器808还可以包括(例如,存储在一个或多个机器可读介质上)体现本公开的方面和/或方法中的任何一个或多个的指令(例如,软件)820。在另一示例中,存储器808还可以包括任何数量的程序模块,包括但不限于操作系统、一个或多个应用程序、其他程序模块、程序数据及其任何组合。
[0080]
计算机系统800还可以包括存储设备824。存储设备(例如,存储设备824)的示例包括但不限于硬盘驱动器、磁盘驱动器、与光学介质组合的光盘驱动器、固态存储器设备及其任何组合。存储设备824可以通过适当的接口(未示出)连接到总线812。示例接口包括但不限于scsi、高级技术附件(ata)、串行ata、通用串行总线(usb)、ieee 1394(火线)及其任何
组合。在一个示例中,存储设备824(或其一个或多个组件)可以与计算机系统800可移除地对接(例如,经由外部端口连接器(未示出))。特别地,存储设备824和相关联的机器可读介质828可以为计算机系统800提供机器可读指令、数据结构、程序模块和/或其他数据的非易失性和/或易失性存储。在一个示例中,软件820可以完全或部分地驻留在机器可读介质828内。在另一示例中,软件820可以完全或部分地驻留在处理器804内。
[0081]
计算机系统800还可以包括输入设备832。在一个示例中,计算机系统800的用户可以经由输入设备832将命令和/或其他信息输入到计算机系统800中。输入设备832的示例包括但不限于字母数字输入设备(例如,键盘)、指点设备、操纵杆、游戏手柄、音频输入设备(例如,麦克风、语音响应系统等)、光标控制设备(例如,鼠标)、触摸板、光学扫描仪、视频捕获设备(例如,静态相机、视频相机)、触摸屏及其任何组合。输入设备832可以经由各种接口(未示出)中的任何一种接口连接到总线812,包括但不限于串行接口、并行接口、游戏端口、usb接口、firewire接口、到总线812的直接接口及其任何组合。输入设备832可以包括触摸屏界面,该触摸屏界面可以是显示器836的一部分或与显示器836分离,如下面进一步讨论的。输入设备832可以用作用于选择如上所述的图形界面中的一个或多个图形表示的用户选择设备。
[0082]
用户还可以经由存储设备824(例如,可移动磁盘驱动器、闪存驱动器等)和/或网络接口设备840向计算机系统800输入命令和/或其他信息。网络接口设备(诸如网络接口设备840)可以用于将计算机系统800连接到各种网络(诸如网络844)中的一个或多个以及与其连接的一个或多个远程设备848。网络接口设备的示例包括但不限于网络接口卡(例如,移动网络接口卡、lan卡)、调制解调器及其任何组合。网络的示例包括但不限于广域网(例如,互联网、企业网络)、局域网(例如,与办公室、建筑物、校园或其他相对小的地理空间相关联的网络)、电话网络、与电话/语音提供商相关联的数据网络(例如,移动通信提供商数据和/或语音网络)、两个计算设备之间的直接连接及其任何组合。诸如网络844的网络可以采用有线和/或无线通信模式。通常,可以使用任何网络拓扑。信息(例如,数据、软件820等)可以经由网络接口设备840传送到计算机系统800和/或从计算机系统800传送。
[0083]
计算机系统800还可以包括用于将可显示图片传送到显示设备(诸如显示设备836)的视频显示适配器852。显示装置的实例包括(但不限于)液晶显示器(lcd)、阴极射线管(crt)、等离子显示器、发光二极管(led)显示器及其任何组合。显示适配器852和显示设备836可以与处理器804结合使用,以提供本公开的各方面的图形表示。除了显示设备之外,计算机系统800可以包括一个或多个其他外围输出设备,包括但不限于音频扬声器、打印机及其任何组合。这样的外围输出设备可以经由外围接口856连接到总线812。外围接口的示例包括但不限于串行端口、usb连接、火线连接、并行连接及其任何组合。
[0084]
以上是本发明的说明性实施例的详细说明书。在不脱离本发明的精神和范围的情况下,可以进行各种修改和添加。上述各种实施例中的每一个的特征可以适当地与其他描述的实施例的特征组合,以便在相关联的新实施例中提供多种特征组合。此外,虽然前面描述了多个单独的实施例,但是本文所描述的仅仅是对本发明原理的应用的说明。另外,尽管本文的特定方法可以被示出和/或描述为以特定顺序执行,但是顺序在普通技术范围内是高度可变的,以实现本文公开的实施例。因此,该说明书旨在仅作为示例,而不是以其他方式限制本发明的范围。
[0085]
在以上描述和权利要求书中,可以出现诸如
“……
中的至少一个”或
“……
中的一个或多个”的短语,之后是元件或特征的联合列表。术语“和/或”也可以出现在两个或更多个元件或特征的列表中。除非另外隐含地或明确地与其使用的上下文相矛盾,否则这样的短语旨在表示单独列出的元件或特征中的任一个或所述元件或特征中的任一个与其他所述元件或特征中的任一个的组合。例如,短语“a和b中的至少一个”、“a和b中的一个或多个”以及“a和/或b”各自旨在表示“单独的a、单独的b或a和b一起”。类似的解释也旨在用于包括三个或更多个项目的列表。例如,短语“a、b和c中的至少一个”、“a、b和c中的一个或多个”和“a、b和/或c”各自旨在表示“单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起或a和b和c一起”。另外,在上文和权利要求中使用术语“基于”旨在表示“至少部分地基于”,使得未记载的特征或元素也是允许的。
[0086]
取决于期望的配置,本文描述的主题可以体现在系统、装置、方法和/或物品中。前述实施例中阐述的说明书不表示与本文描述的主题一致的所有实现。相反,它们仅仅是与所描述的主题相关的方面一致的一些示例。尽管上面已经详细描述了一些变型,但是其他修改或添加也是可能的。特别地,除了本文阐述的那些之外,还可以提供另外的特征和/或变型。例如,上述实施方式可以涉及所公开的特征的各种组合和子组合和/或上面公开的若干其他特征的组合和子组合。另外,附图中描绘和/或本文描述的逻辑流程不一定需要所示的特定顺序或相继顺序来实现期望的结果。其他实施方式可以在所附权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献