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

帧速率可伸缩视频编码的制作方法

2023-02-16 13:22:24 来源:中国专利 TAG:

帧速率可伸缩视频编码
1.相关申请的交叉引用
2.本技术要求于2020年6月15日提交的美国专利申请16/901,911以及于2021年3月25日提交的美国专利申请号17/212,701的优先权权益,所述专利申请中的每一个都通过引用以其全文并入本文。
技术领域
3.本文件总体上涉及图像。更具体地,本发明的实施例涉及帧速率可伸缩(frame-rate scalable)视频编码。


背景技术:

4.如本文所使用的,术语“动态范围(dr)”可以涉及人类视觉系统(hvs)感知图像中的强度(例如,光亮度、亮度)的范围的能力,所述强度的范围例如是从最暗的灰色(黑色)到最亮的白色(高光)。从这个意义上说,dr与“参考场景的(scene-referred)”强度有关。dr还可以涉及显示设备充分或近似渲染特定阔度的强度范围的能力。从这个意义上说,dr与“参考显示的(display-referred)”强度有关。在本文的描述中除非在任何一点明确指定特定的意义具有特定的意思,否则应推断为所述术语可以在任一意义上例如可互换地被使用。
5.如本文所使用的,术语“高动态范围(hdr)”涉及跨越人类视觉系统(hvs)的14至15个数量级的dr阔度。在实践中,关于hdr,人类可以同时感知强度范围广泛阔度的dr可能会被稍微截短。
6.在实践中,图像包括一个或多个颜色分量(例如,亮度y以及色度cb和cr),其中,每个颜色分量由每像素n比特的精度表示(例如,n=8)。使用线性光亮度编码,其中n≤8的图像(例如,彩色24比特jpeg图像)被视为标准动态范围(sdr)的图像,而其中n》8的图像可以被视为增强动态范围的图像。hdr图像还可以使用高精度(例如,16比特)浮点格式被存储和分发,诸如由工业光魔公司(industrial light and magic)开发的openexr文档格式。
7.目前,视频高动态范围内容(诸如杜比实验室的杜比视界或蓝光中的hdr10)的分发被许多回放设备的性能限制在4k分辨率(例如,4096
×
2160或3840
×
2160等)和60帧/秒(fps)。在未来版本中,预计高达8k分辨率(例如,7680
×
4320)和120fps的内容可用于分发和回放。期望未来的内容类型将与现有的回放设备兼容,以简化hdr回放内容生态系统,诸如杜比视界。理想地,内容生产者应能够采用和分发未来的hdr技术,而不必还获得和分发与现有hdr设备(诸如hdr10或杜比视界)兼容的内容的特殊版本。如发明人在此所理解的,期望用于视频内容(尤其是hdr内容)的可伸缩分发的改进技术。
8.在本节中描述的方法是可以追寻的方法,但不一定是之前已经设想到或追寻的方法。因此,除非另有指示,否则不应假设本节所描述的任何方法仅凭其纳入本节就可称为现有技术。类似地,除非另有指示,否则关于一种或多种方法所认定的问题不应基于本节而被认为在任何现有技术中已被认识到。
附图说明
9.在附图中以举例而非限制的方式来图示本发明的实施例,并且其中相似的附图标记指代相似的元素,并且在附图中:
10.图1描绘了视频传输流水线的示例过程;
11.图2描绘了根据本发明实施例的组合连续原始帧以便以目标快门角度渲染目标帧速率的示例过程;
12.图3描绘了根据本发明实施例的在具有固定帧速率的容器中具有可变输入帧速率和可变快门角度的输入序列的示例表示;以及
13.图4描绘了根据本发明实施例的具有向后兼容性的各种帧速率和快门角度下的时间可伸缩性的示例表示。
具体实施方式
14.本文描述了涉及用于视频编码的帧速率可伸缩性的示例实施例。在以下说明中,出于解释的目的,阐述了许多特定细节以便提供对本发明的各种实施例的透彻理解。然而,清楚的是,可以在没有这些具体细节的情况下实践本发明的各种实施例。在其他情况下,为了避免不必要地遮蔽、模糊或混淆本发明的实施例,没有详尽地描述众所周知的结构和设备。
15.概述
16.本文描述的示例实施例涉及视频编码中的帧速率可伸缩性。在实施例中,一种具有处理器的系统接收编码比特流,所述编码比特流包括编码视频帧,其中,一个或多个编码帧以第一帧速率和第一快门角度被编码。所述处理器接收第一标志,所述第一标志指示存在要以第二帧速率和第二快门角度被解码的一组编码帧,所述处理器从所述编码比特流访问用于所述一组编码帧的所述第二帧速率和所述第二快门角度的值,并且基于所述一组编码帧、所述第一帧速率、所述第一快门角度、所述第二帧速率和所述第二快门角度,生成所述第二帧速率和所述第二快门角度的解码帧。
17.在第二实施例中,一种具有处理器的解码器:
18.接收编码比特流,所述编码比特流包括多组编码视频帧,其中,所述编码比特流中的所有编码视频帧以第一帧速率被编码;
19.接收组合帧的数量n;
20.接收基线帧速率的值;
21.访问一组n个连续编码帧,其中,所述一组n个连续编码帧中的第i编码帧表示在编码器中基于第一快门角度和所述第一帧速率以所述基线帧速率和第i快门角度编码的最多i个输入视频帧的平均值,其中,i=1、2、

n;
22.从所述编码比特流或从用户输入访问第二帧速率和第二快门角度的值,以用于以所述第二帧速率和所述第二快门角度对所述一组n个连续编码帧进行解码;以及
23.基于所述一组n个连续编码帧、所述第一帧速率、所述第一快门角度、所述第二帧速率和所述第二快门角度,生成所述第二帧速率和所述第二快门角度的解码帧。
24.在第三实施例中,一种编码视频流结构包括:
25.编码图片部分,所述编码图片部分包括对视频图片序列的编码;以及
26.信令部分,所述信令部分包括对以下的编码:
27.快门间隔时间标度参数,所述快门间隔时间标度参数指示一秒中经过的时间单位的数量;
28.快门间隔时钟周期参数,所述快门间隔时钟周期参数指示以所述快门间隔时间标度参数的频率操作的时钟的时间单位的数量,
29.其中,所述快门间隔时钟周期参数除以所述快门间隔时间标度参数指示曝光持续时间值;
30.快门间隔持续时间标志,所述快门间隔持续时间标志指示曝光持续时间信息是否对于所述编码图片部分中的所有时间子层都是固定的;以及
31.如果所述快门间隔持续时间标志指示所述曝光持续时间信息是固定的,则通过基于所述快门间隔时间标度参数和所述快门间隔时钟周期参数计算所述曝光持续时间值来针对所述编码图片部分中的所有所述时间子层对所述视频图片序列的解码版本进行解码,否则
32.所述信令部分包括一个或多个子层参数阵列,其中,与所述快门间隔时间标度参数组合的所述一个或多个子层参数阵列中的值被用来针对每个子层计算用于显示所述视频图片序列的时间子层的解码版本的对应的子层曝光持续时间值。
33.示例视频传输处理流水线
34.图1描绘了传统视频传输流水线(100)的示例过程,所述传统视频传输流水线示出了从视频捕获到视频内容显示的各个阶段。使用图像生成块(105)来捕获或生成视频帧(102)序列。视频帧(102)可以被(例如,由数码相机)数字地捕获或者由计算机(例如,使用计算机动画)生成以提供视频数据(107)。替代性地,视频帧(102)可以由胶片相机捕获在胶片上。胶片被转换为数字格式以提供视频数据(107)。在制作阶段(110),对视频数据(107)进行编辑以提供视频制作流(112)。
35.制作流(112)的视频数据然后在块(115)处被提供给处理器以进行后期制作编辑。块(115)后期制作编辑可以包括调节或修改图像的特定区中的颜色或明亮度(brightness),以根据视频创作者的创作意图来增强图像质量或实现图像的特定外观。这有时被称为“颜色调整(color timing)”或“颜色分级(color grading)”。可以在块(115)处执行其他编辑(例如,场景选择和排序、图像裁剪、添加计算机生成的视觉特效、抖动或模糊控制、帧速率控制等)以产生用于分发的作品的最终版本(117)。在后期制作编辑(115)期间,在参考显示器(125)上观看视频图像。在后期制作(115)之后,可以将最终作品(117)的视频数据传输到编码块(120),以便向下游传输到解码和回放设备,诸如电视机、机顶盒、电影院等。在一些实施例中,编码块(120)可以包括音频编码器和视频编码器,诸如由atsc、dvb、dvd、蓝光和其他传输格式定义的那些,以生成编码比特流(122)。在接收器中,编码比特流(122)由解码单元(130)解码,以生成表示信号(117)的相同或接近近似版本的解码信号(decoded signal)(132)。接收器可以附接到目标显示器(140),所述目标显示器可以具有与参考显示器(125)完全不同的特性。在这种情况下,显示管理块(135)可以用于通过生成显示器映射信号(display-mapped signal)(137)来将解码信号(132)的动态范围映射到目标显示器(140)的特性。
36.可伸缩编码
37.可伸缩编码已经是许多视频编码标准(诸如mpeg-2、avc和hevc)的一部分。在本发明的实施例中,可伸缩编码被扩展用于提高性能和灵活性,尤其是在可伸缩编码涉及非常高分辨率的hdr内容时。
38.如本文所使用的,术语“快门角度”表示可调节的快门设置,所述快门设置控制胶片在每个帧间隔期间曝光的时间比例。例如,在实施例中
[0039][0040]
所述术语来自传统的机械旋转快门;然而,现代的数码相机也可以通过电子方式调节其快门。电影摄影师可以使用快门角度来控制每一帧中记录的运动模糊或抖动的量。应注意,还可以使用像“曝光持续时间”、“快门间隔”和“快门速度”等替代性术语,以代替“曝光时间”。类似地,可以使用术语“帧持续时间”,以代替“帧间隔”。替代性地,可以用“1/帧速率”来替换“帧间隔”。曝光时间的值通常小于或等于帧的持续时间。例如,180度的快门角度指示曝光时间是帧持续时间的一半。在某些情况下,曝光时间可以大于编码视频的帧持续时间,例如,当编码帧速率为120fps并且编码和显示之前的相关视频内容的帧速率为60fps时。
[0041]
非限制性地,考虑在原始帧速率(例如,120fps)下以360度的快门角度拍摄(或生成)原始内容的实施例。然后,在接收设备中,可以通过原始帧的公平组合(例如,通过平均或本领域已知的其他操作)以等于或低于原始帧速率的各种帧速率渲染视频输出。
[0042]
组合过程可以用非线性编码信号(例如,使用γ(gamma)、pq或hlg)来执行,但是最佳图像质量是通过以下各项组合线性光域中的帧来获得的:首先将非线性编码信号转换成线性光表示,然后组合经转换的帧,并且最后用非线性传递函数对输出进行重新编码。此过程提供了比在非线性域中组合更准确的对物理相机曝光的模拟。
[0043]
一般而言,组合帧的过程可以用原始帧速率、目标帧速率、目标快门角度和要组合的帧的数量来表达,如:
[0044]
n_frames=(target_shutter_angle/360)*(original_frame_rate/target_frame_rate),
ꢀꢀ
(2)
[0045]
其等价于
[0046]
target_shutter_angle=360*n_frames*(target_frame_rate/original_frame_rate),
ꢀꢀ
(3)
[0047]
其中,n_frames是组合帧的数量,original_frame_rate是原始内容的帧速率,target_frame_rate是要渲染的帧速率(其中,target_frame_rate≤original_frame_rate),并且target_shutter_angle指示期望的运动模糊的量。在此示例中,target_shutter_angle的最大值为360度并且对应于最大运动模糊。target_shutter_angle的最小值可以表示为360*(target_frame_rate/original_frame_rate)并且对应于最小运动模糊。n_frames的最大值可以表示为(original_frame_rate/target_frame_rate)。应选择target_frame_rate和target_shutter_angle的值,使得n_frames的值为非零整数。
[0048]
在原始帧速率为120fps的特殊情况下,等式(2)可以被重写成
[0049]
n_frames=target_shutter_angle/(3*target_frame_rate),
ꢀꢀ
(4)
[0050]
其等价于
[0051]
target_shutter_angle=3*n_frames*target_frame_rate.
ꢀꢀ
(5)
[0052]
对于original_frame_rate=120fps的情况,表1中示出了target_frame_rate、n_frames和target_shutter_angle的值之间的关系。在表1中,“na”指示不允许目标帧速率和组合帧的数量的对应组合。
[0053]
表1:对于120fps的原始帧速率,目标帧速率、组合帧的数量和目标快门角度之间的关系。
[0054][0055]
图2描绘了根据实施例的组合连续原始帧以便以目标快门角度渲染目标帧速率的示例过程。考虑120fps和360度快门角度下的输入序列(205),所述过程通过组合五个连续帧的集合中的三个输入帧(例如,前三个连续帧)并丢弃其他两个帧来生成24fps和216度快门角度下的输出视频序列(210)。应注意,在一些实施例中,(210)的输出帧-01可以通过组合替代性输入帧(205)(诸如帧1、3和5或者帧2、4和5等)而被生成;然而,预计组合连续帧将产生质量更好的视频输出。
[0056]
期望支持具有可变帧速率的原始内容,例如,以用于管理艺术和风格效果。还期望将原始内容的可变输入帧速率封装在具有固定帧速率的“容器”中,以简化内容制作、交换和分发。作为示例,呈现了关于如何在固定帧速率容器中表示可变帧速率视频数据的三个实施例。出于清楚的目的,但非限制性地,以下描述使用固定的120fps容器,但是所述方法可以轻松地被扩展到替代性帧速率容器。
[0057]
第一实施例(可变帧速率)
[0058]
第一实施例是对封装在具有恒定帧速率的容器中的具有可变(非恒定)帧速率的原始内容的明确描述。例如,对于不同的场景具有不同帧速率(例如,24、30、40、60或120fps)的原始内容可以封装在具有120fps的恒定帧速率的容器中。对于此示例,每个输入帧可以被复制5x、4x、3x、2x或1x次,以将其封装到共同的120fps容器中。
[0059]
图3描绘了在具有固定帧速率的编码比特流b中表示的具有可变帧速率和可变快门角度的输入视频序列a的示例。然后,在解码器中,解码器以期望的帧速率和快门角度重建输出视频序列c,所述期望的帧速率和快门角度可以因场景而异。例如,如图3所描绘的,为了构建序列b,输入帧中的一些被复制,一些被原样编码(没有复制),并且一些被拷贝四次。然后,为了构建序列c,从每组复制帧中选择任何一帧来生成输出帧,从而与原始帧速率和快门角度相匹配。
[0060]
在此实施例中,元数据被插入比特流中以指示原始(基本)帧速率和快门角度。元数据可以使用诸如序列参数集(sps)、图片参数集(pps)、切片或图块组标题等高级语法用
信号表示。元数据的存在使编码器和解码器能够执行有益的功能,如:
[0061]
a)编码器可以忽略复制的帧,由此提高编码速度并简化处理。例如,可以使用skip模式和参考帧的list 0中的参考索引0对复制的帧中的所有编码树单元(ctu)进行编码,所述参考帧是指从中拷贝复制的帧的解码帧。
[0062]
b)解码器可以绕过对复制帧的解码,由此简化处理。例如,比特流中的元数据可以指示帧是解码器可以通过拷贝并且无需对新的帧进行解码来再现的先前经解码帧的副本。
[0063]
c)回放设备可以通过指示基本帧速率来优化下游处理(例如,通过调节帧速率转换或降噪算法)。
[0064]
此实施例使终端用户能够以内容创作者预期的帧速率观看渲染的内容。此实施例不提供与不支持容器的帧速率(例如,120fps)的设备的向后兼容性。
[0065]
表2和表3描绘了用于序列参数集和图块组标题的原始字节序列有效载荷(rbsb)的示例语法,其中,提出的新语法元素以斜体字体描绘。其余语法遵循多功能视频编解码器(vvc)的建议规范中的语法(参考文献[2])。
[0066]
作为示例,在sps(参见表2)中,可以添加标志来启用可变帧速率。
[0067]
sps_vfr_enabled_flag等于1指定编码视频序列(cvs)可以包含可变帧速率内容。sps_vfr_enabled_flag等于0指定cvs包含固定帧速率内容。
[0068]
在tile_group header()中(参见表3),
[0069]
tile_group_vrf_info_present_flag等于1指定语法元素tile_group_true_fr和tile_group_shutterangle存在于语法中。tile_group_vrf_info_present_flag等于0指定语法元素tile_group_true_fr和tile_group_shutterangle在语法中不存在。当tile_group_vrf_info_present_flag不存在时,推断其为0。
[0070]
tile_group_true_fr指示此比特流中携带的视频数据的真实帧速率。
[0071]
tile_group_shutterangle指示对应于此比特流中携带的视频数据的真实帧速率的快门角度。
[0072]
tile_group_skip_flag等于1指定当前图块组是从另一图块组拷贝的。tile_group_skip_flag等于0指定当前图块组不是从另一图块组拷贝的。
[0073]
tile_group_copy_pic_order_cnt_lsb指定当tile_group_skip_flag设置为1时当前图片拷贝自的先前解码图片的图片顺序计数模maxpicordercntlsb。
[0074]
表2:具有可变帧速率的内容的示例参数集rbsp语法
[0075][0076]
表3:支持具有可变帧速率的内容的图块组标题语法的示例
[0077][0078]
第二实施例——固定帧速率容器
[0079]
第二实施例实现了这样的使用情况:其中,具有固定帧速率和快门角度的原始内容可以由解码器以替代性帧速率和可变模拟快门角度来渲染,诸如图2所图示的。例如,在原始内容的帧速率为120fps并且快门角度为360度的情况下(意味着快门打开1/120秒),解码器可以渲染出小于或等于120fps的多个帧速率。例如,如表1所描述的,为了用216度模拟
快门角度对24fps进行解码,解码器可以组合三个解码帧并以24fps显示。表4扩展了表1并图示了如何组合不同数量的编码帧以便以输出目标帧速率和期望目标快门角度渲染。可以通过简单的像素平均、通过加权像素平均(其中,来自某帧的像素可以比其他帧的像素被加权更多,并且所有权重之和共计为一)或者通过本领域已知的其他滤波插值方案来执行对帧的组合。在表4中,函数ce(a,b)表示编码帧a至b的组合,其中,所述组合可以通过平均、加权平均、滤波等来执行。
[0080]
表4:以120fps组合输入帧以生成目标fps和快门角度值下的输出帧的示例
[0081][0082][0083]
当目标快门角度的值小于360度时,解码器可以组合不同的解码帧集合。例如,根据表1,考虑120fps@360度的原始流,为了生成40fps和240度快门角度下的流,解码器需要组合三个可能的帧中的两个帧。因此,解码器可以组合第一帧和第二帧或者第二帧和第三
帧。对要组合哪些帧的选择可以用表示为以下等式的“解码相位(decoding phase)”来描述:
[0084]
decode_phase=decode_phase_idx*(360/n_frames),
ꢀꢀ
(6)
[0085]
其中,decode_phase_idx表示索引值在[0,n_frames_max-1]中的序列帧的集合内的偏移索引,其中,n_frames由等式(2)给出,并且
[0086]
n_frames_max=orig_frame_rate/target_frame_rate.
ꢀꢀ
(7)
[0087]
decode_phase_idx的范围通常为[0,n_frames_max-n_frames]。例如,对于在120fps和360度快门角度下的原始序列,对于在240度快门角度下40fps的目标帧速率,n_frames_max=120/40=3。根据等式(2),n_frames=2,因此decode_phase_idx的范围为[0,1]。因此,decode_phase_idx=0指示选择索引为0和1的帧,并且decode_phase_idx=1指示选择索引为1和2的帧。
[0088]
在此实施例中,内容创作者预期的渲染的可变帧速率可以用信号表示为元数据,诸如补充增强信息(sei)消息或视频可用性信息(vui)。可选地,渲染的帧速率可以由接收器或用户控制。表5中示出了指定内容创作者的优选帧速率和快门角度的帧速率转换sei消息传递的示例。sei消息还可以指示组合帧是在编码信号域(例如,γ(gamma)、pq等)中还是在线性光域中执行。应注意,除了解码器图片缓冲器(dpb)之外,后处理还需要帧缓冲器。sei消息可以指示需要多少额外的帧缓冲器或者指示用于组合帧的某种替代性方法。例如,为了降低复杂性,可以以降低的空间分辨率来重新组合帧。
[0089]
如表4所描绘的,在帧速率和快门角度的某些组合下(例如,在30fps和360度下或在24fps和288度或360度下),解码器可能需要组合多于三个解码帧,这增加了解码器所需的缓冲器空间的数量。为了减轻解码器中额外缓冲器空间的负担,在一些实施例中,帧速率和快门角度的某些组合可能不能使用允许的解码参数的集合(例如,通过设置适当的编码配置文件和级别)。
[0090]
再次考虑以24fps回放的情况作为示例,解码器可以决定显示要以120fps输出帧速率显示的同一帧五次。这与以24fps输出帧速率示出该帧一次完全相同。保持恒定的输出帧速率的优点在于显示器可以以恒定的时钟速度运行,这使得所有硬件更加简单。如果显示器可以动态地改变时钟速度,则只示出该帧一次(持续1/24秒)可能会更合理,而不是重复同一帧五次(每次1/120秒)。前一种方法可以产生略高的图片质量、更好的光学效率或更好的功率效率。类似的考虑也适用于其他帧速率。
[0091]
表5描绘了根据实施例的帧速率转换sei消息传递语法的示例。
[0092]
表5:允许帧速率转换的sei消息语法的示例
[0093][0094]
framerate_conversion_cancel_flag等于1指示sei消息按输出顺序取消任何先前帧速率转换sei消息的留存。framerate_conversion_cancel_flag等于0指示随后是帧速率转换信息。
[0095]
base_frame_rate指定期望的帧速率。
[0096]
base_shutter_angle指定期望的快门角度。
[0097]
decode_phase_idx_present_flag等于1指定解码相位信息存在。decode_phase_idx_present_flag等于0指定解码相位信息不存在。
[0098]
decode_phase_idx指示索引值为0..(n_frames_max-1)的序列帧的集合内的偏移索引,其中,n_frames_max=120/base_frame_rate。decode_phase_idx的值应在0..(n_frames_max-n_frames)的范围中,其中,n_frames=base_shutter_angle/(3*base_frame_rate)。当decode_phase_idx不存在时,推断其为0。
[0099]
conversion_domain_idc等于0指定在线性域中执行帧组合。conversion_domain_idc等于1指定在非线性域中执行帧组合。
[0100]
num_frame_buffers指定帧缓冲器的附加数量(dpb不算在内)。
[0101]
framerate_conversion_persistence_flag指定当前层的帧速率转换sei消息的留存。framerate_conversion_persistence_flag等于0指定帧速率转换sei消息仅适用于当前解码图片。设pica为当前图片。framerate_conversion_persistence_flag等于1指定帧速率转换sei消息按输出顺序为当前层留存,直到以下条件中的一个或多个条件为真:
[0102]-当前层的新编码分层视频序列(clvs)开始。
[0103]-比特流结束。
[0104]-输出访问单元中的当前层中的图片picb,所述图片picb包含适用于当前层的帧速率转换sei消息,对于所述图片picb,picordercnt(picb)大于picordercnt(pica),其中,picordercnt(picb)和picordercnt(pica)分别是紧接在调用用于picb的图片顺序计数的解码过程之后的picb和pica的picordercntval值。
[0105]
第三实施例——以多个快门角度编码的输入
[0106]
第三实施例是允许从比特流中提取子帧速率从而支持向后兼容性的编码方案。在hevc中,这通过时间可伸缩性实现。通过为解码帧的temporal_id语法元素分配不同的值,
实现了时间层可伸缩性。由此可以简单地在temporal_id值的基础上提取比特流。然而,时间可伸缩性的hevc风格的方法并未实现以不同的快门角度渲染输出帧速率。例如,从120fps原始帧速率中提取的60fps基本帧速率将始终具有180度的快门角度。
[0107]
在atsc 3.0中,描述了替代性方法,其中,具有360度快门角度的60fps下的帧被模拟为两个120fps帧的加权平均值。模拟的60fps帧被分配有temporal_id值0,并与分配有temporal_id值1的交替的原始120fps帧组合。当需要60fps时,解码器只需要对temporal_id为0的帧进行解码。当需要120fps时,解码器可以从每个对应的temporal_id=0的帧(即,模拟的60fps帧)的缩放版本中减去每个temporal_id=1的帧(即,120fps帧),以恢复没有被明确传送的对应的原始120fps帧,由此重新构成所有的原始120fps帧。
[0108]
在本发明的实施例中,描述了以向后兼容(bc)的方式支持多个目标帧速率和目标快门角度的新算法。提出在若干快门角度下以基本帧速率对原始120fps内容进行预处理。然后,在解码器处,可以简单地得到各种其他快门角度下的其他帧速率。atsc 3.0方法可以被认为是所提出方案的特殊情况,其中,temporal_id=0的帧以60fps@360快门角度携带帧,并且temporal_id=1的帧以60fps@180快门角度携带帧。
[0109]
作为第一示例,如图4所描绘的,考虑120fps和360快门角度下的输入序列,所述输入序列用于以40fps的基本层帧速率以及120度、240度和360度的快门角度对序列进行编码。在此方案中,编码器通过组合原始输入帧中的多达三个帧来计算新的帧。例如,通过组合输入帧1和2来生成表示40fps和240度下的输入的编码帧2(en-2),并且通过将帧en-2组合到输入帧3来生成表示40fps和360度下的输入的编码帧3(en-3)。在解码器中,为了重建输入序列,通过从帧en-2中减去帧en-1来生成解码帧2(dec-2),并且通过从帧en-3中减去帧en-2来生成解码帧3(dec-3)。这三个解码帧表示120fps的基本帧速率和360度快门角度下的输出。如表6所描绘的,可以使用解码帧来外推附加帧速率和快门角度。在表6中,函数cs(a,b)表示输入帧a至b的组合,其中,所述组合可以通过平均、加权平均、滤波等来执行。
[0110]
表6:基线为40fps的帧组合的示例
[0111][0112]
此方法的优点在于如表6所描绘的,可以对所有40fps版本进行解码,而不需要任何进一步的处理。另一个优点在于可以在各种快门角度下得到其他帧速率。例如,考虑了以30fps和360的快门角度解码的解码器。根据表4,输出对应于由ce(1,4)=cs(1,4)、cs(5,8)、cs(9,12)等生成的帧的序列,所述序列还与表6中描绘的解码序列相匹配;然而,在表6中,cs(5,8)=e6-e4 e8。在实施例中,可以使用查找表(lut)来定义需要如何组合解码帧以生成指定的输出帧速率和仿真快门角度下的输出序列。
[0113]
在另一个示例中,提出在编码器中组合多达五个帧,以便简化在72度、144度、216度、288度和360度的快门角度下对24fps基本层的提取,如下所示。对于在传统电视上以24fps最佳呈现的电影内容而言,这是期望的。
[0114]
表7:基线为24fps的帧组合的示例
[0115][0116]
如表7所描绘的,如果解码帧速率与基线帧速率(24fps)相匹配,则在每组五个帧(例如,e1至e5)中,解码器可以仅选择期望的快门角度下的一个帧(例如,对于144度的快门角度为e2)。为了以不同的帧速率和特定快门角度进行解码,解码器将需要确定如何适当地组合(例如,通过加法或减法)解码帧。例如,为了以30fps和180度的快门角度进行解码,可以遵循以下步骤:
[0117]
a)解码器可以考虑假设的编码器以120fps和360度传送而不对向后兼容性做任何考虑,然后,根据表1,解码器需要组合4个帧中的2个帧以便以期望的帧速率和快门角度生成输出序列。例如,如表4所描绘的,所述序列包括ce(1,2)=avg(s1,s2)、ce(5,6)=avg(s5,s6)等,其中,avg(s1,s2)可以表示帧s1和s2的平均。
[0118]
b)考虑根据定义,编码帧可以表示为e1=s1、e2=avg(s1,s2)、e3=avg(s1,s3)等,可以容易地得到步骤a)中的帧的序列还可以表示为:
[0119]
·
ce(1,2)=avg(s1,s2)=e2
[0120]
·
ce(5,6)=avg(s5,s6)=avg(s1,s5)-avg(s1,s4) s6=e5-e4 e6
[0121]
·
等等。
[0122]
如前,可以预先计算解码帧的适当组合,并且可以将其用作lut。
[0123]
所提出方法的优点在于其为内容创作者和用户两者都提供了选项;即,其实现了导演/编辑选择和用户选择。例如,编码器中的预处理内容允许用各种快门角度创建基本帧速率。每个快门角度可以分配有在范围[0,(n_frames-1)]中的temporal_id值,其中,n_frames的值等于120除以基本帧速率。(例如,对于24fps的基本帧速率,temporal_id在范围[0,4]中。)可以作出选择,以优化压缩效率,或者是出于美观的原因。在一些使用情况下,例如,对于过顶流式传输(overthetop streaming),可以对具有不同基本层的多个比特流进行编码和存储,并将其提供给用户以进行选择。
[0124]
在所公开方法的第二示例中,可以支持多个向后兼容的帧速率。理想地,可能会希望能够以24帧/秒进行解码以获得24fps基本层,以30帧/秒进行解码以获得30fps序列,以60帧/秒进行解码以获得60fps序列等。如果未指定目标快门角度,则建议在源帧速率和目标帧速率允许的那些快门角度中的默认目标快门角度尽可能接近180度。例如,对于表7中描绘的值,120、60、40、30和24的fps的优选目标快门角度是360度、180度、120度、180度和216度。
[0125]
从以上示例可以观察到,对如何对内容进行编码的选择会影响对特定基本层帧速率进行解码的复杂性。本发明的一个实施例是基于期望的基本层帧速率自适应地选择编码方案。例如,对于电影内容,可以是24fps,而对于体育内容,可以是60fps。
[0126]
下文以及表8和表9中示出了本发明的bc实施例的示例语法。
[0127]
在sps(表8)中,添加了两个语法元素:sps_hfr_bc_enabled_flag和sps_base_framerate(如果sps_hfr_bc_enabled_flag被设置为等于1)。
[0128]
sps_hfr_bc_enabled_flag等于1指定在编码视频序列(cvs)中启用具有向后兼容性的高帧速率。sps_hfr_bc_enabled_flag等于0指定在cvs中不启用具有向后兼容性的高帧速率。
[0129]
sps_base_framerate指定当前cvs的基本帧速率。
[0130]
在图块组标题中,如果sps_hfr_bc_enabled_flag设置为1,则语法number_avg_frames在比特流中被发送。
[0131]
number_avg_frames指定被组合以便以基本帧速率生成当前图片的在最高帧速率(例如,120fps)下的帧的数量。
[0132]
表8:各种快门角度下的输入的示例rbsp语法
[0133][0134]
表9:各种快门角度下的输入的示例图片参数集rbsb语法
[0135][0136]
第二实施例的变化(固定帧速率)
[0137]
hevc(h.265)编码标准(参考文献[1])和正在开发的通用视频编码标准(通常称为vvc,参见参考文献[2])定义语法元素pic_struct,所述语法元素指示图片应显示为帧还是一个或多个字段以及解码图片是否应被重复。为了便于参考,附录中提供了来自hevc的表d.2“pic_struct解释”的拷贝。
[0138]
重要的是应注意,如发明人所理解的,当使用固定帧速率编码容器时,现有的pic_
struct语法元素可以仅支持内容帧速率的特定子集。例如,当使用60fps的固定帧速率容器时,在fixed_pic_rate_within_cvs_flag等于1时,现有的pic_struct语法可以通过使用帧双倍增(frame doubling)来支持30fps,并且以每隔一帧交替组合的方式使用帧双倍增和帧三倍增(frame tripling)来支持24fps。然而,当使用120fps的固定帧速率容器时,当前pic_struct语法不能支持24fps或30fps的帧速率。为了缓解这个问题,提出了两种新方法:一种方法是hevc版本的扩展,而另一种不是。
[0139]
方法1:没有向后兼容性的pic_struct
[0140]
vvc仍在开发中,因此可以以最大自由度设计语法。在实施例中,在pic_struct中,提出删除帧双倍增和帧三倍增的选项、使用pic_struct的特定值来指示任意帧重复,并且添加指定要重复的帧数量的新语法元素num_frame_repetition_minus2。下表中描述了所提出语法的示例,其中,表10表示相对于hevc中的表d.2.3的变化,并且表11表示附录所示出的表d.2的变化。
[0141]
表10:示例图片定时sei消息语法,方法1
[0142][0143]
num_frame_repetition_minus2加2指示当fixed_pic_rate_within_cvs_flag等于1时,帧应在显示器上连续显示num_frame_repetition_minus2加2次,其中帧刷新间隔等于dpboutputelementalinterval[n],如等式e-73所给出的。
[0144]
表11:根据方法1的经修订pic_struct的示例
[0145][0146]
方法2:pic_struct的hevc版本的扩展版本
[0147]
已经部署了avc和hevc解码器,因此可能会期望简单扩展现有的pic_struct语法,而不删除旧的选项。在实施例中,添加了新的“帧重复扩展”值pic_struct=13和新的语法元素num_frame_repetition_minus4。表12和表13中描述了所提出语法的示例。对于pic_struct值0至12,所提出语法与表d.2中的语法相同(如附录所示),因此为了简洁起见,省略了这些值。
[0148]
表12:示例图片定时sei消息语法,方法2
[0149][0150]
num_frame_repetition_minus4加4指示当fixed_pic_rate_within_cvs_flag等于1时,帧应在显示器上连续显示num_frame_repetition_minus4加4次,其中帧刷新间隔等于dpboutputelementalinterval[n],如等式e-73所给出的。
[0151]
表13:经修订pic_struct的示例,方法2
[0152][0153]
在hevc中,参数frame_field_info_present_flag存在于视频可用性信息(vui)中,但语法元素pic_struct、source_scan_type和duplicate_flag在pic_timing()sei消息中。在实施例中,提出将所有相关语法元素连同frame_field_info_present_flag一起移动到vui。表14中描绘了所提出语法的示例。
[0154]
表14:支持经修订pic_struct语法元素的示例vui参数语法
[0155]
[0156]
快门角度信息的替代性信令
[0157]
当处理可变帧速率时,期望确定期望的帧速率和期望的快门角度两者。在现有的视频编码标准中,“视频可用性信息”(vui)提供了适当显示视频内容所必不可少的信息,诸如纵横比、基色(colour primaries)、色度子采样等。如果固定pic速率设置为1,则vui还可以提供帧速率信息;然而,不支持快门角度信息。实施例允许不同的快门角度用于不同的时间层,并且解码器可以使用快门角度信息来改善显示器上的最终外观。
[0158]
例如,hevc支持本质上使用丢帧技术从较高的帧速率变为较低的帧速率的时间子层。其主要问题在于有效的快门角度随着每次帧丢弃而减小。作为示例,通过每隔一帧丢弃一帧,可以从120fps视频得到60fps;通过丢弃4个帧中的3个帧,可以得到30fps;并且通过丢弃5个帧中的4个帧,可以得到24fps。假设120hz的完全的360度快门,通过简单的丢帧,60fps、30fps和24fps的快门角度分别为180度、90度和72度[3]。经验表明,低于180度的快门角度通常是不可接受的,尤其是在帧速率低于50hz的情况下。通过提供快门角度信息,例如,如果期望显示器从针对每个时间层具有减小的快门角度的120hz视频产生电影效果,则可以应用智能技术来改善最终外观。
[0159]
在另一个示例中,可能会希望在相同快门角度下支持不同时间层(例如,120fps比特流内的60fps子比特流)。那么,主要的问题在于当120fps视频以120hz显示时,偶数/奇数帧具有不同的有效快门角度。如果显示器具有相关信息,则可以应用智能技术来改善最终外观。表15中示出了所提出语法的示例,其中,hevc的e.2.1vui参数语法表(参考文献[1])被修改为支持所提到的快门角度信息。应注意,在另一个实施例中,shutter_angle语法可以替代性地被表示为帧速率与快门速度之比(参见等式(1)),而不是以绝对度数表示。
[0160]
表15:支持快门角度的示例vui参数语法
[0161][0162]
vui_shutter_angle_info_present_flag等于1指定快门角度信息存在于vui_parameters()语法结构中。vui_shutter_angle_info_present_flag等于0指定快门角度信息在vui_parameters()语法结构中不存在。
[0163]
fixed_shutter_angle_within_cvs_flag等于1指定快门角度信息对于cvs中的所有时间子层是相同的。fixed_shutter_angle_within_cvs_flag等于0指定快门角度信息对于cvs中的所有时间子层可以不相同。
[0164]
fixed_shutter_angle指定cvs内的快门角度度数。fixed_shutter_angle的值应在0至360的范围中。
[0165]
sub_layer_shutter_angle[i]指定当highesttid等于i时的快门角度度数。sub_
layer_shutter_angle[i]的值应在0至360的范围中。
[0166]
编码视频序列(cvs)内的逐渐帧速率更新
[0167]
实验已经表明,对于hdr显示器上显示的hdr内容,为了感知与100尼特显示器中的标准动态范围(sdr)回放相同的运动抖动,需要基于内容的明亮度来提高帧速率。在大多数标准(avc、hevc、vvc等)中,可以使用vui_time_scale、vui_num_units_in_tick和elemental_duration_in_tc_minus1[temporal_id_max]语法元素在vui(被包含在sps中)中指示视频帧速率,例如,如下表16所示(参见参考文献[1]中的e.2.1节)。
[0168]
表16:用于指示hevc中的帧速率的vui语法元素
[0169][0170]
如参考文献[1]中所讨论的,
[0171]
变量clocktick是如下得到的并且被称为时钟周期:
[0172]
clocktick=vui_num_units_in_tick
÷
vui_time_scalepicture_duration=clocktick*(elemental_duration_in_tc_minusl[i] 1)frame_rate=l/pic_duration.
[0173]
然而,帧速率只能在特定时刻被改变,例如,在hevc中,只能在内部随机访问点(irap)帧处或在新的cvs开始时改变。对于hdr回放,在存在淡入或淡出的情况下,由于图片的明亮度逐帧变化,因此可能需要改变每个图片的帧速率或图片持续时间。为了允许帧速率或图片持续时间在任何时刻(甚至在逐帧的基础上)刷新,在实施例中,提出了用于“逐渐刷新率”的新sei消息,如表17所示。
[0174]
表17:用于支持sei消息传递中的逐渐刷新帧速率的示例语法
[0175]
[0176]
新语法num_units_in_tick的定义与vui_num_units_in_tick相同,并且time_scale的定义与vui_time_scale的定义相同。
[0177]
num_units_in_tick是以对应于时钟周期计数器的一个增量(称为时钟周期)的频率time_scale hz操作的时钟的时间单位的数量。num_units_in_tick应大于0。以秒为单位的时钟周期等于num_units_in_tick除以time_scale的商。例如,当视频信号的图片速率为25hz时,time_scale可以等于27 000 000,并且num_units_in_tick可以等于1 080 000,并且因此时钟周期可以等于0.04秒。
[0178]
time_scale是一秒中经过的时间单位的数量。例如,使用27mhz时钟测量时间的时间坐标系的time_scale为27 000 000。time_scale的值应大于0。
[0179]
使用gradual_refresh_rate sei消息的图片的图片持续时间定义为:
[0180]
pictrue_druation=num_units_in_tick
÷
time_scale.
[0181]
经由sei消息传递的快门角度信息的信令
[0182]
如之前所讨论的,表15提供了支持快门角度的vui参数语法的示例。作为示例,但非限制性地,表18列出了相同的语法元素,但现在作为快门角度信息的sei消息的一部分。应注意,sei消息传递仅用作示例,并且类似的消息传递可以在高级语法的其他层构建,诸如序列参数集(sps)、图片参数集(pps)、切片或图块组标题等。
[0183]
表18:快门角度信息的示例sei消息语法
[0184][0185]
快门角度通常以0至360度的度数表示。例如,180度的快门角度指示曝光持续时间是1/2的帧持续时间。快门角度可以表示为:shutter_angle=frame_rate*360*shutter_speed,其中,shutter_speed是曝光持续时间,并且frame_rate是帧持续时间的倒数。给定时间子层tid的frame_rate可以由num_units_in_tick、time_scale、elemental_duration_in_tc_minus1[tid]来指示。例如,当fixed_pic_rate_within_cvs_flag[tid]等于1时:
[0186]
frame_rate=time_scale/(num_umits_in_tick*(elemental_duration_in_tc_minusl[tid] 1)).
[0187]
在一些实施例中,快门角度(例如,fixed_shutter_angle)的值可以不是整数,例如,其可以是135.75度。为了使得能够更精确,在表21中,可以用u(16)或某个其他合适的位深(例如,12比特、14比特或多于16比特)来替换u(9)(无符号的9比特)。
[0188]
在一些实施例中,用“时钟周期”表达快门角度信息可以是有益的。在vvc中,变量
clocktick是如下得到的:
[0189]
clocktick=num_units_in_tick
÷
time_scale.
ꢀꢀ
(8)
[0190]
然后,可以将帧持续时间和曝光持续时间两者表示为时钟周期的倍数或分数:
[0191]
exposure_duration=fn*clocktick,
ꢀꢀ
(9)
[0192]
frame_duration=fm*clocktick,
ꢀꢀ
(10)
[0193]
其中,fn和fm是浮点值,并且fn≤fm。
[0194]
然后
[0195][0196]
其中,分子和分母是近似fn/fm比率的整数。
[0197]
表19示出了由等式(11)指示的sei消息传递的示例。在此示例中,对于真实世界中的相机,快门角度必须大于0。
[0198]
表19:用于基于时钟周期的快门角度信息的示例sei消息传递
[0199][0200]
如之前所讨论的,描绘了为了快门角度的精度对u(16)(无符号的16比特)的使用作为示例并且其对应于以下精度:360/2
16
=0.0055。精度可以基于实际应用进行调节。例如,使用u(8),精度为360/28=1.4063。
[0201]
注释——快门角度以大于0但小于或等于360度的度数表示。例如,180度的快门角度指示曝光持续时间是1/2的帧持续时间。
[0202]
fixed_shutter_angle_within_cvs_flag等于1指定快门角度值对于cvs中的所有时间子层是相同的。fixed_shutter_angle_within_cvs_flag等于0指定快门角度值对于cvs中的所有时间子层可以不相同。
[0203]
fixed_shutter_angle_numer_minus1加1指定用于得到快门角度值的分子。fixed_shutter_angle_numer_minus1的值应在0至65535(包括0和65535)的范围中。
[0204]
fixed_shutter_angle_demom_minus1加1指定用于得到快门角度值的分母。fixed_shutter_angle_demom_minus1的值应在0至65535(包括0和65535)的范围中。
[0205]
fixed_shutter_angle_numer_minus1的值应小于或等于fixed_shutter_angle_demom_minus1的值。
[0206]
变量shutterangle的度数是如下得到的:
[0207]
shutterangle=360*(fixed_shutteer_angle_numer_minus1 1)
÷
(fixed_shutter_angle_demom_minus1 1))
[0208]
sub_layer_shutter_angle_numer_minus1[i]加1指定当highesttid等于i时用于得到快门角度值的分子。sub_layer_shutter_angle_numer_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0209]
sub_layer_shutter_angle_demom_minus1[i]加1指定当highesttid等于i时用于得到快门角度值的分母。sub_layer_shutter_angle_demom_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0210]
sub_layer_shutter_angle_numer_minus1[i]的值应小于或等于sub_layer_shutter_angle_denom_minus1[i]的值。
[0211]
变量sublayershutterangle[i]的度数是如下得到的:
[0212]
sublayershutterangle[i]=360*(sub_layer_shutter_angle_numer_minus1[i] 1)
÷
(sub_layer_shutter_angle_demom_minus1[i] 1)
[0213]
在另一个实施例中,帧持续时间(例如,frame_duration)可以通过某种其他手段来指定。例如,在dvb/atsc中,当fixed_pic_rate_within_cvs_flag[tid]等于1时:
[0214]
frame_rate=time_scale/(num_units_in_tick*(elemental_duration_in_tc_minus1[tid] 1)),frame_duration=1/frame_rate.
[0215]
表19和后续表格中的一些表格中的语法假设快门角度将总是大于零;然而,快门角度=0可以用来用信号表示一种创作意图,其中,内容应在没有任何运动模糊的情况下被显示。这可以是移动图形、动画、cgi纹理和无光泽屏幕等的情况。因此,例如,信令快门角度=0可以可用于转码器中的模式决策(例如,以选择保留边缘的转码模式)以及通过cta接口或3gpp接口接收快门角度元数据的显示器中的模式决策。例如,快门角度=0可以用于指示不应执行任何运动处理(诸如去噪、帧插值等)的显示器。在这种实施例中,语法元素fixed_shutter_angle_numer_minus1和sub_layer_shutter_angle_numer_minus1[i]可以被语法元素fixed_shutter_angle_numer和sub_layer_shutter_angle_numer[i]替换,其中,
[0216]
fixed_shutter_angle_numer指定用于得到快门角度值的分子。fixed_shutter_angle_numer的值应在0至65535(包括0和65535)的范围中。
[0217]
sub_layer_shutter_angle_numer[i]指定当highesttid等于i时用于得到快门角度值的分子。sub_layer_shutter_angle_numer[i]的值应在0至65535(包括0和65535)的范围中。
[0218]
在另一个实施例中,fixed_shutter_angle_denom_minus1和sub_layer_shutter_angle_denom_minus1[i]还可以被语法元素fixed_shutter_angle_denom以及sub_layer_
shutter_angle_denom[i]替换。
[0219]
在实施例中,如表20所描绘的,通过在vvc中将general_hrd_parameters_present_flag设置为等于1,可以重复使用在sps中定义的num_units_in_tick和time_scale语法。在这种情况下,sei消息可以被重新命名为曝光持续时间sei消息。
[0220]
表20:用于用信号表示曝光持续时间的示例sei消息传递
[0221][0222]
fixed_exposure_duration_within_cvs_flag等于1指定有效曝光持续时间值对于cvs中的所有时间子层是相同的。fixed_exposure_duration_within_cvs_flag等于0指定有效曝光持续时间值对于cvs中的所有时间子层可以不相同。
[0223]
fixed_exposure_duration_numer_minus1加1指定用于得到曝光持续时间值的分子。fixed_exposure_duration_numer_minus1的值应在0至65535(包括0和65535)的范围中。
[0224]
fixed_exposure_duration_demom_minus1加1指定用于得到曝光持续时间值的分母。fixed_exposure_duration_demom_minus1的值应在0至65535(包括0和65535)的范围中。
[0225]
fixed_exposure_during_numer_minus1的值应小于或等于fixed_exposure_duration_demom_minus1的值。
[0226]
变量fixedexposureduration是如下得到的:
[0227]
fixedexposureduration=(fixed_exposure_duration_numer_minus1 1)
÷
(fixed_exposure_duration_demom_minus1 1)*clockticks
[0228]
sub_layer_exposure_duration_numer_minus1[i]加1指定当highesttid等于i时用于得到曝光持续时间值的分子。sub_layer_exposure_duration_numer_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0229]
sub_layer_exposure_duration_demom_minus1[i]加1指定当highesttid等于i时用于得到曝光持续时间值的分母。sub_layer_exposure_duration_demom_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0230]
sub_layer_exposure_duration_numer_minus1[i]的值应小于或等于sub_layer_exposure_duration_demom_minus1[i]的值。
[0231]
higesttid的变量sublayerexposureduration[i]等于i是如下得到的:
[0232][0233]
在另一个实施例中,如表21所示,可以通过语法元素expo_num_units_in_tick和expo_time_scale来明确地定义clocktick。此处的优点在于它不依赖于在vvc中general_hrd_parameters_present_flag是否如先前的实施例那样设置为等于1,于是
[0234]
clocktick=expo_nmn_units_in_tick
÷
expo_time_scale.
ꢀꢀ
(12)
[0235]
表21:用于曝光时间信令的示例sei消息传递
[0236][0237]
expo_num_units_in_tick是以对应于时钟周期计数器的一个增量(被称为时钟周期)的频率time_scale hz操作的时钟的时间单位的数量。expo_num_units_in_tick应大于0。由变量clocktick定义的以秒为单位的时钟周期等于expo_num_units_in_tick除以expo_time_scale的商。
[0238]
expo_time_scale是一秒中经过的时间单位的数量。
[0239]
clocktick=expo_num_units_in_tick
÷
expo_time_scale.
[0240]
注释:以下两个语法元素:expo_num_units_in_tick和expo_time_scale被定义为测量曝光持续时间。
[0241]
比特流一致性要求当num_units_in_tick和time_scale存在时,clocktick应小于或等于clocktick。
[0242]
fixed_exposure_duration_within_cvs_flag等于1指定有效曝光持续时间值对于cvs中的所有时间子层是相同的。fixed_exposure_duration_within_cvs_flag等于0指定有效曝光持续时间值对于cvs中的所有时间子层可以不相同。当fixed_exposure_duration_within_cvs_flag等于1时,变量fixedexposureduration设置为等于clocktick。
[0243]
sub_layer_exposure_duration_numer_minus1[i]加1指定当highesttid等于i时用于得到曝光持续时间值的分子。sub_layer_exposure_duration_numer_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0244]
sub_layer_exposure_duration_demom_minus1[i]加1指定当highesttid等于i时用于得到曝光持续时间值的分母。sub_layer_exposure_duration_demom_minus1[i]的值应在0至65535(包括0和65535)的范围中。
[0245]
sub_layer_exposure_duration_numer_minus1[i]的值应小于或等于sub_layer_exposure_duration_demom_minus1[i]的值。
[0246]
higesttid的变量sublayerexposureduration[i]等于i是如下得到的:
[0247]
sublayerexposureduration[i]=(sub_layer_exposure_duration_numer_minus1[i] 1)
÷
(sub_layer_exposure_duration_denom_minus1[i] 1)*clocktick.
[0248]
如之前所讨论的,语法参数sub_layer_exposure_duration_numer_minus1[i]和sub_layer_exposure_duration_denom_minus1[i]还可以被sub_layer_exposure_duration_numer[i]和sub_layer_exposure_duration_denom[i]替换。
[0249]
在另一个实施例中,如表22所示,可以通过语法元素sii_num_units_in_shutter_interval和sii_time_scale定义参数shutterinterval(即,曝光持续时间),其中,
[0250]
shutterinterval=sii_num_units_in_shutter_interval
÷
sii_time_scale.(13)
[0251]
表22:用于曝光持续时间(快门间隔信息)信令的示例sei消息传递
[0252][0253]
快门间隔信息sei消息语义
[0254]
快门间隔信息sei消息指示在编码和显示之前的相关视频内容的快门间隔——例如,对于相机捕获的内容而言,指示使图像传感器曝光以产生图片的时间量。
[0255]
sii_num_units_in_shutter_interval指定以对应于快门时钟周期计数器的一个增量的频率sii_time_scalehz操作的时钟的时间单位的数量。由变量shutterinterval定义的以秒为单位的快门间隔等于sii_num_units_in_shutter_interval除以sii_time_scale的商。例如,当shutterinterval等于0.04秒时,sii_time_scale可以等于27000000,并且sii_num_units_in_shutter_interval可以等于1080000。
[0256]
sii_time_scale指定一秒中经过的时间单位的数量。例如,使用27mhz时钟测量时间的时间坐标系的sii_time_scale为27000000。
[0257]
当sii_time_scale的值大于0时,shutterinterval的值由以下等式指定:
[0258]
shutterinterval=sfi_num_units_in_shutter_interval
÷
sii_time_scale
[0259]
否则(sii_time_scale的值等于0),shutterinterval应被解释为未知或未指定。
[0260]
注释1——shutterinterval的值等于0可以指示相关视频内容包含屏幕捕获内容、计算机生成的内容或其他非相机捕获内容。
[0261]
注释2——shutterinterval的值大于编码图片速率的倒数(即,编码图片间隔)的值可以指示编码图片速率大于创建相关视频内容的图片速率——例如,当编码图片速率为120hz并且在编码和显示之前的相关视频内容的图片速率为60hz时。给定时间子层tid的编码间隔可以由clocktick和elemental_duration_in_tc_minus1[tid]来指示。例如,当fixed_pic_rate_within_cvs_flag[tid]等于1时,由变量pictureinterval[tid]定义的给定时间子层tid的图片间隔可以由以下等式指定:
[0262]
pictureinterval[tid]=clocktick*(elemental_duration_in_tc_minus1[tid] 1).
[0263]
fixed_shutter_interval_within_cvs_flag等于1指定shutterinterval的值对于cvs中的所有时间子层是相同的。fixed_shutter_interval_within_cvs_flag等于0指定shutterinterval的值对于cvs中的所有时间子层可以不相同。
[0264]
sub_layer_shutter_interval_numer[i]指定当highesttid等于i时用于得到由变量sublayershutterinterval[i]定义的以秒为单位的子层快门间隔的分子。
[0265]
sub_layer_shutter_interval_denom[i]指定当highesttid等于i时用于得到由变量sublayershutterinterval[i]定义的以秒为单位的子层快门间隔的分母。
[0266]
highesttid的sublayershutterinterval[i]的值等于i是如下得到的。当fixed_shutter_interval_within_cvs_flag的值等于0并且sub_layer_shutter_interval_denom[i]的值大于0时:
[0267]
sublayershutterinterval[i]=shutterinterval*sub_layer_shutter_interval_numer[i]
÷
sub_layer_shutter_interval_denom[i]
[0268]
否则(sub_layer_shutter_interval_denom[i]的值等于0),sublayershutterinterval[i]应被解释为未知或未指定。当fixed_shutter_interval_within_cvs_flag的值不等于0时,
[0269]
sublayershutterinterval[i]=shutterinterval.
[0270]
在替代性实施例中,使用单个值,而不是使用分子和分母用于用信号表示子层快门间隔。表23中示出了这种语法的示例。
[0271]
表23:用于快门间隔信令的示例sei消息传递
[0272][0273]
快门间隔信息sei消息语义
[0274]
快门间隔信息sei消息指示在编码和显示之前的相关视频内容的快门间隔——例如,对于相机捕获的内容而言,指示使图像传感器曝光以产生图片的时间量。
[0275]
sii_num_units_in_shutter指定以对应于快门时钟周期计数器的一个增量的频率sii_time_scale hz操作的时钟的时间单位的数量。由变量shutterinterval定义的以秒为单位的快门间隔等于sii_num_units_in_shutter_interval除以sii_time_scale的商。例如,当shutterinterval等于0.04秒时,sii_time_scale可以等于27 000 000,并且sii_num_units_in_shutter_interval可以等于1 080 000。
[0276]
sii_time_scale指定一秒中经过的时间单位的数量。例如,使用27mhz时钟测量时间的时间坐标系的sii_time_scale为27 000 000。
[0277]
当sii_time_scale的值大于0时,shutterinterval的值由以下等式指定:
[0278]
shutterinterval=sii_num_units_in_shutter_interval
÷
sii_time_scale
[0279]
否则(sii_time_scale的值等于0),shutterinterval应被解释为未知或未指定。
[0280]
注释1——shutterinterval的值等于0可以指示相关视频内容包含屏幕捕获内容、计算机生成的内容或其他非相机捕获内容。
[0281]
注释2——shutterinterval的值大于编码图片速率的倒数(即,编码图片间隔)的值可以指示编码图片速率大于创建相关视频内容的图片速率——例如,当编码图片速率为120hz并且在编码和显示之前的相关视频内容的图片速率为60hz时。给定时间子层tid的编码图片间隔可以由clocktick和elemental_duration_in_tc_minus1[tid]来指示。例如,当fixed_pic_rate_within_cvs_flag[tid]等于1时,由变量pictureinterval[tid]定义的给定时间子层tid的图片间隔可以由以下等式指定:
[0282]
pictmeinterval[tid]=clocktick*(elemental_duration_in_tc_minus1[tid] 1).
[0283]
fixed_shutter_interval_within_cvs_flag等于1指定shutterinterval的值对于cvs中的所有时间子层是相同的。fixed_shutter_interval_within_cvs_flag等于0指定shutterinterval的值对于cvs中的所有时间子层可以不相同。
[0284]
sub_layer_num_units_in_shutter_interval[i]指定以对应于快门时钟周期计数器的一个增量的频率sii_time_scale hz操作的时钟的时间单位的数量。当highesttid
等于i时,由变量sublayershutterinterval[i]定义的以秒为单位的子层快门间隔等于sub_layer_num_units_in_shutter_interval[i]除以sii_time_scale的商。
[0285]
当fixed_shutter_interval_within_cvs_flag的值等于0并且sii_time_scale的值大于0时,sublayershutterinterval[i]的值由以下等式指定:
[0286]
sublayershutterinterval[i]=sub_layer_num_units_in_shutter_interval[i]
÷
sii_time_scale
[0287]
否则(sii_time_scale的值等于0),sublayershutterinterval[i]应被解释为未知或未指定。当fixed_shutter_interval_within_cvs_flag的值不等于0时,
[0288]
sublayershutterinterval[i]=shutterinterval.
[0289]
表24提供了表18至表23中讨论的用于提供与快门角度或曝光持续时间相关的sei信息传递的六种方法的概述。
[0290]
表24:用于用信号表示信号快门角度信息的sei消息传递方法的概述
[0291][0292]
可变帧速率信令
[0293]
如2019年8月6日提交的美国临时申请62/883,195中所讨论的,在许多应用中,期望解码器支持以可变帧速率进行回放。帧速率适配通常是假设的参考解码器(hrd)中的操作的一部分,如例如参考文献[2]的附录c中所描述的。在实施例中,提出通过sei消息传递或其他手段用信号表示将图片呈现时间(ppt)定义为90khz时钟的函数的语法元素。这是对如hrd中指定的标称解码器图片缓冲器(dpb)输出时间的一种重复,但现在使用如mpeg-2系统中指定的90khz clockticks精度。此sei消息的益处在于:a)如果未启用hrd,则仍然可以使用ppt sei消息来指示每个帧的定时;b)可以使比特流定时和系统定时的转化变得容易。
[0294]
表25描述了所提出ppt定时消息的语法的示例,所述语法与mpeg-2传输(h.222)(参考文献[4])中使用的呈现时间戳(pts)变量的语法相匹配。
[0295]
表25:用于图片呈现时间消息传递的示例语法
[0296][0297]
ppt(图片呈现时间)
[0298]
——呈现时间应与解码时间如下相关:ppt是在三个分开的字段中被编码的33比特数字。ppt指示基本流n的呈现单位k的系统目标解码器中的呈现时间tpn(k)。ppt的值以系统时钟频率周期除以300(从而产生90khz)为单位被指定。根据下文的等式从ppt得到图片呈现时间。
[0299]
ppt(k)=((system_clock_frequency
×
tpn(k))/300)%2
33
[0300]
其中,tpn(k)是呈现单位pn(k)的呈现时间。
[0301]
avc中的快门间隔消息传递
[0302]
在实施例中,如果对于编码视频序列(cvs)中的任何图片存在快门间隔信息(sii)sei消息,则建议它必须存在于cvs的第一访问单元中。与hevc不同,avc单层比特流中不存在(用于识别子层索引的)时间索引。为了在快门间隔在cvs内不固定时解决这个问题,提出应为每个图片呈现快门间隔信息sei消息,以将sii_sub_layer_idx的值分配给每个图片,从而识别当前图片的子层索引。其他与快门间隔相关的信息应仅针对cvs的第一访问单元呈现,并留存到新的cvs开始或比特流结束。
[0303]
在avc中,访问单元被定义为在解码顺序上是连续的、并且恰好包含一个主编码图片的一组nal单元。除了主编码图片之外,访问单元还可以包含一个或多个冗余编码图片、一个辅助编码图片或者不包含编码图片的切片或切片数据分区的其他nal单元。访问单元的解码总是产生经解码图片。
[0304]
表26中示出了针对快门间隔对于cvs是固定的情况的示例语法元素值。表27中示出了针对不同子层快门间隔可能不同的情况,第一和后续快门间隔信息sei消息的示例语法元素值。在表26和表27中,带有“(无)”的单元格指示在快门间隔信息sei消息中没有值对对应语法元素进行信号表示。
[0305]
表26:对于idr访问单元的固定快门间隔的快门间隔信息sei消息语法元素值的示例
[0306][0307]
表27:对于idr访问单元的非固定快门间隔的快门间隔信息sei消息语法元素值的示例
[0308][0309]
表28描绘了avc中的sii sei消息传递的示例语法结构。
[0310]
表28:avc中的示例sii sei消息语法
[0311][0312]
快门间隔信息sei消息指示在编码和显示之前针对相关联的视频源图片的快门间隔,例如,对于相机捕获的内容而言,快门间隔是图像传感器被曝光以产生每个源图片的时间量。
[0313]
sii_sub_layer_idx指定当前图片的快门间隔时间子层索引。当当前访问单元是cvs的第一访问单元时,sii_sub_layer_idx的值应等于0。当fixed_shutter_interval_within_cvs_flag等于1时,sii_sub_layer_idx的值应等于0。否则,fixed_shutter_interval_within_cvs_flag等于0,sii_sub_layer_idx的值应小于或等于sii_max_sub_layers_minus1的值。
[0314]
shutter_interval_info_present_flag等于1指示存在语法元素sii_time_scale、fixed_shutter_interval_within_cvs_flag、以及sii_num_units_in_shutter_interval或sii_max_sub_layers_minus1和sub_layer_num_units_in_shutter_interval[i]。shutter_interval_info_present_flag等于0指示不存在语法元素sii_time_scale、fixed_shutter_interval_within_cvs_flag、sii_num_units_in_shutter_interval、sii_max_sub_layers_minus1、以及sub_layer_num_units_in_shutter_interval[i]。当当前访问单元是cvs的第一访问单元时,shutter_interval_info_present_flag的值应等于1。否则,当前访问单元不是cvs的第一访问单元,shutter_interval_info_present_flag的值应等于0。
[0315]
sii_time_scale指定一秒中经过的时间单位的数量。sii_time_scale的值应大于
moving video[移动视频编码],itu,(02/2018)。
[0332]
[2]b.bross,j.chen和s.liu,“versatile video coding(draft 5)[多功能视频编码(第5稿)]”,jvet output document[jvet输出文件],jvet-n1001,v5,2019年5月14日上传。
[0333]
[3]c.carbonara,j.defilippis,m.korpi,“high frame rate capture and production”[高帧速率捕获和制作],smpte 2015 annual technical conference and exhibition[smpte2015年度技术会议和展览会],2015年10月26至29日。
[0334]
[4]infrastructure of audiovisual services-transmission multiplexing and synchronization[视听服务基础设施——传送复用和同步],h.222.0,h系列,generic coding of moving pictures and associated audio information:systems[移动图片和相关音频信息的通用编码:系统],itu,08/2018。
[0335]
示例计算机系统实施方式
[0336]
本发明的实施例可以利用计算机系统、以电子电路和部件来配置的系统、集成电路(ic)设备(诸如微控制器、现场可编程门阵列(fpga)或另一可配置或可编程逻辑设备(pld)、离散时间或数字信号处理器(dsp)、专用ic(asic))和/或包括一个或多个这种系统、设备或部件的装置来实施。计算机和/或ic可以执行、控制或实行与帧速率可伸缩性相关的指令,诸如本文所描述的那些指令。计算机和/或ic可以计算与本文描述的帧速率可伸缩性相关的各种参数或值中的任何参数或值。图像和视频实施例可以以硬件、软件、固件及其各种组合来实施。
[0337]
本发明的某些实施方式包括执行软件指令的计算机处理器,所述软件指令使处理器执行本发明的方法。例如,显示器、编码器、机顶盒、转码器等中的一个或多个处理器可以通过执行处理器可访问的程序存储器中的软件指令来实施如上所述的与帧速率可伸缩性相关的方法。还可以以程序产品的形式提供本发明的实施例。程序产品可以包括携带一组计算机可读信号的任何非暂态且有形介质,所述一组计算机可读信号包括指令,所述指令当由数据处理器执行时使数据处理器执行本发明的方法。根据本发明的程序产品可以采用各种非暂态且有形形式中的任何一种。程序产品可以包括例如物理介质,诸如包括软盘、硬盘驱动器的磁性数据存储介质、包括cd rom、dvd的光学数据存储介质、包括rom、闪速存储器ram的电子数据存储介质等。程序产品上的计算机可读信号可以任选地被压缩或加密。
[0338]
在上面提到部件(例如,软件模块、处理器、组件、设备、电路等)的情况下,除非另有指示,否则对所述部件的引用(包括对“装置”的引用)都应被解释为包括执行所描述部件的功能的任何部件作为所述部件的等同物(例如,功能上等同的),包括在结构上不等同于执行在本发明的所图示示例实施例中的功能的所公开结构的部件。
[0339]
等同物、扩展、替代方案和杂项
[0340]
因此,描述了与帧速率可伸缩性相关的示例实施例。在前述说明书中,已经参考可以根据实施方式而变化的许多具体细节描述了本发明的实施例。因此,指明本发明是什么以及申请人意图发明是什么的唯一且排他性指示是根据本技术以权利要求授权时的特定形式授权的一组权利要求,包括任何后续更正。本文中针对这种权利要求中包含的术语明确阐述的任何定义应支配如在权利要求中使用的这种术语的含义。因此,权利要求中未明确记载的限制、要素、特性、特征、优点或属性不应以任何方式限制这种权利要求的范围。因
此,说明书和附图应当被认为是说明性而非限制性意义的。
[0341]
附录
[0342]
本附录提供了表d.2的拷贝和来自h.265规范的相关联的pic_struct相关信息(参考文献[1])。
[0343]
表d.2——pic_struct的解释
[0344][0345]
pic_struct语法元素的语义
[0346]
pic_struct指示图片应显示为帧还是显示为一个或多个字段,并且对于帧的显示,当fixed_pic_rate_within_cvs_flag等于1时,可以指示使用如等式e-73所给出的等于dpboutputelementalinterval[n]的固定帧刷新间隔的显示器的帧双倍增或三倍增重复周期。表d.2中指定了pic_struct的解释。表d.2中未列出的pic_struct值保留下来以供将来由itu-t|iso/iec使用并且不应存在于符合本规范的此版本的比特流中。解码器应忽略pic_struct的保留值。
[0347]
当存在时,比特流一致性要求pic_struct的值应被约束成使得以下条件中的恰好一个条件为真:
[0348]-对于cvs中的所有图片,pic_struct的值等于0、7或8。
[0349]-对于cvs中的所有图片,pic_struct的值等于1、2、9、10、11或12。
[0350]-对于cvs中的所有图片,pic_struct的值等于3、4、5或6。
[0351]
当fixed_pic_rate_within_cvs_flag等于1时,帧双倍增由pic_struct等于7指示,这指示帧应在显示器上连续显示两次,其中帧刷新间隔等于如等式e-73所给出的
dpboutputelementalinterval[n],并且帧三倍增由pic_struct等于8指示,这指示帧应在显示器上连续显示三次,其中帧刷新间隔等于如等式e-73所给出的dpboutputelementalinterval[n]。
[0352]
注释3——帧双倍增可以用于促进例如25hz逐行扫描视频在50hz逐行扫描显示器上的显示或30hz逐行扫描视频在60hz逐行扫描显示器上的显示。以每隔一帧交替组合的方式使用帧双倍增和帧三倍增可以用于促进24hz逐行扫描视频在60hz逐行扫描显示器上的显示。
[0353]
图d.1、图d.2和图d.3中分别示出了4:2:0、4:2:2和4:4:4色度格式的顶部字段和底部字段中样品的标称竖直和水平采样位置。
[0354]
字段的关联指示符(pic_struct等于9到12)提供了将互补奇偶校验的字段作为帧关联在一起的提示。字段的奇偶校验可以是顶部或底部,并且当一个字段的奇偶校验是顶部,而另一个字段的奇偶校验是底部时,两个字段的奇偶校验被认为是互补的。
[0355]
当frame_field_info_present_flag等于1时,比特流一致性要求表d.2的第三列中指定的约束应适用。
[0356]
注释4——当frame_field_info_present_flag等于0时,则在许多情况下,默认值可以通过其他手段被推断或指示。在缺少图片的预期显示类型的其他指示的情况下,当frame_field_info_present_flag等于0时,解码器应推断pic_struct的值等于0。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献