CN116600116B - 编码方法、装置、计算机设备和存储介质 - Google Patents

编码方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116600116B
CN116600116B CN202210832135.9A CN202210832135A CN116600116B CN 116600116 B CN116600116 B CN 116600116B CN 202210832135 A CN202210832135 A CN 202210832135A CN 116600116 B CN116600116 B CN 116600116B
Authority
CN
China
Prior art keywords
pixel
prediction unit
reference block
prediction
matrix
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
Application number
CN202210832135.9A
Other languages
English (en)
Other versions
CN116600116A (zh
Inventor
朱传传
王伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Granfield Intelligent Technology Wuhan Co ltd
Original Assignee
Granfield Intelligent Technology Wuhan Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Granfield Intelligent Technology Wuhan Co ltd filed Critical Granfield Intelligent Technology Wuhan Co ltd
Priority to CN202210832135.9A priority Critical patent/CN116600116B/zh
Publication of CN116600116A publication Critical patent/CN116600116A/zh
Application granted granted Critical
Publication of CN116600116B publication Critical patent/CN116600116B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及一种编码方法、装置、计算机设备和存储介质。该方法包括:将当前视频帧划分为多个编码单元后,获取当前预测模式下每个编码单元的残差矩阵,该残差矩阵中扩边像素对应的残差为0;最后根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。由于本申请实施例中将扩边像素对应的残差设为0,基于残差矩阵得到的编码系数矩阵中0的数量增加,使得对编码系数矩阵进行编码时消耗的码率降低,从而降低了整个视频帧的码率。

Description

编码方法、装置、计算机设备和存储介质
技术领域
本申请涉及编码领域,特别是涉及一种编码方法、装置、计算机设备和存储介质。
背景技术
常见的视频编码标准有H.261、H.263、H.264以及高效率视频编码(HighEfficiency Video Coding,简称HEVC)。对于非8像素对齐的图像或者非16像素对齐的图像,不同的视频编码标准的编码器有不同的处理方式,例如H.264只支持16像素对齐的图像,如果图像是非16像素对齐的,H.264编码器会先将图像扩边成16像素对齐的图像,再对图像进行编码。再如,HEVC支持8像素对齐的图像,如果图像是非8像素对齐的,HEVC编码器会先将图像扩边成8像素对齐的图像,再对图像进行编码。
现有技术中,编码器对图像进行扩边处理后,按照正常的编码流程对扩边像素进行编码。但是在显示图像时,往往是按照图像的真实分辨率来显示的,扩边像素是不需要被显示出来的,导致扩边像素的编码消耗了较高的码率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低码率的编码方法、装置、计算机设备和存储介质。
一方面,本申请提供一种编码方法,包括:
将当前视频帧划分为多个编码单元;获取当前预测模式下每个编码单元的残差矩阵,所述残差矩阵中扩边像素对应的残差为0;根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。
在一些实施例中,所述获取当前预测模式下每个编码单元的残差矩阵,包括:将每个编码单元划分为多预测单元;针对每个预测单元,获取当前预测模式下与所述预测单元相关性最高的最优参考块;使用所述预测单元上每个位置上的像素值减去所述最优参考块上对应位置上的像素值,得到所述预测单元的残差矩阵;将所述预测单元的残差矩阵中扩边像素对应的残差设为0,得到所述预测单元的更新后的残差矩阵;根据每个预测单元的更新后的残差矩阵,得到对应编码单元的残差矩阵。
在一些实施例中,所述当前预测模式为帧间预测,所述预测单元包括原始像素和扩边像素;所述获取当前预测模式下与所述预测单元相关性最高的最优参考块,包括:在参考帧上确定多个参考块;针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
在一些实施例中,所述根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和,包括:采用如下公式计算所述预测单元和所述参考块的之间的绝对误差和:
其中,SAD为所述预测单元和所述参考块的之间的绝对误差和,a为所述预测单元上原始像素的行数减一,b为所述预测单元上原始像素的列数减一,PU(i,j)为所述预测单元上原始像素的像素值,RB(i,j)为所述参考块上对应像素的像素值。
在一些实施例中,所述当前预测模式为帧内预测,所述预测单元包括原始像素和扩边像素;所述获取当前预测模式下与所述预测单元相关性最高的最优参考块,包括:根据所述预测单元的上方参考像素、所述预测单元的左方参考像素以及多种帧内预测模式,确定多个参考块;针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
在一些实施例中,所述根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流,包括:将每个编码单元划分为多个变换单元;对每个变换单元的残差矩阵进行变换和量化,得到每个变换单元的编码系数矩阵;根据每个变换单元的编码系数矩阵,获取所述当前视频帧对应的码流。
另一方面,本申请提供一种编码装置,所述装置包括:划分模块,用于将当前视频帧划分为多个编码单元;获取模块,用于获取当前预测模式下每个编码单元的残差矩阵,所述残差矩阵中扩边像素对应的残差为0;所述获取模块,还用于根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。
另一方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的方法。
另一方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面提供的方法。
本申请实施例提供的编码方法、装置、计算机设备和存储介质,将当前视频帧划分为多个编码单元后,获取当前预测模式下每个编码单元的残差矩阵,该残差矩阵中扩边像素对应的残差为0;最后根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。由于本申请实施例中将扩边像素对应的残差设为0,基于残差矩阵得到的编码系数矩阵中0的数量增加,使得对编码系数矩阵进行编码时消耗的码率降低,从而降低了整个视频帧的码率。
附图说明
图1为一个实施例中编码方法的流程示意图;
图2为一个实施例中编码器框架图;
图3为一个实施例中帧间预测情况下确定最优参考块的流程示意图;
图4为一个实施例中帧间预测情况下当前PU和参考块的示意图;
图5为一个实施例中帧内预测情况下确定最优参考块的流程示意图;
图6为一个实施例中空域参考像素的示意图;
图7为一个实施例中垂直预测示意图;
图8为一个实施例中水平预测示意图;
图9为一个实施例中PU的残差矩阵示意图;
图10为一个实施例中PU的更新后的残差矩阵示意图;
图11为一个实施例中TU的示意图;
图12为一个实施例中光栅扫描顺序示意图;
图13为一个实施例中多个Y分量切片的存储顺序示意图;
图14为一个实施例中Y分量切片内部像素存储顺序示意图;
图15为一个实施例中UV分量切片内部像素存储顺序示意图;
图16为一个实施例中Y分量切片和UV分量切片的存储顺序示意图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
常见的视频编码标准有H.261、H.263、H.264以及高效率视频编码(HighEfficiency Video Coding,简称HEVC)。视频本质上是图像序列,对视频进行编码实则是对每张图像进行编码。本申请实施例提供的编码方法针对的是非8像素对齐的图像或者非16像素对齐的图像,首先,对非8像素对齐的图像和非16像素对齐的图像的含义进行解释:若某个图像宽度和高度均为8的倍数,则认为该图像为8像素对齐的图像,若某个图像的宽度或者高度不是8的倍数,则认为该图像为非8像素对齐的图像,同样的,若某个图像的宽度和高度均为16的倍数,则认为该图像为16像素对齐的图像,若某个图像的宽度或者高度不是16的倍数,则认为该图像为非16像素对齐的图像。需要说明的是:这里提到的图像的宽度指的是图像一行像素的个数,图像的高度指的是图像一列像素的个数。
对于非8像素对齐的图像或者非16像素对齐的图像,不同的视频编码标准的编码器有不同的处理方式,例如H.264只支持16像素对齐的图像,如果图像是非16像素对齐的,H.264编码器会先将图像扩边成16像素对齐的图像,再对图像进行编码。再如,HEVC支持8像素对齐的图像,如果图像是非8像素对齐的,HEVC编码器会先将图像扩边成8像素对齐的图像,再对图像进行编码。
编码器对图像进行扩边处理后,图像上的像素分为两种,一种为原始像素,一种为扩边像素。例如,编码器将宽度为m的图像扩边为宽度为n,n>m,那么图像上[0,m-1]列对应的像素为原始像素,[m,n-1]列对应的像素为扩边像素。
在一些实施例中,编码器对图像进行扩边处理后,按照正常的编码流程对扩边像素进行编码。但是在显示图像时,往往是按照图像的真实分辨率来显示的,扩边像素是不需要被显示出来的,例如:一个分辨率为324×124的图像,H.264编码器会先将该图像扩边为336×128,以使图像变为16像素对齐,然后再对图像进行编码;而HEVC编码器会先将该图像扩边为328×128,以使图像变为8像素对齐,然后再对图像进行编码。但是最终在显示该图像时,依然是按照324×124来进行显示的。由于扩边像素是不需要被显示出来的,若按照正常的编码流程对扩边像素进行编码,消耗的码率较高。
为此,本申请实施例提出一种编码方法,考虑到编码过程中,对编码系数矩阵的编码最消耗码率,由于编码系数为0时,对其进行编码只需要消耗1bit,因此,编码系数矩阵中0越多,对编码系数矩阵的编码消耗的码率就越低,而编码系数矩阵是基于残差矩阵得到的,因此残差矩阵中0越多,编码系数矩阵中0就越多,如上文所描述,由于扩边像素是不需要被显示出来的,可将扩边像素对应的残差设为0,这样扩边像素对应的编码系数就更倾向于为0,扩边像素消耗的码率更倾向于降低,整个图像消耗的码率也因此更倾向于降低。
本申请实施例提供的编码方法可以由编码器执行,编码器可以为以下设备内的软件或者硬件:桌上型计算机、移动计算装置、笔记型计算机、平板计算机、机顶盒、电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、无线通信设备或其类似者。下面结合具体实施例详细说明上述编码方法。
在一个实施例中,如图1所示,提供了一种编码方法,包括以下步骤:
S102、将当前视频帧划分为N个编码单元。
示例性的,图2为编码器的典型框架图,该框架图的详细原理可参见现有技术的介绍。在此仅对本申请实施例涉及到的内容作简要介绍。如上文所描述,视频本质上是图像序列,对视频进行编码实则是对每张图像进行编码。为方便说明,可将当前要编码的图像称为当前视频帧。
在对当前视频帧进行编码时,先将当前视频帧划分为N个编码单元。例如:H.264编码器会将图像划分为若干个16×16像素大小的块,称之为宏块(MacroBlock,简称为MB),然后再对每个MB进行编码,在编码过程中,每个MB还可以被划分为更小的块(Block)。再如,HEVC编码器会将图像划分为若干个16×16或32×32或64×64像素大小的块,称之为编码树单元(Coding Tree Unit,简称CTU),然后再对每个CTU进行编码,在编码过程中还可以将CTU划分为更小的编码单元(Coding Unit,简称CU),每个CU还可以划分为更小的预测单元(Predicting Unit,简称PU)。对于变换,H.264编码器的变换块大小固定为4×4或8×8,而HEVC编码器会将一个CU划分为若干个TU。虽然,H.264编码器没有CU、PU、TU的概念,但是为了统一描述,本申请实施例中,将MB类比于CTU,将Block类比于CU,将Block的进一步划分类比于PU,将4x4或者8x8变换块类比于TU。S102提到的编码单元可以理解为H.264编码器划分标准中的Block,或者HEVC编码器划分标准中的CU,本申请实施例以CU为例进行说明。
S104、获取当前预测模式下每个编码单元的残差矩阵,该残差矩阵中扩边像素对应的残差为0。
可选的,可将每个编码单元划分为多个预测单元,针对每个预测单元,获取当前预测模式下与该预测单元相关性最高的最优参考块;使用该预测单元上每个位置上的像素值减去最优参考块上对应位置上的像素值,得到该预测单元的残差矩阵;将该预测单元的残差矩阵中扩边像素对应的残差设为0,得到该预测单元的更新后的残差矩阵;根据每个预测单元的更新后的残差矩阵,得到对应编码单元的残差矩阵。
示例性,以HEVC编码器为例,HEVC编码器将当前视频帧划分为多个CTU,将每个CTU划分为多个CU,再将每个CU划分为多个PU,针对每个PU,获取当前预测模式下与该PU相关性最高的最优参考块,然后使用该PU上每个位置上的像素值减去最优参考块上对应位置上的像素值,得到该PU的残差矩阵,将该PU的残差矩阵中扩边像素对应的残差设为0,便可得到该PU的更新后的残差矩阵。得到每个PU的更新后的残差矩阵后,对其进行拼接,便可得到对应CU的残差矩阵。
可选的,继续参见图2所示,当前预测模式可以为帧间预测或者帧内预测。选择帧间预测还是帧内预测作为当前预测模式可以由相应的选择模块执行,具体可参见现有技术,本申请实施例对此不再赘述。当前预测模式为帧间预测时,可通过如下方式获取与预测单元相关性最高的最优参考块:可在参考帧上确定多个参考块,针对每个参考块,根据预测单元上原始像素和参考块上与原始像素对应的像素,确定预测单元和参考块的之间的绝对误差和;将多个参考块中绝对误差和最小的参考块作为最优参考块。上述参考帧指的是当前视频帧的时域相邻帧。当前预测模式为帧内预测时,可通过如下方式获取与预测单元相关性最高的最优参考块:根据预测单元的上方参考像素、预测单元的左方参考像素以及多种帧内预测模式,确定多个参考块;同样的,针对每个参考块,根据预测单元上原始像素和参考块上与原始像素对应的像素,确定预测单元和参考块的之间的绝对误差和;将多个参考块中绝对误差和最小的参考块作为最优参考块。帧内预测和帧间预测的区别在于,帧间预测的参考块来自时域相邻帧,帧内预测的参考块上参考像素来自当前视频帧。下文会对这两种预测模式下如何计算绝对误差和的过程进行详细说明。
S106、根据每个编码单元的残差矩阵,获取当前视频帧对应的码流。
可选的,在得到每个编码单元的残差矩阵后,可将每个编码单元划分为多个变换单元;对每个变换单元的残差矩阵进行变换和量化,得到每个变换单元的编码系数矩阵;根据每个变换单元的编码系数矩阵,获取当前视频帧对应的码流。
可选的,参见图2所示,在得到每个变换单元的编码系数矩阵后,可对每个变换单元的编码系数矩阵、划分模式以及预测模式等进行熵编码,得到当前视频帧对应的码流。熵编码的具体实现原理参见现有技术。
本申请实施例提供的编码方法,将当前视频帧划分为多个编码单元后,获取当前预测模式下每个编码单元的残差矩阵,该残差矩阵中扩边像素对应的残差为0;最后根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。由于本申请实施例中将扩边像素对应的残差设为0,基于残差矩阵得到的编码系数矩阵中0的数量增加,使得对编码系数矩阵进行编码时消耗的码率降低,从而降低了整个视频帧的码率。
上文提到,针对每个预测单元,需要获取当前预测模式下与该预测单元相关性最高的最优参考块。在一个实施例中,当前预测模式为帧间预测时,参见图3所示,可通过如下方式获取与预测单元相关性最高的最优参考块:
S301、在参考帧上确定多个参考块。
如上文所描述,帧间预测情况下,参考帧为当前视频帧的时域相邻帧。参见图2所示,参考帧可以为:对前一帧图像的编码系数矩阵进行反量化、反变换、重构残差、重构像素等处理后得到的,该过程可参见现有技术,本申请实施例在此不再赘述。示例性,可通过运动估计的方式在参考帧上确定多个参考块。
S302、针对每个参考块,根据预测单元上原始像素和参考块上与原始像素对应的像素,确定预测单元和该参考块的之间的绝对误差和;将多个参考块中绝对误差和最小的参考块作为与预测单元相关性最高的最优参考块。
可选的,可采用如下公式计算预测单元和参考块的之间的绝对误差和:
其中,SAD为预测单元和参考块的之间的绝对误差和,a为预测单元上原始像素的行数减一,b为预测单元上原始像素的列数减一,PU(i,j)为预测单元上原始像素的像素值,RB(i,j)为参考块上对应像素的像素值。在采用上述公式计算得到所有参考块对应的绝对误差和后,将绝对误差和最小的参考块作为与预测单元相关性最高的最优参考块。
下面举例说明:
参见图4所示,一个小方格表示一个像素,直线L表示图像的边界,边界左边为原始像素,边界右边为扩边像素,当前视频帧中粗黑色方框表示当前PU,其包括8×8个像素,当前PU中每个像素的像素值记为PU(i,j)(0<=i,j<=7)。参考帧中粗黑色方框表示一个参考块(Reference Block,简称RB)。正常情况下,一个PU会有很多参考块,本示例以2个参考块示意,这两个参考块分别为RB0和RB1。RB0中每个像素的像素值记为RB0(i,j)(0<=i,j<=7),RB1中每个像素的像素值记为RB1(i,j)(0<=i,j<=7)。计算当前PU和RB0之间的绝对误差和为:
计算当前PU和RB1之间的绝对误差和为:
比较SAD0和SAD1,将其中最小者对应的参考块作为与当前PU相关性最高的最优参考块。比如,SAD0<=SAD1,则将RB0作为与当前PU相关性最高的最优参考块。
本申请实施例提供了当前预测模式为帧间预测时,如何获取与预测单元相关性最高的最优参考块的详细过程,在该过程中,计算绝对误差和时,只有原始像素参与运算,扩边像素并不参与运算,使得编码器对扩边像素的像素值并不敏感,提升了编码效率。
在一个实施例中,当前预测模式为帧内预测时,参见图5所示,可通过如下方式获取与预测单元相关性最高的最优参考块:
S501、根据预测单元的上方参考像素、预测单元的左方参考像素以及多种帧内预测模式,确定多个参考块。
下面举例说明:
参见图6所示,一个小方格表示一个像素,直线L表示图像边界,边界左边为原始像素,直线L右边为扩边像素。粗黑色方框表示当前PU,其包括8×8个像素,当前PU中每个像素的像素值记为PU(i,j)(0<=i,j<=7)。有圆点填充的像素为当前PU的空域相邻像素,用来计算当前PU的参考块。
可选的,帧内预测模式有很多种,本申请实施例中介绍最简单的两种:垂直预测和水平预测。示例性的,参见图7和图8所示,图7为垂直预测,图8为水平预测。图7和图8中,TPi(0<=i<=7)表示当前PU的上方参考像素,TLi(0<=i<=7)表示当前PU的左方参考像素,TLP表示当前PU的左上方参考像素。垂直预测的情况下,当前PU的参考块(用RB0表示)的第i列像素的像素值均等于TPi的像素值,比如:RB0的第1列像素的像素值均等于TP1的像素值,RB0的第2列像素的像素值均等于TP2的像素值,以此类推。水平预测的情况下,当前PU的参考块(用RB1表示)的第i行像素的像素值均等于TLi的像素值,比如:RB1的第1行像素的像素值均等于TL1的像素值,RB1的第2行像素的像素值均等于TL2的像素值,以此类推。
S502、针对每个参考块,根据预测单元上原始像素和参考块上与原始像素对应的像素,确定预测单元和参考块的之间的绝对误差和;将多个参考块中绝对误差和最小的参考块作为最优参考块。
在得到RB0和RB1后,和帧间预测类似,只将原始像素部分参与绝对误差和的计算,具体计算公式参见上文,这样,使得最终选择哪个参考块作为最优参考块,完全取决于原始像素,而不受扩边像素的影响。
本申请实施例提供了当前预测模式为帧内预测时,如何获取与预测单元相关性最高的最优参考块的详细过程,在该过程中,计算绝对误差和时,只有原始像素参与运算,扩边像素并不参与运算,使得编码器对扩边像素的像素值并不敏感,提升了编码效率。
无论是帧间预测还是帧内预测,在确定最优参考块后,使用预测单元上每个位置上的像素值减去最优参考块上对应位置上的像素值,便可得到预测单元的残差矩阵,示例性的,假设当前预测模式为帧间预测,通过上述公式得到RB0为最优参考块,继续参见图4所示,使用当前PU上每个位置上的像素值减去最优参考块上对应位置上的像素值,得到的残差矩阵如图9所示,图9中虚线为图像边界,如上文所描述,由于扩边像素不需要被显示出来,可将扩边像素对应的残差设为0,如图10所示,图10为当前PU更新后的残差矩阵。
在一个实施例中,得到每个PU的更新后的残差矩阵后,对其进行拼接,便可得到整个CU的残差矩阵,再将CU划分为一个或多个TU,对每个TU的残差矩阵进行变化和量化,便可得到每个TU的编码系数矩阵。对于图10的示例,假设将CU只划分成了1个PU,那个该CU的大小也为8×8,如果将该CU只划分成了1个TU,那么,对于更新后的残差矩阵,由于值为0的残差更多了,经过变换和量化后的编码系数矩阵中0也更多,降低了对编码系数矩阵进行编码时消耗的码率。再假设,将CU只划分成了1个PU,那个该CU的大小也为8×8,如果将该CU划分成4个4×4TU,那么,对于更新后的残差矩阵,参见图11所示,右边2个4×4TU经过变换和量化后,变为全0的编码系数矩阵,所以这两个TU分别只需要1bit编码即可,大大降低了码率消耗。
由于编码器在编码过程中需要频繁从内存中读取图像上各个像素的像素值,并将重构的像素值写入内存,因此寻找一种能够提高编码器读写效率的像素存储方法,尤为重要。
在一些实施例中,可按照光栅扫描顺序存储各个像素的像素值。示例性的,参见图12所示,一个小方格表示一个像素,(x,y)表示像素在图像中的横坐标和纵坐标。左边126×128个像素为原始像素,由于图像的宽度为126,并非16的整数倍,需要将其扩边至宽度为128,图12中右边2×128个像素为扩边像素。在存储图12所示图像时,按照图12中黑色箭头示意的顺序依次存储像素值。然而,这种存储方式对读取像素值不利,如上文所描述,编码器在编码过程中,是以最大编码单元为单位进行编码的,例如H.264编码器划分的最大编码单元为MB,MB为16×16像素块,HEVC编码器划分的最大编码单元为64×64像素块,如果按照图12示意的方式存储,16×16像素块的地址在内存中是不连续的,导致读取16×16像素块要换行16次,读取效率较低。
为此,本申请实施例提供另一种存储方法。每个像素有Y分量、U分量和V分量。由于,Y分量、U分量和V分量的编码过程可以并行进行,因此,可将Y分量、U分量和V分量分开存储。
可选的,对于Y分量,可将待处理图像划分为若干个m×m个像素块,每个像素块包括n×n个像素,由于,每个像素有Y分量,因此每个像素块包括n×n个Y分量,本申请实施例中将该n×n个Y分量称为一个Y分量切片,参见图13所示,可将m×m个Y分量切片按照线性顺序进行存储,对于每个Y分量切片中的n×n个Y分量,可按照Zig-Zag顺序进行存储。
下面举例说明:
假设,待存储图像包括m×m个像素块,每个像素块包括128×128个像素,由于,每个像素有Y分量,因此每个像素块包括128×128个Y分量,图14为该128×128个Y分量存储顺序示意图,其中,最小的正方形0,1,2,3代表像素,图14中箭头示意的顺序称为Zig-Zag顺序。
当YUV采样格式为YUV420为例,每四个Y共用一组UV分量。也就是说,对于一个n×n的像素块,需要存储每个像素的Y分量,即需要存储n×n个Y分量,但是由于四个Y共用一组UV分量,只需要存储个U分量和/> 个V分量。YUV420的采样原理参见现有技术,本申请实施例在此不再赘述。为方便说明,下文将需要存储的n×n个Y分量称为n×n的Y像素块,将需要存储的/>个U分量称为/>的U像素块,将需要存储的/>个V分量称为/>的V像素块。将/>的U像素块和/>的V像素块看成一个整体,形成一个个UV像素块。可按照Zig-Zag顺序对需要存储的/>个U分量和需要存储的/>个V分量进行存储。
下面举例说明:
假设,待存储图像包括m×m个像素块,每个像素块包括128×128个像素,需要存储128×128个Y分量、64×64个U分量以及64×64个V分量。将128×128个Y分量称为128×128的Y像素块,将64×64个U分量称为64×64的U像素块,将64×64个V分量称为64×64的V像素块。把64×64的U像素块和64×64的V像素块看成一个整体,形成一个128×64的UV像素块。参见图15所示,可按照箭头示意的顺序对需要存储的64×64个U分量和64×64个V分量进行存储。图15中箭头示意的顺序称为Zig-Zag顺序。
为了统一Y分量切片和UV分量切片的大小,可以把上下相邻的两个UV像素块合并为一个,合并后的UV像素块为一个UV分量切片,合并后Y分量切片和UV分量切片的大小相同,均为128×128。UV像素块的整体高度是Y像素块的整体高度的一半,假设Y像素块的整体高度为H,那么UV像素块的整体高度为H/2。最终Y分量切片和UV分量切片的存储顺序如图16所示。图16中,一个正方形代表一个大小为128×128的切片,前4行中每个方块代表Y分量切片,后2行中每个方框代表UV分量切片。通过使用上述存储方法,可以发现,一个M×M的Y像素块内Y分量都是连续存储的,对应的UV像素块内U分量和V分量也是连续存储的,因此,如果编码器要读取一个M×M的Y像素块以及其对应的UV像素块,只需要分别计算Y分量的内存起始地址和UV分量的的内存起始地址以及要读取的数据的大小即可,无需像图12示意的换行操作,提升了读取效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的编码方法的编码装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个编码装置实施例中的具体限定可以参见上文中对于编码方法的限定,在此不再赘述。
在一个实施例中,提供了一种编码装置,包括:
划分模块,用于将当前视频帧划分为多个编码单元;
获取模块,用于获取当前预测模式下每个编码单元的残差矩阵,所述残差矩阵中扩边像素对应的残差为0;
所述获取模块,还用于根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流。
在一些实施例中,获取模块,具体用于:将每个编码单元划分为多预测单元;针对每个预测单元,获取当前预测模式下与所述预测单元相关性最高的最优参考块;使用所述预测单元上每个位置上的像素值减去所述最优参考块上对应位置上的像素值,得到所述预测单元的残差矩阵;将所述预测单元的残差矩阵中扩边像素对应的残差设为0,得到所述预测单元的更新后的残差矩阵;根据每个预测单元的更新后的残差矩阵,得到对应编码单元的残差矩阵。
在一些实施例中,所述当前预测模式为帧间预测,所述预测单元包括原始像素和扩边像素;获取模块,具体用于:在参考帧上确定多个参考块;针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
在一些实施例中,获取模块,具体用于:采用如下公式计算所述预测单元和所述参考块的之间的绝对误差和:
其中,SAD为所述预测单元和所述参考块的之间的绝对误差和,a为所述预测单元上原始像素的行数减一,b为所述预测单元上原始像素的列数减一,PU(i,j)为所述预测单元上原始像素的像素值,RB(i,j)为所述参考块上对应像素的像素值。
在一些实施例中,所述当前预测模式为帧内预测,所述预测单元包括原始像素和扩边像素;获取模块,具体用于:根据所述预测单元的上方参考像素、所述预测单元的左方参考像素以及多种帧内预测模式,确定多个参考块;针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
在一些实施例中,获取模块,具体用于:将每个编码单元划分为多个变换单元;对每个变换单元的残差矩阵进行变换和量化,得到每个变换单元的编码系数矩阵;根据每个变换单元的编码系数矩阵,获取所述当前视频帧对应的码流。
上述编码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储图像数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种编码方法。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (9)

1.一种编码方法,其特征在于,包括:
将当前视频帧划分为多个编码单元;
获取当前预测模式下每个编码单元的残差矩阵,所述残差矩阵中扩边像素对应的残差为0;
根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流;
所述获取当前预测模式下每个编码单元的残差矩阵,包括:
将每个编码单元划分为多预测单元;
针对每个预测单元,获取当前预测模式下与所述预测单元相关性最高的最优参考块;使用所述预测单元上每个位置上的像素值减去所述最优参考块上对应位置上的像素值,得到所述预测单元的残差矩阵;将所述预测单元的残差矩阵中扩边像素对应的残差设为0,得到所述预测单元的更新后的残差矩阵;根据每个预测单元的更新后的残差矩阵,得到对应编码单元的残差矩阵。
2.根据权利要求1所述的方法,其特征在于,所述当前预测模式为帧间预测,所述预测单元包括原始像素和扩边像素;
所述获取当前预测模式下与所述预测单元相关性最高的最优参考块,包括:
在参考帧上确定多个参考块;
针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和,包括:
采用如下公式计算所述预测单元和所述参考块的之间的绝对误差和:
其中,/>为所述预测单元和所述参考块的之间的绝对误差和,a为所述预测单元上原始像素的行数减一,b为所述预测单元上原始像素的列数减一,/>为所述预测单元上原始像素的像素值,/>为所述参考块上对应像素的像素值。
4.根据权利要求1所述的方法,其特征在于,所述当前预测模式为帧内预测,所述预测单元包括原始像素和扩边像素;
所述获取当前预测模式下与所述预测单元相关性最高的最优参考块,包括:
根据所述预测单元的上方参考像素、所述预测单元的左方参考像素以及多种帧内预测模式,确定多个参考块;
针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流,包括:
将每个编码单元划分为多个变换单元;
对每个变换单元的残差矩阵进行变换和量化,得到每个变换单元的编码系数矩阵;
根据每个变换单元的编码系数矩阵,获取所述当前视频帧对应的码流。
6.一种编码装置,其特征在于,所述装置包括:
划分模块,用于将当前视频帧划分为多个编码单元;
获取模块,用于获取当前预测模式下每个编码单元的残差矩阵,所述残差矩阵中扩边像素对应的残差为0;
所述获取模块,还用于根据每个编码单元的残差矩阵,获取所述当前视频帧对应的码流;
所述获取模块,具体用于将每个编码单元划分为多预测单元;针对每个预测单元,获取当前预测模式下与所述预测单元相关性最高的最优参考块;使用所述预测单元上每个位置上的像素值减去所述最优参考块上对应位置上的像素值,得到所述预测单元的残差矩阵;将所述预测单元的残差矩阵中扩边像素对应的残差设为0,得到所述预测单元的更新后的残差矩阵;根据每个预测单元的更新后的残差矩阵,得到对应编码单元的残差矩阵。
7.根据权利要求6所述的装置,其特征在于,所述当前预测模式为帧间预测,所述预测单元包括原始像素和扩边像素;所述获取模块,具体用于在参考帧上确定多个参考块;针对每个参考块,根据所述预测单元上原始像素和所述参考块上与所述原始像素对应的像素,确定所述预测单元和所述参考块的之间的绝对误差和;将所述多个参考块中绝对误差和最小的参考块作为所述最优参考块。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN202210832135.9A 2022-07-15 2022-07-15 编码方法、装置、计算机设备和存储介质 Active CN116600116B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210832135.9A CN116600116B (zh) 2022-07-15 2022-07-15 编码方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210832135.9A CN116600116B (zh) 2022-07-15 2022-07-15 编码方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN116600116A CN116600116A (zh) 2023-08-15
CN116600116B true CN116600116B (zh) 2024-02-02

Family

ID=87606761

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210832135.9A Active CN116600116B (zh) 2022-07-15 2022-07-15 编码方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN116600116B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110225344A (zh) * 2019-05-22 2019-09-10 上海复瞰科技有限公司 一种适用于hevc标准中的有损压缩方法
CN110958451A (zh) * 2019-11-13 2020-04-03 中移物联网有限公司 一种视频编码方法及电子设备
CN111711818A (zh) * 2020-05-13 2020-09-25 西安电子科技大学 视频图像编码传输方法及其装置
CN111757111A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 视频编码方法、装置、设备和存储介质
CN112702602A (zh) * 2020-12-04 2021-04-23 浙江智慧视频安防创新中心有限公司 一种视频编解码的方法及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110225344A (zh) * 2019-05-22 2019-09-10 上海复瞰科技有限公司 一种适用于hevc标准中的有损压缩方法
CN110958451A (zh) * 2019-11-13 2020-04-03 中移物联网有限公司 一种视频编码方法及电子设备
CN111711818A (zh) * 2020-05-13 2020-09-25 西安电子科技大学 视频图像编码传输方法及其装置
CN111757111A (zh) * 2020-06-29 2020-10-09 北京百度网讯科技有限公司 视频编码方法、装置、设备和存储介质
CN112702602A (zh) * 2020-12-04 2021-04-23 浙江智慧视频安防创新中心有限公司 一种视频编解码的方法及存储介质

Also Published As

Publication number Publication date
CN116600116A (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
AU2015261728B2 (en) Method and apparatus for intra prediction within display screen
JP7483035B2 (ja) ビデオ復号方法並びにその、ビデオ符号化方法、装置、コンピュータデバイス及びコンピュータプログラム
CN108702517B (zh) 使用优化的紧凑多遍变换的高效变换编码
JP6523324B2 (ja) 画像符号化/復号方法及び装置
KR102323406B1 (ko) 최종 유효 계수 플래그들의 코딩
US7346111B2 (en) Co-located motion vector storage
CN111225206B (zh) 视频解码方法和视频解码器
BR112020012643A2 (pt) método para codificação de imagem com base em transformada seletiva e dispositivo para o mesmo
CN112425164A (zh) 多个可分离变换选择的变换变体
CN114615506B (zh) 视频解码方法、计算设备、存储介质
US20240080481A1 (en) Sparse matrix representation using a boundary of non-zero coefficients
KR20230162989A (ko) 멀티미디어 데이터 프로세싱 방법, 장치, 디바이스, 컴퓨터-판독가능 저장 매체, 및 컴퓨터 프로그램 제품
US20220030239A1 (en) Image decoding method, encoding method, devices, terminal equipment and computer programs therefor
CN116584096A (zh) 用于视频译码的根据亮度的色度预测
CN116600116B (zh) 编码方法、装置、计算机设备和存储介质
CN113841397A (zh) 影像编码和解码方法及装置
US11463716B2 (en) Buffers for video coding in palette mode
CN111869211B (zh) 图像编码装置和方法
US20240040125A1 (en) Tracking sample completion in video coding
CN111770338B (zh) 编码单元的索引值确定方法、装置、设备及存储介质
AU2016219670B2 (en) Method and apparatus for intra prediction within display screen

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