一种视频编码方法、装置、设备和存储介质与流程
未命名
07-22
阅读:75
评论:0
1.本公开实施例涉及计算机技术,尤其涉及一种视频编码方法、装置、设备和存储介质。
背景技术:
2.随着计算机技术的快速发展,可以对同一视频进行多档位编码和多档位播放。目前,通常是利用每个播放档位对应的编码器对同一视频进行独立编码。然而,这种编码方式获得的每个播放档位对应的编码视频是彼此独立的,从而在切换播放档位时会出现视频画面不对齐的情况,降低了视频切换的连贯性。
技术实现要素:
3.本公开提供一种视频编码方法、装置、设备和存储介质,以在切换播放档位时可以保证视频画面对齐,提高了视频切换的连贯性。
4.第一方面,本公开实施例提供了一种视频编码方法,包括:
5.获取待编码的目标视频;
6.基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;
7.以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
8.第二方面,本公开实施例还提供了一种视频编码装置,包括:
9.目标视频获取模块,用于获取待编码的目标视频;
10.切换视频帧确定模块,用于基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;
11.多档位编码模块,用于以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
12.第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
13.一个或多个处理器;
14.存储装置,用于存储一个或多个程序,
15.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的视频编码方法。
16.第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的视频编码方法。
17.本公开实施例,通过基于待编码的目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置,每个档
位编码时均以目标视频中的切换视频帧为关键帧进行编码,使得每个播放档位对应的编码视频中的切换视频帧对齐,从而在切换播放档位时可以保证切换的视频画面对齐,提高了视频切换的连贯性。
附图说明
18.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
19.图1是本公开实施例所提供的一种视频编码方法的流程示意图;
20.图2是本公开实施例所提供的另一种视频编码方法的流程示意图;
21.图3是本公开实施例所提供的又一种视频编码方法的流程示意图;
22.图4是本公开实施例所涉及的一种视频帧对应的帧序号的示例;
23.图5是本公开实施例所提供的一种视频编码装置的结构示意图;
24.图6是本公开实施例所提供的一种电子设备的结构示意图。
具体实施方式
25.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
26.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
27.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
28.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
29.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
30.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
31.可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
32.可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
33.图1为本公开实施例所提供的一种视频编码方法的流程示意图,本公开实施例适
用于对同一视频进行多档位编码的情况,尤其可以适用于在视频转码过程中,对视频进行多档位编码的应用场景。该方法可以由视频编码装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是服务器或pc端等。
34.如图1所示,视频编码方法具体包括以下步骤:
35.s110、获取待编码的目标视频。
36.其中,目标视频可以是指需要多档位编码的任意一种视频。例如,目标视频可以是指直播视频、点播视频或者用户上传的原创视频等。
37.具体地,用户端可以响应用户触发的视频上传操作,对待上传的视频进行编码,并将编码后的视频上传至服务器。服务器对用户端上传的视频进行多路转码。在多路转码过程中,首先对用户端上传的视频进行解码,获得原始视频,再将原始视频作为目标视频进行多档位编码,获得的编码视频可以由播放器进行解码播放。
38.s120、基于目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置。
39.其中,目标视频可以由多个视频帧组成。每个视频帧的视频帧信息是指能够体现视频帧重要程度的图像信息。例如,视频帧信息可以包括:纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳中的至少一项。镜头景别信息可以用于表征在焦距一定时,由于镜头与被摄对象的距离不同而造成被摄对象在镜头中所呈现出的不同范围信息。例如,镜头景别可以划分为五种,由近至远分别为特写、近景、中景、全景和远景。其中,纹理越复杂、运动越小、镜头切换越明显、镜头景别越近或者播放时间戳越早,视频帧的重要程度越高,即视频帧价值越高。切换视频帧可以是目标视频中可以作为切换播放档位时的切换点。例如,切换视频帧可以是指目标视频中的重要视频帧,即高价值视频帧。播放档位可以是指播放视频时可以选择的视频档位。播放档位存在多个。不同的播放档位具有相同的视频播放内容,但具有不同的视频播放效果。可以基于任意一种图像参数划分不同的播放档位。例如,以视频帧的分辨率进行档位划分时,每个分辨率档位相当于一个播放档位,例如,分辨率档位可以包括高分辨率档位(比如720p)、中分辨率档位(比如540p)和低分辨率档位(比如360p)。目标视频中的切换视频帧的数量为多个,从而可以在多个位置处切换目标视频的播放档位。
40.具体地,作为一种实现方式,可以基于目标视频中的每个视频帧的播放时间戳,直接将每隔预设播放时长的视频帧作为切换视频帧,或者,将每个预设播放时间戳下的视频帧作为切换视频帧。例如,在目标视频为短视频时,可以在视频的首部设置较多的预设播放时间戳,以便在首部确定出较多的切换视频帧,利于视频起播,在视频的尾部设置较少的预设播放时间戳,以便在尾部确定出较少的切换视频帧,利于后续编码压缩。
41.作为另一种实现方式,可以对目标视频中的每个视频帧进行智能分析,获得每个视频帧的视频帧信息,并对每个视频帧信息进行比较,确定出目标视频中重要程度较高的视频帧作为切换视频帧,以便后续可以将高价值的视频帧作为关键帧进行编码,进一步提高了编码性能。例如,可以将每个视频帧对应的纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳进行加权求和,获得每个视频帧对应的重要程度,并将重要程度大于预设程度阈值的视频帧作为切换视频帧,从而获得目标视频中高价值的所有切换视频帧。其中,视频帧对应的纹理越复杂,视频帧重要程度越高。视频帧对应的纹理越复杂,视频帧
重要程度越高。视频帧对应的镜头切换越明显,视频帧重要程度越高。在高清低码的前提下,视频帧的镜头运动越小,视频帧重要程度越高,视频帧的镜头景别越近,视频帧重要程度越高。视频帧的播放时间戳越早,视频帧重要程度越高。
42.示例性地,s120可以包括:将目标视频中的每个视频帧的视频帧信息输入至预先训练得到的目标网络模型中进行切换视频帧的预测;基于目标网络模型输出的预测结果,确定目标视频中的切换视频帧。
43.其中,目标网络模型可以是用于预测视频帧是否为切换视频帧的神经网络模型。例如,目标网络模型可以是二分类网络架构。目标网络模型是预先基于样本数据和样本标签进行模型训练获得的,以便保证目标网络模型的预测准确性。
44.具体地,可以将目标视频中的每个视频帧的视频帧信息,比如纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳中的至少一项输入至预先训练得到的目标网络模型中,目标网络模型可以基于输入的视频帧信息预测相应的视频帧是否为切换视频帧,并可以将预测为切换视频帧的预测概率进行输出,获得每个视频帧为切换视频帧的预测概率。将预测概率大于预设概率阈值的视频帧作为切换视频帧,从而利用目标网络模型可以更加快速准确地确定出目标视频中的所有切换视频帧。
45.s130、以切换视频帧为关键帧,对目标视频进行多档位编码,获得每个播放档位对应的编码视频。
46.其中,关键帧可以是指编码时可以保留完整信息的视频帧。编码视频是指对目标视频进行每个档位编码后获得的视频。对视频帧进行编码时,可以将视频帧编码为关键帧(即i帧)、前向预测编码帧(即p帧)或者双向预测编码帧(即b帧)。其中,i帧解码时只需要利用关键帧本身的信息即可,无需参考其他视频帧。两个i帧之间的间隔较长。p帧解码时需要参考当前帧之前的视频帧的信息才能解码,若其参考的视频帧丢失则会导致花屏现象。b帧解码时需要参考当前帧之前和之后的视频帧才能解码,若其参考的视频帧丢失也会导致花屏现象。
47.具体地,每个播放档位对应一个编码器,将目标视频输入至每个编码器中。每个编码器均以目标视频中的切换视频帧为关键帧,对目标视频进行相应档位编码,获得每个播放档位对应的编码视频。不同的编码器通过将相同的切换视频帧作为关键帧进行编码,从而可以对齐每个播放档位对应的编码视频中的关键帧。通过在编码器外部决策关键帧位置,可以有效保证关键帧的对齐,并且通过将目标视频中的高价值的切换视频帧作为关键帧进行编码,也可以有效保证编码性能。通过将每个播放档位对应的编码视频中的切换视频帧进行对齐,可以在切换播放档位时保证切换的视频画面为同一幅画面,从而提高了播放档位切换时视频播放画面的连贯性。
48.本公开实施例的技术方案,通过基于待编码的目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置,每个档位编码时均以目标视频中的切换视频帧为关键帧进行编码,使得每个播放档位对应的编码视频中的切换视频帧对齐,从而在切换播放档位时可以保证切换的视频画面对齐,提高了视频切换的连贯性。
49.在上述技术方案的基础上,在s130之后,还包括:播放第一播放档位对应的第一编码视频,并响应于播放档位切换指令,确定待切换至的第二播放档位;响应于播放到第一编
码视频中的切换视频帧对应的切换位置,切换到第二播放档位,并同步播放第二播放档位对应的第二编码视频。
50.其中,第一播放档位可以是指默认播放的播放档位,或者用户首次选择的播放档位。播放档位切换指令可以是将第一播放档位切换至第二播放档位的指令。播放档位切换指令可以是基于用户自主触发的播放档位切换操作生成的,比如,基于用户选择的第二播放档位生成播放档位切换指令,从而实现档位手动切换。或者,播放档位切换指令也可以是基于网络变化情况自动生成的,比如,在检测到网速变差时,确定与当前网速相匹配的第二播放档位,并基于该第二播放档位生成播放档位切换指令,从而实现档位自动切换。
51.具体地,服务器可以预先下发每个播放档位对应的编码视频至用户端,也可以实时下发每个播放档位对应的编码视频至用户端。用户端中的播放器可以播放第一播放档位对应的第一编码视频。需要说明的是,播放器播放每个编码视频时都需要先解码再进行播放。在播放器播放第一编码视频过程中,播放器可以响应播放档位切换指令,确定从第一播放档位需要切换至的第二播放档位,并响应于播放到第一编码视频中的切换视频帧对应的切换位置进行档位切换和同步播放,从而可以保证档位切换后的视频播放的连贯性。
52.例如,每个编码视频由多个图像组gop(group of pictures)组成,若每个图像组中的第一个图像帧为切换视频帧对应的关键帧,则可以通过切换图像组的方式进行播放档位切换,例如,播放器响应于播放到第一编码视频中的当前图像组中的最后一个视频帧,即播放完第一编码视频中的当前图像组时,可以切换到第二播放档位并同步播放第二编码视频中的下一个图像组。第一编码视频中的下一个图像组中的第一个视频帧与第二编码视频中的下一个图像组中的第一个视频帧为同一个切换视频帧,从而保证了档位切换时的画面连贯性。
53.又如,也可以对每个编码视频中的切换视频帧对应的切换位置进行打标处理,并在切换播放档位后,播放器继续播放第一编码视频,直到播放到第一编码视频中的一个标记位置时,切换到第二播放档位,并同步播放第二播放档位对应的第二编码视频中的该标记位置后面的视频帧,从而也可以保证档位切换时的画面连贯性。
54.图2为本公开实施例所提供的另一种视频编码方法的流程示意图,本公开实施例在上述公开实施例的基础上,对步骤“以切换视频帧为关键帧,对目标视频进行多档位编码,获得每个播放档位对应的编码视频”进行了优化。其中与上述各公开实施例相同或相应的术语的解释在此不再赘述。
55.如图2所示,视频编码方法具体包括以下步骤:
56.s210、获取待编码的目标视频。
57.s220、基于目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置。
58.s230、基于目标视频中的切换视频帧和每个播放档位对应的档位帧率,对目标视频进行帧率调整,获得每个播放档位对应的待编码视频和待编码视频中的切换视频帧。
59.其中,档位帧率可以是指每个播放档位对应的待编码视频所具有的视频帧率。具体地,在多档位编码时,不同档位可以对应不同的档位帧率。针对于此,需要对目标视频的视频帧率进行调整,比如对目标视频进行丢帧处理,以减小帧率,或者对目标视频进行复制帧处理,以增大帧率,从而获得具有每个档位帧率的待编码视频,并确定出每个待编码视频
中的切换视频帧,进而在可变帧率场景下也可以保证多档位编码时的切换画面对齐。
60.具体地,若播放档位对应的档位帧率不等于目标视频的视频帧率,则可以对目标视频中的切换视频帧进行标记,并在目标视频中不存在标记的视频帧范围内进行丢帧或者复制帧处理,使得处理后的视频帧率等于档位帧率,从而获得该档位帧率下的待编码视频,并将待编码视频中存在标记的视频帧作为切换视频帧。通过在目标视频中不存在标记的视频帧范围内进行丢帧,可以避免丢弃切换视频帧,从而保证切换视频帧的对齐效果。
61.s240、以待编码视频中的切换视频帧为关键帧,对目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频。
62.具体地,可以将每个播放档位对应的待编码视频输入至相应的编码器中。每个编码器以输入的待编码视频中的切换视频帧为关键帧,对待编码视频进行相应档位编码,获得切换视频帧对齐后的每个播放档位对应的编码视频,该编码视频对应的视频帧率为相应的档位帧率,从而在档位帧率变化时也可以保证切换画面的对齐,进一步满足了个性化需求。
63.示例性地,s240可以包括:针对每个播放档位,获取当前播放档位对应的当前待编码视频;以当前待编码视频中的每个切换视频帧为图像组中的第一个关键帧进行编码,获得当前播放档位对应的编码视频。
64.具体地,可以将每个播放档位作为当前播放档位,通过上述方式进行视频编码,获得每个播放档位对应的编码视频。例如,可以基于当前待编码视频中的切换视频帧,对当前待编码视频中的视频帧进行分组划分,获得当前播放档位对应的各个帧组,每个帧组中的第一个视频帧为切换视频帧。可以将一个帧组作为一个图像组,也可以对一个帧组进一步划分,即一个帧组对应多个图像组。切换视频帧作为图像组中的第一个视频帧。将每个帧组中的切换视频帧作为一个图像组中的第一个关键帧进行编码,获得当前待编码视频对应的编码视频,从而实现不同播放档位对应的编码视频中的关键帧对齐。
65.需要说明的是,一个编码视频可以包括多个图像组,每个图像组可以包括一个或多个关键帧。每个切换视频帧为图像组中的第一个关键帧,该图像组中的其他关键帧由编码器自主决策,从而仅需对齐切换视频帧对应的关键帧,可以保证档位切换时的视频画面对齐。
66.本公开实施例的技术方案,通过对目标视频进行帧率调整,获得每个播放档位对应的待编码视频和待编码视频中的切换视频帧,并以待编码视频中的切换视频帧为关键帧,对目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频,从而在可变帧率场景下也可以保证多档位编码时的切换画面对齐,进一步满足了个性化需求。
67.图3为本公开实施例所提供的又一种视频编码方法的流程示意图,本公开实施例在上述公开实施例的基础上,对步骤“基于目标视频中的切换视频帧和每个播放档位对应的档位帧率,对目标视频进行帧率调整,获得每个播放档位对应的待编码视频和待编码视频中的切换视频帧”进行了进一步优化。其中与上述各公开实施例相同或相应的术语的解释在此不再赘述。
68.如图3所示,视频编码方法具体包括以下步骤:
69.s310、获取待编码的目标视频。
70.s320、基于目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频
帧,切换视频帧用于表征切换播放档位时的视频切换位置。
71.s330、基于目标视频中的切换视频帧,对目标视频进行逐帧编号,确定目标视频中的每个视频帧对应的帧序号。
72.具体地,可以将目标视频中的切换视频帧和非切换视频帧编码为不同的帧序号,以便进行有效区分。其中,非切换视频帧可以是指目标视频中除了切换视频帧之外的其他视频帧。例如,可以将目标视频中的每个切换视频帧编码为第一帧序号,将每个非切换视频帧编码为第二帧序号,其中,第一帧序号不同于第二帧序号。通过对目标视频帧中的每个视频帧进行编号的方式可以更加便捷地区分出目标视频中的切换视频帧和非切换视频帧。
73.示例性地,s330可以包括:以目标视频中的切换视频帧为分界点,对目标视频中的视频帧进行分组,获得多个帧组;确定每个帧组中的每个视频帧对应的帧序号,其中,同一个帧组中的视频帧对应相同的帧序号,不同帧组中的视频帧对应不同的帧序号。帧组是由划分后的多个视频帧组成的集合。
74.具体地,图4给出了一种视频帧对应的帧序号的示例,图4仅给出了目标视频的部分视频帧。以目标视频中的每个切换视频帧为分界点,对目标视频进行分组划分,获得多个帧组,如图4中给出了5个帧组。本实施例可以将切换视频帧作为帧组中的第一个视频帧进行划分,即获得的每个帧组中的第一个视频帧为切换视频帧。或者,也可以将切换视频帧作为帧组中的最后一个视频帧进行划分,即获得的每个帧组中的最后一个视频帧为切换视频帧。可以按照帧组的排列顺序,依次分配每个帧组中的视频帧对应的帧序号。同一个帧组中的每个视频帧对应相同的帧序号,不同帧组对应的帧序号按照帧组的排列顺序依次增大,如图4所示。这种编号方式可以通过利用帧序号的变化位置来定位切换视频帧的位置。
75.s340、基于每个播放档位对应的档位帧率,对目标视频进行帧率调整,获得每个播放档位对应的待编码视频。
76.具体地,通过帧序号可以确定目标视频中的非切换视频帧范围,比如,在第二帧序号对应的视频帧范围内进行丢帧或者复制帧处理,从而可以避免丢弃切换视频帧,保证切换视频帧的对齐效果。
77.示例性地,针对图4中的编号方式,可以在整个目标视频范围内进行帧率调整,从而适配于原有的帧率调整策略,并且在可接受的切换画面变化范围内,保证切换画面的连贯性。如图4所示,第一种丢帧情况是在图像组内丢弃3帧,此时不会影响sn=3和sn=4的交界处,此时可以在该交界处生成一个切换视频帧对应的关键帧。第二种丢帧情况是在图像组的边界丢弃3帧,此时不会影响sn=3和sn=4产生的新的交界处,此时在新产生的交界处也可以生成一个切换视频帧对应的关键帧,比如sn=5的最前面的视频帧。复制帧情况是在图像组内复制3帧,此时不会影响sn=6和sn=7的交界处,此时可以在该交界处生成一个切换视频帧对应的关键帧。对于图4中的编号方式可以适配于原有的帧率调整策略,并且通过在序列号变化位置处生成一个关键帧,保证了多档位编码时的画面对齐。
78.s350、基于待编码视频中的每个视频帧对应的帧序号,确定待编码视频中的切换视频帧。
79.具体地,在利用第一帧序号和第二帧序号进行区分时,可以直接待编码视频中的第一帧序号对应的视频帧确定为切换视频帧。
80.示例性地,s350可以包括:基于待编码视频中的帧序号变化位置,确定待编码视频
中的切换视频帧。具体地,针对图4中的编号方式,若每个帧组中的第一个视频帧为切换视频帧,则可以将待编码视频中的每组帧序号中的首个帧序号所对应的视频帧确定为切换视频帧。若每个帧组中的最后一个视频帧为切换视频帧,则可以将待编码视频中的每组帧序号中的最后一个帧序号所对应的视频帧确定为切换视频帧。通过将待编码视频中的帧序号变化位置处的视频帧确定为切换视频帧,可以有效保证画面对齐效果。
81.s360、以待编码视频中的切换视频帧为关键帧,对目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频。
82.具体地,可以将每个播放档位对应的待编码视频输入至相应的编码器中。每个编码器以输入的待编码视频中的切换视频帧为关键帧,对待编码视频进行相应档位编码,获得切换视频帧对齐后的每个播放档位对应的编码视频,该编码视频对应的视频帧率为相应的档位帧率,从而在档位帧率变化时也可以保证切换画面的对齐,进一步满足了个性化需求。
83.本公开实施例的技术方案,通过基于目标视频中的切换视频帧,对目标视频进行逐帧编号,确定目标视频中的每个视频帧对应的帧序号,基于每个播放档位对应的档位帧率,对目标视频进行帧率调整,获得每个播放档位对应的待编码视频,并基于待编码视频中的每个视频帧对应的帧序号,确定待编码视频中的切换视频帧,从而通过逐帧编号的方式可以更加便捷快速地进行帧率调整,保证切换画面的对齐效果。
84.图5为本公开实施例所提供的一种视频编码装置的结构示意图,如图5所示,该装置具体包括:目标视频获取模块410、切换视频帧确定模块420和多档位编码模块430。
85.其中,目标视频获取模块410,用于获取待编码的目标视频;切换视频帧确定模块420,用于基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;多档位编码模块430,用于以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
86.本公开实施例所提供的技术方案,通过基于待编码的目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置,每个档位编码时均以目标视频中的切换视频帧为关键帧进行编码,使得每个播放档位对应的编码视频中的切换视频帧对齐,从而在切换播放档位时可以保证切换的视频画面对齐,提高了视频切换的连贯性。
87.在上述技术方案的基础上,所述视频帧信息包括:纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳中的至少一项。
88.在上述各技术方案的基础上,切换视频帧确定模块420,具体用于:
89.将所述目标视频中的每个视频帧的视频帧信息输入至预先训练得到的目标网络模型中进行切换视频帧的预测;基于所述目标网络模型输出的预测结果,确定所述目标视频中的切换视频帧。
90.在上述各技术方案的基础上,多档位编码模块430,包括:
91.帧率调整子模块,用于基于所述目标视频中的切换视频帧和每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频和所述待编码视频中的切换视频帧;
92.档位编码子模块,用于以所述待编码视频中的切换视频帧为关键帧,对所述目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频。
93.在上述各技术方案的基础上,帧率调整子模块,包括:
94.逐帧编号单元,用于基于所述目标视频中的切换视频帧,对所述目标视频进行逐帧编号,确定所述目标视频中的每个视频帧对应的帧序号;
95.帧率调整单元,用于基于每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频;
96.视频帧确定单元,基于所述待编码视频中的每个视频帧对应的帧序号,确定所述待编码视频中的切换视频帧。
97.在上述各技术方案的基础上,逐帧编号单元,具体用于:
98.以所述目标视频中的切换视频帧为分界点,对所述目标视频中的视频帧进行分组,获得多个帧组;确定每个所述帧组中的每个视频帧对应的帧序号,其中,同一个帧组中的视频帧对应相同的帧序号,不同帧组中的视频帧对应不同的帧序号。
99.在上述各技术方案的基础上,视频帧确定单元,具体用于:
100.基于所述待编码视频中的帧序号变化位置,确定所述待编码视频中的切换视频帧。
101.在上述各技术方案的基础上,档位编码子模块,具体用于:
102.针对每个播放档位,获取当前播放档位对应的当前待编码视频;以所述当前待编码视频中的每个切换视频帧为图像组中的第一个关键帧进行编码,获得当前播放档位对应的编码视频。
103.在上述各技术方案的基础上,该装置还包括:
104.第二播放档位确定模块,用于在获得每个播放档位对应的编码视频之后,播放第一播放档位对应的第一编码视频,并响应于播放档位切换指令,确定待切换至的第二播放档位;
105.播放档位切换模块,用于响应于播放到所述第一编码视频中的切换视频帧对应的切换位置,切换到所述第二播放档位,并同步播放所述第二播放档位对应的第二编码视频。
106.本公开实施例所提供的视频编码装置可执行本公开任意实施例所提供的视频编码方法,具备执行视频编码方法相应的功能模块和有益效果。
107.值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
108.图6为本公开实施例所提供的一种电子设备的结构示意图。下面参考图6,其示出了适于用来实现本公开实施例的电子设备(例如图6中的终端设备或服务器)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
109.如图6所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问
存储器(ram)503中的程序而执行各种适当的动作和处理。在ram 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。编辑/输出(i/o)接口505也连接至总线504。
110.通常,以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
111.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
112.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
113.本公开实施例提供的电子设备与上述实施例提供的视频编码方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
114.本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的视频编码方法。
115.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
116.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可
以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
117.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
118.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
119.获取待编码的目标视频;基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
120.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
121.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
122.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
123.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
124.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合
适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
125.根据本公开的一个或多个实施例,【示例一】提供了一种视频编码方法,包括:
126.获取待编码的目标视频;
127.基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;
128.以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
129.根据本公开的一个或多个实施例,【示例二】提供了一种视频编码方法,还包括:
130.可选的,所述视频帧信息包括:纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳中的至少一项。
131.根据本公开的一个或多个实施例,【示例三】提供了一种视频编码方法,还包括:
132.可选的,所述基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,包括:
133.将所述目标视频中的每个视频帧的视频帧信息输入至预先训练得到的目标网络模型中进行切换视频帧的预测;
134.基于所述目标网络模型输出的预测结果,确定所述目标视频中的切换视频帧。
135.根据本公开的一个或多个实施例,【示例四】提供了一种视频编码方法,还包括:
136.可选的,以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频,包括:
137.基于所述目标视频中的切换视频帧和每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频和所述待编码视频中的切换视频帧;
138.以所述待编码视频中的切换视频帧为关键帧,对所述目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频。
139.根据本公开的一个或多个实施例,【示例五】提供了一种视频编码方法,还包括:
140.可选的,所述基于所述目标视频中的切换视频帧和每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频和所述待编码视频中的切换视频帧,包括:
141.基于所述目标视频中的切换视频帧,对所述目标视频进行逐帧编号,确定所述目标视频中的每个视频帧对应的帧序号;
142.基于每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频;
143.基于所述待编码视频中的每个视频帧对应的帧序号,确定所述待编码视频中的切换视频帧。
144.根据本公开的一个或多个实施例,【示例六】提供了一种视频编码方法,还包括:
145.可选的,所述基于所述目标视频中的切换视频帧,对所述目标视频进行逐帧编号,
确定所述目标视频中的每个视频帧对应的帧序号,包括:
146.以所述目标视频中的切换视频帧为分界点,对所述目标视频中的视频帧进行分组,获得多个帧组;
147.确定每个所述帧组中的每个视频帧对应的帧序号,其中,同一个帧组中的视频帧对应相同的帧序号,不同帧组中的视频帧对应不同的帧序号。
148.根据本公开的一个或多个实施例,【示例七】提供了一种视频编码方法,还包括:
149.可选的,所述基于所述待编码视频中的每个视频帧对应的帧序号,确定所述待编码视频中的切换视频帧,包括:
150.基于所述待编码视频中的帧序号变化位置,确定所述待编码视频中的切换视频帧。
151.根据本公开的一个或多个实施例,【示例八】提供了一种视频编码方法,还包括:
152.可选的,所述以所述待编码视频中的切换视频帧为关键帧,对所述目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频,包括:
153.针对每个播放档位,获取当前播放档位对应的当前待编码视频;
154.以所述当前待编码视频中的每个切换视频帧为图像组中的第一个关键帧进行编码,获得当前播放档位对应的编码视频。
155.根据本公开的一个或多个实施例,【示例九】提供了一种视频编码方法,还包括:
156.可选的,在获得每个播放档位对应的编码视频之后,还包括:
157.播放第一播放档位对应的第一编码视频,并响应于播放档位切换指令,确定待切换至的第二播放档位;
158.响应于播放到所述第一编码视频中的切换视频帧对应的切换位置,切换到所述第二播放档位,并同步播放所述第二播放档位对应的第二编码视频。
159.根据本公开的一个或多个实施例,【示例十】提供了一种视频编码装置,包括:
160.目标视频获取模块,用于获取待编码的目标视频;
161.切换视频帧确定模块,用于基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;
162.多档位编码模块,用于以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。
163.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
164.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的
子组合的方式实现在多个实施例中。
165.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
技术特征:
1.一种视频编码方法,其特征在于,包括:获取待编码的目标视频;基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。2.根据权利要求1所述的视频编码方法,其特征在于,所述视频帧信息包括:纹理信息、运动信息、镜头切换信息、镜头景别信息和播放时间戳中的至少一项。3.根据权利要求1所述的视频编码方法,其特征在于,所述基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,包括:将所述目标视频中的每个视频帧的视频帧信息输入至预先训练得到的目标网络模型中进行切换视频帧的预测;基于所述目标网络模型输出的预测结果,确定所述目标视频中的切换视频帧。4.根据权利要求1所述的视频编码方法,其特征在于,以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频,包括:基于所述目标视频中的切换视频帧和每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频和所述待编码视频中的切换视频帧;以所述待编码视频中的切换视频帧为关键帧,对所述目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频。5.根据权利要求4所述的视频编码方法,其特征在于,所述基于所述目标视频中的切换视频帧和每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频和所述待编码视频中的切换视频帧,包括:基于所述目标视频中的切换视频帧,对所述目标视频进行逐帧编号,确定所述目标视频中的每个视频帧对应的帧序号;基于每个播放档位对应的档位帧率,对所述目标视频进行帧率调整,获得每个播放档位对应的待编码视频;基于所述待编码视频中的每个视频帧对应的帧序号,确定所述待编码视频中的切换视频帧。6.根据权利要求5所述的视频编码方法,其特征在于,所述基于所述目标视频中的切换视频帧,对所述目标视频进行逐帧编号,确定所述目标视频中的每个视频帧对应的帧序号,包括:以所述目标视频中的切换视频帧为分界点,对所述目标视频中的视频帧进行分组,获得多个帧组;确定每个所述帧组中的每个视频帧对应的帧序号,其中,同一个帧组中的视频帧对应相同的帧序号,不同帧组中的视频帧对应不同的帧序号。7.根据权利要求6所述的视频编码方法,其特征在于,所述基于所述待编码视频中的每个视频帧对应的帧序号,确定所述待编码视频中的切换视频帧,包括:基于所述待编码视频中的帧序号变化位置,确定所述待编码视频中的切换视频帧。8.根据权利要求4所述的视频编码方法,其特征在于,所述以所述待编码视频中的切换
视频帧为关键帧,对所述目标视频进行相应播放档位的编码,获得每个播放档位对应的编码视频,包括:针对每个播放档位,获取当前播放档位对应的当前待编码视频;以所述当前待编码视频中的每个切换视频帧为图像组中的第一个关键帧进行编码,获得当前播放档位对应的编码视频。9.根据权利要求1-8任一项所述的视频编码方法,其特征在于,在获得每个播放档位对应的编码视频之后,还包括:播放第一播放档位对应的第一编码视频,并响应于播放档位切换指令,确定待切换至的第二播放档位;响应于播放到所述第一编码视频中的切换视频帧对应的切换位置,切换到所述第二播放档位,并同步播放所述第二播放档位对应的第二编码视频。10.一种视频编码装置,其特征在于,包括:目标视频获取模块,用于获取待编码的目标视频;切换视频帧确定模块,用于基于所述目标视频中的每个视频帧的视频帧信息,确定所述目标视频中的切换视频帧,所述切换视频帧用于表征切换播放档位时的视频切换位置;多档位编码模块,用于以所述切换视频帧为关键帧,对所述目标视频进行多档位编码,获得每个播放档位对应的编码视频。11.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的视频编码方法。12.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-9中任一所述的视频编码方法。
技术总结
本公开实施例提供了一种视频编码方法、装置、设备和存储介质。该方法包括:获取待编码的目标视频;基于目标视频中的每个视频帧的视频帧信息,确定目标视频中的切换视频帧,切换视频帧用于表征切换播放档位时的视频切换位置;以切换视频帧为关键帧,对目标视频进行多档位编码,获得每个播放档位对应的编码视频。通过本公开实施例的技术方案,可以在切换播放档位时保证视频画面对齐,提高了视频切换的连贯性。性。性。
技术研发人员:接宏恩 王继成 甘文耀
受保护的技术使用者:抖音视界有限公司
技术研发日:2023.04.26
技术公布日:2023/7/21
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
