视频解码方法、装置、电子设备及计算机存储介质与流程

文档序号:25803690发布日期:2021-07-09 12:45阅读:126来源:国知局
视频解码方法、装置、电子设备及计算机存储介质与流程

1.本发明涉及视频编解码技术领域,尤指一种视频解码方法、装置、电子设备及计算机存储介质。


背景技术:

2.本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在图像编解码技术领域中,阿尔法通道(alpha channel)是用于影响图像透明和半透明度的参数。对于png和webp等格式的图像,通过在图像中的每个像素rgb值后附有阿尔法(alpha)值可以确定出此像素的透明和半透明度。在显示时,通过alpha值来确定显示图像像素颜色rgb值与背景图像像素颜色rgb值的混合比例,从而实现显示图像半透明覆盖于背景图像上。
4.在视频编解码技术领域,将alpha通道应用于视频的每一图像帧,就可以得到具有半透明特性的视频。支持alpha通道的hevc视频格式扩展标准hevc video with alpha,将alpha通道值存储于独立于颜色层的附加层(即alpha层)中,显示时获取alpha层的像素值作为对应alpha值进行显示混合。
5.相关的解码技术方案大多支持颜色层的解码,如何在现有解码架构的基础上,实现通用的适于hevc video with alpha格式的视频解码,需要提供一种相应的解决方案。


技术实现要素:

6.针对上述技术问题,目前需要一种改进的方法,能够在现有解码架构的基础上,实现通用的适于hevc video with alpha格式的视频解码。
7.第一方面,本申请一实施例提供了一种视频解码方法,包括:
8.接收待解码的视频流,确定所述视频流同时包括颜色层编码流和阿尔法alpha层编码流时,分别调用颜色层解码器和alpha层解码器;
9.获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;
10.获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;
11.根据所述颜色值和所述alpha值得到显示图像。
12.这样,本申请通过在现有的颜色层解码器的基础上增加了一个alpha层解码器,从而实现了解码hevc video with alpha格式的视频能够支持半透明特性。若所述颜色层解码器和所述alpha层解码器为软件解码器,则本申请的技术方案可以应用到不同种类、不同型号、不同操作系统(例如windows、android、linux、mac os、ios等)的电子设备上运行,而不局限于特定型号、特定操作系统的电子设备。
13.可选地,确定所述视频流同时包括颜色层数据和阿尔法alpha层数据,包括:
14.从所述视频流中获取视频参数集,解析所述视频参数集中的拓展数据标识;
15.若解析到与alpha层对应的拓展数据标识时,确定所述视频流同时包括颜色层编码流和alpha层编码流。
16.这样,通过所述视频参数集中的拓展数据标识确定所述视频流中是否存在alpha层编码流。
17.可选地,所述调用颜色层解码器和alpha层解码器时,还包括:
18.创建颜色层参考帧缓冲区,所述颜色层参考帧缓冲区用于缓存对所述颜色层编码流解码过程中得到的颜色层参考帧;
19.创建alpha层参考帧缓冲区,所述alpha层参考帧缓冲区用于缓存对所述alpha层编码流解码过程中得到的alpha层参考帧。
20.这样,通过建立所述颜色层参考帧缓冲区和所述alpha层参考帧缓冲区,能够缓存当前帧对应的参考帧,从而实现解码。
21.可选地,调用颜色层解码器和alpha层解码器之后,还包括:
22.从所述视频流中获取序列参数集,根据所述序列参数集中的数据层标志参数,确定所述序列参数集为颜色层序列参数集或alpha层序列参数集;
23.从所述视频流中获取图像参数集,根据所述图像参数集中的数据层标志参数,确定所述图像参数集为颜色层图像参数集或alpha层图像参数集;
24.利用所述颜色层序列参数集和所述颜色层图像参数集对所述颜色层解码器初始化;
25.利用所述alpha层序列参数集和所述alpha层图像参数集对所述alpha层解码器初始化。
26.这样,通过颜色层和alpha层各自对应的参数集对颜色层解码器和alpha层解码器初始化,便于后续对颜色层帧数据和alpha层帧数据根据参数集中的参数进行解码。
27.可选地,获取所述视频流中颜色层编码流及alpha层编码流,包括:
28.获取所述视频流中的帧数据,根据所述帧数据的数据层标志参数,确定所述帧数据为颜色层帧数据或alpha层帧数据;
29.将所述颜色层帧数据发送到所述颜色层解码器;
30.将所述alpha层帧数据发送到所述alpha层解码器。
31.这样,通过数据层标志参数nuh_layer_id可以将颜色层帧数据与alpha层帧数据区分开,便于使用对应的解码器进行解码。
32.可选地,所述视频解码方法还包括:
33.解析到所述数据层标志参数为空或为非法值时,获取所述帧数据待解码帧的帧序号;
34.若所述帧序号为新的帧序号,确定待解码帧为颜色层帧数据;
35.若所述帧序号为重复的帧序号,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或alpha层帧数据。
36.可选地,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或alpha层帧数据,包括:
37.根据所述帧标记参数确定所述待解码帧为起始数据包时,确定所述待解码帧为所
述alpha层帧数据;
38.根据所述帧标记参数确定所述待解码帧不为起始数据包时,确定所述待解码帧为所述颜色层帧数据。
39.这样,通过所述帧序号和所述帧标记参数区分颜色层帧数据和alpha层帧数据,可以避免由于所述数据层标志参数错误而导致解码失败。
40.可选地,所述alpha层帧数据为yuv色彩模型格式;
41.所述alpha层解码器对所述alpha层编码流进行解码得到alpha值,包括:
42.所述alpha层解码器从所述alpha层帧数据中获取y颜色方向数据,并对所述y颜色方向数据进行解码,得到所述alpha值。
43.这样,通过舍弃所述alpha层帧数据中的u颜色方向和v颜色方向的数据,能够加快所述alpha层解码器的解码速度。
44.可选地,所述根据所述颜色值和所述alpha值得到显示图像,包括:
45.将所述颜色值和所述alpha值输出至图形处理器;
46.由所述图形处理器根据每个像素的颜色值和alpha值,确定所述颜色值与alpha值的混合方式,并按照像素的位置将所述颜色值和所述alpha值混合。
47.这样,通过图形处理器对颜色值和alpha值进行混合,实现了视频的半透明特性。
48.可选地,将所述颜色值和所述alpha值输出至图形处理器之前,还包括:
49.由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值之后,生成与颜色层对应的解码通道标志参数;
50.和/或,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值之后,生成与alpha层对应的解码通道标志参数;
51.其中,所述图形处理器根据所述解码通道标志参数确定每个像素的颜色值和alpha值。
52.这样,便于后续所述图形处理器区分所述颜色值和所述alpha值。
53.可选地,所述视频解码方法还包括:
54.确定所述视频流不包括alpha层编码流时,调用颜色层解码器;
55.获取所述视频流中的颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;
56.根据所述颜色值得到显示图像。
57.这样,通过对不包括alpha层编码流的视频文件使用颜色层解码器进行解码,实现了对不含alpha层的视频文件的解码兼容性。
58.第二方面,本申请一实施例提供了一种视频解码装置,包括:
59.初始化单元,用于接收待解码的视频流,确定所述视频流同时包括颜色层编码流和阿尔法alpha层编码流时,分别调用颜色层解码器和alpha层解码器;
60.颜色层解码单元,用于获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;
61.alpha层解码单元,用于获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;
62.显示单元,用于根据所述颜色值和所述alpha值得到显示图像。
63.可选地,确定所述视频流同时包括颜色层数据和阿尔法alpha层数据,包括:
64.从所述视频流中获取视频参数集,解析所述视频参数集中的拓展数据标识;
65.若解析到与alpha层对应的拓展数据标识时,确定所述视频流同时包括颜色层编码流和alpha层编码流。
66.可选地,所述调用颜色层解码器和alpha层解码器时,还包括:
67.创建颜色层参考帧缓冲区,所述颜色层参考帧缓冲区用于缓存对所述颜色层编码流解码过程中得到的颜色层参考帧;
68.创建alpha层参考帧缓冲区,所述alpha层参考帧缓冲区用于缓存对所述alpha层编码流解码过程中得到的alpha层参考帧。
69.可选地,调用颜色层解码器和alpha层解码器之后,还包括:
70.从所述视频流中获取序列参数集,根据所述序列参数集中的数据层标志参数,确定所述序列参数集为颜色层序列参数集或alpha层序列参数集;
71.从所述视频流中获取图像参数集,根据所述图像参数集中的数据层标志参数,确定所述图像参数集为颜色层图像参数集或alpha层图像参数集;
72.利用所述颜色层序列参数集和所述颜色层图像参数集对所述颜色层解码器初始化;
73.利用所述alpha层序列参数集和所述alpha层图像参数集对所述alpha层解码器初始化。
74.可选地,获取所述视频流中颜色层编码流及alpha层编码流,包括:
75.获取所述视频流中的帧数据,根据所述帧数据的数据层标志参数,确定所述帧数据为颜色层帧数据或alpha层帧数据;
76.将所述颜色层帧数据发送到所述颜色层解码器;
77.将所述alpha层帧数据发送到所述alpha层解码器。
78.可选地,所述视频解码装置还包括:
79.数据判断单元,用于解析到所述数据层标志参数为空或为非法值时,获取所述帧数据待解码帧的帧序号;
80.若所述帧序号为新的帧序号,确定待解码帧为颜色层帧数据;
81.若所述帧序号为重复的帧序号,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或alpha层帧数据。
82.可选地,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或alpha层帧数据,包括:
83.根据所述帧标记参数确定所述待解码帧为起始数据包时,确定所述待解码帧为所述alpha层帧数据;
84.根据所述帧标记参数确定所述待解码帧不为起始数据包时,确定所述待解码帧为所述颜色层帧数据。
85.可选地,所述alpha层帧数据为yuv色彩模型格式;
86.所述alpha层解码器对所述alpha层编码流进行解码得到alpha值,包括:
87.所述alpha层解码器从所述alpha层帧数据中获取y颜色方向数据,并对所述y颜色方向数据进行解码,得到所述alpha值。
88.可选地,所述根据所述颜色值和所述alpha值得到显示图像,包括:
89.将所述颜色值和所述alpha值输出至图形处理器;
90.由所述图形处理器根据每个像素的颜色值和alpha值,确定所述颜色值与alpha值的混合方式,并按照像素的位置将所述颜色值和所述alpha值混合。
91.可选地,将所述颜色值和所述alpha值输出至图形处理器之前,还包括:
92.由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值之后,生成与颜色层对应的解码通道标志参数;
93.和/或,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值之后,生成与alpha层对应的解码通道标志参数;
94.其中,所述图形处理器根据所述解码通道标志参数确定每个像素的颜色值和alpha值。
95.可选地,所述初始化单元还用于确定所述视频流不包括alpha层编码流时,调用颜色层解码器;
96.所述显示单元还用于根据所述颜色值得到显示图像;
97.其中所述颜色值为所述初始化单元确定所述视频流不包括alpha层编码流时,所述颜色层解码单元获取所述视频流中的颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值。
98.第三方面,本申请一实施例提供了一种电子设备,包括:处理器和用于存储所述处理器可执行指令的存储器;
99.其中,所述处理器被配置为执行所述指令,以实现所述的视频解码方法。
100.第四方面,本申请一实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被用于实现所述的视频解码方法。
101.本申请提供的一种视频解码方法、装置、电子设备及计算机存储介质,通过在现有的颜色层解码器架构上增加了一个alpha层解码器,能够实现对hevc video with alpha格式视频文件的alpha层帧数据进行解码,从而支持了视频的半透明特性。
附图说明
102.通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:
103.图1为本申请实施例提供的视频解码方法的应用场景示意图;
104.图2为本申请一实施例提供的视频解码方法的流程示意图;
105.图3为本申请一实施例提供的判断所述视频流是否同时包括颜色层数据和alpha层数据的流程示意图;
106.图4为本申请一实施例提供的利用参数集对解码器初始化的流程示意图;
107.图5为本申请一实施例提供的判断帧数据为颜色层帧数据或alpha层帧数据的流程示意图;
108.图6为本申请一实施例提供的对alpha层帧数据解码的流程示意图;
109.图7本申请一实施例提供的利用图形处理器显示解码视频的流程示意图;
110.图8为本申请一实施例提供的视频解码装置的结构示意图;
111.图9为本申请一实施例提供的电子设备的结构示意图;
112.图10为本申请一实施例提供的计算机程序产品的结构示意图。
具体实施方式
113.下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
114.本领域技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
115.在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
116.为了方便理解,下面对本申请实施例中涉及的名词进行解释:
117.(一)视频编解码:
118.视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的h.263、h.264、h.265,运动静止图像专家组的m

jpeg和国际标准化组织运动图像专家组的mpeg系列标准,以及google netflix等公司指定vpx和av1等。视频解码是视频编码的逆向操作。
119.(二)高效率视频编码(high efficiency video coding,hevc):
120.一种先进的视频编码格式,hevc发布于2012年,其设计目的用来代替h.264编码格式。hevc拥有比h.264更高的压缩率,更好的压缩质量,支持4k,10

12bit hdr和3d视频格式。
121.在hevc标准中,视频流中有多种不同的参数集用于设置编解码参数。其中包括有视频参数集(video parameter set,vps)、序列参数集(sequence parameter set,sps)、图像参数集(picture parameter set,pps)等。下面介绍与本申请相关的参数集:
122.(1)vps:
123.一个给定的视频序列的各个层参考相同的vps。
124.vps包含的信息主要包括:
125.①
多个层和操作点共享的语法元素;
126.②
操作点的关键信息,如档次、级别;
127.③
其他不属于sps的操作点特性信息,例如虚拟参考解码器(hypothetical reference decoder,hrd)参数。
128.(2)sps:
129.sps包含的信息主要包括:
130.①
图像格式的信息。
131.②
编码参数信息。
132.③
与参考图像相关的信息。
133.④
档次、层和级相关参数。
134.⑤
时域分级信息。
135.⑥
可视化可用性信息。
136.⑦
其他信息。包括当前sps引用的vps编号、sps标识号和sps扩展信息。
137.(3)pps:
138.pps包含的信息主要包括:
139.①
编码工具的可用性标志。
140.②
量化过程相关句法元素。
141.③
tile相关句法元素。
142.④
去方块滤波相关句法元素。
143.⑤
片头中的控制信息。
144.⑥
其他编码一幅图像时可以共用的信息。
145.(三)hevc video with alpha标准:
146.hevc video with alpha标准为支持alpha通道的hevc视频格式扩展标准。该标准将alpha通道值存储于独立于颜色层的附加层(即alpha层)中,显示时获取alpha层的像素值作为对应alpha值进行显示混合。
147.对于具有alpha层的视频文件,该标准的部分编码方式如下:
148.(1)vps部分:
149.nuh_layer_id=0。
150.vps_extension≠0,以表示视频流含有扩展的附加层。
151.(2)sps部分:
152.①
nuh_layer_id=0,表示此sps为颜色层sps。
153.②
nuh_layer_id=1,表示此sps为alpha层sps。
154.(3)pps部分:
155.①
nuh_layer_id=0,表示此pps为颜色层pps。
156.②
nuh_layer_id=1,表示此pps为alpha层pps。
157.(4)帧数据部分:
158.①
nuh_layer_id=0,表示此帧数据为颜色层帧数据。
159.颜色层帧数据与普通hevc格式视频编码方式一致。
160.②
nuh_layer_id=vps_extension,表示此帧数据为alpha层帧数据。
161.alpha层帧数据使用yuv色彩模型格式编码,其中y颜色方向数据为alpha值,u=128,v=128。
162.(四)rgb色彩模型:
163.一种颜色标准,是通过对红(red)、绿(green)、蓝(blue)三个颜色通道的叠加来得到各式各样的颜色。这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
164.(五)yuv色彩模型:
165.一种颜色标准,是通过对y、u、v三个颜色通道的叠加来得到各式各样的颜色。y表示明亮度(luminance或luma)。u和v表示色度(chrominance或chroma),用于描述影像色彩
及饱和度。
166.下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
167.发明概述
168.针对hevc video with alpha格式的视频进行解码的技术方案,相关技术方案会直接忽略alpha层数据,只对颜色层数据进行解码,从而无法实现视频的半透明特性。
169.为了解决上述问题,本申请提供了一种视频解码方法,包括:接收待解码的视频流,确定所述视频流同时包括颜色层编码流和阿尔法alpha层编码流时,分别调用颜色层解码器和alpha层解码器;获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;根据所述颜色值和所述alpha值得到显示图像。本申请的视频解码方法,通过在现有的颜色层解码器架构上增加了一个alpha层解码器,能够实现对hevc video with alpha格式视频文件的alpha层帧数据进行解码,从而支持了视频的半透明特性。
170.在介绍了本申请的基本原理之后,下面具体介绍本申请的各种非限制性实施方式。
171.应用场景总览
172.参考图1,其为本申请实施例提供的视频解码方法的应用场景示意图。在图1所示的应用场景中包括终端设备101和102。终端设备101和102包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personal digital assistant,pda)等电子设备。其中,所述终端设备101与102可以为两个不同的设备,也可以为同一个设备,此处仅为说明两者之间的编码与解码的对应关系而作区分。
173.终端设备101用于将原始的视频文件按照hevc video with alpha标准进行编码,得到具有半透明特性的视频文件,并将所述视频文件交给所述终端设备102。其中,所述终端设备101与所述终端设备102之间的数据传输方法包括但不限于通过网络连接、移动存储介质读取等方式。
174.终端设备102用于接收所述视频文件并转换为待解码的视频流,确定所述视频流同时包括颜色层编码流和阿尔法alpha层编码流时,分别调用颜色层解码器和alpha层解码器;获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;根据所述颜色值和所述alpha值得到显示图像。
175.需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
176.示例性方法
177.参考图2,本申请实施例提供了一种视频解码方法,包括:
178.s201、接收待解码的视频流;
179.s202、判断所述视频流是否同时包括颜色层编码流和alpha层编码流,若为是,执行步骤s203;
180.s203、分别调用颜色层解码器和alpha层解码器;
181.s204、获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;
182.s205、获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;
183.s206、根据所述颜色值和所述alpha值得到显示图像。
184.在具体实施过程中,所述颜色层解码器和所述alpha层解码器可以为硬件解码器,也可以为软件解码器。
185.这样,本申请通过在现有的颜色层解码器的基础上增加了一个alpha层解码器,从而实现了解码hevc video with alpha格式的视频能够支持半透明特性。若所述颜色层解码器和所述alpha层解码器为软件解码器,则本申请的技术方案可以应用到不同种类、不同型号、不同操作系统(例如windows、android、linux、mac os、ios等)的电子设备上运行,而不局限于特定型号、特定操作系统的电子设备。
186.可选地,所述视频解码方法还包括:
187.确定所述视频流不包括alpha层编码流时,执行步骤s207;
188.s207、调用颜色层解码器;
189.后续执行所述步骤s204;
190.s208、根据步骤s204得到的所述颜色值得到显示图像。
191.这样,通过对不包括alpha层编码流的视频文件使用颜色层解码器进行解码,实现了对不含alpha层的视频文件的解码兼容性。
192.可选地,如图3所示,所述步骤s202中,判断所述视频流是否同时包括颜色层数据和alpha层数据,包括:
193.s301、从所述视频流中获取vps;
194.s302、解析所述vps中的拓展数据标识vps_extension;
195.s303、若解析到与alpha层对应的拓展数据标识vps_extension时,确定所述视频流同时包括颜色层编码流和alpha层编码流。
196.s304、若未解析到与alpha层对应的拓展数据标识vps_extension时,确定所述视频流不包括alpha层编码流。
197.根据hevc video with alpha的编码标准,当vps_extension≠0时,表明所述视频流中包含有与所述颜色层独立的附加层。在本申请中,若vps_extension≠0,确定所述视频流中同时包括有所述颜色层编码流和所述alpha层编码流。而当vps_extension=0时,表明所述视频流中不包含有与所述颜色层独立的附加层。在本申请中,若vps_extension=0,确定所述视频流中不包括有所述alpha层编码流。
198.可选地,所述步骤s201中,调用颜色层解码器和alpha层解码器时,还包括:
199.创建颜色层参考帧缓冲区,所述颜色层参考帧缓冲区用于缓存对所述颜色层编码流解码过程中得到的颜色层参考帧;
200.创建alpha层参考帧缓冲区,所述alpha层参考帧缓冲区用于缓存对所述alpha层编码流解码过程中得到的alpha层参考帧。
201.在编码过程中,一般会采用帧间预测的方式进行编码,即原始视频文件中的部分
图像帧将参考其它图像帧(参考帧)的信息,将相对于所述参考帧的变化进行编码。对应地,在解码过程中,当前帧的图像信息需要根据参考帧的信息进行解码。这样,通过建立所述颜色层参考帧缓冲区和所述alpha层参考帧缓冲区,能够缓存当前帧对应的参考帧,从而实现解码。
202.若所述视频流中不包括alpha层编码流时,所述步骤s207中,在调用颜色层解码器时,创建颜色层参考帧缓冲区,所述颜色层参考帧缓冲区用于缓存对所述颜色层编码流解码过程中得到的颜色层参考帧。
203.在进行正式解码操作之前,需要使用颜色层和alpha层各自对应的参数集对解码器初始化设置解码参数。
204.可选地,如图4所示,所述步骤s203中,调用颜色层解码器和alpha层解码器之后,还包括:
205.s401、从所述视频流中获取sps;
206.s402、根据所述sps中的数据层标志参数nuh_layer_id,确定所述sps为颜色层sps或alpha层sps;
207.s403、从所述视频流中获取pps;
208.s404、根据所述pps的数据层标志参数nuh_layer_id,确定所述pps为颜色层pps或alpha层pps;
209.s405、利用所述颜色层sps和所述颜色层pps对所述颜色层解码器初始化;
210.s406、利用所述alpha层sps和所述alpha层pps对所述alpha层解码器初始化。
211.在具体实施过程中,若所述视频流中同时包括有所述颜色层编码流和所述alpha层编码流,那么所述视频流中至少包括有两组sps和两组pps。若nuh_layer_id=0,则对应的sps或pps为颜色层参数集;若nuh_layer_id=1,则对应的sps或pps为alpha层参数集。
212.这样,通过颜色层和alpha层各自对应的参数集对颜色层解码器和alpha层解码器初始化,便于后续对颜色层帧数据和alpha层帧数据根据参数集中的参数进行解码。
213.若所述视频流中不包括alpha层编码流时,在调用所述颜色层解码器之后,还包括:
214.从所述视频流中获取sps和pps,直接利用所述sps和所述pps对所述颜色层解码器初始化。
215.在获取所述颜色层的参数集和所述alpha层的参数集对解码器的参数初始化设置完成后,还需要将视频流中的帧数据区分开,以分别使用对应的解码器进行解码。
216.可选地,如图5所示,所述步骤s204中,获取所述视频流中颜色层编码流,和所述步骤s205中,获取所述视频流中alpha层编码流,包括:
217.s501、获取所述视频流中的帧数据;
218.s502、根据所述帧数据的数据层标志参数nuh_layer_id,判断所述帧数据为颜色层帧数据或alpha层帧数据;确定所述帧数据为颜色层帧数据时,执行步骤s503,确定所述帧数据为alpha层帧数据时,执行步骤s504;
219.s503、将所述颜色层帧数据发送到所述颜色层解码器;
220.s504、将所述alpha层帧数据发送到所述alpha层解码器。
221.根据hevc video with alpha的编码标准,当帧数据的nuh_layer_id=0时,表示
unit,gpu);
241.s704、由所述gpu根据每个像素的颜色值和alpha值,确定所述颜色值与alpha值的混合方式,并按照像素的位置将所述颜色值和所述alpha值混合。
242.作为一种可选的实施方式,所述步骤s703、将所述颜色值和所述alpha值输出至gpu,具体包括:
243.分别对所述颜色值和所述alpha值进行纹理采样得到两张纹理,将所述两张纹理输出至gpu。
244.作为另一种可选的实施方式,所述步骤s703、将所述颜色值和所述alpha值输出至gpu,具体包括:
245.对所述颜色值和所述alpha值进行纹理采样得到一张纹理,将所述纹理输出至gpu。
246.在具体实施过程中,若所述步骤s703中分别对所述颜色值和所述alpha值进行纹理采样后输出至gpu,那么在所述步骤s704进行混合运算时,首先要利用着色器(shader)将所述两张纹理合并为一个同时包含有所述颜色值和所述alpha值的四维矩阵,之后再进行混合。所述步骤s704中将所述颜色值和所述alpha值混合的方案较多,本申请在此不作限定。其中一种具体的混合方案如下:
[0247][0248]
其中,a表示通过本申请的视频解码方法解码得到的视频的图像帧的像素,b表示背景视频的图像帧的像素,c表示最终混合后得到的显示的图像帧的像素,r、g、b分别表示对应图像的红、绿、蓝三原色值。
[0249]
这样,通过gpu对颜色值和alpha值进行混合,实现了视频的半透明特性。
[0250]
相应地,若所述视频流中不包括alpha层编码流时,在所述步骤s208中,根据所述颜色值得到显示图像具体包括:将所述颜色值输出至gpu,由所述gpu根据每个像素的颜色值进行显示。
[0251]
可选地,将所述颜色值和所述alpha值输出至图形处理器之前,还包括:
[0252]
s701、由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值之后,生成与颜色层对应的解码通道标志参数output flag;
[0253]
和/或,s702、由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值之后,生成与alpha层对应的解码通道标志参数output flag;
[0254]
其中,在所述步骤s704中,所述gpu根据所述解码通道标志参数output flag确定每个像素的颜色值和alpha值。
[0255]
这样,便于后续所述图形处理器区分所述颜色值和所述alpha值。
[0256]
示例性设备
[0257]
在介绍了本申请示例性实施方式的方法之后,接下来对本申请示例性实施方式的视频解码装置进行介绍。
[0258]
如图8所示,为本申请实施例提供的视频解码装置800的结构示意图。在一个实施
例中,所述视频解码装置800包括:初始化单元801、颜色层解码单元802、alpha层解码单元803和显示单元804。
[0259]
初始化单元801,用于接收待解码的视频流,确定所述视频流同时包括颜色层编码流和阿尔法alpha层编码流时,分别调用颜色层解码器和alpha层解码器;
[0260]
颜色层解码单元802,用于获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;
[0261]
alpha层解码单元803,用于获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;
[0262]
显示单元804,用于根据所述颜色值和所述alpha值得到显示图像。
[0263]
可选地,确定所述视频流同时包括颜色层数据和阿尔法alpha层数据,包括:
[0264]
从所述视频流中获取视频参数集,解析所述视频参数集中的拓展数据标识;
[0265]
若解析到与alpha层对应的拓展数据标识时,确定所述视频流同时包括颜色层编码流和alpha层编码流。
[0266]
可选地,所述调用颜色层解码器和alpha层解码器时,还包括:
[0267]
创建颜色层参考帧缓冲区,所述颜色层参考帧缓冲区用于缓存对所述颜色层编码流解码过程中得到的颜色层参考帧;
[0268]
创建alpha层参考帧缓冲区,所述alpha层参考帧缓冲区用于缓存对所述alpha层编码流解码过程中得到的alpha层参考帧。
[0269]
可选地,调用颜色层解码器和alpha层解码器之后,还包括:
[0270]
从所述视频流中获取序列参数集,根据所述序列参数集中的数据层标志参数,确定所述序列参数集为颜色层序列参数集或alpha层序列参数集;
[0271]
从所述视频流中获取图像参数集,根据所述图像参数集中的数据层标志参数,确定所述图像参数集为颜色层图像参数集或alpha层图像参数集;
[0272]
利用所述颜色层序列参数集和所述颜色层图像参数集对所述颜色层解码器初始化;
[0273]
利用所述alpha层序列参数集和所述alpha层图像参数集对所述alpha层解码器初始化。
[0274]
可选地,获取所述视频流中颜色层编码流及alpha层编码流,包括:
[0275]
获取所述视频流中的帧数据,根据所述帧数据的数据层标志参数,确定所述帧数据为颜色层帧数据或alpha层帧数据;
[0276]
将所述颜色层帧数据发送到所述颜色层解码器;
[0277]
将所述alpha层帧数据发送到所述alpha层解码器。
[0278]
可选地,所述视频解码装置还包括:
[0279]
数据判断单元(图8中未示出),用于解析到所述数据层标志参数为空或为非法值时,获取所述帧数据待解码帧的帧序号;
[0280]
若所述帧序号为新的帧序号,确定待解码帧为颜色层帧数据;
[0281]
若所述帧序号为重复的帧序号,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或alpha层帧数据。
[0282]
可选地,根据所述待解码帧中的帧标记参数,确定待解码帧为颜色层帧数据或
alpha层帧数据,包括:
[0283]
根据所述帧标记参数确定所述待解码帧为起始数据包时,确定所述待解码帧为所述alpha层帧数据;
[0284]
根据所述帧标记参数确定所述待解码帧不为起始数据包时,确定所述待解码帧为所述颜色层帧数据。
[0285]
可选地,所述alpha层帧数据为yuv色彩模型格式;
[0286]
所述alpha层解码器对所述alpha层编码流进行解码得到alpha值,包括:
[0287]
所述alpha层解码器从所述alpha层帧数据中获取y颜色方向数据,并对所述y颜色方向数据进行解码,得到所述alpha值。
[0288]
可选地,所述根据所述颜色值和所述alpha值得到显示图像,包括:
[0289]
将所述颜色值和所述alpha值输出至图形处理器;
[0290]
由所述图形处理器根据每个像素的颜色值和alpha值,确定所述颜色值与alpha值的混合方式,并按照像素的位置将所述颜色值和所述alpha值混合。
[0291]
可选地,将所述颜色值和所述alpha值输出至图形处理器之前,还包括:
[0292]
由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值之后,生成与颜色层对应的解码通道标志参数;
[0293]
和/或,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值之后,生成与alpha层对应的解码通道标志参数;
[0294]
其中,所述图形处理器根据所述解码通道标志参数确定每个像素的颜色值和alpha值。
[0295]
可选地,所述初始化单元801还用于确定所述视频流不包括alpha层编码流时,调用颜色层解码器;
[0296]
所述显示单元804还用于根据所述颜色值得到显示图像;
[0297]
其中所述颜色值为所述初始化单元801确定所述视频流不包括alpha层编码流时,所述颜色层解码单元802获取所述视频流中的颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值。
[0298]
基于与上述视频解码方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体可以为桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、智能电视、车载设备、个人数字助理(personal digital assistant,pda)等电子设备。
[0299]
下面参照图9来描述所述电子设备900。图9显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0300]
如图9所示,所述电子设备900可以通用计算设备的形式表现,例如其可以为终端设备所述电子设备900的组件可以包括但不限于:上述至少一个处理单元910、上述至少一个存储单元920、连接不同系统组件(包括存储单元920和处理单元910)的总线930。
[0301]
处理单元910可以是通用处理器,例如中央处理器(central processing unit,cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以
实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0302]
总线930表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
[0303]
存储单元920可以包括易失性存储器形式的可读介质,例如随机存取存储器(random access memory,ram)921和/或高速缓存存储器922,还可以进一步包括只读存储器(read

only memory,rom)923。
[0304]
存储单元920还可以包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0305]
当程序模块924被处理单元910执行时,使得处理单元910执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的视频解码方法中的各种步骤。
[0306]
例如,处理单元910可以执行如图2中所示的视频解码方法,包括:s201、接收待解码的视频流;s202、判断确定所述视频流是否同时包括颜色层编码流和阿尔法alpha层编码流时;若为是,s203、分别调用颜色层解码器和alpha层解码器;s204、获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;s205、获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;s206、根据所述颜色值和所述alpha值得到显示图像。
[0307]
所述电子设备900也可以与一个或多个外部设备940(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与所述电子设备900交互的设备通信,和/或与使得所述电子设备900能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口950进行。并且,所述电子设备900还可以通过网络适配器960与一个或者多个网络(例如局域网(local area network,lan),广域网(wide area network,wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器960通过总线930与所述电子设备900的其它模块通信。应当明白,尽管图中未示出,可以结合所述电子设备900使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0308]
示例性程序产品
[0309]
本申请实施例提供了一种计算机可读存储介质,用于储存上述电子设备所用的计算机程序指令,其包含用于执行本申请任一示例性实施方式中的视频解码方法的程序。
[0310]
上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nand flash)、固态硬盘(ssd))等。
[0311]
在一些可能的实施方式中,如图10所示,本申请的各个方面还可以实现为一种计算机程序产品1000,其包括程序代码,当该计算机程序产品在电子设备上运行时,该计算机程序产品用于使所述电子设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的视频解码方法中的步骤,例如,所述电子设备可以执行如图2中所示
的视频解码方法,包括:s201、接收待解码的视频流;s202、判断确定所述视频流是否同时包括颜色层编码流和阿尔法alpha层编码流时;若为是,s203、分别调用建颜色层解码器和alpha层解码器;s204、获取所述视频流中颜色层编码流,由所述颜色层解码器对所述颜色层编码流进行解码得到颜色值;s205、获取所述视频流中alpha层编码流,由所述alpha层解码器对所述alpha层编码流进行解码得到alpha值;s206、根据所述颜色值和所述alpha值得到显示图像。
[0312]
所述计算机程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0313]
根据本申请的实施方式的用于视频解码的计算机程序产品,其可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在服务器设备上运行。然而,本申请的程序产品不限于此,在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0314]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0315]
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0316]
可以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0317]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0318]
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0319]
虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本
申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1