一种编解码方法及装置与流程

文档序号:37279706发布日期:2024-03-12 21:17阅读:10来源:国知局
一种编解码方法及装置与流程

本技术涉及视频编解码领域,尤其涉及一种编解码方法及装置。


背景技术:

1、视频是包括多个连续帧的图像序列,一帧对应一幅图像。由于多个连续帧之间相似性极高,为便于储存传输,会对视频进行编码压缩。通常,在视频编码的码率控制过程中,编码设备将一帧图像划分为多个编码块,并决策每个编码块的量化参数(quantizationparameter,qp)值。通常,每个编码块在编码前都需码控模块决策该编码块的qp值,码控模块的输入之一为前一编码块的编码比特数。然而,由于码控模块需等待该编码块的前一编码块的编码结束后,才能确定前一编码块的编码比特数,导致单个编码块的编码时间显著增加,编码性能受到影响。因此,如何快速获取编码块的qp值,提高编码效率成为目前亟待解决的问题。


技术实现思路

1、本技术提供了一种编解码方法及装置,解决了编解码过程中编码块的qp值的获取效率较低,编码块对应的编解码时间显著增加的问题。

2、第一方面,本技术实施例提供了一种编码方法,该编码方法应用于视频编解码系统,如该编码方法由视频编解码系统包括的编码设备执行。该编码方法包括:编码设备获取第一图像对应的多个连续的编码单元,并根据这多个连续的编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的qp值。以及,编码设备根据第i+k编码单元的qp值对第i+k编码单元进行编码。其中,i为正整数,k为大于或等于2的正整数,前述的图像内容用于指示:对第i+k编码单元进行编码后确定的预期比特数的相对大小。

3、在本实施例中,编码设备利用第i编码单元的编码比特数对第i+k编码单元的编码比特数进行预估,由于k为大于或等于2的正整数,因此,避免了第i+k编码单元仅能在前一编码单元的编码结束后才能确定qp值的问题,减少了编码过程中qp决策的等待时间,进而,降低了图像编码的处理时延,提高了图像编码的效率。而且,编码设备还将第i+k编码单元的图像内容作为qp决策的输入,有利于提高第i+k编码单元的qp值的准确性,从而避免编码出错的问题,还有利于提高图像编码的准确率,以及提升图像编码的编码质量。

4、作为一种可行的示例,以上第i+k编码单元的图像内容包括第i+k编码单元的复杂度等级。

5、例如,复杂度等级包括:亮度复杂度等级。

6、又如,复杂度等级包括:色度复杂度等级。

7、还如,复杂度等级包括:亮度复杂度等级和色度复杂度等级。

8、在本实施例中,编码单元的图像内容由编码单元的复杂度等级来表示,使得每个编码单元的qp决策过程都参照了复杂度等级,从而避免了由于编码设备不考虑编码单元中包含的内容进行qp决策所导致的准确性降低的问题,有利于提高图像编码的准确率和图像编码的编码质量。

9、在一种可选的实现方式中,第i+k编码单元的复杂度等级通过以下方式获取:编码设备将第i+k编码单元划分为多个子块,并获取多个子块中每个子块的纹理复杂度等级。该纹理复杂度等级为设定的多个复杂度等级中的一个。以及,编码设备根据多个子块的多个纹理复杂度等级,获取第i+k编码单元的纹理复杂度等级,并基于第i+k编码单元的纹理复杂度等级确定第i+k编码单元的复杂度等级。

10、在本实施例中,纹理复杂度用于指示图像中的灰度变化情况,编码设备获取到每个子块的纹理复杂度等级后,基于该纹理复杂度对第i+k编码单元的复杂度等级进行确定,使得第i+k编码单元的qp决策过程参考了第i+k编码单元中灰度变化情况,避免了利用较远之前的其他编码单元的编码比特数进行第i+k编码单元的qp决策带来的准确性降低的问题,有利于提升图像编码的准确率,以及提升图像编码的编码质量。

11、在一种可选的实现方式中,编码设备根据多个子块的多个纹理复杂度等级,获取第i+k编码单元的纹理复杂度等级,包括:编码设备按照设定的规则处理多个子块的多个纹理复杂度等级,确定第i+k编码单元的复杂度等级。

12、在本实施例中,编码设备将多个子块的多个纹理复杂度等级按照设定的规则进行处理,如相加、去重或者加权等等,进而确定第i+k编码单元的复杂度等级,避免了仅使用单个子块或少量子块的纹理复杂度等级来确定编码单元的复杂度等级不准确的问题,有利于提高第i+k编码单元的qp决策的输入信息的准确性,使第i+k编码单元的qp值与第i+k编码单元的图像内容更为契合,从而提升图像编码的效果。

13、在一种可选的实现方式中,编码设备包括位流缓冲区,该位流缓冲区用于存储一个或多个编码单元对应的位流。编码设备根据多个连续编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的qp值,包括:编码设备获取位流缓冲区的第一缓冲区满度,该第一缓冲区满度用于指示:位流缓冲区中已存储的数据量占位流缓冲区的存储容量的比值。之后,编码设备基于位流缓冲区的第一缓冲区满度,第i+k编码单元的未编码原始比特数,以及位流压缩率,获取第i+k编码单元的块比特预期量。以及,编码设备根据第i+k编码单元的复杂度等级和第一记录,获取第i+k编码单元的预期无损编码比特数,其中的第一记录用于指示:编码单元在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数。进而,编码设备根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

14、在本实施例中,编码设备在进行编码单元的qp决策过程中,不仅考虑编码单元的图像内容、编码单元之前的其他编码单元的编码比特数,还考虑了位流缓冲区的缓冲区满度等信息,使得图像编码过程不会因为位流缓冲区的剩余空间不足导致编码出错,从而提高了编码单元的qp值与编码设备之间的适配性,有利于提升图像编码的编码效果。

15、在一种可选的实现方式中,编码设备获取位流缓冲区的第一缓冲区满度,包括:编码设备根据第i编码单元对应的解码时刻查询第二记录,获取位流缓冲区的历史数据量;其中的第二记录用于指示:位流缓冲区在设定的时刻所存储的数据量。以及,编码设备根据历史数据量和位流缓冲区的存储容量,确定前述的第一缓冲区满度。

16、在本实施例中,编码设备根据位流缓冲区的历史信息(历史数据量等)来确定缓冲区满足,使得编码设备能够对位流缓冲区所存储的数据量进行估计,从而令位流缓冲区提供的存储空间足以实现图像编码所需的缓冲余量,保证了图像编码的稳定性,提升了图像编码效果。

17、在一种可选的实现方式中,第i+k编码单元的块比特预期量通过以下方式获取:编码设备获取第i+k编码单元的调整值,该调整值与满度差值成反比,满度差值为:位流的解码结束后位流缓冲区的第二缓冲区满度与第一缓冲区满度之间的差值。以及,编码设备基于位流压缩率和第i+k编码单元的编码比特数,确定第i+k编码单元的块比特预期量初始值,并根据第i+k编码单元的块比特预期量初始值和调整值,获取第i+k编码单元的块比特预期量。

18、在本实施例中,编码设备根据位流解码结束后的缓冲区满度和在前估计的缓冲区满足来调整块比特预期量,使第i+k编码单元的qp决策不受图像编码的变化而改变,从而保证图像编码的稳定性,提升了图像编码效果。

19、在一种可选的实现方式中,编码设备根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值,包括:编码设备基于第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,确定最小目标比特数和最大目标比特数。编码设备对最小目标比特数、最大目标比特数和预设的钳位比特数进行钳位,获取第i+k编码单元的目标比特数。从而,编码设备根据第i+k编码单元的目标比特数和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

20、在本实施例中,编码设备确定多个候选的比特数(目标比特数、预期无损编码比特数)中来决策第i+k编码单元的qp值,从而避免仅根据单个预期无损编码比特数对编码单元进行编码带来的准确性较低的问题,有利于提升图像编码的质量。

21、在一种可选的实现方式中,本实施例提供的编码方法还包括:编码设备获取第i+k编码单元解码后得到的编码比特数,并基于解码后得到的编码比特数和第i+k编码单元的qp值,获取第i+k编码单元的无损编码比特数。进而,编码设备基于第i+k编码单元的无损编码比特数更新前述的第一记录和第二记录中至少一种,其中第一记录用于指示:编码块在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数,第二记录用于指示:解码设备的位流缓冲区在设定的时刻所存储的数据量,时刻与i+k关联。

22、在本实施例中,编码设备可以对第一记录和第二记录进行更新,从而在位流中其他编码单元的编码过程中使用更新后的第一记录和第二记录,避免了编码设备仅能根据固化的第一记录和第二记录来对编码单元进行qp决策,有利于提高qp值的准确性,从而提升图像编码的质量。

23、第二方面,本技术实施例提供了一种解码方法,该解码方法应用于视频编解码系统,如该解码方法由视频编解码系统包括的解码设备执行。该解码方法包括:解码设备获取位流中的多个连续编码单元,并根据多个连续编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的qp值。以及,解码设备根据第i+k编码单元的qp值对第i+k编码单元进行解码。其中,i为正整数,k为大于或等于2的正整数,前述的图像内容用于指示:对第i+k编码单元进行编码后确定的预期比特数的相对大小。

24、在本实施例中,解码设备利用第i编码单元的编码比特数对第i+k编码单元的编码比特数进行预估,由于k为大于或等于2的正整数,因此,避免了第i+k编码单元仅能在前一编码单元的编码结束后才能确定qp值的问题,减少了解码过程中qp决策的等待时间,进而,降低了图像解码的处理时延,提高了图像解码的效率。而且,解码设备还将第i+k编码单元的图像内容作为qp决策的输入,有利于提高第i+k编码单元的qp值的准确性,从而避免解码出错的问题,还有利于提高图像解码的准确率,以及提升图像解码的解码质量。

25、在一些可选的实现方式中,图像内容包括第i+k编码单元的复杂度等级。

26、在第一种示例中,复杂度等级包括:亮度复杂度等级。

27、在第二种示例中,复杂度等级包括:色度复杂度等级。

28、在第三种示例中,复杂度等级包括:亮度复杂度等级和色度复杂度等级。

29、在一些可选的实现方式中,第i+k编码单元的复杂度等级通过以下方式获取:解码设备从位流中获取第i+k编码单元的复杂度等级。

30、作为一种可行的情形,位流中携带有第i+k编码单元的复杂度等级。

31、作为另一种可行的情形,位流中携带有第i+k编码单元与第i+k-1编码单元之间的复杂度等级差异,在解码设备获取到第i+k-1编码单元的复杂度等级后,根据位流中的复杂度等级差异和第i+k-1编码单元的复杂度等级,确定第i+k编码单元的复杂度等级。

32、在一些可选的实现方式中,解码设备包括位流缓冲区,该位流缓冲区用于存储一个或多个编码单元对应的位流。解码设备根据多个连续编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的qp值,包括:解码设备获取位流缓冲区的第一缓冲区满度,第一缓冲区满度用于指示:位流缓冲区中已存储的数据量占位流缓冲区的存储容量的比值。从而,解码设备基于位流缓冲区的第一缓冲区满度,第i+k编码单元的未编码原始比特数,以及位流压缩率,获取第i+k编码单元的块比特预期量。以及,解码设备根据第i+k编码单元的复杂度等级和第一记录,获取第i+k编码单元的预期无损编码比特数;其中的第一记录用于指示:编码单元在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数。进一步的,解码设备根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

33、在一些可选的实现方式中,解码设备获取位流缓冲区的第一缓冲区满度,包括:解码设备根据第i编码单元对应的解码时刻查询第二记录,获取位流缓冲区的历史数据量,并根据历史数据量和位流缓冲区的存储容量,确定第一缓冲区满度。其中的第二记录用于指示:位流缓冲区在设定的时刻所存储的数据量。

34、在一些可选的实现方式中,第i+k编码单元的块比特预期量通过以下方式获取:解码设备获取第i+k编码单元的调整值,该调整值与满度差值成反比,该满度差值为:位流的解码结束后位流缓冲区的第二缓冲区满度与第一缓冲区满度之间的差值。接下来,解码设备基于位流压缩率和第i+k编码单元的编码比特数,确定第i+k编码单元的块比特预期量初始值。进而,解码设备根据第i+k编码单元的块比特预期量初始值和调整值,获取第i+k编码单元的块比特预期量。

35、在一些可选的实现方式中,解码设备根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值,包括:解码设备基于第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,确定最小目标比特数和最大目标比特数。解码设备对最小目标比特数、最大目标比特数和预设的钳位比特数进行钳位,获取第i+k编码单元的目标比特数。从而,解码设备根据第i+k编码单元的目标比特数和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

36、在一些可选的实现方式中,本实施例提供的解码方法还包括:解码设备获取第i+k编码单元解码后得到的编码比特数,并基于解码后得到的编码比特数和第i+k编码单元的qp值,获取第i+k编码单元的无损编码比特数。从而,解码设备基于第i+k编码单元的无损编码比特数更新第一记录和第二记录中至少一种,第一记录用于指示:编码块在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数,第二记录用于指示:解码设备的位流缓冲区在设定的时刻所存储的数据量,时刻与i+k关联。

37、在一些可选的实现方式中,本实施例提供的解码方法还包括:解码设备显示解码位流后得到的图像。

38、第三方面,本技术实施例提供了一种编码装置,该编码装置包括了用于实现第一方面中任一种实现方式提供的编码方法的模块。示例性的,该编码装置包括:获取模块、量化模块和编码模块。获取模块,用于获取第一图像对应的多个连续的编码单元。量化模块,用于根据多个连续的编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的量化参数qp值。编码模块,用于根据第i+k编码单元的qp值对第i+k编码单元进行编码。其中,i为正整数,k为大于或等于2的正整数,图像内容用于指示:对第i+k编码单元进行编码后确定的预期比特数的相对大小。

39、可选的,图像内容包括第i+k编码单元的复杂度等级。

40、可选的,复杂度等级包括:亮度复杂度等级和色度复杂度等级中至少一种。

41、可选的,第i+k编码单元的复杂度等级通过以下方式获取,量化模块具体用于:将第i+k编码单元划分为多个子块;针对于多个子块中的每个子块,获取每个子块的纹理复杂度等级,该纹理复杂度等级为设定的多个复杂度等级中的一个;根据多个子块的多个纹理复杂度等级,获取第i+k编码单元的纹理复杂度等级;以及,基于第i+k编码单元的纹理复杂度等级确定第i+k编码单元的复杂度等级。

42、可选的,量化模块具体用于:按照设定的规则处理多个子块的多个纹理复杂度等级,确定第i+k编码单元的复杂度等级。

43、可选的,编码设备包括位流缓冲区,位流缓冲区用于存储一个或多个编码单元对应的位流。量化模块具体用于:获取位流缓冲区的第一缓冲区满度,第一缓冲区满度用于指示:位流缓冲区中已存储的数据量占位流缓冲区的存储容量的比值。基于位流缓冲区的第一缓冲区满度,第i+k编码单元的未编码原始比特数,以及位流压缩率,获取第i+k编码单元的块比特预期量。根据第i+k编码单元的复杂度等级和第一记录,获取第i+k编码单元的预期无损编码比特数;其中的第一记录用于指示:编码单元在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数。根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

44、可选的,量化模块具体用于:根据第i编码单元对应的解码时刻查询第二记录,获取位流缓冲区的历史数据量,其中的第二记录用于指示:位流缓冲区在设定的时刻所存储的数据量。以及,根据历史数据量和位流缓冲区的存储容量,确定第一缓冲区满度。

45、可选的,第i+k编码单元的块比特预期量通过以下方式获取,量化模块具体用于:获取第i+k编码单元的调整值,调整值与满度差值成反比,满度差值为:位流的解码结束后位流缓冲区的第二缓冲区满度与第一缓冲区满度之间的差值。基于位流压缩率和第i+k编码单元的编码比特数,确定第i+k编码单元的块比特预期量初始值。根据第i+k编码单元的块比特预期量初始值和调整值,获取第i+k编码单元的块比特预期量。

46、可选的,量化模块具体用于:基于第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,确定最小目标比特数和最大目标比特数。对最小目标比特数、最大目标比特数和预设的钳位比特数进行钳位,获取第i+k编码单元的目标比特数。根据第i+k编码单元的目标比特数和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

47、可选的,获取模块还用于获取第i+k编码单元解码后得到的编码比特数。本实施例提供的编码装置还包括更新模块,用于:基于解码后得到的编码比特数和第i+k编码单元的qp值,获取第i+k编码单元的无损编码比特数;以及,基于第i+k编码单元的无损编码比特数更新第一记录和第二记录中至少一种,第一记录用于指示:编码块在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数,第二记录用于指示:解码设备的位流缓冲区在设定的时刻所存储的数据量,时刻与i+k关联。

48、第四方面,本技术实施例提供了一种解码装置,该解码装置包括了用于实现第二方面中任一种实现方式提供的解码方法的单元。示例性的,该解码装置包括:获取单元、量化单元和解码单元。获取单元,用于获取位流中的多个连续编码单元。量化单元,用于根据多个连续编码单元中第i编码单元的编码比特数和第i+k编码单元的图像内容,获取第i+k编码单元的量化参数qp值。解码单元,用于根据第i+k编码单元的qp值对第i+k编码单元进行解码。其中,i为正整数,k为大于或等于2的正整数,图像内容用于指示:对第i+k编码单元进行编码后确定的预期比特数的相对大小。

49、可选的,图像内容包括第i+k编码单元的复杂度等级。

50、可选的,复杂度等级包括:亮度复杂度等级和色度复杂度等级中至少一种。

51、可选的,第i+k编码单元的复杂度等级通过以下方式获取,量化单元还用于从位流中获取第i+k编码单元的复杂度等级。

52、可选的,解码设备包括位流缓冲区,位流缓冲区用于存储一个或多个编码单元对应的位流。量化单元,具体用于:获取位流缓冲区的第一缓冲区满度,第一缓冲区满度用于指示:位流缓冲区中已存储的数据量占位流缓冲区的存储容量的比值。基于位流缓冲区的第一缓冲区满度,第i+k编码单元的未编码原始比特数,以及位流压缩率,获取第i+k编码单元的块比特预期量。根据第i+k编码单元的复杂度等级和第一记录,获取第i+k编码单元的预期无损编码比特数;其中的第一记录用于指示:编码单元在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数。根据第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

53、可选的,量化单元,具体用于:根据第i编码单元对应的解码时刻查询第二记录,获取位流缓冲区的历史数据量,并根据历史数据量和位流缓冲区的存储容量,确定第一缓冲区满度。其中的第二记录用于指示:位流缓冲区在设定的时刻所存储的数据量。

54、可选的,第i+k编码单元的块比特预期量通过以下方式获取,量化单元,具体用于:获取第i+k编码单元的调整值,调整值与满度差值成反比,满度差值为:位流的解码结束后位流缓冲区的第二缓冲区满度与第一缓冲区满度之间的差值。基于位流压缩率和第i+k编码单元的编码比特数,确定第i+k编码单元的块比特预期量初始值。根据第i+k编码单元的块比特预期量初始值和调整值,获取第i+k编码单元的块比特预期量。

55、可选的,量化单元,具体用于:基于第一缓冲区满度、第i+k编码单元的块比特预期量和第i+k编码单元的预期无损编码比特数,确定最小目标比特数和最大目标比特数。对最小目标比特数、最大目标比特数和预设的钳位比特数进行钳位,获取第i+k编码单元的目标比特数。根据第i+k编码单元的目标比特数和第i+k编码单元的预期无损编码比特数,获取第i+k编码单元的qp值。

56、可选的,获取单元还用于获取第i+k编码单元解码后得到的编码比特数。本技术实施例提供的解码装置还包括:更新单元,用于基于解码后得到的编码比特数和第i+k编码单元的qp值,获取第i+k编码单元的无损编码比特数,以及,基于第i+k编码单元的无损编码比特数更新第一记录和第二记录中至少一种,第一记录用于指示:编码块在设定的时刻以及复杂度等级的组合所对应的预期无损编码比特数,第二记录用于指示:解码设备的位流缓冲区在设定的时刻所存储的数据量,时刻与i+k关联。

57、可选的,本技术实施例提供的解码装置还包括:显示单元,用于显示解码位流后得到的图像。

58、第五方面,本技术实施例提供了一种电子设备,包括:处理器和接口电路。所述接口电路用于接收来自电子设备之外的其它设备的信号并传输至处理器,或将来自处理器的信号发送给电子设备之外的其它设备。所述处理器通过逻辑电路或执行代码指令,用于实现第一方面中任一项实现方式所述的方法,或者,用于实现第二方面中任一项实现方式所述的方法。

59、示例性的,该电子设备是指编码设备或者解码设备等。

60、第六方面,本技术实施例提供了一种编解码系统,包括编码设备和解码设备,编码设备与解码设备通信连接,解码设备用于实现第二方面中任一项实现方式所述的方法,编码设备用于实现第一方面中任一项实现方式所述的方法。

61、第七方面,本技术实施例提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被电子设备执行时,用于实现第一方面中任一项实现方式所述的方法,或者,用于实现第二方面中任一项实现方式所述的方法。

62、第八方面,本技术实施例提供了一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在编码设备或解码设备上运行时,使得编码设备或解码设备执行该指令,以实现上述任意一方面或任一方面的可能的实现方式中所述的方法的操作步骤。

63、以上第二方面至第八方面的有益效果可参照第一方面中任一种实现方式的内容,在此不予赘述。本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1