CN113473154B - 视频编码、视频解码方法、装置及存储介质 - Google Patents
视频编码、视频解码方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113473154B CN113473154B CN202110735696.2A CN202110735696A CN113473154B CN 113473154 B CN113473154 B CN 113473154B CN 202110735696 A CN202110735696 A CN 202110735696A CN 113473154 B CN113473154 B CN 113473154B
- Authority
- CN
- China
- Prior art keywords
- indication information
- codeword
- video
- quantization
- coefficients
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/94—Vector quantisation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例公开了一种视频编码、视频解码方法、装置及存储介质,属于多媒体技术领域。在本申请实施例中,可以采用矢量量化的方法对多个变换系数矩阵中的待编码系数进行量化,以得到对应的第一指示信息,进而根据包含有第一指示信息的多个码字指示信息生成目标视频的视频码流。后续,解码端就能够根据第一指示信息对矢量量化的系数进行解码。由此可见,本申请实施例提供了一种基于矢量量化的视频编解码方法,实现了矢量量化在视频编解码中的应用,相较于标量量化和网络编码量化,提高了量化性能,进而提升了视频编解码的性能。
Description
技术领域
本申请涉及多媒体技术领域,特别涉及一种视频编码、视频解码方法、装置及存储介质。
背景技术
随着多媒体技术的发展,视频编码技术得到广泛重视。在对视频进行编码时,需要将视频的残差信号进行离散余弦变换,从而得到变换系数矩阵。之后,将变换系数矩阵中包括的变换系数进行量化,进而根据量化结果确定视频码流。目前,量化技术主要包括标量量化、矢量量化和网格编码量化,其中,标量量化和网格编码量化已经广泛的应用于视频编解码中,但是矢量量化还未能在视频编解码中进行应用,基于此,亟需提供一种基于矢量量化技术的视频编解码方法。
发明内容
本申请实施例提供了一种视频编码、视频解码方法、装置及存储介质,可以获取目标视频对应的多个变换系数矩阵,将多个变换系数矩阵中包括的变换系数进行量化,根据量化结果得到视频码流。所述技术方案如下:
一方面,提供了一种视频编码方法,其特征在于,所述方法包括:
获取目标视频对应的多个变换系数矩阵,所述多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数;
对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,所述多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字;
根据所述多个码字指示信息,生成所述目标视频的视频码流。
可选地,所述对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,包括:
对所述多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个变换系数矩阵对应的至少一个码字信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,所述对所述多个变换系数矩阵中的待编码系数进行量化,包括:
对所述多个变换系数矩阵中满足矢量量化条件的每个目标变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个目标变换系数矩阵对应的至少一个码字指示信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个目标变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵内包括的全部变换系数。
可选地,所述矢量量化条件包括变换系数矩阵的行数达到第一行数阈值,或者,变换系数矩阵的列数达到第一列数阈值,或者变换系数矩阵的面积达到第一面积阈值中的至少一种。
可选地,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中第一区域内的变换系数,所述第一区域是通过基于扫描区域的系数编码SRCC技术扫描得到的区域。
可选地,所述矢量量化条件包括变换系数矩阵中的第一区域的行数达到第二行数阈值,或者,变换系数矩阵中的第一区域的列数达到第二列数阈值,或者变换系数矩阵中的第一区域的面积达到第二面积阈值中的至少一种。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,所述对所述多个变换系数矩阵中的待编码系数进行量化,包括:
如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据所述第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,所述N为正整数,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述N个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的N个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
可选地,所述对所述多个变换系数矩阵中的待编码系数进行量化,包括:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的部分待编码系数和所述码字维数,生成M个输入信号矢量,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述M个输入信号矢量中每个输入信号矢量对应的第一指示信息,并对所述第一变换系数矩阵中的剩余待编码系数进行非矢量量化的其他量化,以得到剩余待编码系数对应的第二指示信息;
将确定的第一指示信息和第二指示信息作为所述第一变换系数矩阵对应的多个码字指示信息。
可选地,所述对多个变换系数矩阵中的待编码系数进行量化,包括:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的全部待编码系数和所述码字维数,生成R个输入信号矢量,所述输入信号矢量的维数等于所述码字维数,且所述R个输入信号矢量中的一个输入信号矢量中包括一个或多个系数填充值,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述R个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的R个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
可选地,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,所述码字索引为一维索引值,或者所述码字索引为多维索引坐标。
可选地,所述目标视频的视频码流包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
可选地,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
可选地,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述目标视频的视频码流中的各个第一指示信息对应的码字时所采用的码书。
另一方面,提供了一种视频解码方法,其特征在于,所述方法包括:
获取目标视频的视频码流,所述目标视频的视频码流包括多个码字指示信息,所述多个码字指示信息用于指示对目标视频对应的多个变换系数矩阵中的待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字,所述多个变换系数矩阵中的每个变换系数矩阵包括多个待编码系数;
根据所述多个码字指示信息,获取所述目标视频的解码数据。
可选地,所述对所述多个码字指示信息为多个第一指示信息,所述根据所述多个码字指示信息,获取所述目标视频的解码数据,包括:
获取所述多个第一指示信息中每个第一指示信息对应的码字;
根据获取到的多个码字,生成所述目标视频的解码数据。
可选地,所述根据获取到的多个码字,生成所述目标视频的解码数据,包括:
将所述多个码字作为反量化重建值,或者,对所述多个码字进行处理,得到反量化重建值;
根据所述反量化重建值生成所述目标视频的解码数据。
可选地,所述多个码字指示信息包括多个第一指示信息和多个第二指示信息,所述第二指示信息用于指示通过非矢量量化的其他量化得到的量化结果;
所述根据所述多个码字指示信息,获取所述目标视频的解码数据,包括:
获取所述多个第一指示信息中每个第一指示信息对应的码字,以及获取所述多个第二指示信息中每个第二指示信息对应的量化结果;
根据获取到的多个码字和每个第二指示信息对应的量化结果,生成所述目标视频的解码数据。
可选地,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述多个码字指示信息中的各个第一指示信息对应的码字时所采用的码书。
可选地,所述目标视频的视频码流还包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
可选地,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
另一方面,提供了一种视频编码装置,所述装置包括:
获取模块,用于获取目标视频对应的多个变换系数矩阵,所述多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数;
量化模块,用于对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,所述多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字;
生成模块,用于根据所述多个码字指示信息,生成所述目标视频的视频码流。
可选地,所述量化模块主要用于:
对所述多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个变换系数矩阵对应的至少一个码字信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,所述量化模块还用于:
对所述多个变换系数矩阵中满足矢量量化条件的每个目标变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个目标变换系数矩阵对应的至少一个码字指示信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个目标变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵内包括的全部变换系数。
可选地,所述矢量量化条件包括变换系数矩阵的行数达到第一行数阈值,或者,变换系数矩阵的列数达到第一列数阈值,或者变换系数矩阵的面积达到第一面积阈值中的至少一种。
可选地,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中第一区域内的变换系数,所述第一区域是通过基于扫描区域的系数编码SRCC技术扫描得到的区域。
可选地,所述矢量量化条件包括变换系数矩阵中的第一区域的行数达到第二行数阈值,或者,变换系数矩阵中的第一区域的列数达到第二列数阈值,或者变换系数矩阵中的第一区域的面积达到第二面积阈值中的至少一种。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,所述量化模块还用于:
如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据所述第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,所述N为正整数,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述N个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的N个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
可选地,所述量化模块还用于:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的部分待编码系数和所述码字维数,生成M个输入信号矢量,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述M个输入信号矢量中每个输入信号矢量对应的第一指示信息,并对所述第一变换系数矩阵中的剩余待编码系数进行非矢量量化的其他量化,以得到剩余待编码系数对应的第二指示信息;
将确定的第一指示信息和第二指示信息作为所述第一变换系数矩阵对应的多个码字指示信息。
可选地,所述量化模块还用于:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的全部待编码系数和所述码字维数,生成R个输入信号矢量,所述输入信号矢量的维数等于所述码字维数,且所述R个输入信号矢量中的一个输入信号矢量中包括一个或多个系数填充值,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定所述R个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的R个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
可选地,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,所述码字索引为一维索引值,或者所述码字索引为多维索引坐标。
可选地,所述目标视频的视频码流包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
可选地,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
可选地,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述目标视频的视频码流中的各个第一指示信息对应的码字时所采用的码书。
另一方面,提供了一种视频解码装置,所述装置包括:
第一获取模块,用于获取目标视频的视频码流,所述目标视频的视频码流包括多个码字指示信息,所述多个码字指示信息用于指示对目标视频对应的多个变换系数矩阵中的待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字,所述多个变换系数矩阵中的每个变换系数矩阵包括多个待编码系数;
第二获取模块,用于根据所述多个码字指示信息,获取所述目标视频的解码数据。
可选地,所述多个码字指示信息为多个第一指示信息,所述第二获取模块主要用于:
获取所述多个第一指示信息中每个第一指示信息对应的码字;
根据获取到的多个码字,生成所述目标视频的解码数据。
可选地,所述第二获取模块主要用于:
将所述多个码字作为反量化重建值,或者,对所述多个码字进行处理,得到反量化重建值;
根据所述反量化重建值生成所述目标视频的解码数据。
可选地,所述多个码字指示信息包括多个第一指示信息和多个第二指示信息,所述第二指示信息用于指示通过非矢量量化的其他量化得到的量化结果;所述第二获取模块还主要用于:
获取所述多个第一指示信息中每个第一指示信息对应的码字,以及获取所述多个第二指示信息中每个第二指示信息对应的量化结果;
根据获取到的多个码字和每个第二指示信息对应的量化结果,生成所述目标视频的解码数据。
可选地,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述多个码字指示信息中的各个第一指示信息对应的码字时所采用的码书。
可选地,所述目标视频的视频码流还包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
可选地,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
另一方面,提供了一种视频编码装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行上述视频编码方法。
另一方面,提供了一种视频解码装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行上述视频解码方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被计算机执行时实现上述所述视频编码方法或视频解码方法的步骤。
另一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的视频编码或视频解码方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,可以采用矢量量化的方法对多个变换系数矩阵中的待编码系数进行量化,以得到对应的第一指示信息,进而根据包含有第一指示信息的多个码字指示信息生成目标视频的视频码流。后续,解码端就能够根据第一指示信息对矢量量化的系数进行解码。由此可见,本申请实施例提供了一种基于矢量量化的视频编解码方法,实现了矢量量化在视频编解码中的应用,相较于标量量化和网络编码量化,提高了量化性能,进而提升了视频编解码的性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种视频编解码所涉及的系统架构图;
图2是本申请实施例提供的一种视频编码方法的流程图;
图3是本申请实施例提供的一种扫描区域的示意图;
图4是本申请实施例提供的一种视频解码方法的流程图;
图5是本申请实施例提供的一种视频编码装置的结构图;
图6是本申请实施例提供的一种视频解码装置的结构图;
图7是本申请实施例提供的一种用于视频编码或视频解码的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的系统架构进行介绍。
图1是本申请实施例提供的一种视频编码、视频解码方法所涉及的系统架构图。如图1所示,该系统视频编码设备101和视频解码设备102。其中,视频编码设备101和视频解码设备102可以进行通信。
视频编码设备101用于获取视频信号,并根据视频信号获取多个变换系数矩阵,进而通过本申请实施例提供的方法对多个变换系数矩阵中的待编码系数进行量化、编码,从而得到视频码流。将生成的视频码流发送至视频解码设备102。
其中,视频编码设备101可以包括预测模块1011、变换模块1012、量化模块1013和熵编码模块1014。
其中,预测模块1011包括帧内预测单元和帧间预测单元,其中,帧内预测单元可以利用当前编码块周围的已编码块的重建像素对当前编码块的像素进行预测,从而得到预测块;帧间预测单元可以利用时域上邻近的已编码图像帧的重建像素对当前未编码的图像帧的像素进行预测,从而得到预测块。预测模块1011可以通过上述任一种预测单元得到预测块,之后,根据当前编码块和该预测块计算残差信号。
变换模块1012将图像的残差信号映射至变换域,以得到变换系数矩阵,从而使得图像在变换域的能量更集中,去除信号的频域相关性。
量化模块1013将变换模块1012得到的变换系数矩阵中的待编码系数映射为码字,这种映射是一个“多对一”的过程,该过程不可逆,会带来信号损失。但优点是能够大幅度缩减信号的取值范围,从而能够用少量的符号给出原始信号较好的近似,提高压缩率。
熵编码模块1014是基于信息熵原理的无损编码方式,将量化模块1013映射得到的码字对应的码字索引或是其他用于指示码字的信息等转变为一个二进制码流,从而生成视频码流。
视频解码设备102接收视频编码设备101发送的视频码流,并根据视频码流中包含的码字指示信息对视频码流进行解码,从而得到解码数据。
其中,视频解码设备102可以包括熵解码模块1021、反量化模块1022、反变换模块1023、重建模块1024和滤波模块1025。
其中,熵解码模块1021用于接收视频编码设备101发送的视频码流,由于该视频码流是熵编码模块1014通过对码字指示信息进行转换得到的二进制码流,所以,熵解码模块1021可以对该视频码流进行熵解码,以得到该视频码流包含的码字指示信息。
反量化模块1022用于将熵解码模块1021得到的码字指示信息进行反量化,得到反量化重建值。
反变换模块1023用于将反量化模块1022得到的反量化重建值进行DCT反变换,从而得到多个变换系数矩阵。
重建模块1024用于根据反变换模块1023得到的多个变换系数矩阵生成重建图像。
滤波模块1025用于将重建模块1024获得的重建图像进行图像增强,使得重建图像更接近原始图像,同时消减块效应和振铃效应的影响,提升重建图像的质量。
需要说明的是,在本申请实施例中,视频编码设备101可以是一个终端设备,例如,智能手机、平板电脑、笔记本电脑、台式计算机,视频编码设备101也可以是一个服务器或一个服务器集群。视频解码设备102可以是一个终端设备,例如,平板电脑、台式计算机等终端设备,视频解码设备102也可以是一个服务器或服务器集群,本申请实施例对此不做限定。
接下来对本申请实施例提供的视频编码方法进行介绍。
图2是本申请实施例提供的一种视频编码方法的流程图。该方法可以应用于前述系统架构中的视频编码设备,如图2所示,该方法包括以下步骤:
步骤201:获取目标视频对应的多个变换系数矩阵,多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数。
在本申请实施例中,对目标视频的残差信号进行DCT(Discrete CosineTransform,离散余弦变换)变换。在变换过程中,对目标视频中的每一帧视频图像的每个TB(Transform Block,变换块)进行DCT变换,得到每个TB对应的变换系数矩阵。这样,对于一帧视频图像可以得到一个或多个变换系数矩阵。
在本申请实施例中,该多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数。
其中,在一种可能的实现方式中,多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数可以为相应变换系数矩阵内包括的全部变换系数。
可选地,在另一种可能的实现方式中,每个变换系数矩阵中包括的多个待编码系数可以为相应变换系数矩阵中第一区域内的变换系数,其中,第一区域是通过基于扫描区域的系数编码SRCC技术扫描得到的区域。
也即是,在本申请实施例中,视频编码设备可以通过SRCC技术确定TB的变换系数矩阵中最右面的非零系数的横坐标SRx和最下面的非零系数的纵坐标SRy,利用(SRx,SRy)来确定该变换系数矩阵中需要扫描的扫描区域,也即,第一区域,如图3所示,之后,对(SRx,SRy)确定的第一区域内的变换系数进行编码。
步骤202:对多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,多个码字指示信息中包括第一指示信息,第一指示信息用于指示对待编码系数进行矢量量化时得到的码字。
由前述步骤201中可知,每个变换系数矩阵包括多个待编码系数,基于此,视频编码设备可以对每个变换系数矩阵中的多个待编码系数进行量化。
示例性地,在一种可能的实现方式中,视频编码设备对多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个变换系数矩阵对应的至少一个码字信息,其中,混合量化包括矢量量化和除矢量量化之外的其他量化,每个变换系数矩阵对应的至少一个码字信息包括第一指示信息,该第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
其中,以多个变换系数矩阵中的第一变换系数矩阵为例,视频编码设备可以判断第一变换系数矩阵中的待编码系数的个数是否为码字维数的N倍,如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,N为正整数,输入信号矢量的维数等于码字维数,确定N个输入信号矢量中每个输入信号矢量对应的第一指示信息;将确定的N个第一指示信息作为第一变换系数矩阵对应的至少一个码字指示信息。
需要说明的是,码字维数是指预设的进行矢量量化时所要采用的参考码书中包括的码字的维数。其中,该参考码书中包括多个码字,每个码字均为该码字维数的矢量。例如,码字维数可以为8、16等。并且,在本申请实施例中,每个码字可以对应有一个码字指示信息。
如果第一变换系数矩阵中包含的待编码系数的个数为码字维数的整数倍,则说明第一变换系数矩阵中包含的待编码系数正好能够组成N个该码字维数的矢量,基于此,视频编码设备可以根据该码字维数,生成N个输入信号矢量。
例如,假设码字维数为8,第一变换系数矩阵中包含的待编码系数的个数为24,则根据该码字维数,第一变换系数矩阵中的24个待编码系数可以组成3个8维的输入信号矢量。
在得到N个输入信号矢量之后,视频编码设备可以从参考码书包含的码字中查找与每个输入信号矢量相匹配的码字,进而根据查找到的每个输入信号矢量对应的码字获取相应码字的指示信息,将得到的指示信息作为相应输入信号矢量对应的第一指示信息。之后,视频编码设备可以将每个输入信号矢量对应的第一指示信息作为该第一变换系数矩阵对应的多个码字指示信息。
其中,该第一指示信息可以为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
其中,当第一指示信息为码字索引时,该码字索引可以为一维索引值,或者也可以为多维索引坐标。例如,对于聚类型码书,码字的码字索引即为一个一维索引值,也即,通过一个具体索引值就能对应到一个码字;对于晶格型码书,一个码字对应一个多维索引坐标,例如,索引坐标(i,j)对应一个码字。
当第一指示信息为码字索引指示信息时,码字索引指示信息可以为码字索引的相关信息,也即,该码字索引指示信息能够指示一个码字索引。例如,某本码书中包含31个码字,将这31个码字分成5组,对每一组进行编号,第一组编号0,第二组编号为1,第三组编号为2,第四组编号为3,第五组编号为4;同时,第一组内的码字为1,第二组内的码字为2和3,第三组内的码字为4至7,第四组内的码字为8至15,第五组内的码字为16至31。根据每一组内的码字的位置可以得到每一组内的码字的组内偏移量,之后,根据每个码字所在组的组号和组内偏移量得到相应码字对应的码字索引对应的码字索引指示信息,其中,该码字索引指示信息包括码字所在组的组号和组内偏移量。
当第一指示信息为码字包含的码字分量的指示信息时,码字分量的指示信息可以是对码字包含的码字分量直接进行编码得到信息。例如,在某些特殊构造的码书中,人为设计的一些码字,一个码字中各个码字分量可能均为整数,在这种情况下,可以直接对码字中的各个码字分量进行编码,得到码字分量的指示信息。
可选地,如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则可以对第一变化系数矩阵中的待编码系数进行全部矢量量化,也可以对第一变换系数矩阵中的待编码系数进行混合量化。
其中,若对第一变化系数矩阵中的待编码系数进行全部矢量量化,则根据第一变换系数矩阵中的全部待编码系数和码字维数,生成R个输入信号矢量,输入信号矢量的维数等于码字维数。其中,R个输入信号矢量中的一个输入信号矢量中包括一个或多个系数填充值。之后,确定R个输入信号矢量中每个输入信号矢量对应的第一指示信息。将确定的R个第一指示信息作为第一变换系数矩阵对应的至少一个码字指示信息。
其中,如果第一变换系数矩阵中包含的待编码系数的个数不为码字维数的整数倍,则说明第一变换系数矩阵中的待编码系数不能组成整数个该码字维数的矢量。在这种情况下,如果要对该多个待编码系数进行全部的矢量量化,则视频编码设备可以首先计算待编码系数的个数除以码字维数后得到的整数r和余数t,之后,视频编码设备可以根据该第一变换系数矩阵包含的多个待编码系数生成R个输入信号矢量,此时,R=r+1,且最后一个输入信号矢量内可以包括(码字维数-t)个系数填充值。
例如,第一变换系数矩阵中包含有20个待编码系数,而码字维数是8,计算20除以8得到整数2和余数4,则根据这20个待编码系数可以生成3个8维的输入信号矢量,其中,3个输入信号矢量中的最后一个输入信号矢量将包含有4个系数填充值。
在得到输入信号矢量之后,对于每个输入信号矢量,视频编码设备可以参考上述介绍的方式确定每个输入信号矢量对应的第一指示信息,并将确定出的每个输入信号矢量对应的第一指示信息作为该第一变换系数矩阵对应的至少一个码字指示信息。
可选地,在第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍的情况下,如果对第一变化系数矩阵中的待编码系数进行混合量化,则视频编码设备可以根据第一变换系数矩阵中的部分待编码系数和码字维数,生成M个输入信号矢量,输入信号矢量的维数等于码字维数。之后,确定M个输入信号矢量中每个输入信号矢量对应的第一指示信息,并对第一变换系数矩阵中的剩余待编码系数进行非矢量量化的其他量化,以得到剩余待编码系数分别对应的第二指示信息。
其中,视频编码设备可以首先计算待编码系数的个数除以码字维数后得到的整数r和余数t,之后,视频编码设备可以根据该第一变换系数矩阵包含的多个待编码系数生成M个该码字维数的输入信号矢量,此时,M=r。对于剩余的t个待编码系数,则可以采用非矢量量化的其他量化对其进行量化,从而得到每个待编码系数对应的第二指示信息。如此,对第一变换系数矩阵中包含的多个待编码系数中的部分待编码系数进行了矢量量化,得到了对应的第一指示信息,对部分待编码系数进行了非矢量量化的其他量化,得到了对应的第二指示信息。在此基础上,视频编码设备可以将得到的第一指示信息和第二指示信息作为该第一变换系数矩阵对应的多个码字指示信息。
例如,第一变换系数矩阵中的待编码系数为20个系数,而矢量的维数是8,矢量的个数是3,在这种情况下,将第一变换系数矩阵中的20个待编码系数前16个待编码系数生成2个8维的输入信号矢量,获取每个输入信号矢量对应的第一指示信息,并将剩余的4个待编码系数进行非矢量量化的其他量化,得到对应的第二指示信息。可选地,也可以对第一变换系数矩阵中的20个待编码系数前4个待编码系数进行非矢量量化的其他量化,得到对应的第二指示信息,将剩余16个待编码系数组成2个8维的输入信号矢量。其中,2个输入信号矢量中每个信号矢量对应第一指示信息。之后,将确定的2个第一指示信息和第二指示信息作为第一变换系数矩阵对应的多个码字指示信息。
需要说明的是,在上述混合量化的过程中,对于矢量量化后剩余的待编码系数,视频编码设备进行的非矢量量化的其他量化可以是指标量量化或网格编码量化或其他量化中的至少一种,本申请实施例对此不做限定。
可选地,在另一种可能的实现方式中,视频编码设备可以对多个变换系数矩阵中满足矢量量化条件的每个目标变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个目标变换系数矩阵对应的至少一个码字指示信息。其中,混合量化包括矢量量化和除矢量量化之外的其他量化,每个目标变换系数矩阵对应的至少一个码字信息包括第一指示信息,第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
需要说明的是,由前述步骤201中的介绍可知,多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数可以为相应变换系数矩阵中包括的全部变换系数,也可以为相应变换系数矩阵中第一区域内的变换系数。其中,当多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中包括的全部变换系数时,该矢量量化条件可以包括变换系数矩阵的行数达到第一行数阈值,或者,变换系数矩阵的列数达到第一列数阈值,或者变换系数矩阵的面积达到第一面积阈值中的至少一种。也就是说,对于任一个变换系数矩阵,如果该变换系数矩阵满足上述条件中的一种或多种,则可以对相应变换系数矩阵中的全部变换系数进行矢量量化或混合量化。其中,变换系数矩阵的面积是指变换系数矩阵的行数与列数的乘积。
可选地,当多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中的第一区域内的变换系数时,该矢量量化条件可以包括第一区域的行数达到第二行数阈值,或者,变换系数矩阵中的第一区域的列数达到第二列数阈值,或者变换系数矩阵中的第一区域的面积达到第二面积阈值中的至少一种。也就是说,对于任一个变换系数矩阵,如果该变换系数矩阵中的第一区域满足上述条件中的一种或多种,则可以对相应变换系数矩阵中的第一区域内包含的变换系数进行矢量量化或混合量化。其中,第一区域的面积是指第一区域的行数与列数的乘积。
在本申请实施例中,视频编码设备可以通过上述介绍的矢量量化条件,从多个变换系数矩阵中获取满足矢量量化条件的目标变换系数矩阵。对于每个目标变换系数矩阵,视频编码设备均可以参考前述对第一变换系数矩阵中的待编码系数的量化方法,对各个目标变换系数矩阵中包含的待编码系数进行矢量量化或混合量化。而对于不满足矢量量化条件的变化系数矩阵,则视频编码设备可以采用除矢量量化和混合量化之外的其他量化方式对其中的待编码系数进行量化,例如,采用标量量化或网格编码量化进行量化,本申请实施例对此不做限定。这样,满足矢量量化条件的目标变换系数矩阵对应的至少一个码字指示信息有可能均为第一指示信息,也有可能包含有第一指示信息和采用非矢量量化的其他量化方式得到的第二指示信息。不满足矢量量化条件的变换系数矩阵对应的至少一个码字指示信息则将均为采用非矢量量化的其他量化方式得到的第二指示信息,也即,不包含有第一指示信息。
上述仅是本申请实施例给出的两种矢量量化条件的可能实现方式,可选地,该矢量量化条件也可以为根据变换系数矩阵对应的TB的块划分信息确定的条件,或者是根据具体的量化方式所对应的量化参数设置的条件,或者是其他条件,本申请实施例对此不做限定。
步骤203:根据多个码字指示信息,生成目标视频的视频码流。
在本申请实施例中,对目标视频对应的多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息之后,视频编码设备可以根据多个码字指示信息,生成目标视频的视频码流。
示例性地,视频编码设备可以按照各个变换系数矩阵对应的TB的先后顺序,对每个变换系数矩阵对应的至少一个码字指示信息进行二进制编码,从而得到该目标视频的视频码流。
可选地,由前述步骤202中介绍可知,每个变换系数矩阵中的待编码系数可能是全部进行了矢量量化,也可能是部分进行了矢量量化,或者是完全没有进行矢量量化。这样,每个变换系数矩阵对应的至少一个码字指示信息有可能均为第一指示信息,也有可能包含第一指示信息和诸如第二指示信息之类的其他量化方法对应的指示信息,或者,也有可能不包含有第一指示信息。基于此,在本申请实施例中,视频编码设备在对每个变换系数矩阵对应的至少一个码字指示信息进行二进制编码之后,还可以在每个变换系数矩阵对应的至少一个码字指示信息之前添加对应的矢量量化开关标识,以得到目标视频的视频码流。其中,该矢量量化开关标识可以用于标识对应的至少一个码字指示信息是否包含有通过矢量量化得到的第一指示信息。
可选地,视频编码设备在对每个变换系数矩阵对应的至少一个码字指示信息进行二进制编码之后,还可以在每个变换系数矩阵对应的至少一个码字指示信息之前添加对应的矢量个数或矢量量化次数,以生成目标视频的视频码流,其中,矢量个数或矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
例如,当某个变换系数矩阵中的待编码系数组成了4个输入信号矢量,根据这4个输入信号矢量得到了4个码字,进而根据4个码字得到了4个第一指示信息,此时,矢量个数或矢量量化次数即为4。
可选地,还可以在每个变换系数矩阵对应的至少一个码字指示信息之前添加对应的矢量量化起始位置,矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。这样,当某个变换系数矩阵对应的至少一个码字指示信息中既包含第一指示信息,同时还包含其他指示信息时,即可以通过该矢量量化起始位置获知从什么位置开始为矢量量化得到的第一指示信息。在此基础上,如果还对应有矢量个数时,即能够根据该矢量量化起始位置和矢量量化个数,确定出变换系数矩阵对应的至少一个码字指示信息中的哪几个指示信息为第一指示信息,以方便后续进行解码。
可选地,目标视频的视频码流还可以包括矢量量化的使能标识,矢量量化的使能标识用于指示目标视频的视频码流是否支持矢量量化。也即,如果在对目标视频对应的多个变换系数矩阵中待编码系数进行量化的过程中支持采用矢量量化或混合量化的方法,则可以在该目标视频的视频码流包括的多个码字指示信息之前添加矢量量化的使能标识。这样,后续解码端即可以通过该使能标识获知该目标视频的视频码流是否支持矢量量化。
可选地,目标视频的视频码流中还可以包含有至少一个矢量维数,至少一个矢量维数用于指示目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
其中,如果在对各个变换系数矩阵中的多个待编码系数进行矢量量化时所采用的的码字维数是相同的,则该目标视频的视频码流中将包括一个矢量维数,在这种情况下,可以将该矢量维数添加在该目标视频的视频码流包含的多个码字指示信息之前。
如果在对不同变换系数矩阵中的多个待编码系数进行矢量量化时所采用的码字维数有的相同有的不同,且对同一变换系数矩阵中的待编码系数进行矢量量化时采用的码字维数是相同的,则该目标视频的视频码流中可以包括多个矢量维数,此时,每个变换系数矩阵对应的至少一个码字指示信息之前可以添加一个对应的矢量维数。
例如,目标视频对应有10个变换系数矩阵,其中,有5个变换系数矩阵中的待编码系数是采用8维的码字进行的矢量量化,另外5个变换系数矩阵中的待编码系数是采用16维的码字进行的矢量量化。在这种情况下,该目标视频的视频码流中将包括两种矢量维数,分别为8和16,并且,可以在每个变换系数矩阵对应的至少一个码字指示信息之前添加对应的矢量维数。
如果对变换系数矩阵中的多个待编码系数进行矢量量化时所采用的码字维数也有可能不同,则该目标视频的视频码流中可以包括多个矢量维数。在这种情况下,可以为每个变换系数矩阵对应的至少一个码字指示信息中包括的第一指示信息绑定对应的矢量维数。
例如,某个变换系数矩阵中的部分待编码系数采用的是8维的码字进行的矢量量化,部分待编码系数采用的是16维的码字进行的矢量量化,此时,对于通过8维码字量化得到的第一指示信息,可以为其绑定矢量维数8,对于通过16维的码字量化得到的第一指示信息,则可以绑定矢量维数16。
可选地,目标视频的视频码流中还可以包括至少一个码书索引,至少一个码书索引用于指示在确定目标视频的视频码流中的各个第一指示信息对应的码字时所采用的码书。
其中,当采用相同的码书对多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化时,则该目标视频的视频码流将包括一个码书索引。此时,可以在目标视频的视频码流包含的多个码字指示信息之前添加该码书索引,以便后续解码端根据该码书索引获取相应地码书对该目标视频的视频码流进行解码。
当采用不同的码书对多个变换系数矩阵中的待编码系数进行矢量量化,且同一个变换系数矩阵中的待编码系数所采用的码书相同时,该目标视频的视频码流中将包括多个码书索引。在这种情况下,可以在每个变换系数矩阵对应的至少一个码字指示信息之前添加对应的码书索引,以指示相应地变换系数矩阵中的各个第一指示信息是通过哪个码书量化得到。
当对变换系数矩阵中包括的多个待编码系数也采用不同码书进行矢量量化时,该目标视频的视频码流中也将包括多个码书索引。在这种情况下,可以为每个变换系数矩阵对应的至少一个码字指示信息包括的第一指示信息绑定对应的码书索引,以指示相应的第一指示信息是通过哪个码书量化得到。
需要说明的是,该目标视频的视频码流中可以包括矢量量化开关标识、矢量量化的使能标识、矢量个数或矢量量化次数、矢量量化起始位置、矢量维数以及码书索引中的一个或多个,本申请实施例对此不做限定。
在本申请实施例中,采用矢量量化的方法对多个变换系数矩阵中的待编码系数进行量化,以得到对应的第一指示信息,进而根据包含有第一指示信息的多个码字指示信息生成目标视频的视频码流。后续,解码端就能够根据第一指示信息对矢量量化的系数进行解码。由此可见,本申请实施例提供了一种基于矢量量化的视频编解码方法,实现了矢量量化在视频编解码中的应用,相较于标量量化和网络编码量化,提高了量化性能,进而提升了视频编解码的性能。
当通过上述方法对目标视频进行编码得到目标视频的视频码流之后,视频编码设备可以将该目标视频的视频码流发送至视频解码设备。接下来。视频解码设备可以通过本申请实施例提供的视频解码方法对该目标视频的视频码流进行解码。
图4是本申请实施例提供的一种视频解码方法的流程图。该方法可以应用于图1所示的系统架构中的视频解码设备,如图4所示,该方法包括以下步骤:
步骤401:获取目标视频的视频码流,目标视频的视频码流包括多个码字指示信息,该多个码字指示信息中包括第一指示信息,第一指示信息用于指示对待编码系数进行矢量量化时得到的码字。
视频解码设备接收视频编码设备发送的目标视频的视频码流,或者,视频解码设备也可以从存储设备中获取视频编码设备发送至该存储设备的目标视频的视频码流。
其中,该目标视频的视频码流包括多个码字指示信息,该多个码字指示信息包括第一指示信息。也即,该目标视频的视频码流是通过对该目标视频对应的多个变换系数矩阵包括的待编码系数进行部分或全部矢量量化得到的。其中,该多个码字指示信息的可能实现方式可以参考前述实施例中步骤202中的说明,本申请实施例在此不再赘述。
可选地,该目标视频的视频码流中还可以包括矢量量化开关标识、矢量量化的使能标识、矢量个数或矢量量化次数、矢量量化起始位置、矢量维数以及码书索引中的一个或多个,详细说明参见前述实施例中的步骤203中的说明,本申请实施例在此不再赘述。
步骤402:根据多个码字指示信息,获取目标视频的解码数据。
视频解码设备在获取到目标视频的视频码流之后,可以从该视频码流的第一个码字指示信息开始依次对各个码字指示信息进行反量化,以得到各个码字指示信息对应的量化结果,进而根据得到的量化结果,生成目标视频的解码数据。其中,码字指示信息对应的量化结果可能是第一指示信息对应的码字,也可能是第二指示信息对应的量化结果。
由前述步骤202中的介绍可知,该目标视频的视频码流的多个码字指示信息可能全部为第一指示信息,也可能包含有第一指示信息和其他指示信息。基于此,在本申请实施例中,可以通过以下两种实现方式来获取目标视频的解码数据。
在第一种实现方式中,当多个码字指示信息均全部为第一指示信息时,视频解码设备可以依次获取多个第一指示信息中每个第一指示信息对应的码字;根据获取到的多个码字,生成目标视频的解码数据。
示例性地,视频解码设备首先获取用于对多个第一指示信息进行反量化的码书,进而根据获取的码书对各个第一指示信息进行反量化,以得到每个第一指示信息对应的码字。
在第一种可能的情况中,多个第一指示信息均采用相同的码书量化得到,这样,视频编码设备和视频解码设备可以预先约定所采用的目标码书,此时,视频解码设备获取目标码书。之后,视频解码设备可以从该目标码书中获取每个第一指示信息对应的码字。
在第二种可能的情况中,该多个第一指示信息采用不同的码书量化得到,且该多个码字指示信息中对应同一个变换系数矩阵的至少一个第一指示信息将对应有相同的码书索引。此时,视频解码设备在依次对各个第一指示信息进行反量化时,当检测到第一个码书索引时,即根据该码书索引获取一个目标码书,并采用该目标码书对该码书索引之后的第一指示信息进行反量化,直到检测到下一个码书索引时,再获取下一个码书索引对应的目标码书,进而根据最新获取到的目标码书对下一个码书索引之后的第一指示信息进行反量化,以此类推。
在第三种可能的情况中,该多个第一指示信息采用不同的码书量化得到,其中,每个第一指示信息均绑定有用于指示自身所对应的码书的码书索引。在这种情况下,视频解码设备根据每个第一指示信息绑定的用于指示自身所对应的码书的码书索引获取相应第一指示信息所对应的码书。之后,视频解码设备可以从每个第一指示信息对应的码书中获取相应第一指示信息所对应的码字。
需要说明的是,在根据获取到目标码书对应的第一指示信息进行反量化时,视频解码设备可以根据该第一指示信息,从对应的目标码书中获取该第一指示信息对应的码字。
其中,当第一指示信息为码字索引,且该码字索引为一维索引值时,由于一个索引值就能够对应一个码字,所以视频解码设备中可以存储有索引值和码字之间的映射关系,这样,视频解码设备可以通过查表的方式获取每个码字索引对应的码字,从而得到每个第一指示信息对应的码字。
当第一指示信息为码字索引,且该码字索引为多维索引坐标时,视频解码设备,可以根据多维索引坐标,通过相关公式确定码字索引对应的码字。
当第一指示信息为码字索引指示信息时,视频解码设备可以先根据该码字索引指示信息获取对应的码字索引,进而根据该码字索引获取对应的码字。
示例性地,仍以前述介绍的码字索引指示信息包括码字组号和偏移量为例,视频解码设备可以根据码字索引指示信息中包括的组号和组内偏移量,通过下述公式计算得到码字索引。
码字索引=(1<<组号)+组内偏移量-1
在得到码字索引之后,视频解码设备可以根据该码字索引,从码字索引与码字的映射关系表中获取对应的码字。
当第一指示信息为码字包含的码字分量的指示信息时,视频解码设备可以通过码字分量的指示信息获取码字分量,进而将获取到的码字分量组成码字。
例如,如前述实施例中介绍第一指示信息为对码字的各个码字分量进行编码得到的码字分量的指示信息,在这种情况下,视频解码设备可以直接对各个码字分量的指示信息进行解码,从而得到对应的码字分量,并将得到的码字分量组成码字。
在得到每个第一指示信息对应的码字之后,视频解码设备可以根据该多个码字,生成目标视频的解码数据。
在一种实现方式中,将多个码字直接作为反量化重建值,视频解码设备根据多个码字的反量化重建值,生成目标视频的解码数据。
可选地,在一种可能的实现方式中,将多个码字分别通过相关公式计算,生成多个码字对应的反量化重建值。例如,可以在码字上乘以一个数,或者加上一个数,或者做移位操作,来生成码字对应的反量化重建值。之后,视频解码设备根据通过计算多个码字之后得到的反量化重建值,生成目标视频的解码数据。
可选地,在第二种实现方式中,当多个码字指示信息包括第一指示信息和第二指示信息时,视频解码设备可以获取多个第一指示信息中每个第一指示信息对应的码字,以及获取多个第二指示信息中每个第二指示信息对应的量化结果;根据获取到的多个码字和每个第二指示信息对应的量化结果,生成目标视频的解码数据。
其中,在该种实现方式中,该目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息可以对应有矢量量化开关标识,该矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
基于此,在第一种可能的情况中,每个变换系数矩阵对应的至少一个码字指示信息均为第一指示信息,这样,该至少一个码字指示信息对应的矢量量化开关标识将能够标识该至少一个码字指示信息均为第一指示信息还是均为第二指示信息。在这种情况下,视频解码设备在对多个码字指示信息进行反量化时,当检测到矢量量化开关标识为开启标识时,则可以获知该矢量量化开关标识后的码字指示信息为第一指示信息。之后,视频解码设备可以参考第一种实现方式中介绍的方法,获取对该矢量量化开关标识后的每个第一指示信息进行反量化的码书,并从获取的码书中获取每个第一指示信息对应的码字,直到检测到下一个矢量量化开关标识时,如果下一个矢量量化开关标识仍为开启标识,则可以继续参考上述操作进行处理,如果下一个矢量量化开关标识为关闭标识,则视频解码设备可以获知下一个矢量量化开关标识后的码字指示信息为第二指示信息,这样,视频解码设备可以基于非矢量量化的其他量化方法依次对下一个矢量量化开关标识后的第二指示信息进行反量化,直到再次检测到矢量量化开关标识,以此类推。
可选地,在上述第一种可能的情况中,每个变换系数矩阵对应的至少一个码字指示信息还可以对应有矢量个数或矢量化次数,该矢量个数或矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。这样,当视频解码设备在检测到矢量量化开关标识为开启标识之后,还可以获取该矢量个数或矢量量化次数,并根据该矢量个数或矢量量化次数,获知该矢量量化开关标识之后的几个码字指示信息为一个变换系数矩阵对应的第一指示信息。
在第二种可能的情况中,每个变换系数矩阵对应的至少一个码字指示信息中可能既包含第一指示信息同时还包含第二指示信息,在这种情况下,每个变换系数矩阵对应的至少一个码字指示信息也可以对应有矢量个数或矢量化次数。此时,在一种可能的实现方式中,视频解码设备和视频编码设备可以事先约定每个矢量量化开关标识后的前a个均为第一指示信息,其中,a即为该矢量个数或矢量量化次数。在此基础上,视频解码设备在检测到矢量量化开关标识为开启标识之后,获取该开启标识后的前a个码字指示信息,此时,该前a个码字指示信息均为第一指示信息。之后,视频解码设备可以采用前述介绍的获取码书的方式,获取前a个第一指示信息对应的码书,进而从获取的码书中每个第一指示信息对应的码字。在得到每个第一指示信息对应的码字之后,如果还未检测到下一个矢量量化开关标识,则说明剩余的码字指示信息为第二指示信息,此时,视频解码设备可以基于非矢量量化的其他量化方法对剩余的第二指示信息进行反量化,以得到对应的量化结果,直到检测到下一个矢量量化开关标识时,参考上述操作进行处理。
可选地,在上述第二种可能的情况中,在另一种可能的实现方式中,每个变换系数矩阵对应的至少一个码字指示信息不仅对应有矢量个数或矢量化次数,还对应有矢量量化起始位置,该矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。基于此,视频解码设备在检测到矢量量化开关标识为开启标识之后,可以根据该矢量量化起始位置确定从该开启标识之后的第一个码字指示信息开始,第几个码字指示信息为第一指示信息,也即,确定该开启标识之后的第一个第一指示信息在哪里。这样,对于第一个指示信息之前的码字指示信息,视频解码设备基于非矢量量化的其他量化方法对其进行反量化,以得到对应的量化结果。之后,根据矢量个数或矢量量化次数从第一个第一指示信息起获取相应数量的码字指示信息,这些获取的码字指示信息即为第一指示信息,参考前述方法获取这些第一指示信息对应的码书,进而从获取到的码书中获取每个第一指示信息对应的码字。在得到每个第一指示信息对应的码字之后,如果还未检测到下一个矢量量化开关标识,则说明剩余的码字指示信息为第二指示信息,此时,视频解码设备可以基于非矢量量化的其他量化方法对剩余的第二指示信息进行反量化,以得到对应的量化结果,直到检测到下一个矢量量化开关标识时,参考上述操作进行处理。
在得到多个码字指示信息中每个码字指示信息对应的量化结果之后,视频解码设备可以参考前述第一种实现方式中介绍的方法,根据每个量化结果得到反量化重建值,进而根据反量化重建值,生成该目标视频的解码数据,本申请实施例在此不再赘述。
需要说明的是,在上述第一种实现方式和第二种实现方式中,目标视频的视频码流中还可以包含有至少一个矢量维数。
其中,当目标视频的视频码流的多个码字指示信息之前包含一个矢量维数时,视频解码设备在检测到该矢量维数之后,可以获悉该视频码流包含的多个码字指示信息中的第一指示信息对应的码字维数。在目标视频的视频码流不携带码书索引的情况下,视频解码设备也可以通过该矢量维数确定对应的码书,本申请实施例对此不做限定。
当目标视频的视频码流的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息之前对应有一个矢量维数时,视频解码设备在检测到一个矢量维数之后,即可以获知该矢量维数与下一个矢量维数之间的码字指示信息中的第一指示信息对应的码字维数。
当目标视频的视频码流的多个码字指示信息中的每个第一指示信息均绑定有一个矢量维数时,视频解码设备在对每个第一指示信息进行反量化时,即能够通过相应第一指示信息对应的矢量维数获知该第一指示信息对应的码字的码字维数。此时,该矢量维数还能用于指示绑定的码字指示信息为通过矢量量化得到的第一指示信息。
可选地,在本申请实施例中,目标视频的视频码流包含的多个码字指示信息之前还可以包含矢量量化的使能标识,这样,当视频解码设备开始对该目标视频的视频码流进行解码时,通过该使能标识即能够获知该目标视频的视频码流是否支持矢量量化。
在本申请实施例中,目标视频的视频码流中包含有多个码字指示信息,且多个码字指示信息中包含有通过矢量量化得到的第一指示信息,视频解码设备可以根据第一指示信息生成视频码流对应的解码数据,由此可见,本申请实施例提供了一种基于矢量量化的视频解码方法,实现了矢量量化在视频解码中的应用,由于视频解码设备能够对矢量量化得到的视频码流进行解码,因此,视频编码设备也就可以通过矢量量化的方式来生成视频码流,这样,相较于标量量化和网络编码量化,提高了量化性能,进而提升了视频编解码的性能。
接下来,对本申请实施例提供的一种视频编码装置进行介绍。
参见图5,本申请实施例提供了一种视频编码装置500,该装置500包括:
获取模块501,用于获取目标视频对应的多个变换系数矩阵,多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数;
量化模块502,用于对多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,多个码字指示信息中包括第一指示信息,第一指示信息用于指示对待编码系数进行矢量量化时得到的码字;
生成模块503,用于根据多个码字指示信息,生成目标视频的视频码流。
可选地,量化模块502主要用于:
对多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个变换系数矩阵对应的至少一个码字信息,其中,混合量化包括矢量量化和除矢量量化之外的其他量化,每个变换系数矩阵对应的至少一个码字信息包括第一指示信息,第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,量化模块502还用于:
对多个变换系数矩阵中满足矢量量化条件的每个目标变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个目标变换系数矩阵对应的至少一个码字指示信息,其中,混合量化包括矢量量化和除矢量量化之外的其他量化,每个目标变换系数矩阵对应的至少一个码字信息包括第一指示信息,第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
可选地,多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵内包括的全部变换系数。
可选地,矢量量化条件包括变换系数矩阵的行数达到第一行数阈值,或者,变换系数矩阵的列数达到第一列数阈值,或者变换系数矩阵的面积达到第一面积阈值中的至少一种。
可选地,多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中第一区域内的变换系数,第一区域是通过基于扫描区域的系数编码SRCC技术扫描得到的区域。
可选地,矢量量化条件包括变换系数矩阵中的第一区域的行数达到第二行数阈值,或者,变换系数矩阵中的第一区域的列数达到第二列数阈值,或者变换系数矩阵中的第一区域的面积达到第二面积阈值中的至少一种。
可选地,目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,量化模块502还用于:
如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,N为正整数,输入信号矢量的维数等于码字维数,第一变换系数矩阵为多个变换系数矩阵中的任一个,或者,第一变换系数矩阵为多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定N个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的N个第一指示信息作为第一变换系数矩阵对应的至少一个码字指示信息。
可选地,量化模块502还用于:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据第一变换系数矩阵中的部分待编码系数和码字维数,生成M个输入信号矢量,输入信号矢量的维数等于码字维数,第一变换系数矩阵为多个变换系数矩阵中的任一个,或者,第一变换系数矩阵为多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定M个输入信号矢量中每个输入信号矢量对应的第一指示信息,并对第一变换系数矩阵中的剩余待编码系数进行非矢量量化的其他量化,以得到剩余待编码系数对应的第二指示信息;
将确定的第一指示信息和第二指示信息作为第一变换系数矩阵对应的多个码字指示信息。
可选地,量化模块502还用于:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据第一变换系数矩阵中的全部待编码系数和码字维数,生成R个输入信号矢量,输入信号矢量的维数等于码字维数,且R个输入信号矢量中的一个输入信号矢量中包括一个或多个系数填充值,第一变换系数矩阵为多个变换系数矩阵中的任一个,或者,第一变换系数矩阵为多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;
确定R个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的R个第一指示信息作为第一变换系数矩阵对应的至少一个码字指示信息。
可选地,第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,码字索引为一维索引值,或者码字索引为多维索引坐标。
可选地,目标视频的视频码流包括矢量量化的使能标识,矢量量化的使能标识用于指示目标视频的视频码流是否支持矢量量化。
可选地,目标视频的视频码流中包含有至少一个矢量维数,至少一个矢量维数用于指示目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
可选地,目标视频的视频码流中还包括至少一个码书索引,至少一个码书索引用于指示在确定目标视频的视频码流中的各个第一指示信息对应的码字时所采用的码书。
接下来,对本申请实施例提供的一种视频解码装置进行介绍。
参见图6,本申请实施例提供了一种视频编码装置600,该装置600包括:
第一获取模块601,用于获取目标视频的视频码流,目标视频的视频码流包括多个码字指示信息,多个码字指示信息用于指示对目标视频对应的多个变换系数矩阵中的待编码系数进行量化时得到的量化结果,多个码字指示信息中包括第一指示信息,第一指示信息用于指示对待编码系数进行矢量量化时得到的码字,多个变换系数矩阵中的每个变换系数矩阵包括多个待编码系数;
第二获取模块602,用于根据多个码字指示信息,获取目标视频的解码数据。
可选地,多个码字指示信息为多个第一指示信息,第二获取模块602主要用于:
获取多个第一指示信息中每个第一指示信息对应的码字;
根据获取到的多个码字,生成目标视频的解码数据。
可选地,第二获取模块602主要用于:
将多个码字作为反量化重建值,或者,对多个码字进行处理,得到反量化重建值;
根据反量化重建值生成所述目标视频的解码数据。
可选地,多个码字指示信息包括多个第一指示信息和多个第二指示信息,第二指示信息用于指示通过非矢量量化的其他量化得到的量化结果;第二获取模块602还主要用于:
获取多个第一指示信息中每个第一指示信息对应的码字,以及获取多个第二指示信息中每个第二指示信息对应的量化结果;
根据获取到的多个码字和每个第二指示信息对应的量化结果,生成目标视频的解码数据。
可选地,第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息。
可选地,目标视频的视频码流中还包括至少一个码书索引,至少一个码书索引用于指示在确定多个码字指示信息中的各个第一指示信息对应的码字时所采用的码书。
可选地,目标视频的视频码流还包括矢量量化的使能标识,矢量量化的使能标识用于指示目标视频的视频码流是否支持矢量量化。
可选地,目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
可选地,目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,矢量个数或矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
可选地,每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
可选地,目标视频的视频码流中包含有至少一个矢量维数,至少一个矢量维数用于指示目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
综上所述,在本申请实施例中,可以采用矢量量化的方法对多个变换系数矩阵中的待编码系数进行量化,以得到对应的第一指示信息,进而根据包含有第一指示信息的多个码字指示信息生成目标视频的视频码流。后续,解码端就能够根据第一指示信息对矢量量化的系数进行解码。由此可见,本申请实施例提供了一种基于矢量量化的视频编解码方法,实现了矢量量化在视频编解码中的应用,相较于标量量化和网络编码量化,提高了量化性能,进而提升了视频编解码的性能。
需要说明的是,上述实施例提供的视频编码、视频解码装置在视频编码、视频解码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频编码、视频解码装置与视频编码、视频解码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7是根据一示例性实施例示出的一种的服务器结构示意图。上述实施例中的视频编码或者视频解码服务器的功能即可以通过图7中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器700包括中央处理单元(Central Processing Unit,CPU)701、包括随机存取存储器(Random Access Memory,RAM)702和只读存储器(Read-Only Memory,ROM)703的系统存储器704,以及连接系统存储器704和中央处理单元701的系统总线705。服务器700还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output,I/O系统)706,和用于存储操作系统713、应用程序714和其他程序模块715的大容量存储设备707。
基本输入/输出系统706包括有用于显示信息的显示器708和用于用户输入信息的诸如鼠标、键盘之类的输入设备709。其中显示器708和输入设备709都通过连接到系统总线705的输入输出控制器710连接到中央处理单元701。基本输入/输出系统706还可以包括输入输出控制器710以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器710还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备707通过连接到系统总线705的大容量存储控制器(未示出)连接到中央处理单元701。大容量存储设备707及其相关联的计算机可读介质为服务器700提供非易失性存储。也就是说,大容量存储设备707可以包括诸如硬盘或者CD-ROM(CompactDisc Read-Only Memory,紧凑型光盘只读储存器)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,带电可擦可编程只读存储器)、闪存或其他固态存储设备,CD-ROM、DVD(Digital Versatile Disc,数字通用光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器704和大容量存储设备707可以统称为存储器。
根据本申请的各种实施例,服务器700还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器700可以通过连接在系统总线705上的网络接口单元711连接到网络712,或者说,也可以使用网络接口单元711来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的视频编码、视频解码方法的指令。
本申请实施例还提供了一种计算机可读存储介质,当该存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述实施例提供的视频编码、视频解码方法。例如,该计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。值得注意的是,本申请实施例提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。所述计算机指令可以存储在上述计算机可读存储介质中。
也即是,在一些实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的视频编码或视频解码方法。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (30)
1.一种视频编码方法,其特征在于,所述方法包括:
获取目标视频对应的多个变换系数矩阵,所述多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数;
对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,所述多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字;
根据所述多个码字指示信息,生成所述目标视频的视频码流;
所述对所述多个变换系数矩阵中的待编码系数进行量化,包括:
如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据所述第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,所述N为正整数,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;确定所述N个输入信号矢量中每个输入信号矢量对应的第一指示信息;将确定的N个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,包括:
对所述多个变换系数矩阵中的每个变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个变换系数矩阵对应的至少一个码字信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
3.根据权利要求1所述的方法,其特征在于,所述对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,包括:
对所述多个变换系数矩阵中满足矢量量化条件的每个目标变换系数矩阵中的多个待编码系数进行矢量量化或混合量化,得到每个目标变换系数矩阵对应的至少一个码字指示信息,其中,所述混合量化包括矢量量化和除矢量量化之外的其他量化,每个目标变换系数矩阵对应的至少一个码字信息包括所述第一指示信息,所述第一指示信息用于指示对相应变换系数矩阵中的全部或部分待编码系数进行矢量量化的过程中得到的码字。
4.根据权利要求3所述的方法,其特征在于,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵内包括的全部变换系数。
5.根据权利要求4所述的方法,其特征在于,所述矢量量化条件包括变换系数矩阵的行数达到第一行数阈值,或者,变换系数矩阵的列数达到第一列数阈值,或者变换系数矩阵的面积达到第一面积阈值中的至少一种。
6.根据权利要求3所述的方法,其特征在于,所述多个变换系数矩阵中的每个变换系数矩阵中包括的多个待编码系数为相应变换系数矩阵中第一区域内的变换系数,所述第一区域是通过基于扫描区域的系数编码SRCC技术扫描得到的区域。
7.根据权利要求6所述的方法,其特征在于,所述矢量量化条件包括变换系数矩阵中的第一区域的行数达到第二行数阈值,或者,变换系数矩阵中的第一区域的列数达到第二列数阈值,或者变换系数矩阵中的第一区域的面积达到第二面积阈值中的至少一种。
8.根据权利要求3所述的方法,其特征在于,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
9.根据权利要求2或3所述的方法,其特征在于,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
10.根据权利要求9所述的方法,其特征在于,所述目标视频的视频码流中每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
11.根据权利要求1所述的方法,其特征在于,所述对所述多个变换系数矩阵中的待编码系数进行量化,还包括:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的部分待编码系数和所述码字维数,生成M个输入信号矢量,所述输入信号矢量的维数等于所述码字维数;
确定所述M个输入信号矢量中每个输入信号矢量对应的第一指示信息,并对所述第一变换系数矩阵中的剩余待编码系数进行非矢量量化的其他量化,以得到剩余待编码系数对应的第二指示信息;
将确定的第一指示信息和第二指示信息作为所述第一变换系数矩阵对应的多个码字指示信息。
12.根据权利要求1所述的方法,其特征在于,所述对多个变换系数矩阵中的待编码系数进行量化,还包括:
如果第一变换系数矩阵中的待编码系数的个数不为码字维数的整数倍,则根据所述第一变换系数矩阵中的全部待编码系数和所述码字维数,生成R个输入信号矢量,所述输入信号矢量的维数等于所述码字维数,且所述R个输入信号矢量中的一个输入信号矢量中包括一个或多个系数填充值;
确定所述R个输入信号矢量中每个输入信号矢量对应的第一指示信息;
将确定的R个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
13.根据权利要求1所述的方法,其特征在于,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息,所述码字索引为一维索引值,或者所述码字索引为多维索引坐标。
14.根据权利要求1所述的方法,其特征在于,所述目标视频的视频码流包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
15.根据权利要求1所述的方法,其特征在于,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
16.根据权利要求1所述的方法,其特征在于,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述目标视频的视频码流中的各个第一指示信息对应的码字时所采用的码书。
17.一种视频解码方法,其特征在于,所述方法包括:
获取目标视频的视频码流,所述目标视频的视频码流包括多个码字指示信息,所述多个码字指示信息用于指示对目标视频对应的多个变换系数矩阵中的待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括多个第一指示信息和多个第二指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字,所述第二指示信息用于指示通过非矢量量化的其他量化得到的量化结果,所述多个变换系数矩阵中的每个变换系数矩阵包括多个待编码系数;
根据所述多个码字指示信息,获取所述目标视频的解码数据;
所述根据所述多个码字指示信息,获取所述目标视频的解码数据,包括:
获取所述多个第一指示信息中每个第一指示信息对应的码字,以及获取所述多个第二指示信息中每个第二指示信息对应的量化结果;
根据获取到的多个码字和每个第二指示信息对应的量化结果,生成所述目标视频的解码数据。
18.根据权利要求17所述的方法,其特征在于,所述多个码字指示信息为多个第一指示信息,所述根据所述多个码字指示信息,获取所述目标视频的解码数据,包括:
获取所述多个第一指示信息中每个第一指示信息对应的码字;
根据获取到的多个码字,生成所述目标视频的解码数据。
19.根据权利要求18所述的方法,其特征在于,所述根据获取到的多个码字,生成所述目标视频的解码数据,包括:
将所述多个码字作为反量化重建值,或者,对所述多个码字进行处理,得到反量化重建值;
根据所述反量化重建值生成所述目标视频的解码数据。
20.根据权利要求17-19任一所述的方法,其特征在于,所述第一指示信息为码字索引、码字索引指示信息或码字包含的码字分量的指示信息,所述码字索引为一维索引值,或者所述码字索引为多维索引坐标。
21.根据权利要求17所述的方法,其特征在于,所述目标视频的视频码流中还包括至少一个码书索引,所述至少一个码书索引用于指示在确定所述多个码字指示信息中的各个第一指示信息对应的码字时所采用的码书。
22.根据权利要求17所述的方法,其特征在于,所述目标视频的视频码流还包括矢量量化的使能标识,所述矢量量化的使能标识用于指示所述目标视频的视频码流是否支持矢量量化。
23.根据权利要求17、19或22所述的方法,其特征在于,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量量化开关标识,所述矢量量化开关标识用于指示对应的至少一个码字信息中是否包含有通过矢量量化得到的第一指示信息。
24.根据权利要求17所述的方法,其特征在于,所述目标视频的视频码流包括的多个码字指示信息中每个变换系数矩阵对应的至少一个码字指示信息对应有矢量个数或矢量量化次数,所述矢量个数或所述矢量量化次数用于指示对应的至少一个码字指示信息中包含的第一指示信息的个数。
25.根据权利要求24所述的方法,其特征在于,每个变换系数矩阵对应的至少一个码字指示信息还对应有矢量量化起始位置,所述矢量量化起始位置用于指示对应的至少一个码字指示信息中的第一个第一指示信息的位置。
26.根据权利要求17所述的方法,其特征在于,所述目标视频的视频码流中包含有至少一个矢量维数,所述至少一个矢量维数用于指示所述目标视频的视频码流中的各个第一指示信息所指示的码字的维数。
27.一种视频编码装置,其特征在于,所述装置包括:
获取模块,用于获取目标视频对应的多个变换系数矩阵,所述多个变换系数矩阵中的每个变换系数矩阵中包括多个待编码系数;
量化模块,用于对所述多个变换系数矩阵中的待编码系数进行量化,得到多个码字指示信息,所述多个码字指示信息用于指示对待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括第一指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字;
生成模块,用于根据所述多个码字指示信息,生成所述目标视频的视频码流;
所述量化模块,用于如果第一变换系数矩阵中的待编码系数的个数为码字维数的N倍,则根据所述第一变换系数矩阵中的全部待编码系数生成N个输入信号矢量,所述N为正整数,所述输入信号矢量的维数等于所述码字维数,所述第一变换系数矩阵为所述多个变换系数矩阵中的任一个,或者,所述第一变换系数矩阵为所述多个变换系数矩阵中满足矢量量化条件的变换系数矩阵;确定所述N个输入信号矢量中每个输入信号矢量对应的第一指示信息;将确定的N个第一指示信息作为所述第一变换系数矩阵对应的至少一个码字指示信息。
28.一种视频解码装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标视频的视频码流,所述目标视频的视频码流包括多个码字指示信息,所述多个码字指示信息用于指示对目标视频对应的多个变换系数矩阵中的待编码系数进行量化时得到的量化结果,所述多个码字指示信息中包括多个第一指示信息和多个第二指示信息,所述第一指示信息用于指示对待编码系数进行矢量量化时得到的码字,所述第二指示信息用于指示通过非矢量量化的其他量化得到的量化结果,所述多个变换系数矩阵中的每个变换系数矩阵包括多个待编码系数;
第二获取模块,用于根据所述多个码字指示信息,获取所述目标视频的解码数据;
所述第二获取模块,用于获取所述多个第一指示信息中每个第一指示信息对应的码字,以及获取所述多个第二指示信息中每个第二指示信息对应的量化结果;根据获取到的多个码字和每个第二指示信息对应的量化结果,生成所述目标视频的解码数据。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被计算机执行时实现权利要求1-16任一所述的视频编码方法。
30.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被计算机执行时实现权利要求17-26任一所述的视频解码方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110735696.2A CN113473154B (zh) | 2021-06-30 | 2021-06-30 | 视频编码、视频解码方法、装置及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110735696.2A CN113473154B (zh) | 2021-06-30 | 2021-06-30 | 视频编码、视频解码方法、装置及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN113473154A CN113473154A (zh) | 2021-10-01 |
| CN113473154B true CN113473154B (zh) | 2022-11-22 |
Family
ID=77876393
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202110735696.2A Active CN113473154B (zh) | 2021-06-30 | 2021-06-30 | 视频编码、视频解码方法、装置及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN113473154B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117416369A (zh) * | 2023-11-30 | 2024-01-19 | 广州市启宏普浩企业管理服务有限公司 | 一种驾驶异常行为告警方法及系统 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR0178195B1 (ko) * | 1995-03-28 | 1999-05-01 | 배순훈 | 벡터 양자화 방식을 이용한 영상 신호 부호화 장치 |
| CN101430881B (zh) * | 2008-11-10 | 2013-04-17 | 华为技术有限公司 | 一种编码、解码、编解码方法、编解码系统以及相关装置 |
| CN103546759A (zh) * | 2013-10-29 | 2014-01-29 | 沈阳工业大学 | 一种基于小波包和矢量量化相结合的图像压缩编码方法 |
| CN104661035B (zh) * | 2015-02-11 | 2018-05-29 | 北京大学 | 视频局部特征描述子的压缩方法、系统及视频压缩方法 |
-
2021
- 2021-06-30 CN CN202110735696.2A patent/CN113473154B/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN113473154A (zh) | 2021-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12256089B2 (en) | Coded-block-flag coding and derivation | |
| TWI520619B (zh) | 用於在視訊寫碼中之參考索引寫碼的旁路位元子 | |
| US11949868B2 (en) | Method and device for selecting context model of quantization coefficient end flag bit | |
| WO2018103568A1 (zh) | 云桌面内容编码与解码方法及装置、系统 | |
| CN106797472A (zh) | 编码数字图像的方法和相关解码方法、装置及计算机程序 | |
| RU2008142358A (ru) | Способ и система для кодирования и декодирования информации, связанные с сжатием видеосигнала | |
| US20110033126A1 (en) | Method for improving the performance of embedded graphics coding | |
| US11606557B2 (en) | Method and apparatus for performing low complexity computation in transform kernel for video compression | |
| CN121262374A (zh) | 选择对残差块进行编码/解码的编码模式的方法和装置 | |
| EP3507799A1 (en) | Quantizer with index coding and bit scheduling | |
| WO2013159705A1 (zh) | 编解码方法、视频序列码流的编解码方法及其对应的装置 | |
| CN110710208A (zh) | 嵌入关于eob位置的信息 | |
| KR20110043684A (ko) | 디지털 신호의 압축 또는 압축해제를 위한 방법, 시스템 및 장치 | |
| CN121942197A (zh) | 用于可视数据处理的方法、装置和介质 | |
| CN113473154B (zh) | 视频编码、视频解码方法、装置及存储介质 | |
| US20210021871A1 (en) | Method and apparatus for performing low-complexity operation of transform kernel for video compression | |
| CN104519368A (zh) | 图像编码、解码重构处理方法及装置 | |
| EP3190793A1 (en) | Method for re-encoding image and apparatus therefor | |
| CN116668691A (zh) | 一种图片压缩传输方法、装置及终端设备 | |
| CN113141505B (zh) | 一种视频数据编码方法以及装置 | |
| US20250330591A1 (en) | Intra prediction method and apparatus, video encoding method and apparatus, video decoding method and apparatus, and system | |
| CN104661035B (zh) | 视频局部特征描述子的压缩方法、系统及视频压缩方法 | |
| CN113840144A (zh) | 图像分量的预测方法、编码器、解码器及计算机存储介质 | |
| CN116600123B (zh) | 视频编码方法及装置、视频解码方法及装置、电子设备 | |
| WO2025153016A1 (en) | Method, apparatus, and medium for visual data processing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| TR01 | Transfer of patent right | ||
| TR01 | Transfer of patent right |
Effective date of registration: 20260130 Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd. Country or region after: China Address before: Hangzhou City, Zhejiang province 310051 Binjiang District Qianmo Road No. 555 Patentee before: Hangzhou Hikvision Digital Technology Co.,Ltd. Country or region before: China |