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

视频转码中元数据的处理方法、视频转码设备及电子设备与流程

2022-02-25 22:47:09 来源:中国专利 TAG:


1.本发明涉及视频转码技术领域,尤其涉及一种视频转码中元数据的处理方法、视频转码设备及电子设备。


背景技术:

2.hdr(高动态范围)视频在编码过程中使用元数据来更准确定义显示方式所需要的信息,其使用的标准包括hdr10、hlg、hdr10 和dolbyvision(dovi)。这些元数据中包含的信息可以是整个视频所用的颜色系统、最大和最大平均光照级别、主控显示功能等静态信息,也可以是可以逐帧优化视频显示的动态信息。
3.在使用常用的转码工具(例如ffmpeg)进行视频转码时(例如使用x265进行h.265编码),hdr元数据通常在转码过程中丢失,而用户必须手动将元数据添加回转码后的视频中,否则产生的转码比特流不能正确地回放。目前,h.265是最常见的hdr编解码器,而x265又是迄今为止最流行的h.265编码器。其他编解码器,例如vp9、av1和h.264也可以用于hdr编码,并且可能存在相同的问题。


技术实现要素:

4.本发明要解决的技术问题是如何在视频转码中自动处理元数据,本发明提出一种视频转码中元数据的处理方法、视频转码设备及电子设备。
5.根据本发明实施例的视频转码中元数据的处理方法,包括:
6.对源视频流进行解码,得到解码视频流和对应的元数据;
7.基于对所述解码视频流的处理操作,调整对应的所述元数据;
8.对所述解码视频流进行编码,将所述元数据嵌入编码的视频流中。
9.根据本发明的一些实施例,对所述解码视频流的处理操作包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,基于所述视频流的操作,对对应的元数据进行相应调整。
10.在本发明的一些实施例中,若未对所述解码视频流进行处理操作,则直接将所述元数据嵌入编码后的视频流中。
11.根据本发明的一些实施例,所述元数据包括静态元数据和动态元数据。
12.在本发明的一些实施例中,所述将所述元数据嵌入编码的视频流中,包括:
13.对于dolbyvision,根据编码视频流的图片大小和比特率设置修改dolbyvision描述符,将编码的视频流写入容器,在容器中插入dolby配置记录,并为容器中的dolby配置选用相应的dolby编解码器类型;
14.对于静态元数据,在编码器中首先缓存所有的静态元数据,并将所述静态元数据插入编码视频流的编码为i帧的视频帧中;
15.对于动态元数据,将所述动态元数据添加到对应的编码帧中。
16.根据本发明的一些实施例,所述静态元数据包括:色彩描述元数据、cll元数据、
mdcv元数据及dolby video配置;
17.所述动态元数据包括:hdr10 动态元数据和杜比视觉动态元数据。
18.根据本发明实施例的视频转码设备,包括:
19.解码模块,用于对源视频流进行解码,得到解码视频流和对应的元数据;
20.元数据处理模块,用于基于对所述解码视频流的处理操作,调整对应的所述元数据;
21.编码模块,用于对所述解码视频流进行编码,将所述元数据嵌入编码的视频流中。
22.根据本发明的一些实施例,对所述解码视频流的处理操作包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,所述元数据处理模块基于所述视频流的操作,对对应的元数据进行相应调整。
23.根据本发明实施例的电子设备,所述电子设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下的方法的步骤:
24.接收解码器解码源视频流获取的解码视频流和对应的元数据;
25.基于对所述解码视频流的处理操作,调整对应的所述元数据;
26.将所述元数据发送至编码器以对所述解码视频流进行编码,将所述元数据嵌入编码的视频流中。
27.根据本发明的一些实施例,对所述解码视频流的处理操作包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,基于所述视频流的操作,对对应的元数据进行相应调整。
28.本发明提出的视频转码中元数据的处理方法、视频转码设备及电子设备具有如下有益效果:
29.本发明从解码输入到编码输出转码时,自动传输任何与hdr相关的元数据。如果视频流在转码期间被转换,则对元数据进行相同的转换,以便元数据作用的任何区域在转码图像中保持相同。由此,自动化实现hdr视频的转码,保留了hdr媒体必须包含的元数据信息,同时元数据自动调整以适应转码过程中对图像的修改。允许流服务和其他媒体用户以一种简单的方式对hdr媒体进行转码,而不需要多次访问主文件,简化了流程,提高效率。
附图说明
30.图1为根据本发明实施例的视频转码中元数据的处理方法流程图;
31.图2为根据本发明实施例的h.265vui中hdr10颜色信息的解码示例图;
32.图3为根据本发明实施例的h.265的cll和mdcv sei的解码示例图;
33.图4为根据本发明实施例的包含dolby profile 5的mp4文件示例图;
34.图5为根据本发明实施例的hdr10 动态元数据的示例图;
35.图6为根据本发明实施例的st 2094-10处理窗口参数示意图;
36.图7为根据本发明实施例的st2094-10标准中描述的活动区域示意图;
37.图8为现有技术中的一个示例的ffmpeg命令示意图;
38.图9为根据本发明实施例的实现hdr转码过程中需要缩放时元数据处理示意图;
39.图10为根据本发明实施例的读图像进行缩放、镜像、旋转及图片裁剪示意图。
具体实施方式
40.为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
41.本发明中说明书中对方法流程的描述及本发明说明书附图中流程图的步骤并非必须按步骤标号严格执行,方法步骤是可以改变执行顺序的。而且,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
42.本发明公开了一种hdr视频转码过程中保留元数据的方法。其解决的核心问题是在转码过程中,自动化将hdr元数据从输入比特流传递到转码后的比特流,并根据过程中的任何视频变换(例如缩放、裁剪、镜像或旋转)的需要自动修改元数据。
43.例如,smpte st2094-40标准中指定的hdr 10 动态元数据和smptest2094-10标准中指定的dolby vision动态元数据可以指定处理窗口或活动区域。如果在输入比特流中使用这些元数据特性,那么这些hdr10 处理窗口或dolbyvision活动区域在转码时也需要进行同样的转换,以便映射到输出窗口中的正确区域。
44.hdr元数据包含色调映射信息,用于将较高的动态范围内的一组色彩映射到较低的动态范围,并保证其视觉感受相似。这种色调映射可以是静态的,这意味着对于整个视频,该映射针对最亮的场景进行优化。这种映射也可以是动态的,可以逐帧进行更新。两种映射由此可以为某些特殊场景(例如,雪地,弱光)提供更好的视觉效果。
45.为了便于对本发明的理解,对本发明中涉及到的hdr元数据进行相关解释说明如下:
46.hdr元数据包括:静态元数据和动态元数据。
47.其中,静态元数据通常针对整个视频数据流保持恒定。在一些特殊情况下,也可以在场景更改时更新。为了保证可以对视频文件进行随机访问,或者允许终端动态的加入正在播放的视频流,无论元数据有没有改变,静态元数据通常在每个i帧上发送。
48.静态元数据包含的内容有:hdr色彩描述元数据、内容的亮度级别信息 (cll)以及主控显示色彩容积(mdcv)。dolby vision有一整套自己定义的静态元数据,称为dvcc或dvvc,即dolby vision配置记录。
49.下面对几种静态元数据进行解释描述:
50.1、色彩描述元数据。
51.对于h.264和h.265来说,其遵循itu编解码器标准,hdr色彩元数据存储在vui中。对于av1和vp9,按照这些编解码器的规范,其hdr色彩元数据存储在序列头obu(metadata open bitstream unit)的color_config中。所以,无论编解码器是什么,vui和color_config都携带相同的信息。如图2所示,为 h.265vui中hdr10颜色信息的解码示例。值得注意的是,不同的hdr标准将有不同的色彩设置。
52.2、cll和mdcv元数据。
53.cll(内容的亮度级别信息)包含了最大和最大平均亮度的信息;mdcv (主控显示色彩容积)包含了主控显示校准的信息。通过解读这两种信息,在回放时可以尽可能地重现最佳的观看体验。有关cll的定义参见cta 861.g;有关mdcv的定义参考smpte 2086。
54.对于h.264和h.265,cll和mdcv元数据存储在sei(补充增强信息) 中。对于av1,它们存储在metadata_obu中。而vp9不支持将这些元数据存储在比特流中,它依赖于适当的容
器格式,如mkv或webm。如图3所示,为 h.265的cll和mdcv sei的解码示例。其他编解码器的格式类似。
55.3、dolby vision配置记录。
56.dolby定义了一个名为dvcc或dvvc的配置记录,其中存储了许多信息,包括dolby vision配置和级别、动态元数据(dolby称为rpu:参考处理单元),以及最多2个编码层:基本层(bl)和增强层(el)的存在。dvcc存储在容器中,通常是基于iso的格式,例如mp4或quicktime或传输流。这些记录必须从输入容器传递到输出容器,并根据编码器设置更新杜比级别(dolby level),而所有其他设置应保持不变。
57.杜比级别的工作原理类似于h.265或h.264级别,并且随着图片大小和比特率的增加而增加。根据配置的不同,杜比还使用自己的编解码器标识符,例如,配置5中使用了dvh1或dvhe。而配置8则包含许多向后兼容的模式,例如 hdr10、hlg和sdr,所以使用了标准的基于iso格式h.265编解码器的hev1 或hcv1名称。
58.图4显示了包含dolby profile 5的mp4文件,dvcc显示了配置5(profile 5),级别9,比特流包含动态元数据(rpu),并且只包含基本层。一些杜比视觉配置,如profile 4和profile 7支持增强编码,可以进一步增加动态范围。
59.有关dolby vision配置和级别的完整信息、使用dolby vision基于iso格式和dolby配置记录的信息及有关传输流可以参阅现有先关技术文档,在此不再赘述。
60.动态hdr元数据通常逐帧更新。如前所述,使用动态元数据的2个hdr 标准是hdr10 和dolby vision,但smpte标准化了4个方案:
61.smpte st 2094-10

dolby vision;
62.smpte st 2094-20

philips sl-hdr1;
63.smpte st 2094-30

technicolor sl-hdr1;
64.smpte st-2094-40

hdr10 ;
65.下面对两种标准动态元数据进行介绍:
66.1、hdr10 动态元数据。
67.图5是hdr10 动态元数据的示例。对于h.264和h.265,其存储在t.35sei 中。av1将其存储在一个t.35meta_obu中,而vp9同样依赖于容器来存储此元数据。
68.st 2094-10包含处理窗口参数,这些参数指定了像素坐标,如果执行了任何改变像素位置的图像变换(如缩放、旋转、镜像和裁剪),则需要更新这些像素坐标,如图6所示,当前版本的标准将num_windows的值限制为1,因此这些参数尚未为hdr10 启用。
69.2、dolby vision动态元数据(rpu)。
70.dolby vision动态元数据在smpte 2094-10中定义。对于h.265,该元数据存储在保留类型62nal单元(网络抽象层)中。目前dolby只支持h.265。
71.st2094-10级别5(level 5)的元数据指定图片活动区域的像素坐标。当活动区域需要进行任何图片变换时(例如缩放、裁剪、旋转、镜像图片等),也需要对相应的元数据进行修改和校正。由于活动区域的定义限定于矩形,因此只能支持保持矩形活动区域的变换。例如,只支持90度及其倍数的旋转。图7为标准中描述的活动区域。
72.现有技术通常使用ffmpeg或类似工具进行转码。以x265作为编码器为例, x265要求所有hdr元数据作为参数输入ffmpeg命令行。用户必须使用自己的软件或常用工具(如
mediainfo,ffprobe,bitstreamanalyzers等)提取这些信息。
73.图8所示是一个示例的ffmpeg命令,使用x265编码器将hdr10比特流(hdrinbit.mp4)转码到hdr-output.mp4。hdr元数据以浅灰色突出显示。前3个参数是hdr颜色信息。第四和第五个参数是cll和mdcv。
74.上述示例只指定了静态hdr元数据。x265还有两个动态hdr元数据的其他参数,如下所示。第一个指定包含hdr10 动态元数据的文件名,第二个指定包含dolbyvision动态元数据的文件名。每个文件都必须包含具有输入比特流中每一帧的元数据的条目。
75.hdr10 动态元数据:dhdr10-info=《filename》;
76.dolbyvision动态元数据:dolby-vision-rpu=《filename》。
77.现有技术中,采用ffmpeg x265实现hdr转码。这种实现要求用户在转码时手动提取hdr元数据并在命令行上指定它。这就要求每个用户开发自己的方法来提取hdr元数据,如果视频在转码过程中需要实现缩放/旋转等操作,还需要手工对元数据进行必要的转换。在dolbyvision的情况下,基于新的图片大小和比特率,还需要手工调节dolby级别(dolbylevel),繁琐不便。
78.如图1所示,根据本发明实施例的视频转码中元数据的处理方法,包括:
79.s110,对源视频流进行解码,得到解码视频流和对应的元数据;
80.需要说明的是,元数据包括静态元数据和动态元数据。其中,静态元数据包括:色彩描述元数据、cll元数据、mdcv元数据及dolbyvideo配置;动态元数据包括:hdr10 动态元数据和杜比视觉动态元数据。
81.s120,基于对解码视频流的处理操作,调整对应的元数据;
82.例如,对解码视频流的处理操作可以包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,基于视频流的操作,对对应的元数据进行相应调整。可以理解的是,若未对解码视频流进行处理操作,则可以直接将元数据嵌入编码后的视频流中。
83.s130,对解码视频流进行编码,将元数据嵌入编码的视频流中。
84.在本发明的一些实施例中,将元数据嵌入编码的视频流中,包括:
85.对于dolbyvision,根据编码视频流的图片大小和比特率设置修改dolbyvision描述符,将编码的视频流写入容器,在容器中插入dolby配置记录,并为容器中的dolby配置选用相应的dolby编解码器类型;
86.对于静态元数据,在编码器中首先缓存所有的静态元数据,并将静态元数据插入编码视频流的编码为i帧的视频帧中;
87.对于动态元数据,将动态元数据添加到对应的编码帧中。
88.根据本发明实施例的视频转码中元数据的处理方法,从解码输入到编码输出转码时,自动传输任何与hdr相关的元数据。如果视频流在转码期间被转换,则对元数据进行相同的转换,以便元数据作用的任何区域在转码图像中保持相同。由此,自动化实现hdr视频的转码,保留了hdr媒体必须包含的元数据信息,同时元数据自动调整以适应转码过程中对图像的修改。允许流服务和其他媒体用户以一种简单的方式对hdr媒体进行转码,而不需要多次访问主文件,简化了流程,提高效率。
89.根据本发明实施例的视频转码设备,包括:解码模块、元数据处理模块和编码模
块。
90.其中,解码模块用于对源视频流进行解码,得到解码视频流和对应的元数据;
91.元数据处理模块用于基于对解码视频流的处理操作,调整对应的元数据;
92.例如,对解码视频流的处理操作包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,元数据处理模块基于视频流的操作,对对应的元数据进行相应调整。
93.编码模块用于对解码视频流进行编码,将元数据嵌入编码的视频流中。
94.根据本发明实施例的视频转码中元数据的处理设备,集成解码、元数据处理和编码功能,自动化实现hdr视频的转码,保留了hdr媒体必须包含的元数据信息,同时元数据自动调整以适应转码过程中对图像的修改。由此,允许流服务和其他媒体用户以一种简单的方式对hdr媒体进行转码,而不需要多次访问主文件,简化了流程,提高效率。
95.根据本发明实施例的电子设备,电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,例如,电子设备可以为计算机,通过计算机连接netint转码器实现上述方法步骤。
96.计算机程序被处理器执行时实现如下的方法的步骤:
97.s110,接收解码器解码源视频流获取的解码视频流和对应的元数据;
98.s120,基于对解码视频流的处理操作,调整对应的元数据;
99.例如,对解码视频流的处理操作包括:改变图片中像素的大小或位置,以及对图像进行缩放、裁剪、旋转及镜像操作,基于视频流的操作,对对应的元数据进行相应调整。
100.s130,将元数据发送至编码器以对解码视频流进行编码,将元数据嵌入编码的视频流中。
101.下面结合附图实例描述根据本发明的视频转码中元数据的处理方法。值得理解的是,下述描述仅是示例性描述,而不应理解为对本发明的具体限制。
102.当本发明与netint转码器一起使用时,无需手工抽取/修改hdr的元数据。所有hdr参数都被自动处理,只需要指定编码参数。相同的命令适用于所有 hdr格式。例如,如果输入为profile 5dolby vision,则输出为profile 5dolbyvision。hdr10、hdr10 、hlg等也是如此。
103.如图9所示,为实现一个hdr转码过程中需要缩放的例子,输入比特流从左侧输入并被解码。解码后的图像输出,然后进行缩放,最后正常传送到视频编码器。hdr元数据从解码比特流中移除,并且遵循和图像缩放一致的操作进行修改,最终修改后的元数据被输入到视频编码器,在视频编码器被插入到从新编码后的比特流中。
104.需要说明的是,该流程不限定于图片缩放,也可以使用于其他操作,包括改变图片中像素的大小或位置,以及缩放、裁剪、旋转(90,180,270)、镜像等。如果不进行任何改变图像的操作,元数据也无需进行修正,可以直接嵌入新的比特流中。
105.图10显示了如何修改dolby vision hdr元数据中的活动区域,以支持缩放、镜像、n*90度旋转或图片裁剪。任何改变活动区域x,y坐标的图片操作都需要修改元数据中的活动区域。注意,由于dolby vision中的活动区域必须为边平行于图像的矩形框,因此仅支持边平行于图像的矩形框上的图片操作,旋转45 度是不能无损支持的(在实际应用中,也很少有这样的操作,例如旋转45度)。
106.本发明进行hdr转码的步骤如下:
107.a100,解码图像并找到所有可附加到解码图像上的静态(色彩描述、cll 和mdcv、dolby video配置等)和动态(hdr10 和杜比视觉)hdr元数据。 (有可能需要到对应的i帧寻找)。
108.a200,在对整个图像或选定区域进行任何支持的转换时,对动态元数据执行等效转换。如果需要执行不支持的图片转换时,如果动态元数据包含选定区域,则删除该动态元数据,以此减少将动态元数据应用到错误区域时对图像造成的失真,同时输出警示信息。用户根据警示信息了解hdr转码过程中的图像显示质量上的变化。
109.a300,进行编码。
110.a310,对于dolby vision,根据编码器图片大小和比特率设置修改dolbyvision描述符。如果将编码的比特流写入容器,在容器中插入dolby配置记录,并为容器中的dolby配置使用适当的dolby编解码器类型。
111.a320,对于静态元数据,在编码器中首先缓存所有的静态元数据,并将其插入编码为i帧的任何视频帧中。如果发现静态元数据在任何传入帧上有更新,则更新后的元数据将使用在下一个i帧上。
112.a330,对于动态元数据,将任何动态元数据添加到携带它的编码帧中。值得注意的是,这些帧在编码过程中次序可能被打乱,但动态元数据必须与它所属的帧保持一致。
113.综上所述,本发明从解码输入到编码输出转码时,自动传输任何与hdr相关的元数据。如果视频流在转码期间被转换,则对元数据进行相同的转换,以便元数据作用的任何区域在转码图像中保持相同。
114.现有技术中,访问原始的视频文件和使用多个工具人工提取和修改元数据,再插入新的视频流。这种方法需要访问权限,复杂度很高,无法大规模应用。而且,很多情况下,转码过程对原始视频文件是没有访问权限的(只有视频流)。
115.而本发明可以自动化实现hdr视频的转码,保留了hdr媒体必须包含的元数据信息,同时元数据自动调整以适应转码过程中对图像的修改。这允许流服务和其他媒体用户以一种简单的方式对hdr媒体进行转码,而不需要多次访问主文件,简化了流程,提高效率。
116.通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
再多了解一些

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

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

相关文献