本技术涉及图像处理,尤其涉及一种视频编解码方法及装置。
背景技术:
1、在计算机视觉领域中,为了有效存储和传输视频,通常需要通过视频编码来进行图像压缩,主要包括有损压缩和无损压缩。其中,无损压缩是利用图像数据的统计冗余进行图像压缩,可完全恢复原始图像数据而不引起任何失真;另外,如果重建图像和原始图像存在误差,而误差被限制在一定的范围内就称作近无损压缩。近无损压缩虽然存在一定失真,但对于视觉影像来说可以忽略不计,因此近无损压缩也可以认为是无损压缩。
2、目前的无损压缩(包括近无损压缩)的编解码方案中,例如,基于上下文的自适应二进制算数编码(context-based adaptive binary arithmetic coding,cabac)压缩技术涉及到诸多的概率模型以及上下文建模、二进制算术编码等算法,处理过程较为复杂。另外,基于哥伦布编码的golomb-rice编码,其编码过程中存在冗余计算,编解码性能不高。因此,亟需提出一种编解码效率较高,且算法复杂度较低的视频编解码方法。
技术实现思路
1、本技术提供一种视频编解码方法及装置,解决了现有技术中视频编解码性能较低,或编解码算法复杂度较高的问题。
2、为达到上述目的,本技术采用如下技术方案:
3、第一方面,提供一种视频编解码方法,该方法包括:解码端获取待解码单元的码流;确定所述待解码单元的扫描方式、分组方式以及每个组对应的编码方式;根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块;根据所述待解码单元的所述扫描方式,逐个将每个组所述系数块内系数进行恢复得到所述待解码单元对应的重建数据块。
4、在一种实施方式中,分组方式包括:固定长度的分组方式,或者,基于系数值大小进行分组划分的半定长分组,或者,基于系数排列位置进行分组划分中的至少一种。
5、在一种实施方式中,编码方式:一元码、截断一元码、截断二元码、定长编码、半定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码、哥伦布-莱斯编码中的至少一种。
6、在一种实施方式中,扫描方式包括:光栅扫描、块扫描、水平扫描、垂直扫描、往返扫描、对角扫描、逆水平扫描、逆垂直扫描或者希尔伯特扫描中的至少一种。
7、在一种实施方式中,重建数据块为待解码图像的原始像素值、对所述原始像素值进行预测得到的残差值、对所述残差值经量化后的系数,或者,对所述残差值经变换后得到的变换系数中的一种组成的数据块。
8、在一种实施方式中,确定所述待解码单元的扫描方式、分组方式以及每个组对应的编码方式,具体包括:根据编码端以及解码端的预先约定或者上下文信息,确定所述待解码单元的扫描方式、分组方式以及每一组对应的编码方式中的至少一个;或者,根据所述码流解析得到所述待解码单元的扫描方式、分组方式以及每个组对应的编码方式中的至少一个;或者,根据所述待解码单元的预测方式、量化方式和/或变换方式得到所述分组方式。
9、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据编码算法解码得到每个组的组参数;根据每个组的所述组参数,根据所述半定长编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
10、在一种实施方式中,根据编码算法解码得到每个组的组参数,具体包括:根据以下至少一种编码方式对应的解码方式进行解码得到每个组的组参数:一元码、截断一元码、截断二元码、定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码或哥伦布-莱斯编码。
11、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据定长编码算法解码得到每个组的组莱斯参数,或者,根据上下文模型得到每个组的组莱斯参数;根据每个组的所述组莱斯参数,根据哥伦布-莱斯编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
12、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据上下文模型得到每个组的组莱斯参数;根据定长编码算法或者截断一元码解码得到每个组的组参数偏差;根据每个组的所述组莱斯参数和所述组参数偏差得到每个组的组参数;根据每个组的所述组参数,根据哥伦布-莱斯编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
13、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据定长编码算法解码得到每个组的阶数k,或者,根据上下文模型得到每个组的阶数k;根据每个组的所述阶数k,根据k阶指数哥伦布编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
14、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据上下文模型得到每个组的阶数k;根据定长编码算法或者截断一元码解码得到每个组的组参数偏差;根据所述组参数偏差更新每个组的阶数k;根据每个组更新后的所述阶数k,根据k阶指数哥伦布编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
15、在一种实施方式中,根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块,具体包括:根据已经解码得到的一个或多个组的系数、预测方式、量化方式或者变换方式中的至少一个,确定当前组的编码方式;根据所述当前组的编码方式对应的解码方式进行解码得到所述当前组的系数,其中,所述当前组的编码方式是哥伦布-莱斯编码、k阶指数哥伦布编码或者半定长编码方式中的几种编码方式的组合。
16、在一种实施方式中,编码单元的多个分组中,至少两个分组的编码方式不同。
17、在一种实施方式中,若所述待解码单元的解码方式为哥伦布-莱斯编码或者k阶指数哥伦布编码中的任一项,则所述确定所述待解码单元的分组方式,具体包括:根据所述待解码单元的预测方式、量化方式和/或变换方式得到所述待解码单元的分组方式。
18、通过本技术的上述实施方式,解码端可以根据不同的预测方式,导出不同的扫描方式,同时导出系数分组方式,这样的系数分组结合了预测的信息,使得分组后的系数更加统一,编码端对于变化很小的系数,可以分配较小的码字进行编码,从而编码方式较灵活,提高编码性能。此外,通过设计多种固定分组模式可以更好的适应于半定长编码方式,可以灵活地为每个编码块选择更好的二值化方法,编码算法复杂度较低。
19、第二方面,提供一种视频编解码方法,该方法包括:编码端将原始图像中的待编码数据块根据第一扫描方式进行扫描得到系数序列;将所述系数序列按照第一分组方式进行分组,得到多组待编码子序列;确定每组待编码子序列对应的系数编码方式,并逐个进行编码得到已编码码流。
20、在一种实施方式中,分组方式包括:固定长度的分组方式,或者,基于系数值大小进行分组划分的半定长分组,或者,基于系数排列位置进行分组划分中的至少一种。
21、在一种实施方式中,编码方式:一元码、截断一元码、截断二元码、定长编码、半定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码、哥伦布-莱斯编码中的至少一种。
22、在一种实施方式中,扫描方式包括:光栅扫描、块扫描、水平扫描、垂直扫描、往返扫描、对角扫描、逆水平扫描、逆垂直扫描或者希尔伯特扫描中的至少一种。
23、在一种实施方式中,待编码数据块为待编码图像的原始像素值、对所述原始像素值进行预测得到的残差值、对所述残差值经量化后的系数,或者,对所述残差值经变换后得到的变换系数中的一种组成的数据块。
24、第三方面,提供一种视频解码装置,该装置包括收发模块和处理模块,收发模块用于获取待解码单元的码流;处理模块用于确定所述待解码单元的扫描方式、分组方式以及每个组对应的编码方式;根据每个组的编码方式进行解码,得到所述待解码单元对应的系数块;根据所述待解码单元的所述扫描方式,逐个将每个组所述系数块内系数进行恢复得到所述待解码单元对应的重建数据块。
25、在一种实施方式中,分组方式包括:固定长度的分组方式,或者,基于系数值大小进行分组划分的半定长分组,或者,基于系数排列位置进行分组划分中的至少一种。
26、在一种实施方式中,编码方式:一元码、截断一元码、截断二元码、定长编码、半定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码、哥伦布-莱斯编码中的至少一种。
27、在一种实施方式中,扫描方式包括:光栅扫描、块扫描、水平扫描、垂直扫描、往返扫描、对角扫描、逆水平扫描、逆垂直扫描或者希尔伯特扫描中的至少一种。
28、在一种实施方式中,重建数据块为待解码图像的原始像素值、对所述原始像素值进行预测得到的残差值、对所述残差值经量化后的系数,或者,对所述残差值经变换后得到的变换系数中的一种组成的数据块。
29、在一种实施方式中,处理模块具体用于:根据编码端以及解码端的预先约定或者上下文信息,确定所述待解码单元的扫描方式、分组方式以及每一组对应的编码方式中的至少一个;或者,根据所述码流解析得到所述待解码单元的扫描方式、分组方式以及每个组对应的编码方式中的至少一个;或者,根据所述待解码单元的预测方式、量化方式和/或变换方式得到所述分组方式。
30、在一种实施方式中,处理模块具体用于:根据编码算法解码得到每个组的组参数;根据每个组的所述组参数,根据所述半定长编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
31、在一种实施方式中,处理模块具体用于:根据以下至少一种编码方式对应的解码方式进行解码得到每个组的组参数:一元码、截断一元码、截断二元码、定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码或哥伦布-莱斯编码。
32、在一种实施方式中,处理模块具体用于:根据定长编码算法解码得到每个组的组莱斯参数,或者,根据上下文模型得到每个组的组莱斯参数;根据每个组的所述组莱斯参数,根据哥伦布-莱斯编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
33、在一种实施方式中,处理模块具体用于:根据上下文模型得到每个组的组莱斯参数;根据定长编码算法或者截断一元码解码得到每个组的组参数偏差;根据每个组的所述组莱斯参数和所述组参数偏差得到每个组的组参数;根据每个组的所述组参数,根据哥伦布-莱斯编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
34、在一种实施方式中,处理模块具体用于:根据定长编码算法解码得到每个组的阶数k,或者,根据上下文模型得到每个组的阶数k;根据每个组的所述阶数k,根据k阶指数哥伦布编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
35、在一种实施方式中,处理模块具体用于:根据上下文模型得到每个组的阶数k;根据定长编码算法或者截断一元码解码得到每个组的组参数偏差;根据所述组参数偏差更新每个组的阶数k;根据每个组更新后的所述阶数k,根据k阶指数哥伦布编码算法解码得到每个组中的多个系数值,所述待解码单元对应的系数块包括所述每个组中的多个系数值。
36、在一种实施方式中,处理模块具体用于:根据已经解码得到的一个或多个组的系数、预测方式、量化方式或者变换方式中的至少一个,确定当前组的编码方式;根据所述当前组的编码方式对应的解码方式进行解码得到所述当前组的系数,其中,所述当前组的编码方式是哥伦布-莱斯编码、k阶指数哥伦布编码或者半定长编码方式中的几种编码方式的组合。
37、在一种实施方式中,编码单元的多个分组中,至少两个分组的编码方式不同。
38、在一种实施方式中,若所述待解码单元的解码方式为哥伦布-莱斯编码或者k阶指数哥伦布编码中的任一项,则处理模块具体用于:根据所述待解码单元的预测方式、量化方式和/或变换方式得到所述待解码单元的分组方式。
39、第四方面,提供一种视频编码装置,该装置包括收发模块和处理模块,处理模块用于将原始图像中的待编码数据块根据第一扫描方式进行扫描得到系数序列;将所述系数序列按照第一分组方式进行分组,得到多组待编码子序列;确定每组待编码子序列对应的系数编码方式,并逐个进行编码得到已编码码流。收发模块用于将已编码码流发送至解码端。
40、在一种实施方式中,分组方式包括:固定长度的分组方式,或者,基于系数值大小进行分组划分的半定长分组,或者,基于系数排列位置进行分组划分中的至少一种。
41、在一种实施方式中,编码方式:一元码、截断一元码、截断二元码、定长编码、半定长编码、k阶指数哥伦布编码、截断莱斯编码、霍夫曼编码、哥伦布-莱斯编码中的至少一种。
42、在一种实施方式中,扫描方式包括:光栅扫描、块扫描、水平扫描、垂直扫描、往返扫描、对角扫描、逆水平扫描、逆垂直扫描或者希尔伯特扫描中的至少一种。
43、在一种实施方式中,待编码数据块为待编码图像的原始像素值、对所述原始像素值进行预测得到的残差值、对所述残差值经量化后的系数,或者,对所述残差值经变换后得到的变换系数中的一种组成的数据块。
44、第五方面,提供一种编解码系统,该编解码系统包括如第三方面任一项所述的装置和如第四方面中任一项所述的装置。
45、第六方面,提供一种视频编解码装置,所述装置包括处理器,所述处理器与存储器耦合;存储器,用于存储计算机程序或指令;处理器,用于执行所述存储器中存储的计算机程序或指令,以使得所述装置执行如第一方面中任一项所述的方法。
46、第七方面,提供一种视频编解码装置,所述装置包括处理器,所述处理器与存储器耦合;存储器,用于存储计算机程序或指令;处理器,用于执行所述存储器中存储的计算机程序或指令,以使得所述装置执行如第二方面中任一项所述的方法。
47、第八方面,提供一种电子设备,所述电子设备用于执行如第一方面中任一项所述的方法。
48、第九方面,提供一种电子设备,所述电子设备用于执行如第二方面中任一项所述的方法。
49、第十方面,提供一种可读存储介质,包括程序或指令,当所述程序或指令被处理器运行时,如第一方面中任意一项所述的方法被执行。
50、第十一方面,提供一种可读存储介质,包括程序或指令,当所述程序或指令被处理器运行时,如第二方面中任意一项所述的方法被执行。
51、第十二方面,提供一种芯片或电路,用于执行第一方面中任一项所述方法。
52、第十三方面,提供一种芯片或电路,用于执行第二方面中任一项所述方法。
53、第十四方面,提供一种计算机应用程序,当所述计算机应用程序在计算机或处理器上运行时,使得所述计算机或所述处理器执行如第一方面中任一项所述方法。
54、第十五方面,提供一种计算机应用程序,当所述计算机应用程序在计算机或处理器上运行时,使得所述计算机或所述处理器执行如第二方面中任一项所述方法。
55、可以理解地,上述提供的任一种视频编解码的装置、视频编解码系统、芯片、计算机可读存储介质或计算机程序产品,均可以由上文所提供的对应的方法来实现,因此,其所能达到的有益效果可参考上文所提供的对应的方法中有益效果,此处不再赘述。