码率控制方法、装置、设备及计算机可读存储介质

文档序号:26590478发布日期:2021-09-10 20:45阅读:103来源:国知局
码率控制方法、装置、设备及计算机可读存储介质

1.本发明涉及视频编码技术领域,尤其涉及一种码率控制方法、装置、设备及计算机可读存储介质。


背景技术:

2.点云(point cloud)是一种三维数据的表示方法,点云应用日益普及,点云视频的编码(压缩)技术也日趋完善,在进行视频编码时,由于传输带宽的限制,需要调整编码器输出压缩视频码流的码率。在视频编码中,若编码器输出码率大于信道传输带宽,编码器一侧的缓存器中的比特流会不断累积,一旦累积的比特流数据量大于缓存器的容量,将发生缓存器数据上溢,造成未编码视频帧的丢失,最终造成解码端重建后的视频视觉质量下降。反过来,若编码器输出码率小于目标码率,同样会降低编码视频质量,并且较小的输出码率会导致带宽资源的浪费。因此,在视频编码中通常要对编码的码率进行控制。
3.但是,现有的码率控制方案有固定码率和可变码率两种,固定码率一般用于对视频图像质量要求较高的场景,无法根据传输信道的带宽变化自适应调整码率,容易造成数据传输的拥堵和带宽资源的浪费。对于可变码率,一般是基于现有的参数分配模型直接求解得到编码参数,得到的剑麻参数直接用于视频图像帧的码率分配,码率分配颗粒度很粗,从而导致码率误差较大,直接影响最终编码后的视频图像的质量。因此,现有的固定码率和可变码率的码率控制的准确性不高。


技术实现要素:

4.本发明的主要目的在于提供一种码率控制方法、装置、设备及计算机可读存储介质,旨在解决现有的码率控制准确度不高的技术问题。
5.此外,为实现上述目的,本发明还提供一种码率控制方法,所述码率控制方法包括以下步骤:
6.获取待编码的点云视频信息,对所述点云视频信息中的三维点云进行二维投影处理,得到二维视频序列;
7.对所述二维视频序列进行预编码,以获取编码参数集合;
8.获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;
9.根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。
10.可选地,所述编码参数集合包括量化参数序列,所述对所述二维视频序列进行预编码,以获取编码参数集合的步骤,包括:
11.获取所述编码参数中的量化参数序列的量化参数值,并建立预编码模型,其中,所述量化参数序列包括多个量化参数值;
12.根据建立的预编码模型,利用所述量化参数序列中的多个量化参数值分别对所述二维视频序列进行编码处理,以确定所述量化参数值对应的比特值;
13.根据所述比特值确定编码参数集合。
14.可选地,所述目标码率包括第一码率、第二码率和第三码率,所述二维视频序列中包括多个视频子序列,所述根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率的步骤,包括:
15.根据所述目标比特值对所述二维视频序列进行序列间比特分配,以确定所述二维视频序列中的视频子序列对应的第一码率;
16.根据所述第一码率对所述视频子序列进行组间比特分配,以确定所述视频子序列中的视频图像组对应的第二码率,其中,所述视频子序列中包括多个视频图像组;
17.将所述目标码率中的第二码率映射到所述编码参数集合中,以确定在所述编码参数集合中与所述第二码率对应的目标量化参数值;
18.根据所述目标量化参数值对所述视频图像组进行组内比特分配,以确定所述视频图像组中的视频图像帧对应的第三码率,其中,所述视频图像组中包括多个视频图像帧。
19.可选地,所述根据所述目标比特值对所述二维视频序列进行序列间比特分配,以确定所述二维视频序列中的视频子序列对应的第一码率的步骤,包括:
20.建立所述视频子序列的质量依赖模型,以获取所述视频子序列的质量依赖因子;
21.建立所述视频子序列对应的最小失真模型,并根据所述质量依赖因子和建立的最小失真模型,确定所述视频子序列对应的最优分配参数;
22.根据所述最优分配参数,将所述目标比特值在所述二维视频序列中的视频子序列间进行比特分配计算,得到所述二维视频序列中的视频子序列对应的第一码率。
23.可选地,所述建立所述视频子序列的质量依赖模型,以获取所述视频子序列的质量依赖因子的步骤,包括:
24.获取所述质量依赖模型的初始样本数据,并对所述初始样本数据进行采样处理,得到目标样本数据;
25.对所述目标样本数据进行拟合,并根据拟合结果确定所述视频子序列的质量依赖模型;
26.对所述质量依赖模型进行变换,得到所述视频子序列的质量依赖因子。
27.可选地,所述根据所述质量依赖因子和建立的最小失真模型,确定所述视频子序列对应的最优分配参数的步骤,包括:
28.对所述质量依赖因子和所述最小失真模型进行计算,得到所述最小失真模型对应的最小失真表达式;
29.获取预设的迭代参数,根据获取的迭代参数对所述最小失真表达式进行迭代计算,得到所述视频子序列对应的最优分配参数。
30.可选地,所述确定所述二维视频序列对应的目标码率的步骤之后,还包括:
31.对所述目标比特值进行检测;
32.当检测到所述目标比特值发生变化时,返回并执行所述获取当前的目标比特值,并根据所述目标比特值对所述二维视频序列进行比特分配的步骤。
33.此外,为实现上述目的,本发明还提供一种码率控制装置,所述码率控制装置包括:
34.图像投影模块,用于获取待编码的点云视频信息,对所述点云视频信息中的三维
点云进行二维投影处理,得到二维视频序列;
35.预编码模块,用于对所述二维视频序列进行预编码,以获取编码参数集合;
36.比特分配模块,用于获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;
37.比特控制模块,用于根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。
38.此外,为实现上述目的,本发明还提供一种码率控制设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的码率控制程序,所述码率控制程序被所述处理器执行时实现如上述的码率控制方法的步骤。
39.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有码率控制程序,所述码率控制程序被处理器执行时实现如上述的码率控制方法的步骤。
40.本发明实施例提出的一种码率控制方法、装置、设备及计算机可读存储介质。与现有技术中码率控制准确性不高相比,本发明实施例中,通过获取待编码的点云视频信息,对所述点云视频信息中的三维点云进行二维投影处理,得到二维视频序列;对所述二维视频序列进行预编码,以获取编码参数集合;
41.获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。通过预编码获取先验知识,得到更加准确的编码参数,根据获取的编码参数和当前的比特值进行比特分配,进而确定编码的目标码率,提高了码率控制的准确性,在确保最优的视频图像质量的前提下,提高对传输信道带宽资源的利用率。
附图说明
42.图1为本发明实施例提供的码率控制设备一种实施方式的硬件结构示意图;
43.图2为本发明码率控制方法第一实施例的流程示意图;
44.图3为本发明码率控制方法第一实施例不同的qp
c
值对应的质量依赖模型的拟合结果示意图;
45.图4为本发明码率控制方法第二实施例的几何视频序列的d

r模型的拟合结果示意图;
46.图5为本发明码率控制方法第二实施例的颜色视频序列的d

r模型的拟合结果示意图;
47.图6为本发明码率控制装置一实施例的功能模块示意图。
48.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
49.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
50.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合
地使用。
51.本发明实施例码率控制设备(又叫终端、设备或者终端设备)可以是pc,也可以是智能手机、平板电脑和便携计算机等具有显示功能的可移动式终端设备。
52.如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi

fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non

volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
53.可选地,终端还可以包括摄像头、rf(radio frequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
54.本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
55.如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及码率控制程序。
56.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的码率控制程序,所述码率控制程序被处理器执行时实现下述实施例提供的码率控制方法中的操作。
57.基于上述设备硬件结构,提出了本发明码率控制方法的实施例。
58.参照图2,在本发明码率控制方法的第一实施例中,所述码率控制方法包括:
59.步骤s10,获取待编码的点云视频信息,对所述点云视频信息中的三维点云进行二维投影处理,得到二维视频序列;
60.在本实施例中,所述码率控制方法用于控制点云视频编码压缩时的码率,包括但不限于mepg(moving picture experts group,动态图像专家组)组织制定的v

pcc

c2ai(video

based point cloud compression,基于视频的点云编码技术),其中,c2ai(无对应中文名称)是该点云视频编码技术下的编码配置规则,以下以应用于对v

pcc

c2ai的点云视频的编码技术的码率控制为例进行说明。
61.可知地,点云是一种三维数据表示方法,在点云视频中,每个点云都包含了大量的信息,如三维坐标信息、颜色信息、透明度、材料属性等,可以灵活地记录三维空间中物体的结构及属性,一个简单的三维(3d)物体需要成千上万的点来表示,庞大的数据量给点云存储和传输带来了巨大挑战,也推动了点云压缩技术的发展。而码率的大小反应了在编码过
程中对视频图像的压缩程度,本技术在视频编码过程中对码率的控制,即为根据当前编码的传输信道的带宽(即单位时间内可以是传输的数据量,一般用比特值表示)确定对视频图像的压缩程度,从而保证在充分利用当前的带宽资源的情况下,获得最优的视频图像质量。现有的压缩技术应用于点云视频时,对编码过程中的码率控制通常只追求利用最小的码率达到最小的失真,因此大多采用固定码率控制,对码率的控制准确度不高,且忽视了对带宽资源的利用,最终结果往往是造成带宽资源的浪费。而本技术实施例提供了一种点云视频编码过程中的码率控制方法,旨在提高码率控制的准确度,进而在保证图像质量的前提下,提高带宽资源的利用率。
62.具体地,首先获取待编码的点云视频信息,该点云视频信息中的图像是三维(以下简称3d)的,所以获取的点云视频信息的数据量较大,因此,需要对获取的点云视频信息进行投影处理,将3d图像转换为二维(以下简称2d)图像,得到对应的2d视频序列。其中,投影处理是在3d空间中进行的,可以将点云视频信息中的3d图像分别向其前、后、左、右、上、下等六个不同方位中的至少一个方位进行投影的,从而获取到该3d图像对应的至少一个2d图像。投影得到的2d视频序列中,包括几何视频序列、颜色视频序列等多个视频子序列,这些视频子序列是对投影后的2d视频信息进行整合得到的。例如,当对一个3d图像投影后得到多个对应的2d图像时,对每个2d图像中点云的投影位置信息进行汇总,将多个2d图像整理组合到一个矩形图像内,就得到一个几何视频图像,对点云视频信息中的多个3d图像进行投影后,对应得到多个几何视频图像组成的几何视频序列。
63.步骤s20,对所述二维视频序列进行预编码,以获取编码参数集合;
64.进一步地,在进行编码之前需要对得到的2d视频序列进行预编码,在预编码阶段需要对获取的2d视频序列进行多次编码,从而获取一系列的编码参数组成一个编码参数集合。预编码的目的是为了获取一系列精确的编码参数,该编码参数包括量化参数值、根据该量化参数值进行编码后的码率等。
65.预编码的具体过程,包括步骤a1

a3:
66.步骤a1,获取所述编码参数中的量化参数序列的量化参数值,并建立预编码模型,其中,所述量化参数序列包括多个量化参数值;
67.步骤a2,根据建立的预编码模型,利用所述量化参数序列中的多个量化参数值分别对所述二维视频序列进行编码处理,以确定所述量化参数值对应的比特值;
68.步骤a3,根据所述比特值确定编码参数集合。
69.在预编码时,首先获取多个量化参数值(qp,quantization parameter),该量化参数值可以根据经验或实验数据进行确定,例如,根据实验数据总结经验,可以确定利用哪些qp的值进行编码后,得到的编码参数更加精准,然后由用户对这些qp值进行自定义的设置和调整。在实际编码时,qp值对应量化步长,量化步长越小,编码的量化精度越高,解码后的视频图像的质量越高,qp值越大,对应的量化步长越大,量化精度越低,最终的到视频图像的质量也会下降,因此,qp值与编码后的视频图像的质量呈现反比关系,且不同的qp值对应不同的比特值。因此,需要先对2d视频序列进行预编码,进而确定qp与比特值之间的对应关系,在正式编码时,利用逆向思维,基于当前编码的传输信道的带宽进行比特分配,从而确定当前单位时间内进行编码后的比特值,根据比特值和qp值之间的对应关系确定对应的qp值,从而在保证视频图像质量的基础上,充分利用带宽资源的同时得到较好质量的视频图
像。
70.具体地,对2d视频序列进行预编码时,只对2d视频序列中的几何视频序列和颜色视频序列的第一帧视频图像分别进行编码以减少计算量,我们的目的在于获取编码参数,而不是编码后的视频,因此,只对第一帧视频图像进行编码,可以大大减少计算量,从而不会影响编码效率。在获取预编码的多个量化参数值时,建立预编码模型,然后根据建立的预编码模型,利用多个不同的量化参数值分别对几何视频序列和颜色视频序列的第一帧视频图像进行编码处理,该编码处理的过程不对码率进行控制,例如,以常用的编码r

q(rate

qp)模型为例,模型表达式如下列公式1所示:
71.r=a
·
qp
b
ꢀꢀ
(1)
72.其中,r表示比特值,a和b表示编码参数中的常值参数,是固定值。
73.在预编码的过程中,首先从量化参数序列中确定一个qp值,该qp可以是量化参数序列中的第一个值,也可以是量化参数序列中最小或最大的值,在此不作具体限定,利用确定的qp值对几何视频序列和颜色视频序列的第一帧视频图像分别进行编码,得到两个对应的r值,从而得到两个(r,qp)关系组,按照此步骤利用多个不同的qp值分别进行编码,并获取对应的比特值r,得到多个对应的(r,qp)关系组,当所有的qp值编码完成后,根据得到的(r,qp)关系组,从而确定r值与qp值之间的一一对应关系。通过预编码得到的编码参数集合中,不仅包括(r,qp)关系组,还包括编码模型的参数a和b的值,而a和b的值可以通过(r,qp)关系组带入到公式1中,利用最小二乘法进行计算得到,可知地,预编码时的qp值越多,得到的关系组数量越多,得到的a和b的值也就越精确,编码参数集合的参数值也就越精确。上述模型仅为本发明实施例中的一种优选模型,并不对本发明构成限定,在实际编码时,根据选用的编码模型的不同,得到的编码参数集合也不同。
74.进一步地,在进行编码时,2d视频序列中包括关键帧(intra

prediction,i帧)、双向预测帧(bi

prediction,b帧)和单向预测帧(prediction,p帧),其中,i帧未帧内预测编码,可独立进行编码,而b帧和p帧在编码时需要参考其他帧,在对视频图像序列进行编码时,视频序列中的第一帧视频图像一般都是关键帧,如果关键帧的码率误差较大,则后续帧视频图像的编码误差则更大,从而会导致较大的失真。在本实施例中,基于点云视频信息的v

pccc2ai的编码技术进行编码时,对应的2d视频序列中的第一帧视频图像也是关键帧,通过预编码获取编码参数集合,可以提高对第一帧视频图像的qp值的预测准确性,进而提高编码后的视频图像的质量。在实际应用时,也可以在权衡计算速度和计算效率的情况下,对更多的视频图像进行预编码,从而获取更加的精确的编码参数。
75.步骤s30,获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;
76.进一步地,在获取编码参数集合之后,需要确定当前的目标比特值,即当前编码传输信道的带宽,该目标比特值确定了单位时间内信道能够传输的数据量的大小,从而约束了2d视频序列进行编码时的码率。具体地,码率又称比特率,是传输信道单位时间内传输的数据量的大小,对应视频图像编码后的数据量,因此,对传输信道单位时间内可以传输的数据量大小(即目标比特)进行比特分配,可以确定单位时间内2d视频图像编码后的数据量,也即2d视频序列对应的目标码率,将传输信道单位时间的比特值作为单位时间内编码后的视频图像的数据量并进行分配时,相当于对码率进行分配,可以充分利用传输信道当前的
带宽资源,提高对带宽资源的利用率。现有的基于v

pcc编码标准的比特分配是直接根据当前带宽确定一个qp值,然后根据qp值对2d视频序列中的每帧视频图像进行比特分配,从而确定编码的码率,比特分配的颗粒度较粗,进而导致对码率的控制准确度不高,在本实施例中,区别于现有的比特分配原则,将比特分配划分为序列间比特分配、视频图像组间比特分配以及视频图像组内比特分配。也即,根据当前的目标比特值,先根据2d视频序列中包括的视频子序列进行序列间的比特分配,然后基于每个视频子序列分配到的比特值再进行组间分配,进而基于同一个视频子序列中每个视频图像组分配到的比特值进行组内分配,最终确定每个视频图像帧分配到的比特值,从而确定最终编码时的目标码率。具体可以参照步骤b1

b4。
77.步骤b1,根据所述目标比特值对所述二维视频序列进行序列间比特分配,以确定所述二维视频序列中的视频子序列对应的第一码率;
78.步骤b2,根据所述第一码率对所述视频子序列进行组间比特分配,以确定所述视频子序列中的视频图像组对应的第二码率,其中,所述视频子序列中包括多个视频图像组;
79.步骤b3,将所述目标码率中的第二码率映射到所述编码参数集合中,以确定在所述编码参数集合中与所述第二码率对应的目标量化参数值;
80.步骤b4,根据所述目标量化参数值对所述视频图像组进行组内比特分配,以确定所述视频图像组中的视频图像帧对应的第三码率,其中,所述视频图像组中包括多个视频图像帧。
81.需要说明的是,在本实施例中,目标码率包括第一码率、第二码率和第三码率,可知地,在本实施例中,2d视频序列包括多个视频子序列,每个视频子序列又包括多个视频图像组(group of picture,gop组),每个gop组中又包括多个视频图像帧,目标码率中的第一码率、第二码率和第三码率分别与视频子序列、gop组、视频图像帧对应。也即,在根据当前的比特值进行比特分配时,首先在2d视频序列中进行序列间比特分配,确定每个视频子序对应的第一码率,基于每个视频子序列分配到的第一码率,在视频子序列中进行组间比特分配,从而确定每个视频子序列中的gop组对应的第二码率,然后将该第二码率映射到编码参数集合中,即根据第二码率对应的r值和(r,qp)关系确定对应的qp值,然后基于gop组分配到的第二码率,将qp值用于指导组内比特分配,从而确定每个gop组中的视频图像帧对应的第三码率。可知地,在预编码时,参与编码的qp值越多,得到的编码参数越精确,但是会相应的增加计算量,因此,在实际应用时,预编码可以根据经验只利用较少的qp值进行编码,以获取不同的qp值对应的比特值,并将该比特值与第二码率进行比较,确定与第二码率最接近的比特值对应的qp值,最后,根据该qp值进行组内比特分配,确定每个gop组中,每个图像帧最终分配的码率。进一步地,基于上述利用较少的qp进行预编码获取的(r,qp)关系组,对qp值和r值进行区间划分,然后基于划分得到的qp值区间和码率区间,确定经过比特分配后得到的第二码率对应的码率区间,根据第二码率所在的码率区间,确定对应的qp值区间,并利用该区间内的多个qp值再次进行预编码,得到更加细化的码率区间,直到根据qp值进行预编码后得到的码率值与分配到的码率值相等或差值小于预设阈值,则可以在不过多地增加计算量的前提下,得到更加精确的用于指导gop组内比特分配的qp值,同样地,预编码的次数越多,基于当前分配的第二码率得到的qp值越精确,最后,根据不同的gop组对应的qp值进行组内比特分配,确定每个gop组中,每个图像帧最终编码的码率。
82.本实施例中的几何视频序列是由3d点云投影到各个平面产生的,一个3d物体会有很多个点投影到同一位置,为了避免这种重叠现象,3d点云视频图像中的每一帧图像会产生两帧的几何视频图像,这两帧的几何视频图像有着一定的相似性。所以根据点云视频图像的c2ai编码配置规则,3d点云视频图像中的每一帧对应的2d视频序列中的第一帧几何视频图像按照i帧方式编码,而第二帧几何视频图像按照p帧方式编码,以此达到节省码率的目的,由此产生了ipip

ipip的编码结构,一个gop组中包括了一个i帧和一个p帧,若假设每个i帧编码后的码率是相同的,且每个p帧编码后的码率也是相同的,则在同一个视频子序列中,每个gop组分配到的码率是相同的,因此,在进行组间比特分配时,可以按照公式2进行:
[0083][0084]
其中,表示每个gop组应该分配的比特值,即第二码率,表示当前视频子序列分配的比特值,即第一码率,表示当前该视频子序列已经消耗的比特值,n
uncoded
表示当前视频子序列中未编码的视频图像帧的数量,n
i

group
表示每个gop组包含的视频图像帧的数量,在本实施例中,基于上述的ipip

ipip的编码结构,每个gop组包含两帧视频图像,则在本实施例中,n
i

group
的值为2。可知地,根据当前的目标比特值进行组间比特分配的方式并不限于此,基于不同的编码标准对点云视频信息进行编码时,会得到不同结构的视频序列,根据视频序列结构的不同,可以对上述公式2所示的组间比特分配方式进行适应性的调整,从而提高组间比特分配的准确性。
[0085]
进一步地,基于每个gop组根据公式2进行计算分配的第二码率,与预编码中利用不同的qp值进行编码得到的比特值进行比较,确定最接近第二码率的比特值对应的qp值,从而根据qp值进行组内比特分配,其中,量化参数序列中的qp值对应比特分配规则。在本实施例中进行组内比特分配时,每个gop组包括一个i帧视频图像和一个p帧视频图像,而qp值确定了组内i帧和p帧两个视频图像帧的比特分配比例,具体地,qp值是图像编码时量化步长,决定了编码后的图像质量,在本实施例中,对于每个gop组而言,p帧图像在编码时以i帧图像为参考,因此,p帧图像编码后的质量取决于i帧图像编码后的质量,而qp值决定了i帧图像的编码质量,i帧的质量越高,p帧由于帧间预测消耗的比特越少,因此,qp值可以大致确定i帧和p帧的码率占比,根据该码率占比进行组内比特分配,进而确定每个gop组内每个图像帧对应的编码码率。通过预编码可以确定在当前分配的该gop组的第二码率下应当选择的qp值,以及该qp值对应的组内比特分配比例,并按照该分配比例进行组内比特分配,且预编码的编码次数越多,对应的qp值越精确,由qp值指导的组内比特分配也越精确。不同的qp值对应不同的比特分配比例,例如,根据预编码获取的编码参数集合,当qp值为44时,i帧的比特值占比高达99.75%,则给i帧分配gop组总的码率值的99.75%,qp值为12时,i帧的比特值占比为72.29%,则给i帧分配gop组总的码率值的72.29%,从而确定gop组内,每个视频图像帧对应的码率。
[0086]
步骤s40,根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。
[0087]
在确定2d视频序列对应的目标码率后,按照该目标码率进行编码,对2d视频序列中的视频图像按照其码率进行编码压缩,直到完成对2d视频序列中所有视频图像的编码,
最终得到编码后的目标编码视频。可知地,每个视频子序列分配到的比特值可能是不同的,因此,不同的视频子序列在进行编码时,对应的qp值和码率可能也不相同。对2d视频序列中不同的视频子序列进行编码时,可以与上述预编码所用的r

q模型相同,根据不同的视频子序列各自对应的qp值进行编码,使编码后的比特值与组内分配的码率基本相同,以提高对传输信道的带宽的利用率。
[0088]
进一步地,在对2d视频序列进行编码时,需要将已编码的视频图像通过传输信道实时的发送出去,在编码过程中,传输信道的带宽随时可能会发生变化。因此,在确定2d视频序列对应的目标码率后,根据分配的目标码率对2d视频序列进行编码时,还要对传输信道的带宽进行实时检测,参照步骤c1

c2:
[0089]
步骤c1,对所述目标比特值进行检测;
[0090]
步骤c2,当检测到所述目标比特值发生变化时,返回并执行所述获取当前的目标比特值,并根据所述目标比特值对所述二维视频序列进行比特分配的步骤。
[0091]
对当前的目标比特值进行检测,可以通过获取当前的带宽,并根据带宽检测目标比特值是否发生变化,当检测到当前的目标比特值发生变化时,根据当前的目标比特值重新进行比特分配,得到新的码率值,根据重新进行比特分配后的码率值进行编码,最终得到目标编码视频。
[0092]
在本实施例中,通过获取待编码的点云视频信息,对所述点云视频信息中的三维点云进行二维投影处理,得到二维视频序列;对所述二维视频序列进行预编码,以获取编码参数集合;获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。通过预编码获取先验知识,得到更加准确的编码参数,根据获取的编码参数和当前的比特值,结合二维视频序列间的质量依赖进行多维度的最优比特分配,进而确定编码的目标码率,提高了码率控制的准确性,在确保最优的视频图像质量的前提下,提高对传输信道带宽资源的利用率,同时,能够根据带宽变化自适应的调整目标码率,进一步提高了码率控制的准确度。
[0093]
进一步地,在本发明上述实施例的基础上,提出了本发明方法的第二实施例。
[0094]
本实施例是第一实施例中步骤b1细化的步骤,包括步骤d1

d3:
[0095]
步骤d1,建立所述视频子序列的质量依赖模型,以获取所述视频子序列的质量依赖因子;
[0096]
步骤d2,建立所述视频子序列对应的最小失真模型,并根据所述质量依赖因子和建立的最小失真模型,确定所述视频子序列对应的最优分配参数;
[0097]
步骤d3,根据所述最优分配参数,将所述目标比特值在所述二维视频序列中的视频子序列间进行比特分配计算,得到所述二维视频序列中的视频子序列对应的第一码率。
[0098]
基于上述实施例,本实施例是对上述实施例中,对获取的目标比特值进行序列间比特分配,进而确定视频子序列对应的第一码率的细化。需要说明的是,本实施例中,2d视频序列的视频子序列除了几何视频序列(geometry video)、颜色视频序列(color video)之外,还包括占用地图序列(occupancy map)和辅助片信息序列(auxiliary ptach

info),其中,occupancy map主要是用于存储geometry image中每一个像素是否表示了3d点云的几何信息,是一个二值图像,只有0和1两个值;auxiliary ptach

info存储了一些patch信
息用于重建3d点云,比如每一个patch,表示了2d视频序列中的视频图像所属的投影平面的索引,该索引包括投影平面在3d空间的位置和边界等等,这两个视频子序列在编码时均是无损编码,所以消耗的比特是固定的,在序列间分配时,主要在于确定几何视频序列和颜色视频序列之间的比特分配。基于上述实施例中的ipip

ipip的编码结构,几何视频序列和颜色视频序列中,一个gop组中只有两帧图像。
[0099]
进一步地,对点云视频的编码过程中,首先生成几何视频图像(geometry image),然后基于生成的geometry image进行相应的上色处理,进而产生了color video,因此,geometry image的质量影响了color video的质量。具体来说,如果代表位置信息的geometry imag的质量很差,根据color video上色时的位置就会出现偏差,比如一个3d人物的发饰和人物出现了分离,即使上色时的颜色信息准确度再高,color video的点对点的上色位置不对,最终得到的图像质量也较差。传统的编码技术没有考虑视频序列间的这种质量依赖关系,计算出的失真值只是2d视频序列的编码失真,而不是原始的3d点云视频与解码重构后的3d点云视频之间的点对点对称失真,因此,根据对图像质量的预估确定的编码参数是不准确的,进而无法实现对码率的精准控制。而本技术中对码率进行控制时,考虑了2d视频序列中不同视频子序列间的质量依赖关系,可以提高对码率的控制精确度,进而提高编码后的视频图像的质量。具体地,首先需要确定视频子序列中,由geometry image组成的geometry video与color video之间的质量依赖关系,该依赖关系可以通过依赖参数表示,而依赖参数可以通过建立质量依赖模型进行计算得到,模型的建立过程如步骤d11

d13所示:
[0100]
步骤d11,获取所述质量依赖模型的初始样本数据,并对所述初始样本数据进行采样处理,得到目标样本数据;
[0101]
步骤d12,对所述目标样本数据进行拟合,并根据拟合结果确定所述视频子序列的质量依赖模型;
[0102]
步骤d13,对所述质量依赖模型进行变换,得到所述视频子序列的质量依赖因子。
[0103]
在建立geometry video和color video之间的质量依赖模型时,首先获取初始样本数据,该初始样本数据可以是预设的基于v

pcc c2ai编码技术的历史编码数据,对获取的初始样本数据进行采样,得到目标样本数据。在本实施例中,初始样本数据以5个点云视频信息的编码数据为例,在采样时,选取编码视频图像中qp
g
的取值范围为(12,36),步长为4,qp
c
值分别为22、26、30、34进行步进编码得到的编码图像,其中,qp
g
是geometry video编码时的量化参数值,qp
c
是color video编码时的量化参数qp值。根据编码图像的失真值对获取的目标样本数据进行拟合,从而研究geometry video对的color video的质量影响,拟合结果如图3。图3是根据不同的qp
c
的值对qp
g
的值进行拟合的结果,其中,loot、redandblack、soldier、queen和longdress分别表示5个点云视频信息,d
c
和d
g
分别是geometry video对的color video编码后对应的失真值,r2是评估拟合精度的拟合系数,r2的值越接近于1证明拟合效果越好,而图3所示的拟合结果精度最小值也在0.94以上,大部分都在0.99以上,证明了建立的质量依赖模型的合理性。根据图3所示的拟合结果,可见geometry video和color video之间的质量依赖关系是线性的,因此可以构建如公式2所示的质量依赖模型:
[0104]
d
c
=k
·
d
g
+b'
ꢀꢀ
(2)
[0105]
其中,k和b'是根据拟合结果确定的线性质量依赖模型的模型参数,为定值且b'为常数,根据建立的模型进行相应的变换得到质量依赖因子,可知地,不同的模型需要进行不同的变换,本实施例中以求导变换为例,对公式2进行求导变换得到如下列公式3所示的质量依赖因子,通过该质量依赖因子可以将geometry video的编码失真值d
g
用color video的编码失真值d
c
进行表示,或者,将d
c
用d
g
进行表示。
[0106][0107]
进一步地,在确定geometry video和color video之间的质量依赖因子后,建立如公式4所示的最小失真模型,本技术中的码率控制方法的目的在于通过码率控制充分利用当前的带宽资源同时,要保证编码后的视频图像的质量是最优的,因此,需要控制视频图像在编码中的失真值最小化。
[0108]
min{w
·
d
g
+d
c
}s.t.r
g
+r
c
≤r
tar
ꢀꢀ
(4)
[0109]
其中,min表示最小化,w是geometry video的失真值占编码后的视频编码图像的整体失真值的权重值,由于geometry video的质量较于color video更加重要,所以w一般取一个远大于1的值,具体可以根据实际需要进行自定义设置。s.t.表示受限于,r
g
和r
c
分别是geometry video和color video对应的码率值,两者码率值的和不能超过当前带宽的目标比特值所对应的总的码率值r
tar
,因此,公式4所示的最小失真模型要受r
g
+r
c
≤r
tar
的约束。
[0110]
建立最小失真模型后,根据建立的最小失真模型和质量依赖因子进行计算,从而得到序列间比特分配的最优分配参数,具体过程如步骤d21

d22所示:
[0111]
步骤d21,对所述质量依赖因子和所述最小失真模型进行计算,得到所述最小失真模型对应的最小失真表达式;
[0112]
步骤d22,获取预设的迭代参数,根据获取的迭代参数对所述最小失真表达式进行迭代计算,得到所述视频子序列对应的最优分配参数。
[0113]
基于上述公式4的最小失真模型,首先要研究d
g

r
g
之间的关系,以及d
c

r
c
之间的关系。在研究d
g

r
g
和d
c

r
c
之间的关系时,采用与上述质量依赖模型建立过程相同的方式,不同的是,在对初始样本数据进行采样时,选取qp
g
的取值范围为(8,44),步长为4的qp值进行编码的视频图像,得到10组(d
g
,r
g
)。在研究d
c

r
c
之间的关系时,考虑到qp
g
的值会对d
c
和r
c
造成影响,所以将qp
g
的值固定为24,选取qp
c
的取值范围为(18,46),步长为4,得到8组(d
c
,r
c
)。最后利用采样数据进行拟合,拟合结果如图4至图5所示。在图4至图5中,loot、redandblack、soldier、和longdress同样表示4个不同的点云视频信息,其中,图4是4个点云视频信息的geometry video对应的d

r模型拟合结果,图5是4个点云视频信息的color video对应的d

r模型拟合结果,两者d

r模型拟合精度都在0.97以上,证明了d

r模型的合理性,根据图4至图5中的拟合结果建立如下d

r关系模型(公式5

6):
[0114][0115][0116]
其中,a
g
、b
g
、a
c
、b
c
是根据拟合结果确定的最小失真模型的模型参数,且b
g
和b
c
为常数,a
g
小于0,a
c
大于0。需要说明的是,本技术实施例中的失真值如d
c
和d
g
,由于考虑了2d视
频序列间的质量依赖关系,因此是原始的3d点云和解码重构后点云之间的点对点的对称失真,而不是传统编码技术中的2d视频序列的编码失真。同样对公式5

6进行求导变换,得到对应的公式7

8:
[0117][0118][0119]
公式7

8中,根据求导结果,θ
g


a
g
大于0,θ
c
=0.1*a
c
大于0。
[0120]
在确定d

r关系模型后,对所述质量依赖因子和所述最小失真模型进行计算,得到所述最小失真模型对应的最小失真表达式,具体的计算过程如下:
[0121]
由于建立的如公式4所示的最小失真模型是有约束的,因此,利用拉格朗日乘子法将有约束转换为无约束,如公式9所示:
[0122]
min{w
·
d
g
+d
c
+λ(r
g
+r
c

r
tar
)}
ꢀꢀ
(9)
[0123]
其中,λ是该模型优化问题的拉格朗日乘子,根据公式9分别对r
g
和r
c
进行求导得到公式10

11:
[0124][0125][0126]
对公式10

11分别进行转换,得到公式12

13:
[0127][0128][0129]
其中,表示geometry video的质量对color video质量的影响,如公式3所示,可以通过质量依赖因子k表示,因此,根据公式3、7和12可以得到公式14:
[0130][0131]
类似地,表示color video的质量对geometry video质量的影响,由于color video的质量并不影响geometry video,所以其值为0,因此,根据公式8和13,得到公式15:
[0132][0133]
最后根据公式4、14和15,得到最小失真模型对应的最小失真表达式,如公式16所示:
[0134][0135]
但是对于公式16,仍然很难找到一个解析解,由于参数θ
g
、θ
c
、w、k均大于0且已知,只能确定公式16是关于λ的单调函数,因此,采用一种迭代方法来求解满足公式16的最佳λ值并记为λ
comp
,继而由λ
comp
以及公式14和15得到geometry video和color video的最优比特分配r
g
和r
c
的值,λ
comp
即为最优比特分配参数。
[0136]
在进行迭代运算时,首先获取预设的迭代参数,迭代参数包括参数λ的初始值,用λ
init
表示,λ的取值范围[λ
min
,λ
max
]、geometry video和color video对应的目标比特值以及最大迭代次数。在本实施例中,将λ的初始值λ
init
设置为

4,λ的取值范围设置为[

0.06,

20],最大迭代次数为20,进行迭代运算后,得到λ
comp
的值,进而根据公式14和15确定最优的比特分配r
c
和r
g
的值,即完成对当前目标比特值的序列间分配,从而得到2d视频序列中每个视频子序列对应的第一码率。
[0137]
可知地,在实际应用时,上述建立的质量依赖模型、d

r模型以及最小失真模型,根据初始样本数据和/或采样方式的不同,可以得到不同的模型或者模型参数,但都可以实现与本技术码率控制方法基本相同的效果,因此,通过不同的样本数据和/或不同的采样方式建立的模型,或者通过模型的计算过程,进而实现与本技术码率控制方法基本相同的技术效果的,也在本发明的专利保护范围之内。同样地,上述质量依赖模型、d

r模型以及最小失真模型仅为本发明实施例的优选模型,并不对本发明构成限定。
[0138]
在本实施例中,首先通过建立质量依赖模型获取二维视频序列的视频子序列间的质量依赖因子,其次,通过建立最小失真模型,并结合所述质量依赖因子进行计算,得到所述最小失真模型对应的最小失真表达式,最终通过对所述最小失真表达式进行迭代计算,确定最优的比特分配参数,根据该最优分配参数对当前的目标比特值进行序列间比特分配,细化了比特分配的颗粒度,提高了序列间比特分配的精度,进而提高了码率控制的精度。
[0139]
此外,参照图6,本发明实施例还提出一种码率控制装置,所述码率控制装置包括:
[0140]
图像投影模块10,用于获取待编码的点云视频信息,对所述点云视频信息中的三维点云进行二维投影处理,得到二维视频序列;
[0141]
预编码模块20,用于对所述二维视频序列进行预编码,以获取编码参数集合;
[0142]
比特分配模块30,用于获取当前的目标比特值,并根据所述目标比特值和所述编码参数集合对所述二维视频序列进行比特分配,以确定所述二维视频序列对应的目标码率;
[0143]
比特控制模块40,用于根据所述目标码率对所述二维视频序列进行编码,得到目标编码视频。
[0144]
可选地,所述预编码模块20,还用于:
[0145]
获取所述编码参数中的量化参数序列的量化参数值,并建立预编码模型,其中,所述量化参数序列包括多个量化参数值;
[0146]
根据建立的预编码模型,利用所述量化参数序列中的多个量化参数值分别对所述二维视频序列进行编码处理,以确定所述量化参数值对应的比特值;
[0147]
根据所述比特值确定编码参数集合。
[0148]
可选地,比特分配模块30,还用于:
[0149]
根据所述目标比特值对所述二维视频序列进行序列间比特分配,以确定所述二维视频序列中的视频子序列对应的第一码率;
[0150]
根据所述第一码率对所述视频子序列进行组间比特分配,以确定所述视频子序列中的视频图像组对应的第二码率,其中,所述视频子序列中包括多个视频图像组;
[0151]
将所述目标码率中的第二码率映射到所述编码参数集合中,以确定在所述编码参数集合中与所述第二码率对应的目标量化参数值;
[0152]
根据所述目标量化参数值对所述视频图像组进行组内比特分配,以确定所述视频图像组中的视频图像帧对应的第三码率,其中,所述视频图像组中包括多个视频图像帧。
[0153]
可选地,所述比特分配模块30,还用于:
[0154]
建立所述视频子序列的质量依赖模型,以获取所述视频子序列的质量依赖因子;
[0155]
建立所述视频子序列对应的最小失真模型,并根据所述质量依赖因子和建立的最小失真模型,确定所述视频子序列对应的最优分配参数;
[0156]
根据所述最优分配参数,将所述目标比特值在所述二维视频序列中的视频子序列间进行比特分配计算,得到所述二维视频序列中的视频子序列对应的第一码率。
[0157]
可选地,所述比特分配模块30,还用于:
[0158]
获取所述质量依赖模型的初始样本数据,并对所述初始样本数据进行采样处理,得到目标样本数据;
[0159]
对所述目标样本数据进行拟合,并根据拟合结果确定所述视频子序列的质量依赖模型;
[0160]
对所述质量依赖模型进行变换,得到所述视频子序列的质量依赖因子。
[0161]
可选地,所述比特分配模块30,还用于:
[0162]
对所述质量依赖因子和所述最小失真模型进行计算,得到所述最小失真模型对应的最小失真表达式;
[0163]
获取预设的迭代参数,根据获取的迭代参数对所述最小失真表达式进行迭代计算,得到所述视频子序列对应的最优分配参数。
[0164]
可选地,所述码率控制装置还包括比特检测模块,用于:
[0165]
对所述目标比特值进行检测;
[0166]
当检测到所述目标比特值发生变化时,返回并执行所述获取当前的目标比特值,并根据所述目标比特值对所述二维视频序列进行比特分配的步骤。
[0167]
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有码率控制程序,所述码率控制程序被处理器执行时实现上述实施例提供的码率控制方法中的操作。
[0168]
此外,本发明实施例还提出一种计算机程序产品,包括计算机程序,所述计算机被处理器执行时实现上述实施例提供的码率控制方法中的操作。
[0169]
本发明设备、计算机程序产品和计算机可读存储介质各实施例,均可参照本发明码率控制方法各个实施例,此处不再赘述。
[0170]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实
体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
[0171]
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0172]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0173]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的码率控制方法。
[0174]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1