本技术涉及视频编解码,尤其涉及一种视频图像的编码方法、解码方法及相关设备。
背景技术:
1、目前支持标准视频编码格式(比如:h.264/h.265/av1等)的部分软件编码器和多数硬件编码器,不支持直接输入yuv444格式视频进行编码压缩,或者即使支持yuv444格式编码,但视频压缩率较低。从视频存储和传输成本出发,现有做法通常是将yuv444格式视频转换为yuv420格式,但编码侧将yuv444格式视频降采样到yuv420格式,播放侧再进行yuv420格式转yuv444格式会带来一定图像损失,导致编码后视频质量降低。
技术实现思路
1、本技术实施例提供了一种视频图像的编码方法、解码方法及相关设备,能够保证yuv444格式的视频图像压缩编码后的质量,减少压缩编码后的视频码流的大小。
2、本技术实施例第一方面提供了一种视频图像的编码方法,该方法包括:
3、获取yuv444格式的视频图像帧;
4、将视频图像帧拆分为多个yuv420格式的子数据块和多个uv420格式的补充数据块,多个uv420格式的补充数据块与多个yuv420格式的子数据块一一对应;
5、按照视频压缩编码标准对多个yuv420格式的子数据块进行编码,得到第一路视频码流;以及,
6、按照视频压缩编码标准或私有协议的编码方式对多个uv420格式的补充数据块进行编码,得到第二路视频码流。
7、结合第一方面,在一种可能的实现方式中,将视频图像帧拆分为多个yuv420格式的子数据块和多个uv420格式的补充数据块,包括:
8、以2×2像素块为单位,针对视频图像帧中的每个2×2像素块,根据4个y分量、1个u分量和1个v分量组合成一个yuv420格式的子数据块,得到多个yuv420格式的子数据块;
9、针对每个2×2像素块,根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块,得到多个uv420格式的补充数据块。
10、结合第一方面,在一种可能的实现方式中,根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块,包括:
11、根据3个u分量的像素值和目标u分量的像素值,分别得到3个u分量补充像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
12、根据3个v分量的像素值和目标v分量的像素值,分别得到3个v分量补充像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
13、将3个u分量补充像素值和3个v分量补充像素值组合成一个uv420格式的补充数据块。
14、结合第一方面,在一种可能的实现方式中,根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块,包括:
15、根据3个u分量的像素值、目标u分量的像素值和调节系数,分别得到3个u分量补充像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
16、根据3个v分量的像素值、目标v分量的像素值和调节系数,分别得到3个v分量补充像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
17、将3个u分量补充像素值和3个v分量补充像素值组合成一个uv420格式的补充数据块。
18、本技术实施例第二方面提供了一种视频图像的解码方法,该方法包括:
19、对yuv444格式的视频图像帧的第一路视频码流和第二路视频码流进行解码,分别得到多个yuv420格式的子数据块和多个uv420格式的补充数据块,多个uv420格式的补充数据块与多个yuv420格式的子数据块一一对应;
20、根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块;
21、将多个yuv420格式的子数据块中的yuv分量与对应的原始数据块中的uv分量进行组合,得到视频图像帧。
22、结合第二方面,在一种可能的实现方式中,子数据块和对应的补充数据块通过对视频图像帧中的2×2像素块进行拆分得到,子数据块根据2×2像素块中的4个y分量、1个u分量和1个v分量组合得到,子数据块对应的补充数据块根据2×2像素块中剩余的3个u分量和3个v分量组合得到;
23、根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块,包括:
24、针对每个补充数据块,根据每个补充数据块中的3个u分量补充像素值和目标u分量的像素值,分别得到3个u分量的原始像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
25、根据每个补充数据块中的3个v分量补充像素值和目标v分量的像素值,分别得到3个v分量的原始像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
26、根据3个u分量的原始像素值和3个v分量的原始像素值,得到对应的原始数据块。
27、结合第一方面,在一种可能的实现方式中,子数据块和对应的补充数据块通过对视频图像帧中的2×2像素块进行拆分得到,子数据块根据2×2像素块中的4个y分量、1个u分量和1个v分量组合得到,子数据块对应的补充数据块根据2×2像素块中剩余的3个u分量和3个v分量组合得到;
28、根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块,包括:
29、针对每个补充数据块,根据每个补充数据块中的3个u分量补充像素值、目标u分量的像素值和调节系数,分别得到3个u分量的原始像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
30、根据每个补充数据块中的3个v分量补充像素值、目标v分量的像素值和调节系数,分别得到3个v分量的原始像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
31、根据3个u分量的原始像素值和3个v分量的原始像素值,得到对应的原始数据块。
32、本技术实施例第三方面提供了一种视频图像的编码装置,该装置包括第一处理单元,第一处理单元用于:
33、获取yuv444格式的视频图像帧;
34、将所述视频图像帧拆分为多个yuv420格式的子数据块和多个uv420格式的补充数据块,所述多个uv420格式的补充数据块与所述多个yuv420格式的子数据块一一对应;
35、按照视频压缩编码标准对所述多个yuv420格式的子数据块进行编码,得到第一路视频码流;以及,
36、按照视频压缩编码标准或私有协议的编码方式对所述多个uv420格式的补充数据块进行编码,得到第二路视频码流。
37、结合第三方面,在一种可能的实现方式中,在将视频图像帧拆分为多个yuv420格式的子数据块和多个uv420格式的补充数据块方面,第一处理单元具体用于:
38、以2×2像素块为单位,针对视频图像帧中的每个2×2像素块,根据4个y分量、1个u分量和1个v分量组合成一个yuv420格式的子数据块,得到多个yuv420格式的子数据块;
39、针对每个2×2像素块,根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块,得到多个uv420格式的补充数据块。
40、结合第三方面,在一种可能的实现方式中,在根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块方面,第一处理单元具体用于:
41、根据3个u分量的像素值和目标u分量的像素值,分别得到3个u分量补充像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
42、根据3个v分量的像素值和目标v分量的像素值,分别得到3个v分量补充像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
43、将3个u分量补充像素值和3个v分量补充像素值组合成一个uv420格式的补充数据块。
44、结合第三方面,在一种可能的实现方式中,在根据剩余的3个u分量和3个v分量组合成一个uv420格式的补充数据块方面,第一处理单元具体用于:
45、根据3个u分量的像素值、目标u分量的像素值和调节系数,分别得到3个u分量补充像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
46、根据3个v分量的像素值、目标v分量的像素值和调节系数,分别得到3个v分量补充像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
47、将3个u分量补充像素值和3个v分量补充像素值组合成一个uv420格式的补充数据块。
48、本技术实施例第四方面提供了一种视频图像的解码装置,该装置包括第二处理单元,第二处理单元用于:
49、对yuv444格式的视频图像帧的第一路视频码流和第二路视频码流进行解码,分别得到多个yuv420格式的子数据块和多个uv420格式的补充数据块,多个uv420格式的补充数据块与多个yuv420格式的子数据块一一对应;
50、根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块;
51、将多个yuv420格式的子数据块中的yuv分量与对应的原始数据块中的uv分量进行组合,得到视频图像帧。
52、结合第四方面,在一种可能的实现方式中,子数据块和对应的补充数据块通过对视频图像帧中的2×2像素块进行拆分得到,子数据块根据2×2像素块中的4个y分量、1个u分量和1个v分量组合得到,子数据块对应的补充数据块根据2×2像素块中剩余的3个u分量和3个v分量组合得到;
53、在根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块方面,第二处理单元具体用于:
54、针对每个补充数据块,根据每个补充数据块中的3个u分量补充像素值和目标u分量的像素值,分别得到3个u分量的原始像素值;目标u分量为对应的yuv420格式的子数据块中的u分量;
55、根据每个补充数据块中的3个v分量补充像素值和目标v分量的像素值,分别得到3个v分量的原始像素值;目标v分量为对应的yuv420格式的子数据块中的v分量;
56、根据3个u分量的原始像素值和3个v分量的原始像素值,得到对应的原始数据块。
57、结合第四方面,在一种可能的实现方式中,子数据块和对应的补充数据块通过对视频图像帧中的2×2像素块进行拆分得到,子数据块根据2×2像素块中的4个y分量、1个u分量和1个v分量组合得到,子数据块对应的补充数据块根据2×2像素块中剩余的3个u分量和3个v分量组合得到;
58、在根据多个yuv420格式的子数据块和多个yuv420格式的子数据块分别对应的补充数据块,得到多个uv420格式的补充数据块对应的原始数据块方面,第二处理单元具体用于:
59、针对每个补充数据块,根据所述每个补充数据块中的3个u分量补充像素值、目标u分量的像素值和调节系数,分别得到所述3个u分量的原始像素值;所述目标u分量为对应的yuv420格式的子数据块中的u分量;
60、根据所述每个补充数据块中的3个v分量补充像素值、目标v分量的像素值和所述调节系数,分别得到所述3个v分量的原始像素值;所述目标v分量为对应的yuv420格式的子数据块中的v分量;
61、根据所述3个u分量的原始像素值和所述3个v分量的原始像素值,得到对应的原始数据块。
62、可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本技术实施例第一方面的内容应同步适配于本技术实施例第三方面,本技术实施例第二方面的内容应同步适配于本技术实施例第四方面,且能达到相同或相似的有益效果,此处不再赘述。
63、本技术实施例第五方面提供了一种编码设备,该编码设备包括第一处理器、第一存储器、第一通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述第一存储器中,并且被配置由所述第一处理器执行,所述程序包括用于执行如第一方面所述的方法的指令。
64、本技术实施例第六方面提供了一种解码设备,该解码设备包括第二处理器、第二存储器、第二通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述第二存储器中,并且被配置由所述第二处理器执行,所述程序包括用于执行如第二方面所述的方法的指令。
65、本技术实施例第七方面提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如第一方面或第二方面所述方法中的步骤。
66、本技术实施例第八方面提供了一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使设备执行如第一方面或第二方面所述的方法。
67、本技术实施例能带来以下有益效果:
68、可以看出,本技术实施例中,通过将yuv444格式的视频图像拆分为yuv420格式的视频数据和uv420补充数据,相比较直接对yuv444格式的视频图像进行编码压缩,降低了视频码率,能够减小视频码流的大小,并且uv420补充数据编码压缩后也相对较小,整体码流的大小低于直接对yuv444格式的视频图像进行编码压缩,有利于控制存储和传输成本。另外,uv420补充数据对转为yuv420格式带来的图像损失进行了很好地补充,有利于保证解码侧显示的视频图像的质量,实现了视频码流大小与视频图像质量间的平衡。