CN113784126A - 图像编码方法、装置、设备及存储介质 - Google Patents
图像编码方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113784126A CN113784126A CN202111095305.1A CN202111095305A CN113784126A CN 113784126 A CN113784126 A CN 113784126A CN 202111095305 A CN202111095305 A CN 202111095305A CN 113784126 A CN113784126 A CN 113784126A
- Authority
- CN
- China
- Prior art keywords
- current
- value
- image
- complexity
- determining
- 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.)
- Pending
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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 an image region, e.g. an object
- H04N19/176—Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种图像编码方法、装置、设备及存储介质,该方法包括:获取待编码的当前图像对应的内容复杂度信息,内容复杂度信息包括当前图像所在的视频数据中的起始图像的复杂度信息和当前图像中的当前宏块的复杂度信息中的至少一个;根据内容复杂度信息,确定当前图像对应的内容复杂度值;根据内容复杂度值,确定当前宏块的目标量化参数;根据当前宏块的目标量化参数,对当前宏块进行编码。即本申请在确定当前宏块的目标量化参数时,考虑了起始图像和/或当前宏块的内容复杂度对当前宏块的目标QP的影响,进而提高了当前宏块QP确定的准确性,使得量化操作更加符合图像内容,提升图像编码的整体质量。
Description
技术领域
本申请实施例涉及图像处理领域,更为具体地,涉及一种图像编码方法、装置、设备及存储介质。
背景技术
数字视频技术可以并入多种视频装置中,例如数字电视、智能手机、计算机、电子阅读器或视频播放器等。随着视频技术的发展,视频数据所包括的数据量较大,为了便于视频数据的传输,视频装置执行视频压缩技术,以使视频数据更加有效的传输或存储。
码率控制是在保证视频压缩后所占用比特数一定的情况下使得视频的客观质量最优。而量化参数的大小直接决定视频编码单元的压缩程度,从而控制视频编码后的码率和视频质量。
但是,目前量化参数(Quantization Parameter,QP)的确定过程中,未充分考虑图像内容的影响,导致QP计算准确,图像压缩质量差。
发明内容
本申请实施例提供了一种图像编码方法、装置、设备及存储介质,以提高QP计算准确性,提升图像压缩质量。
第一方面,本申请提供了一种图像编码方法,包括:
获取待编码的当前图像对应的内容复杂度信息,所述内容复杂度信息包括所述当前图像所在的视频数据中的起始图像的复杂度信息和所述当前图像中的当前宏块的复杂度信息中的至少一个;
根据所述内容复杂度信息,确定所述当前图像对应的内容复杂度值;
根据所述内容复杂度值,确定所述当前宏块的目标量化参数;
根据所述当前宏块的目标量化参数,对所述当前宏块进行编码。
第二方面,本申请实施例提供一种图像处理装置,用于执行上述第一方面或其各实现方式中的方法。具体地,该图像处理装置包括用于执行上述第一方面或其各实现方式中的方法的功能单元。
第三方面,提供了一种视频编码器,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,以执行上述第一方面或其各实现方式中的方法。
第四方面,提供了一种视频编解码系统,包括视频编码器。视频编码器用于执行上述第一方面或其各实现方式中的方法。
第五方面,提供了一种芯片,用于实现上述第一方面至第二方面中的任一方面或其各实现方式中的方法。具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面或其各实现方式中的方法。
第六方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序使得计算机执行上述第一方面或其各实现方式中的方法。
第七方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面或其各实现方式中的方法。
第八方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或其各实现方式中的方法。
基于以上技术方案,通过获取当前图像所在的视频数据中的起始图像的复杂度信息和当前图像中的当前宏块的复杂度信息中的至少一个,并根据起始图像的复杂度信息和当前宏块的复杂度信息中的至少一个,确定当前图像对应的内容复杂度值,根据内容复杂度值,确定当前宏块的目标量化参数,最后根据当前宏块的目标量化参数,对当前宏块进行编码。即本申请在确定当前宏块的目标量化参数时,考虑了起始图像和/或当前宏块的内容复杂度对当前宏块的目标QP的影响,进而提高了当前宏块QP确定的准确性,使得量化操作更加符合图像内容,提升图像编码的整体质量。
附图说明
图1为本申请实施例涉及的一种视频编解码系统的示意性框图;
图2是本申请实施例提供的视频编码器的示意性框图;
图3是本申请实施例提供的视频解码器的示意性框图;
图4为本申请实施例涉及的X.264码率控制系统的框架示意图;
图5为本申请一实施例提供的图像编码方法流程图;
图6为本申请一实施例提供的图像编码方法的流程示意图;
图7为本申请一实施例提供的X.264编码示意图;
图8为本申请一实施例提供的图像编码方法的流程示意图;
图9为本申请一实施例提供的X.264编码示意图;
图10为本申请一实施例提供的图像编码方法的流程示意图;
图11为本申请一实施例提供的X.264编码示意图;
图12是MB划分方式示意图;
图13为本申请实施例涉及的帧内模式选择示意图;
图14为本申请实施例涉及的帧间模式选择示意图;
图15是本申请实施例提供的图像编码装置的示意性框图;
图16是本申请实施例提供的编码设备的示意性框图。
具体实施方式
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域等。例如,本申请的方案可结合至音视频编码标准(audio video coding standard,简称AVS),例如,H.264/音视频编码(audio videocoding,简称AVC)标准,H.265/高效视频编码(high efficiency video coding,简称HEVC)标准以及H.266/多功能视频编码(versatile video coding,简称VVC)标准。或者,本申请的方案可结合至其它专属或行业标准而操作,所述标准包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(还称为ISO/IECMPEG-4AVC),包含可分级视频编解码(SVC)及多视图视频编解码(MVC)扩展。应理解,本申请的技术不限于任何特定编解码标准或技术。
为了便于理解,首先结合图1对本申请实施例涉及的视频编解码系统进行介绍。
图1为本申请实施例涉及的一种视频编解码系统的示意性框图。需要说明的是,图1只是一种示例,本申请实施例的视频编解码系统包括但不限于图1所示。如图1所示,该视频编解码系统100包含编码设备110和解码设备120。其中编码设备用于对视频数据进行编码(可以理解成压缩)产生码流,并将码流传输给解码设备。解码设备对编码设备编码产生的码流进行解码,得到解码后的视频数据。
本申请实施例的编码设备110可以理解为具有视频编码功能的设备,解码设备120可以理解为具有视频解码功能的设备,即本申请实施例对编码设备110和解码设备120包括更广泛的装置,例如包含智能手机、台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等。
在一些实施例中,编码设备110可以经由信道130将编码后的视频数据(如码流)传输给解码设备120。信道130可以包括能够将编码后的视频数据从编码设备110传输到解码设备120的一个或多个媒体和/或装置。
在一个实例中,信道130包括使编码设备110能够实时地将编码后的视频数据直接发射到解码设备120的一个或多个通信媒体。在此实例中,编码设备110可根据通信标准来调制编码后的视频数据,且将调制后的视频数据发射到解码设备120。其中通信媒体包含无线通信媒体,例如射频频谱,可选的,通信媒体还可以包含有线通信媒体,例如一根或多根物理传输线。
在另一实例中,信道130包括存储介质,该存储介质可以存储编码设备110编码后的视频数据。存储介质包含多种本地存取式数据存储介质,例如光盘、DVD、快闪存储器等。在该实例中,解码设备120可从该存储介质中获取编码后的视频数据。
在另一实例中,信道130可包含存储服务器,该存储服务器可以存储编码设备110编码后的视频数据。在此实例中,解码设备120可以从该存储服务器中下载存储的编码后的视频数据。可选的,该存储服务器可以存储编码后的视频数据且可以将该编码后的视频数据发射到解码设备120,例如web服务器(例如,用于网站)、文件传送协议(FTP)服务器等。
一些实施例中,编码设备110包含视频编码器112及输出接口113。其中,输出接口113可以包含调制器/解调器(调制解调器)和/或发射器。
在一些实施例中,编码设备110除了包括视频编码器112和输入接口113外,还可以包括视频源111。
视频源111可包含视频采集装置(例如,视频相机)、视频存档、视频输入接口、计算机图形系统中的至少一个,其中,视频输入接口用于从视频内容提供者处接收视频数据,计算机图形系统用于产生视频数据。
视频编码器112对来自视频源111的视频数据进行编码,产生码流。视频数据可包括一个或多个图像(picture)或图像序列(sequence of pictures)。码流以比特流的形式包含了图像或图像序列的编码信息。编码信息可以包含编码图像数据及相关联数据。相关联数据可包含序列参数集(sequence parameter set,简称SPS)、图像参数集(pictureparameter set,简称PPS)及其它语法结构。SPS可含有应用于一个或多个序列的参数。PPS可含有应用于一个或多个图像的参数。语法结构是指码流中以指定次序排列的零个或多个语法元素的集合。
视频编码器112经由输出接口113将编码后的视频数据直接传输到解码设备120。编码后的视频数据还可存储于存储介质或存储服务器上,以供解码设备120后续读取。
在一些实施例中,解码设备120包含输入接口121和视频解码器122。
在一些实施例中,解码设备120除包括输入接口121和视频解码器122外,还可以包括显示装置123。
其中,输入接口121包含接收器及/或调制解调器。输入接口121可通过信道130接收编码后的视频数据。
视频解码器122用于对编码后的视频数据进行解码,得到解码后的视频数据,并将解码后的视频数据传输至显示装置123。
显示装置123显示解码后的视频数据。显示装置123可与解码设备120整合或在解码设备120外部。显示装置123可包括多种显示装置,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或其它类型的显示装置。
此外,图1仅为实例,本申请实施例的技术方案不限于图1,例如本申请的技术还可以应用于单侧的视频编码或单侧的视频解码。
下面对本申请实施例涉及的视频编码器进行介绍。
图2是本申请实施例提供的视频编码器的示意性框图。应理解,该视频编码器200可用于对图像进行有损压缩(lossy compression),也可用于对图像进行无损压缩(lossless compression)。该无损压缩可以是视觉无损压缩(visually losslesscompression),也可以是数学无损压缩(mathematically lossless compression)。
该视频编码器200可应用于亮度色度(YCbCr,YUV)格式的图像数据上。例如,YUV比例可以为4:2:0、4:2:2或者4:4:4,Y表示明亮度(Luma),Cb(U)表示蓝色色度,Cr(V)表示红色色度,U和V表示为色度(Chroma)用于描述色彩及饱和度。例如,在颜色格式上,4:2:0表示每4个像素有4个亮度分量,2个色度分量(YYYYCbCr),4:2:2表示每4个像素有4个亮度分量,4个色度分量(YYYYCbCrCbCr),4:4:4表示全像素显示(YYYYCbCrCbCrCbCrCbCr)。
例如,该视频编码器200读取视频数据,针对视频数据中的每帧图像,将一帧图像划分成若干个编码树单元(coding tree unit,CTU)、“最大编码单元”(Largest Codingunit,简称LCU)或“编码树型块”(coding tree block,简称CTB)。每一个CTU可以与图像内的具有相等大小的像素块相关联。每一像素可对应一个亮度(luminance或luma)采样及两个色度(chrominance或chroma)采样。因此,每一个CTU可与一个亮度采样块及两个色度采样块相关联。一个CTU大小例如为128×128、64×64、32×32等。一个CTU又可以继续被划分成若干个编码单元(Coding Unit,CU)进行编码,CU可以为矩形块也可以为方形块。CU可以进一步划分为预测单元(prediction Unit,简称PU)和变换单元(transform unit,简称TU),进而使得编码、预测、变换分离,处理的时候更灵活。在一种示例中,CTU以四叉树方式划分为CU,CU以四叉树方式划分为TU、PU。
视频编码器及视频解码器可支持各种PU大小。假定特定CU的大小为2N×2N,视频编码器及视频解码器可支持2N×2N或N×N的PU大小以用于帧内预测,且支持2N×2N、2N×N、N×2N、N×N或类似大小的对称PU以用于帧间预测。视频编码器及视频解码器还可支持2N×nU、2N×nD、nL×2N及nR×2N的不对称PU以用于帧间预测。
在一些实施例中,如图2所示,该视频编码器200可包括:预测单元210、残差单元220、变换/量化单元230、反变换/量化单元240、重建单元250、环路滤波单元260、解码图像缓存270和熵编码单元280。需要说明的是,视频编码器200可包含更多、更少或不同的功能组件。
可选的,在本申请中,当前块(current block)可以称为当前编码单元(CU)或当前预测单元(PU)等。预测块也可称为预测待编码块或图像预测块,重建待编码块也可称为重建块或图像重建待编码块。
在一些实施例中,预测单元210包括帧间预测单元211和帧内估计单元212。由于视频的一个帧中的相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测的方法消除相邻像素之间的空间冗余。由于视频中的相邻帧之间存在着很强的相似性,在视频编解码技术中使用帧间预测方法消除相邻帧之间的时间冗余,从而提高编码效率。
帧间预测单元211可用于帧间预测,帧间预测可以参考不同帧的图像信息,帧间预测使用运动信息从参考帧中找到参考块,根据参考块生成预测块,用于消除时间冗余;帧间预测所使用的帧可以为P帧和/或B帧,P帧指的是向前预测帧,B帧指的是双向预测帧。运动信息包括参考帧所在的参考帧列表,参考帧索引,以及运动矢量。运动矢量可以是整像素的或者是分像素的,如果运动矢量是分像素的,那么需要在参考帧中使用插值滤波做出所需的分像素的块,这里把根据运动矢量找到的参考帧中的整像素或者分像素的块叫参考块。有的技术会直接把参考块作为预测块,有的技术会在参考块的基础上再处理生成预测块。在参考块的基础上再处理生成预测块也可以理解为把参考块作为预测块然后再在预测块的基础上处理生成新的预测块。
目前最常用的帧间预测方法包括:VVC视频编解码标准中的几何划分模式(geometric partitioning mode,GPM),以及AVS3视频编解码标准中的角度加权预测(angular weighted prediction,AWP)。这两种帧内预测模式在原理上有共通之处。本申请涉及的帧间模式包括但不限于上述列举的帧间模式。
帧内估计单元212只参考同一帧图像的信息,预测当前帧待编码块内的像素信息,用于消除空间冗余。帧内预测所使用的帧可以为I帧。
在一些实施例中,帧内预测方法还包括多参考行帧内预测方法(multiplereference line,MRL),MRL可以使用更多的参考像素从而提高编码效率。
帧内预测有多种预测模式,H.264中对4×4的块进行帧内预测的9种模式。其中模式0是将当前块上面的像素按竖直方向复制到当前块作为预测值;模式1是将左边的参考像素按水平方向复制到当前块作为预测值;模式2(DC)是将A~D和I~L这8个点的平均值作为所有点的预测值,模式3至模式8是分别按某一个角度将参考像素复制到当前块的对应位置。因为当前块某些位置不能正好对应到参考像素,可能需要使用参考像素的加权平均值,或者说是插值的参考像素的分像素。
HEVC使用的帧内预测模式有平面模式(Planar)、DC和33种角度模式,共35种预测模式。VVC使用的帧内模式有Planar、DC和65种角度模式,共67种预测模式。AVS3使用的帧内模式有DC、Plane、Bilinear和63种角度模式,共66种预测模式。
需要说明的是,随着角度模式的增加,帧内预测将会更加精确,也更加符合对高清以及超高清数字视频发展的需求。
残差单元220可基于CU的像素块及CU的PU的预测块来产生CU的残差块。举例来说,残差单元220可产生CU的残差块,使得残差块中的每一采样具有等于以下两者之间的差的值:CU的像素块中的采样,及CU的PU的预测块中的对应采样。
变换/量化单元230可量化变换系数。变换/量化单元230可基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的变换系数。视频编码器200可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数的量化程度。
反变换/量化单元240可分别将逆量化及逆变换应用于量化后的变换系数,以从量化后的变换系数重建残差块。
重建单元250可将重建后的残差块的采样加到预测单元210产生的一个或多个预测块的对应采样,以产生与TU相关联的重建待编码块。通过此方式重建CU的每一个TU的采样块,视频编码器200可重建CU的像素块。
环路滤波单元260可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元260包括去块滤波单元、样点自适应补偿SAO单元、自适应环路滤波ALF单元。
解码图像缓存270可存储重建后的像素块。帧间预测单元211可使用含有重建后的像素块的参考图像来对其它图像的PU执行帧间预测。另外,帧内估计单元212可使用解码图像缓存270中的重建后的像素块来对在与CU相同的图像中的其它PU执行帧内预测。
熵编码单元280可接收来自变换/量化单元230的量化后的变换系数。熵编码单元280可对量化后的变换系数执行一个或多个熵编码操作以产生熵编码后的数据。
本申请涉及的视频编码的基本流程如下:在编码端,将当前图像划分成块,针对当前块,预测单元210使用帧内预测或帧间预测产生当前块的预测块。残差单元220可基于预测块与当前块的原始块计算残差块,即预测块和当前块的原始块的差值,该残差块也可称为残差信息。该残差块经由变换/量化单元230变换与量化等过程,可以去除人眼不敏感的信息,以消除视觉冗余。可选的,经过变换/量化单元230变换与量化之前的残差块可称为时域残差块,经过变换/量化单元230变换与量化之后的时域残差块可称为频率残差块或频域残差块。熵编码单元280接收到变换量化单元230输出的量化后的变换系数,可对该量化后的变换系数进行熵编码,输出码流。例如,熵编码单元280可根据目标上下文模型以及二进制码流的概率信息消除字符冗余。
另外,视频编码器对变换量化单元230输出的量化后的变换系数进行反量化和反变换,得到当前块的残差块,再将当前块的残差块与当前块的预测块进行相加,得到当前块的重建块。随着编码的进行,可以得到当前图像中其他待编码块对应的重建块,这些重建块进行拼接,得到当前图像的重建图像。由于编码过程中引入误差,为了降低误差,对重建图像进行滤波,例如,使用ALF对重建图像进行滤波,以减小重建图像中像素点的像素值与当前图像中像素点的原始像素值之间差异。将滤波后的重建图像存放在解码图像缓存270中,可以为后续的帧作为帧间预测的参考帧。
需要说明的是,编码端确定的块划分信息,以及预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息等在必要时携带在码流中。解码端通过解析码流及根据已有信息进行分析确定与编码端相同的块划分信息,预测、变换、量化、熵编码、环路滤波等模式信息或者参数信息,从而保证编码端获得的解码图像和解码端获得的解码图像相同。
图3是本申请实施例提供的视频解码器的示意性框图。
如图3所示,视频解码器300包含:熵解码单元310、预测单元320、反量化/变换单元330、重建单元340、环路滤波单元350及解码图像缓存360。需要说明的是,视频解码器300可包含更多、更少或不同的功能组件。
视频解码器300可接收码流。熵解码单元310可解析码流以从码流提取语法元素。作为解析码流的一部分,熵解码单元310可解析码流中的经熵编码后的语法元素。预测单元320、反量化/变换单元330、重建单元340及环路滤波单元350可根据从码流中提取的语法元素来解码视频数据,即产生解码后的视频数据。
在一些实施例中,预测单元320包括帧内估计单元321和帧间预测单元322。
帧内估计单元321可执行帧内预测以产生PU的预测块。帧内估计单元321可使用帧内预测模式以基于空间相邻PU的像素块来产生PU的预测块。帧内估计单元321还可根据从码流解析的一个或多个语法元素来确定PU的帧内预测模式。
帧间预测单元322可根据从码流解析的语法元素来构造第一参考图像列表(列表0)及第二参考图像列表(列表1)。此外,如果PU使用帧间预测编码,则熵解码单元310可解析PU的运动信息。帧间预测单元322可根据PU的运动信息来确定PU的一个或多个参考块。帧间预测单元322可根据PU的一个或多个参考块来产生PU的预测块。
反量化/变换单元330可逆量化(即,解量化)与TU相关联的变换系数。反量化/变换单元330可使用与TU的CU相关联的QP值来确定量化程度。
在逆量化变换系数之后,反量化/变换单元330可将一个或多个逆变换应用于逆量化变换系数,以便产生与TU相关联的残差块。
重建单元340使用与CU的TU相关联的残差块及CU的PU的预测块以重建CU的像素块。例如,重建单元340可将残差块的采样加到预测块的对应采样以重建CU的像素块,得到重建待编码块。
环路滤波单元350可执行消块滤波操作以减少与CU相关联的像素块的块效应。
在一些实施例中,环路滤波单元350包括去块滤波单元、样点自适应补偿SAO单元、自适应环路滤波ALF单元。
视频解码器300可将CU的重建图像存储于解码图像缓存360中。视频解码器300可将解码图像缓存360中的重建图像作为参考图像用于后续预测,或者,将重建图像传输给显示装置呈现。
本申请涉及的视频解码的基本流程如下:熵解码单元310可解析码流得到当前块的预测信息、量化系数矩阵等,预测单元320基于预测信息对当前块使用帧内预测或帧间预测产生当前块的预测块。反量化/变换单元330使用从码流得到的量化系数矩阵,对量化系数矩阵进行反量化、反变换得到残差块。重建单元340将预测块和残差块相加得到重建块。重建块组成重建图像,环路滤波单元350基于图像或基于块对重建图像进行环路滤波,得到解码图像。该解码图像也可以称为重建图像,该重建图像一方面可以被显示设备进行显示,另一方面可以存放在解码图像缓存360中,为后续的帧作为帧间预测的参考帧。
上述是基于块的混合编码框架下的视频编解码器的基本流程,随着技术的发展,该框架或流程的一些模块或步骤可能会被优化,本申请适用于该基于块的混合编码框架下的视频编解码器的基本流程,但不限于该框架及流程。
图4为本申请实施例涉及的X.264编码系统的框架示意图。X.264是目前应用范围最广的软件编码器之一,针对标清与高清视频,能够提供较高的压缩率与优质的视频质量。
X.264码率控制过程分为帧间级码率控制过程和宏块级码率控制过程,其中,每一帧QP值的分配由帧间级码率控制来实现,而每一帧帧内的QP值的分配由宏块级码率控制来实现。X.264码率控制过程主要取决于两个变量,其一为视频帧的复杂度,其二是码率的预算。通常视频帧的复杂度越高,编码所需要的比特越多。如图4所示,待编码视频进入编码系统后,会同步进入帧间级码率控制过程与宏块级码率控制过程中。
前向反馈模块400,用于为待编码视频提供视频帧缓冲队列,辅助完成更稳定的码率控制。
复杂度估计模块401,用于估计待编码视频中当前帧的复杂度。
码率因子计算模块402,用于根据反馈的已编码帧的码率,计算出当前帧的复杂度累积值,再根据复杂度累积值计算出码率因子(ratefactor)。
量化级别计算模块403,用于根据复杂度估计模块401输出的当前帧的复杂度进行量化级别的计算,得到当前帧对应的量化比重,并根据码率因子计算模块402提供的码率因子(ratefactor)对量化比重进行调整,得到初始量化级别。
缓存控制(VBV)模块404,基于接收端缓冲区域的大小,对量化级别计算模块403输出的当前帧的初始量化级别进行调整,得到当前帧的量化级别。
量化级别转QP模块405,用于对缓存控制(VBV)模块404输出的量化级别转为初始量化参数,提供给宏块级量化参数调整模块406。
宏块树(MBTree)划分模块408,用于根据当前帧的图像内容,计算出当前帧的宏块结构(MBTree)。
自适应量化模块407,用于根据当前帧的宏块结构和图像内容计算出当前帧的平均宏块能量,并确定出与平均宏块能量对应的量化强度因子。
宏块级量化步长调整406,用于根据量化强度因子对当前帧的初始量化步长进行调整,得到当前帧对应的量化参数。
量化和熵编码模块409,用于根据当前帧对应的量化参数对当前帧进行编码,持续上述过程直至待编码视频中的所有帧编码完毕后,输出编码完成的码流。
由图4可知,帧间级码率控制过程包括:通过前向反馈模块410为待编码视频提供视频帧缓冲队列,辅助完成更稳定的码率控制,再通过复杂度估计模块401估计出待编码视频中当前帧的复杂度,示例性的,当前帧的复杂度可以是模糊复杂度。码率因子计算模块402用于根据反馈的已编码帧的码率,计算出当前帧的复杂度累积值,再根据复杂度累积值计算出码率因子(ratefactor)。量化级别计算模块403根据复杂度估计模块401输出的当前帧的复杂度进行量化级别的计算,得到当前帧对应的量化比重(即量化级别),并根据码率因子计算模块402提供的码率因子(ratefactor)对量化比重进行调整,得到初始量化级别。缓存控制(VBV)模块404基于接收端缓冲区域的大小对初始量化级别进行进一步的调整,得到量化级别。量化级别转QP模块405将量化级别转为初始量化参数提供给宏块级量化参数调整模块406。
宏块级的码率控制过程包括:首先宏块树划分模块408根据当前帧的图像内容,计算出当前帧的宏块结构(MBTree);接着,自适应量化模块407根据当前帧的宏块结构和图像内容计算出当前帧的平均宏块能量,并确定出与平均宏块能量对应的量化强度因子;宏块级量化参数调整模块406根据量化强度因子对当前帧的初始量化参数进行调整,得到当前帧对应的量化参数。最后由量化和熵编码模块409根据当前帧对应的量化参数对当前帧进行编码,持续上述过程直至待编码视频中的所有帧编码完毕后,输出编码完成的码流。
由上述图4可知,X.264的编码框架QP设置和调整过程中,对视频内容的自适应能力较弱,未考虑起始帧的复杂度和/或当前宏块的复杂度对QP的影响,使得宏块的QP确定不准确,造成编码图像的整体质量差。
为了解决上述技术问题,本申请实施例通过起始图像的复杂度信息和/或当前宏块的复杂度信息,确定内容复杂度值,并根据该内容复杂度值确定当前宏块的目标QP。即本申请实施例,在确定当前宏块的目标QP时,考虑了起始图像和/或当前宏块的内容复杂度对当前宏块的目标QP的影响,进而实现对当前宏块QP的准确确定,使得量化操作更加符合图像内容,提升图像编码的整体质量。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图5为本申请一实施例提供的图像编码方法流程图。本申请主要涉及图像编码过程中量化参数的确定步骤,执行主体可以为上述图1和图2中的编码设备。如图5所示,本申请实施例的方法包括:
S501、获取待编码的当前图像对应的内容复杂度信息,内容复杂度信息包括当前图像所在的视频数据中的起始图像的复杂度信息和当前图像中的当前宏块的复杂度信息中的至少一个。
本申请待编码的视频数据包括多个连续的图像,每个图像可以划分成至少一个宏块。一个宏块表示一个nXn的图像区域,例如16X16的图像区域,宏块包括亮度分量和色度分量。一个宏块可以划分成至少一个编码单元,同一个宏块中的编码单元的QP可以相同,即为该宏块的量化参数。在编码时,确定该编码单元的残差块,对残差块进行变换后,得到变换系数,使用确定的QP对该变换系数进行量化后进行编码,得到码流。
本申请主要涉及到上述编码过程中QP的确定过程。
当前图像可以理解为视频数据中处于编码状态的图像。当前图像可以为视频数据中的第一张图像,即起始图像,也可以是视频数据中除起始图像外的任一图像。
当前图像可以划分成多个宏块,当前宏块可以理解为当前图像中处于编码状态的宏块。
在一些实施例中,起始图像作为视频编码的关键图像,对视频整体的质量影响较大,因此为了提高QP的计算准确性,本申请在计算QP时考虑了起始图像的复杂度对QP的影响,进而提高QP的计算准确性。
本实施例对起始图像的复杂度信息的具体内容不做限制。
在一种示例中,YUV数据作为视频编码的输入部分,涵盖了未压缩视频的全部信息,因此直接以YUV数据为视频内容复杂度信息的表征,是一种简单并且行之有效的方法,因此,可以将起始图像的YUV数据作为起始图像的复杂度信息。
在另一种示例中,YUV数据中的Y分量则代表了视频的亮度信息,能够体现基础的纹理信息,可以反应出视频内容复杂程度,因此,可以将起始图像的YUV数据中的Y分量作为起始图像的复杂度信息。
在另一种示例中,起始图像的复杂度信息包括起始图像所包括的宏块的编码信息量、编码位深以及起始图像所包括的宏块数量中的至少一个。
其中,宏块的编码信息量是X.264编码流程中生成的MB误差平方和,反应编码单元复杂度的大小。
在一些实施例中,当前宏块的复杂度信息对当前宏块QP的调整过程有影响,因此,在QP的调整过程中,考虑当前宏块的复杂度信息,以提高QP的调整准确性。
本实施例对当前宏块的复杂度信息的具体内容不做限制。
在一种示例中,将当前宏块的YUV数据作为当前宏块的复杂度信息。
在另一种示例中,将当前宏块的YUV数据中的Y分量作为当前宏块的复杂度信息。
在另一种示例中,当前宏块的复杂度信息包括当前宏块的编码信息量。
S502、根据内容复杂度信息,确定内容复杂度值。
本申请的内容复杂度信息包括当前图像所在的视频数据中的起始图像的复杂度信息和当前图像中的当前宏块的复杂度信息中的至少一个,因此,上述S502中根据内容复杂度信息,确定内容复杂度值包括如下几种方式:
方式一,若内容复杂度信息包括起始图像的复杂度信息时,则根据起始图像的复杂度信息,确定起始图像的复杂度值,并将起始图像的复杂度值确定为内容复杂度值。
例如,起始图像的复杂度信息包括YUV数据,则将YUV数据的大小,确定起始图像的复杂度值,并将起始图像的复杂度值确定为当前图像对应的内容复杂度值。具体可以参照图7所示的实施例。
方式一中,当前图像对应的内容复杂度值包括起始图像的复杂度值。
方式2,若内容复杂度信息包括当前宏块的复杂度信息,则根据当前宏块的复杂度信息,确定当前宏块的复杂度值,并将当前宏块的复杂度值确定为内容复杂度值。
例如,当前宏块的复杂度信息包括YUV数据,则将YUV数据的大小,确定当前宏块的复杂度值,并将当前宏块的复杂度值确定为当前图像对应的内容复杂度值。具体可以参照图9所示的实施例。
方式二中,当前图像对应的内容复杂度值包括当前宏块的复杂度值。
方式三,若内容复杂度信息包括起始图像的复杂度信息和当前宏块的复杂度信息,则根据起始图像的复杂度信息,确定起始图像的复杂度值,并根据当前宏块的复杂度信息,确定当前宏块的复杂度值,将起始图像的复杂度值和当前宏块的复杂度值确定为内容复杂度值。
方式三中,当前图像对应的内容复杂度值包括起始图像的复杂度值和当前宏块的复杂度值。
S503、根据内容复杂度值,确定当前宏块的目标量化参数。
本申请实施例的内容复杂度值包括起始图像的复杂度值和当前宏块的复杂度值中的至少一个,根据内容复杂度值所包括的内容不同,上述S503中根据内容复杂度值,确定当前宏块的目标量化参数至少包括如下几种情况:
情况1,若内容复杂度值包括起始图像的复杂度值,则根据起始图像的复杂度值,确定当前宏块的初始量化参数,并根据初始量化参数确定当前宏块的目标量化参数。
情况2,若内容复杂度值包括当前宏块的复杂度值,则根据当前图像的复杂度值,确定当前宏块的初始量化参数,并根据当前宏块的复杂度值对当前宏块的初始量化参数进行调整,得到当前宏块的目标量化参数。
情况3,若内容复杂度值包括起始图像的复杂度值和当前宏块的复杂度值,则根据起始图像的复杂度值,确定当前宏块的初始量化参数,并根据当前宏块的复杂度值对当前宏块的初始量化参数进行调整,得到当前宏块的目标量化参数。
S504、根据当前宏块的目标量化参数,对当前宏块进行编码。
具体是,选择预测模式,对当前宏块进行预测,得到当前宏块的预测块,当前宏块与预测值相减,得到当前宏块的残差块,对当前宏块的残差块进行变换,得到当前宏块的变换系数。使用上述确定的当前宏块的目标量化参数,对当前宏块的变换系数进行量化,得到当前宏块量化后的变换系数,最后对当前宏块量化后的变换系数进行编码,得到码流。
本申请实施例提供的图像编码方法,通过获取当前图像所在的视频数据中的起始图像的复杂度信息和当前图像中的当前宏块的复杂度信息中的至少一个,并根据起始图像的复杂度信息和当前宏块的复杂度信息中的至少一个,确定当前图像对应的内容复杂度值,根据内容复杂度值,确定当前宏块的目标量化参数,最后根据当前宏块的目标量化参数,对当前宏块进行编码。即本申请在确定当前宏块的目标量化参数时,考虑了起始图像和/或当前宏块的内容复杂度对当前宏块的目标QP的影响,进而提高了当前宏块QP确定的准确性,使得量化操作更加符合图像内容,提升图像编码的整体质量。
下面结合图6和图7对内容复杂度信息包括起始图像的复杂度信息时,本申请实施例的编码过程进行介绍。
图6为本申请一实施例提供的图像编码方法的流程示意图,如图6所示,包括:
S601、获取起始图像的复杂度信息。
上述S601的实现过程具体参照上述S501的描述,在此不再赘述。
此时,上述S502包括如下S602的步骤。
S602、根据起始图像的复杂度信息,确定起始图像的复杂度值。
本实施例中根据起始图像的复杂度信息,确定起始图像的复杂度值的方式包括但不限于如下几种方式:
方式一,若起始图像的复杂度信息为起始图像的YUV数据,则根据起始图像的YUV数据大小,确定起始图像的复杂度值。例如,将起始图像中每个像素点对应的YUV大小的和值,确定为起始图像的复杂度值。
方式二,若起始图像的复杂度信息为起始图像的YUV数据中的Y分量,则根据起始图像的Y分量大小,确定起始图像的复杂度值。例如,将起始图像中每个像素点对应的Y分量大小的和值,确定为起始图像的复杂度值。
方式三,若起始图像的复杂度信息包括起始图像所包括的宏块的编码信息量、编码位深以及起始图像所包括的宏块数量,则计算起始图像中宏块的编码信息量与编码位深的乘积,并将乘积与第一预设值进行相加得到和值,以第二预设值作为指数,对和值进行指数运算,得到宏块对应的第一运算结果;计算起始图像中宏块对应的第一运算结果之和,并将之和与起始图像所包括的宏块数量的比值,确定为起始图像的复杂度值。
在该方式三中,针对起始图像中的每个宏块,获取该宏块的编码信息量,计算该宏块的编码信息量与编码所采用的编码位深的乘积,将该乘积与第一预设值进行相加得到和值。接着,以第二预设值作为指数,对该和值进行指数运算,得到该宏块对应的第一运算结果。将起始图像中每个宏块的第一运行结果相加之后,与起始图像所包括的宏块数量进行相除,得到一个比值,将该比值确定为起始图像的复杂度值。
在一种示例中,根据如下公式(1)确定起始图像的复杂度值:
其中,i_frame_0_energy表示起始图像的复杂度值,i_mb_energy(x)表示起始图像所包括的宏块的编码信息量,bit_depth表示编码位深,i_mb_count表示起始图像所包括的宏块的个数。
对应的,上述S503包括如下S603至S606的步骤。
S603、根据起始图像的复杂度值,确定当前图像的第一复杂度值。
本步骤中根据当前图像是否为起始图像,上述S603包括如下情况11和情况12:
情况11,若当前图像为起始图像,则根据起始图像的复杂度值,确定当前图像的第一复杂度值。具体的,根据起始图像的复杂度值,确定当前图像的第一复杂度值的方式包括但不限于如下几种方式:
方式一,若起始图像的复杂度值小于第一数值,则确定当前图像的第一复杂度值为第一预设复杂度值。
该方式一中,对第一数值和第一预设复杂度值的具体取值不做限制。
可选的,第一数值为2.505。
可选的,第一预设复杂度值为1000000。
方式二,若起始图像的复杂度值大于或等于第二数值,则将起始图像的复杂度值与第三数值的乘积,确定为当前图像的第一复杂度值。
该方式二中,对第二数值和第三数值的具体取值不做限制。
可选的,第二数值为4.45。
方式三,若起始图像的复杂度值大于或等于第一数值且小于第二数值,则将起始图像的复杂度值与第四数值的乘积,确定为当前图像的第一复杂度值。
该方式二中,对第四数值的具体取值不做限制。
上述方式一至方式三的计算方式,是通过对历史起始图像的复杂度信息进行统计与数据分析得到的。若当前图像为起始图像,根据上述方式,分段确定出当前图像的第一复杂度值,实现对当前图像的第一复杂度值的准确计算。
若当前图像不是起始图像,则根据情况12的方式,确定出当前图像的第一复杂度值。
情况12,若当前图像不是起始图像,则S503-A1包括确定当前图像的satd。根据起始图像的复杂度值和当前图像的satd,确定当前图像的第一复杂度值。
其中,satd是经过运动补偿后的残差绝对值总和,首帧的satd为预设值,非首帧的satd可以根据时频变换的方式计算得到,用于反映生成码流的大小。
上述情况12中根据起始图像的复杂度值和当前图像的satd,确定当前图像的第一复杂度值的实现方式包括但不限于如下几种:
方式一,根据预设的预设规则,对起始图像的复杂度值和当前图像的satd进行运算,将运算结果确定为当前图像的第一复杂度值。
方式二,上述情况12中根据起始图像的复杂度值和当前图像的satd,确定当前图像的第一复杂度值可以通过如下S603-A11至S603-A133步骤实现:
S603-A11、获取当前图像的分辨率。当前图像的分辨率可以视频数据的元数据中获取到。
S603-A12、根据当前图像的分辨率,在预设的分辨率与分辨率因子的对应关系中,查询当前图像对应的分辨率因子。本申请实施例包括预测的分辨率与分辨率因子的对应关系,该对应关系中包括不同分辨率与不同的分辨率因子的对应关系。该对应关系可以为表格形式。编码设备可以在该对应关系表中查询当前图像的分辨率对应的分辨率因子。
S603-A13、根据当前图像对应的分辨率因子、起始图像的复杂度值和当前图像的satd,确定当前图像的第一复杂度值。
根据当前图像的satd的不同,通过如下方式,分段确定当前图像的第一复杂度值。即上述S603-A13的实现方式包括但不限于如下几种:
方式一,若当前图像的satd大于第一satd值、且起始图像的复杂度值大于第二预设复杂度值时,则将第三预设值与分辨率因子相乘,得到第一乘积;将当前图像的satd与第一乘积相减,得到第一差值;将第一差值与起始图像的复杂度值相乘,得到第二乘积;将第二乘积与第四预设值相比,得到第一比值后,与第一乘积相加,得到当前图像的第一复杂度值。
在方式一中,对第二预设复杂度值、第三预设值和第四预设值的具体取值不做限制。
可选的,上述第二预设复杂度值为2.505。
可选的,第三预设值为700000。
可选的,第四预设值为4.5。
可选的,第一satd值为第三预设值和分辨率因子的乘积,例如第一satd值=700000*resolution_rate,其中resolution_rate为分辨率因子。
在一种示例中,方式一可以根据如下公式(2),得到当前图像的第一复杂度值:
rcc->cplxr_sum=(rcc->last_satd-700000*resolution_rate)*h->param.i_frame_0_energy/4.5+700000*resolution_rate (2)
其中,rcc->cplxr_sum表示当前图像的第一复杂度值,rcc->last_satd表示当前图像的satd,h->param.i_frame_0_energy表示起始图像的复杂度值,resolution_rate表示当前图像对应的分辨率因子。
方式二、若当前图像的satd大于第一satd值小于第二satd值,且起始图像的复杂度值小于或等于第二预设复杂度值时,则将起始图像的复杂度值与第五预设值相比,得到第二比值;将第六预设值与第二比值相加,得到第二和值;将第二和值与当前图像的satd相乘,得到第三乘积;将第七预设值与分辨率因子相乘,得到第四乘积;将第三乘积与第四乘积的比值,确定为当前图像的第一复杂度值。
在方式二中,对第五预设值、第六预设值和第七预设值的具体取值不做限制。
可选的,第五预设值为5.0。
可选的,第六预设值为7。
可选的,第七预设值为17。
可选的,第二satd值为一个预设值和分辨率因子的乘积,例如第二satd值=1000000*resolution_rate。
在一种示例中,方式二可以根据如下公式(3),得到当前图像的第一复杂度值:
rcc->cplxr_sum=(7+h->param.i_frame_0_energy/5.0)*rcc->last_satd/(17*resolution_rate) (3)
方式三、若当前图像的satd大于或等于第二satd值且小于第三satd值,且起始图像的复杂度值小于或等于第二预设复杂度值时时,则将起始图像的复杂度值与第八预设值相比,得到第三比值;将第九预设值与第三比值相加,得到第三和值;将第三和值与当前图像的satd相乘,得到第四乘积;将第十预设值与分辨率因子相乘,得到第五乘积;将第四乘积与第五乘积的比值,确定为当前图像的第一复杂度值。
在方式三中,对分辨率因子阈值、第八预设值、第九预设值和第十预设值的具体取值不做限制。
可选的,第八预设值为4.0。
可选的,第九预设值为7。
可选的,第十预设值为17。
可选的,第三satd值为一个预设值和分辨率因子的乘积,例如第三satd值=1700000*resolution_rate。
在一种示例中,方式三可以根据如下公式(4),得到当前图像的第一复杂度值:
rcc->cplxr_sum=(7+h->param.i_frame_0_energy/4.0)*rcc->last_satd/(17*resolution_rate) (4)
方式四、若当前图像的satd小于第一satd值,则根据当前图像的satd和当前图像对应的分辨率因子,确定当前图像的第一复杂度值。
例如,将当前图像的satd和当前图像对应的分辨率因子的比值,确定为当前图像的第一复杂度值。
再例如,将第十预设值与当前图像的satd相乘,得到第六乘积;将第十一预设值与分辨率因子相乘,得到第七乘积;将第六乘积与第七乘积的比值,确定为当前图像的第一复杂度值。
在一种示例中,方式四可以根据如下公式(5),得到当前图像的第一复杂度值:
rcc->cplxr_sum=7*rcc->last_satd/(17*resolution_rate) (5)
该情况12中,若当前图像不是起始图像时,可以根据上述方式进行分段计算当前图像的第一复杂度值。由于上述分段计算的公式是通过对历史起始图像的复杂度值的大小与图像的编码代价之间的关系进行统计分析得到的,因此,基于上述分段方式,可以基于起始图像的复杂度值,准确计算出当前图像的第一复杂度值。
在一些实施例中,上述方式一至方式四的具体实现过程的代码如表1所示:
表1
若上述内容复杂度值包括起始图像的复杂度值时,根据上述分段计算的方式,计算出当前图像的第一复杂度值。接着执行S604的步骤,即根据当前图像的第一复杂度值,确定当前图像的初始量化级别。
S604、根据当前图像的第一复杂度值,确定当前图像的初始量化级别。
上述S604中根据当前图像的第一复杂度值,确定当前图像的初始量化级别的实现过程包括但不限于如下几种方式:
方式一,使用上述确定的当前图像的第一复杂度值,确定当前图像的初始量化级别。将当前图像的第一复杂度值与码率因子计算模块确定的码率因子的比值,确定为当前图像的初始量化级别。
方式二,首先通过复杂度估计模块确定出当前图像的模糊复杂度值,再根据当前图像的模糊复杂度值,确定当前图像的第二复杂度值,最后根据当前图像的第二复杂度值和第一复杂度值,确定当前图像的初始量化级别。
示例性的,可以根据如下公式(6)确定出当前图像的模糊复杂度值:
BlurCplx=Cplxsum/Cplxcount (6)
其中,Cplxsum和Cplxcount更新方法如公式(7)所示:
其中,BlurCplx表示当前图像的模糊复杂度,Cplxsum表示编码复杂度加权和,Cplxcount表示编码帧数加权和,i为待编码帧的序号,satd为当前图像经过运动补偿后的残差绝对值总和SATD,首帧的satd为预设值,非首帧的satd可以根据时频变换的方式计算得到,用于反映生成码流的大小。
在一种示例中,可以将上述当前图像的模糊复杂度,确定为当前图像的第二复杂度值。
在一种示例中,由于视频帧恒定的质量并不意味着要使用恒定的QP值,根据人眼视觉特性,对于高复杂度的场景,人眼主观很难感受到细节的丢失,因此可以通过感知编码优化的方法,对当前图像的模糊复杂度进行非线性压缩来降低码率,得到当前图像的第二复杂度值。
例如根据如下公式(8),对当前图像的模糊复杂度值进行压缩:
rceq=BlurCplx(1-qcomp),qcomp∈[0,1] (8)
公式(8)中,rceq表示经感知编码优化后的复杂度,即当前图像的第二复杂度值。qcomp的具体含义为,当qcomp等于1时,各帧的量化比重,即rceq都一样,分配给平缓的帧和复杂的帧的比特相同;当qcomp=0时,各帧的量化比重和其模糊复杂度成正比,最终得到各帧的QP值相等,相当于关闭了此项感知编码优化。
根据上述方式,确定出当前图像的第二复杂度值后,根据当前图像的第二复杂度值和第一复杂度值,确定当前图像的初始量化级别。例如,将当前图像的第二复杂度值和第一复杂度值相加,得到当前图像的复杂度和值,将该复杂度和值与码率因子的比值,确定为当前图像的初始量化级别。
示例性的,根据如下公式(9),确定当前图像的初始量化级别:
qscale=(rceq+rcc->cplxr_sum)/ratefactor (9)
公式(9)中,qscale为当前帧的初始量化级别,rcc->cplxr_sum为当前图像的第一复杂度值,rceq为当前图像的第二复杂度值,ratefactor为码率因子。
根据上述步骤,确定出当前图像的初始量化级别后,执行上述S503-A3的步骤,即根据当前图像的初始量化级别,确定当前宏块的初始量化参数。
S605、根据初始量化级别,确定当前宏块的初始量化参数。
在一种示例中,根据当前图像的初始量化级别,确定当前图像的初始量化参数可以通过如下公式(10)确定:
QP=a+bXlog2(qscale/c) (10)
其中,QP为当前图像的初始量化参数,a、b、c均为经验值,可选的,a=12,b=6,c=0.85。
确定出当前图像的初始量化参数后,当前图像的初始量化参数确定为当前宏块的初始量化参。
S606、根据初始量化参数确定当前宏块的目标量化参数。
在一些实施例中,根据当前宏块的初始量化参数,确定当前宏块的目标量化参数的方式包括但不限于如下几种:
方式一,将当前宏块的初始量化参数,确定为当前宏块的目标量化参数。
方式二,通过自适应量化模块计算的量化强度因子,使用量化强度因子对当前宏块的初始量化参数进行调整,得到当前宏块的目标量化参数。
S607、根据当前宏块的目标量化参数,对当前宏块进行编码。
上述S607的实现过程参照上述S504的描述,在此不再赘述。
在一些实施例中,图7为本申请一实施例提供的X.264编码示意图,如图7所示,若当前图像对应的内容复杂度信息包括起始图像的复杂度信息时,自适应量化模块407通过上述复杂度分段计算方式,确定出当前图像的第一复杂度值,并将确定出当前图像的第一复杂度值反馈给量化级别计算模块403。量化级别计算模块403根据当前图像的第一复杂度值,确定当前图像的初始量化参数。可选的,量化级别计算模块403根据码率因子计算模块402确定出的码率因子,对当前图像的初始量化参数进行调整。可选的,VBV模块404基于接收端缓冲区域的大小对初始量化级别进行进一步的调整,得到量化级别。量化级别转QP模块405将量化级别转为初始量化参数提供给宏块级量化参数调整模块406。
本申请实施例提供的图像编码方法,若当前图像对应的内容复杂度信息包括起始图像的复杂度信息时,通过起始图像的复杂度信息,确定起始图像的复杂度值,并根据起始图像的复杂度值,确定当前图像的第一复杂度值,再根据当前图像的第一复杂度值,确定当前图像的初始量化级别,然后根据初始量化级别,确定当前宏块的初始量化参数,并根据初始量化参数确定当前宏块的目标量化参数,最后根据当前宏块的目标量化参数,对当前宏块进行编码。即本实施例,在确定当前宏块的目标量化参数时,考虑了起始图像的内容复杂度对当前宏块的目标QP的影响,进而实现对当前宏块QP的准确确定,使得量化操作更加符合图像内容,提升图像编码的整体质量。
下面结合图8和图9对内容复杂度信息包括当前宏块的复杂度信息时,本申请实施例的编码过程进行介绍。
图8为本申请一实施例提供的图像编码方法的流程示意图,如图8所示,包括:
S701、获取当前宏块的复杂度信息。
上述S701的实现过程具体参照上述S501的描述,在此不再赘述。
此时,上述S502包括如下S702的步骤。
S702、根据当前宏块的复杂度信息,确定当前宏块的复杂度值。
本实施例中根据当前宏块的复杂度信息,确定当前宏块的复杂度值的方式包括但不限于如下几种方式:
方式一,若当前宏块的复杂度信息为当前宏块的YUV数据,则根据当前宏块的YUV数据大小,确定当前宏块的复杂度值。例如,将当前宏块中每个像素点对应的YUV大小的和值,确定为当前宏块的复杂度值。
方式二,若当前宏块的复杂度信息为当前宏块的YUV数据中的Y分量,则根据当前宏块的Y分量大小,确定当前宏块的复杂度值。例如,将当前宏块中每个像素点对应的Y分量大小的和值,确定为当前宏块的复杂度值。
方式三,若当前宏块的复杂度信息包括当前宏块的编码信息量,则将当前宏块的编码信息量,确定为当前宏块的复杂度值。
在一种示例中,根据如下公式(11)确定当前宏块的复杂度值:
i_var_y=i_mb_energy (11)
其中,i_var_y表示当前宏块的复杂度值,i_mb_energy表示当前宏块的编码信息量。
对应的,上述S503包括如下S703至S706的步骤。
S703、确定当前图像的模糊复杂度值。
具体参照上述公式(6)和(7),计算得到当前图像的模糊复杂度值。
S704、根据当前图像的模糊复杂度值,确定当前宏块的初始量化参数。
具体的,根据当前图像的模糊复杂度值,确定出当前图像的初始量化参数,将当前图像的初始量化参数确定为当前宏块的初始量化参数。
在一种示例中,将当前图像的模糊复杂度值与码率因子的比值,确定为当前图像的初始量化参数。
在一种示例中,根据上述公式(8),对当前图像的模糊复杂度值进行压缩,得到当前图像的第二复杂度值,将当前图像的第二复杂度值与码率因子的比值,确定为当前图像的初始量化参数。
例如,根据采用如下公式(12),确定出当前图像的初始量化参数。
qscale=(rceq)/ratefactor (12)
其中,qscale为当前图像的初始量化参数。
S705、根据当前宏块的复杂度值对当前宏块的初始量化参数进行调整,得到当前宏块的目标量化参数。
在一些实施例中,上述S704中确定当前宏块的目标量化参数的方式包括但不限于如下几种方式:
方式一,若当前宏块的复杂度值小于预设的最小阈值,则将初始量化参数与第五数值之和,确定为当前宏块的目标量化参数。
该方式一对第五数值的具体取值不做限制。
可选的,上述第五数值为3。
方式二,若当前宏块的复杂度值大于预设的最大阈值,则将初始量化参数与第六数值之差,确定为当前宏块的目标量化参数。
该方式二对第六数值的具体取值不做限制。
可选的,上述第六数值为3。
方式三,若当前宏块的初始量化参数大于预设的量化参数时,则将初始量化参数与第七数值之和,确定为当前宏块的目标量化参数。
该方式三对第七数值的具体取值不做限制。
可选的,上述第七数值为1。
可选的,预设的量化参数为30。
在一种示例中,上述预设的最小阈值、预设的最大阈值和预设的量化参数均是通过对历史数据进行统计分析得到的。
在一些实施例中,上述方式一至方式3的具体实现过程的代码如表2所示:
表2 MB的QP调整关键代码示例
表2中,i_var_y表示当前宏块的复杂度值,i_complex_high表示预设的最大阈值,i_complex_low表示预设的最小阈值。
S706、根据当前宏块的目标量化参数,对当前宏块进行编码。
上述S706的实现过程参照上述S504的描述,在此不再赘述。
图9为本申请一实施例提供的X.264编码示意图,如图9所示,若当前图像对应的内容复杂度信息包括当前宏块的复杂度信息时,复杂度估计模块401估计出当前图像的第二复杂度值。量化级别计算模块403根据复杂度估计模块401输出的当前图像的第二复杂度值进行量化级别的计算,得到当前图像对应的初始量化级别,可选的根据码率因子计算模块402提供的码率因子(ratefactor)对初始量化级别进行调整。可选的,VBV模块404基于接收端缓冲区域的大小对初始量化级别进行进一步的调整,得到量化级别。量化级别转QP模块405将量化级别转为初始量化参数提供给宏块级量化参数调整模块406。
宏块级量化参数调整模块406确定当前宏块的复杂度值,并使用当前宏块的复杂度值对当前图像的初始量化参数进行调整,得到当前宏块的目标量化参数。可选的,在上述调整过程中,宏块级量化参数调整模块406整合自适应量化模块407输出的量化强度因子和当前宏块的复杂度值,对当前图像的初始量化参数进行调整,得到当前宏块的目标量化参数。
本申请实施例提供的图像编码方法,若内容复杂度值只包括当前宏块的复杂度值,则通过确定当前图像的模糊复杂度值,并根据模糊复杂度值确定出当前宏块的初始量化参数,接着,使用当前宏块的复杂度值对该当前宏块的初始量化参数进行调整,使得调整后的量化参数的更符合图像内容,进而可以提高当前宏块QP的计算准确性。
下面结合图10和图11对内容复杂度信息包括起始图像的复杂度信息和当前宏块的复杂度信息时,本申请实施例的编码过程进行介绍。
图10为本申请一实施例提供的图像编码方法的流程示意图,如图10所示,包括:
S801、获取起始图像的复杂度信息和当前宏块的复杂度信息。
上述S801的实现过程具体参照上述S501的描述,在此不再赘述。
此时,上述S502包括如下S802的步骤。
S802、根据起始图像的复杂度信息,确定起始图像的复杂度值,并根据当前宏块的复杂度信息,确定当前宏块的复杂度值。
其中,根据起始图像的复杂度信息,确定起始图像的复杂度值可以参照上述S602的描述,根据当前宏块的复杂度信息,确定当前宏块的复杂度值可以参照上述S702的描述,在此不再赘述。
S803、根据起始图像的复杂度值,确定当前宏块的初始量化参数。
上述S803的实现过程可以参照上述S603至S605的详细介绍,在此不再赘述。
S804、根据当前宏块的复杂度值对当前宏块的初始量化参数进行调整,得到当前宏块的目标量化参数。
上述S804的实现过程,参照上述S705的详细介绍,在此不再赘述。
S805、根据当前宏块的目标量化参数,对当前宏块进行编码。
上述S805的实现过程参照上述S504的描述,在此不再赘述。
在一些实施例中,图11为本申请一实施例提供的X.264编码示意图,如图11所示,若当前图像对应的内容复杂度信息包括起始图像的复杂度信息和当前宏块的复杂度信息时,复杂度估计模块401估计出当前图像的第二复杂度值,并将当前图像的第二复杂度值反馈给量化级别计算模块403。同时,自适应量化模块407通过本实施例的复杂度分段计算方式,确定出当前图像的第一复杂度值,并将确定出当前图像的第一复杂度值反馈给量化级别计算模块403。量化级别计算模块403根据当前图像的第一复杂度值和第二复杂度值,进行量化级别的计算,得到当前图像对应的初始量化级别,可选的根据码率因子计算模块402提供的码率因子(ratefactor)对初始量化级别进行调整。可选的,VBV模块404基于接收端缓冲区域的大小对初始量化级别进行进一步的调整,得到量化级别。量化级别转QP模块405将量化级别转为初始量化参数提供给宏块级量化参数调整模块406。
宏块级量化参数调整模块406根据当前宏块的复杂度信息确定当前宏块的复杂度值,并使用当前宏块的复杂度值对当前图像的初始量化参数进行调整,得到当前宏块的目标量化参数。可选的,在上述调整过程中,宏块级量化参数调整模块406整合自适应量化模块输出的量化强度因子和当前宏块的复杂度值,对当前图像的初始量化参数进行调整,得到当前宏块的目标量化参数。
本申请实施例提供的图像编码方法,若内容复杂度信息包括起始图像的复杂度信息和当前宏块的复杂度信息时,通过计算起始图像的复杂度值和当前宏块的复杂度值,并根据起始图像的复杂度值,确定当前宏块的初始量化参数,接着,使用当前宏块的复杂度值对该当前宏块的初始量化参数进行调整,使得量化参数的确定过程更符合图像内容,进而可以提高当前宏块QP的计算准确性。
上文对基于起始图像和/或当前宏块的内容复杂度,确定当前宏块的目标量化参数的过程进行介绍。在此基础上,为了进一步提高编码效率,本申请实施例还提供了宏块的划分过程进行介绍。
MB的划分可以理解为将MB划分为编码单元的过程,MB的划分是影响编码速度的重要因素之一。
X.264的宏块以16x16为基本尺寸,具体划分方式如图12所示,例如包括16X16、8X16、16X8、8X8、4X8、8X4、4X4和16X16plan这几种方式。
其中,MB的划分方式可以理解为MB的编码方式等,MB的划分方式包括帧内模式、帧间模式和跳跃Skip模式。
可选的,帧内模式包括:16X16、8X16、16X8、8X8、4X8、8X4、4X4这几种帧内模式。
可选的,帧间模式包括:16X16、8X16、16X8、8X8、4X8、8X4、4X4这几种帧间模式。
为了降低MB划分的计算冗余,本申请引入了复杂度阈值的调整,即对上述帧内模式中至少一个帧内模式对应的率失真代价阈值进行调整,使得调整后的阈值更贴合实际情况。
在一些实施例中,针对帧内模式,本申请实施例通过如下步骤确定当前宏块的目标帧内模式,具体包括:针对预设的N个帧内模式中的第i个帧内模式,确定使用第i个帧内模式对当前宏块进行编码时的第一率失真代价,N为正整数,i为小于或等于N的正整数;获取第i个帧内模式对应的调整后的率失真代价阈值;若第一率失真代价小于调整后的率失真代价阈值时,则将第i个帧内模式作为当前宏块的目标帧内模式,对当前宏块进行编码,即使用该第i个帧内模式对当前宏块进行划分,例如第i个帧内模式为8X8模式时,则按照8X8模式的划分方式,将16X16的当前宏块划分成4个8X8子块,将8X8子块作为编码单元进行编码。
在一种示例中,上述N个帧内模式包括16X16、8X16、16X8、8X8、4X8、8X4、4X4这几种帧内模式,并根据上述帧内模式的顺序,按序计算各帧内模式对应的第一率失真代价,并在第一率失真代价小于调整后的率失真代价阈值时,则使用该帧内模式对当前宏块进行编码,不再进行后续的帧内模式的判断。例如,先计算使用16X16帧内模式对当前宏块进行编码时的第一率失真代价,若该第一率失真代价小于或等于16X16帧内模式调整后的率失真代价阈值时,则将16X16帧内模式确定为当前宏块的目标帧内模式。若该第一率失真代价大于16X16帧内模式调整后的率失真代价阈值时,则计算使用8X16帧内模式对当前宏块进行编码时的第一率失真代价,并判断8X16帧内模式对应的第一率失真代价是否小于或等于8X16帧内模式调整后的率失真代价阈值,依次进行。
在另一种示例中,上述N个帧内模式包括16X16、8X8、4X4这几种帧内模式。对应的,只对这3种帧内模式对应的率失真代价阈值进行调整。帧内模式的选择过程如图13所示,首先计算使用16X16帧内模式对当前宏块进行编码时的第一率失真代价(记为第一率失真代价16),判断16X16帧内模式对应的第一率失真代价16是否小于或等于16X16帧内模式调整后的率失真代价阈值(记为率失真代价阈值16)。若16X16帧内模式对应的第一率失真代价16小于或等于16X16帧内模式调整后的率失真代价阈值,则将16X16帧内模式确定为当前宏块的目标帧内模式。若16X16帧内模式对应的第一率失真代价16大于16X16帧内模式调整后的率失真代价阈值16,则计算使用8X8帧内模式对当前宏块进行编码时的第一率失真代价(记为第一率失真代价8),并判断8X8帧内模式对应的第一率失真代价8是否小于或等于8X8帧内模式调整后的率失真代价阈值(记为率失真代价阈值8)。若8X8帧内模式对应的第一率失真代价8小于或等于8X8帧内模式调整后的率失真代价阈值8,则将8X8帧内模式确定为当前宏块的目标帧内模式。若8X8帧内模式对应的第一率失真代价8大于8X8帧内模式调整后的率失真代价阈值8,则计算使用4X4帧内模式对当前宏块进行编码时的第一率失真代价(记为第一率失真代价4),判断4X4帧内模式对应的第一率失真代价4是否小于或等于4X4帧内模式调整后的率失真代价阈值(记为率失真代价阈值4)。若4X4帧内模式对应的第一率失真代价4小于或等于4X4帧内模式调整后的率失真代价阈值4,则将4X4帧内模式确定为当前宏块的目标帧内模式。若4X4帧内模式对应的第一率失真代价4大于4X4帧内模式调整后的率失真代价阈值4,则从剩余的帧内模式中确定当前宏块的目标帧内模式。
在一些实施例中,由于Skip模式是直接以相邻的已编码块作为参考块,其计算量小,且宏块采用Skip模式编码时,除了标记该宏块采用Skip模式进行编码的标记外,不发送该宏块的其他数据,进而节省码率。基于此,为了提高Skip模式的使用频率,则本申请实施例提出如下两种方案:
方案一,若当前宏块的相邻已编码宏块的编码模式为跳跃Skip模式时,则使用跳跃Skip模式对当前宏块进行编码。
方案二,在帧间模式的选择过程中,加入Skip模式的选择,以提高Skip模式的使用概率。具体是,针对预设的M个帧间模式中的第j个帧间模式,确定使用第j个帧间模式对当前宏块进行编码时的第二率失真代价,M为正整数,j为小于或等于M的正整数;确定使用Skip模式对当前宏块进行编码时的第三率失真代价;若第三率失真代价小于或等于第二率失真代价,则使用跳跃Skip模式对当前宏块进行编码。
在一些示例中,上述第j个帧间模式为M个帧间模式中的任意一个帧间模式。
在另一些示例中,为了减少计算量,上述第j个帧间模式为M个帧间模式中的第一个帧内模式,例如第j个帧内模式为16X16帧内模式。具体的,如图14所示,计算使用16X16帧内模式对当前宏块进行编码时的第二率失真代价,以及计算使用Skip模式对当前宏块进行编码时的第三率失真代价,若第三率失真代价小于或等于第二率失真代价,则使用跳跃Skip模式对当前宏块进行编码。若第三率失真代价大于16X16帧间模式对应的第二率失真代价,则根据图14所示的流程,判断8X8、4X4、4X8、8X4等帧间模式对应的代价,进而选出代价最小的帧间模式作为当前图像的目标帧间模式。
本申请实施例,通过增加Skip模式的选择概率,在保证编码压缩率与质量的情况下,可大幅度提升编码速度。
为了进一步说明本申请技术方案的有效性,在一些实施例中,选取商业专用转码数据集进行测试,测试视频数量共计50个,视频分辨率包括960x540,1024x576,1280x720,1920x1080,采用ABR模式,并将码率设置在相对较低的1.4Mb/s,帧率25fps。在相同条件下与标准X.264进行横向对比,在PSNR客观质量上总体平均提升约0.575dB,编码速度平均提升10%,由此可以得出结论,本申请的技术方案在编码视频质量方面有较为明显的提升,并且提升了编码速度,同时不会影响编码的压缩率。通过本申请实施例优化后的编码器,符合编码标准,不存在兼容性问题,可广泛应用于视频编码、转码、编辑等场景。
应理解,图5至图14仅为本申请的示例,不应理解为对本申请的限制。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
上文结合图5至图14,详细描述了本申请的方法实施例,下文结合图15至图16,详细描述本申请的装置实施例。
图15是本申请实施例提供的图像编码装置的示意性框图。
如图15所示,图像编码装置10包括:
获取单元11,用于获取待编码的当前图像对应的内容复杂度信息,所述内容复杂度信息包括所述当前图像所在的视频数据中的起始图像的复杂度信息和所述当前图像中的当前宏块的复杂度信息中的至少一个;
复杂度确定单元12,用于根据所述内容复杂度信息,确定所述当前图像对应的内容复杂度值;
量化参数确定单元13,用于根据所述内容复杂度值,确定所述当前宏块的目标量化参数;
编码单元14,用于根据所述当前宏块的目标量化参数,对所述当前宏块进行编码。
在一些实施例中,复杂度确定单元12,具体用于若所述内容复杂度信息包括所述起始图像的复杂度信息,则根据所述起始图像的复杂度信息,确定所述起始图像的复杂度值,并将所述起始图像的复杂度值确定为所述内容复杂度值;
若所述内容复杂度信息包括所述当前宏块的复杂度信息,则根据所述当前宏块的复杂度信息,确定所述当前宏块的复杂度值,并将所述当前宏块的复杂度值确定为所述内容复杂度值;
若所述内容复杂度信息包括所述起始图像的复杂度信息和所述当前宏块的复杂度信息,则根据所述起始图像的复杂度信息,确定所述起始图像的复杂度值,并根据所述当前宏块的复杂度信息,确定所述当前宏块的复杂度值,将所述起始图像的复杂度值和所述当前宏块的复杂度值确定为所述内容复杂度值。
可选的,所述起始图像的复杂度信息包括所述起始图像所包括的宏块的编码信息量、编码位深以及所述起始图像所包括的宏块数量中的至少一个。
在一些实施例中,复杂度确定单元12,具体用于计算所述起始图像中宏块的编码信息量与所述编码位深的乘积,并将所述乘积与第一预设值进行相加得到和值,以第二预设值作为指数,对所述和值进行指数运算,得到所述宏块对应的第一运算结果;计算所述起始图像中宏块对应的第一运算结果之和,并将所述之和与所述起始图像所包括的宏块数量的比值,确定为所述起始图像的复杂度值。
可选的,所述当前宏块的复杂度信息包括所述当前宏块的编码信息量。
在一些实施例中,复杂度确定单元12,具体用于将所述当前宏块的编码信息量,确定为所述当前宏块的复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述内容复杂度值包括所述起始图像的复杂度值,则根据所述起始图像的复杂度值,确定所述当前宏块的初始量化参数,并根据所述初始量化参数确定所述当前宏块的目标量化参数;和/或,
若所述内容复杂度值包括所述当前宏块的复杂度值,则确定所述当前图像的模糊复杂度值,根据所述当前图像的模糊复杂度值,确定所述当前宏块的初始量化参数,并根据所述当前宏块的复杂度值对所述当前宏块的初始量化参数进行调整,得到所述当前宏块的目标量化参数;和/或,
若所述内容复杂度值包括所述起始图像的复杂度值和所述当前宏块的复杂度值,则根据所述起始图像的复杂度值,确定所述当前宏块的初始量化参数,并根据所述当前宏块的复杂度值对所述当前宏块的初始量化参数进行调整,得到所述当前宏块的目标量化参数。
在一些实施例中,量化参数确定单元13,具体用于根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值;根据所述当前图像的第一复杂度值,确定所述当前图像的初始量化级别;根据所述初始量化级别,确定所述当前宏块的初始量化参数。
在一些实施例中,量化参数确定单元13,具体用于若所述当前图像为所述起始图像,则根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值;和/或,
若所述当前图像不是所述起始图像,则确定所述当前图像经过运动补偿后的残差绝对值总和satd,并根据所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述起始图像的复杂度值小于第一数值,则确定所述当前图像的第一复杂度值为第一预设复杂度值;和/或,
若所述起始图像的复杂度值大于或等于第二数值,则将所述起始图像的复杂度值与第三数值的乘积,确定为所述当前图像的第一复杂度值;和/或,
若所述起始图像的复杂度值大于或等于所述第一数值且小于所述第二数值,则将所述起始图像的复杂度值与第四数值的乘积,确定为所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于获取所述当前图像的分辨率;根据所述当前图像的分辨率,在预设的分辨率与分辨率因子的对应关系中,查询所述当前图像对应的分辨率因子;根据所述当前图像对应的分辨率因子、所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述当前图像的satd大于第一satd值、且所述起始图像的复杂度值大于第二预设复杂度值时,则将第三预设值与所述分辨率因子相乘,得到第一乘积;将所述当前图像的satd与所述第一乘积相减,得到第一差值;将所述第一差值与所述起始图像的复杂度值相乘,得到第二乘积;将所述第二乘积与第四预设值相比,得到第一比值后,与所述第一乘积相加,得到所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述当前图像的satd大于第一satd值小于第二satd值,且所述起始图像的复杂度值小于或等于第二预设复杂度值时,则将所述起始图像的复杂度值与第五预设值相比,得到第二比值;将第六预设值与所述第二比值相加,得到第二和值;将所述第二和值与所述当前图像的satd相乘,得到第三乘积;将第七预设值与所述分辨率因子相乘,得到第四乘积;将所述第三乘积与所述第四乘积的比值,确定为所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述当前图像的satd大于或等于第二satd值且小于第三satd值,且所述起始图像的复杂度值小于或等于第二预设复杂度值时,则将所述起始图像的复杂度值与第八预设值相比,得到第三比值;将第九预设值与所述第三比值相加,得到第三和值;将所述第三和值与所述当前图像的satd相乘,得到第四乘积;将第十预设值与所述分辨率因子相乘,得到第五乘积;将所述第四乘积与所述第五乘积的比值,确定为所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于若所述当前图像的satd小于第一satd值,则根据所述当前图像的satd和所述当前图像对应的分辨率因子,确定所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于将第十一预设值与所述当前图像的satd相乘,得到第六乘积;将第十二预设值与所述分辨率因子相乘,得到第七乘积;将所述第六乘积与所述第七乘积的比值,确定为所述当前图像的第一复杂度值。
在一些实施例中,量化参数确定单元13,具体用于确定所述当前图像的模糊复杂度值;根据所述当前图像的模糊复杂度值,确定所述当前图像的第二复杂度值;根据所述当前图像的第一复杂度值和第二复杂度值,确定所述当前图像的初始量化级别。
在一些实施例中,量化参数确定单元13,具体用于获取所述当前图像的码率因子;将所述当前图像的第一复杂度值和第二复杂度值的和值,与所述码率因子的比值确定为所述当前图像的初始量化级别。
在一些实施例中,量化参数确定单元13,具体用于若所述当前宏块的复杂度值小于预设的最小阈值,则将所述初始量化参数与第五数值之和,确定为所述当前宏块的目标量化参数;和/或,
若所述当前宏块的复杂度值大于预设的最大阈值,则将所述初始量化参数与第六数值之差,确定为所述当前宏块的目标量化参数。
在一些实施例中,量化参数确定单元13,还用于若所述当前宏块的初始量化参数大于预设的量化参数时,则将所述初始量化参数与第七数值之和,确定为所述当前宏块的目标量化参数。
在一些实施例中,编码单元14,还用于针对预设的N个帧内模式中的第i个帧内模式,确定使用所述第i个帧内模式对所述当前宏块进行编码时的第一率失真代价,所述N为正整数,所述i为小于或等于N的正整数;获取所述第i个帧内模式对应的调整后的率失真代价阈值;若所述第一率失真代价小于或等于调整后的率失真代价阈值时,则将使所述第i个帧内模式确定为所述当前宏块的目标帧内模式,并使用所述第i个帧内模式对所述当前宏块进行编码。
在一些实施例中,编码单元14,用于若所述当前宏块的相邻已编码宏块的编码模式为跳跃Skip模式时,则使用所述跳跃Skip模式对所述当前宏块进行编码。
在一些实施例中,针对预设的M个帧间模式中的第j个帧间模式,确定使用所述第j个帧间模式对所述当前宏块进行编码时的第二率失真代价,所述M为正整数,所述j为小于或等于M的正整数;确定使用Skip模式对所述当前宏块进行编码时的第三率失真代价;若所述第三率失真代价小于或等于所述第二率失真代价,则使用所述跳跃Skip模式对所述当前宏块进行编码。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图15所示的装置10可以执行本申请实施例的方法,并且装置10中的各个单元的前述和其它操作和/或功能分别为了实现方法等各个方法中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能单元的角度描述了本申请实施例的装置和系统。应理解,该功能单元可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件单元组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。可选地,软件单元可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图16是本申请实施例提供的编码设备的示意性框图。
如图16所示,该编码设备30用于执行上述图像编码方法,该编码设备30可包括:
存储器33和处理器32,该存储器33用于存储计算机程序34,并将该程序代码34传输给该处理器32。换言之,该处理器32可以从存储器33中调用并运行计算机程序34,以实现本申请实施例中的方法。
例如,该处理器32可用于根据该计算机程序34中的指令执行上述方法200中的步骤。
在本申请的一些实施例中,该处理器32可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器33包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序34可以被分割成一个或多个单元,该一个或者多个单元被存储在该存储器33中,并由该处理器32执行,以完成本申请提供的方法。该一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序34在该编码设备30中的执行过程。
如图16所示,该编码设备30还可包括:
收发器33,该收发器33可连接至该处理器32或存储器33。
其中,处理器32可以控制该收发器33与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器33可以包括发射机和接收机。收发器33还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该编码设备30中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字点云光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (26)
1.一种图像编码方法,其特征在于,包括:
获取待编码的当前图像对应的内容复杂度信息,所述内容复杂度信息包括所述当前图像所在的视频数据中的起始图像的复杂度信息和所述当前图像中的当前宏块的复杂度信息中的至少一个;
根据所述内容复杂度信息,确定所述当前图像对应的内容复杂度值;
根据所述内容复杂度值,确定所述当前宏块的目标量化参数;
根据所述当前宏块的目标量化参数,对所述当前宏块进行编码。
2.根据权利要求1所述的方法,其特征在于,所述根据所述内容复杂度信息,确定所述当前图像对应的内容复杂度值,包括:
若所述内容复杂度信息包括所述起始图像的复杂度信息,则根据所述起始图像的复杂度信息,确定所述起始图像的复杂度值,并将所述起始图像的复杂度值确定为所述内容复杂度值;
若所述内容复杂度信息包括所述当前宏块的复杂度信息,则根据所述当前宏块的复杂度信息,确定所述当前宏块的复杂度值,并将所述当前宏块的复杂度值确定为所述内容复杂度值;
若所述内容复杂度信息包括所述起始图像的复杂度信息和所述当前宏块的复杂度信息,则根据所述起始图像的复杂度信息,确定所述起始图像的复杂度值,并根据所述当前宏块的复杂度信息,确定所述当前宏块的复杂度值,将所述起始图像的复杂度值和所述当前宏块的复杂度值确定为所述内容复杂度值。
3.根据权利要求2所述的方法,其特征在于,所述起始图像的复杂度信息包括所述起始图像所包括的宏块的编码信息量、编码位深以及所述起始图像所包括的宏块数量中的至少一个。
4.根据权利要求3所述的方法,其特征在于,所述根据所述起始图像的复杂度信息,确定所述起始图像的复杂度值,包括:
计算所述起始图像中宏块的编码信息量与所述编码位深的乘积,并将所述乘积与第一预设值进行相加得到和值,以第二预设值作为指数,对所述和值进行指数运算,得到所述宏块对应的第一运算结果;
计算所述起始图像中宏块对应的第一运算结果之和,并将所述之和与所述起始图像所包括的宏块数量的比值,确定为所述起始图像的复杂度值。
5.根据权利要求2所述的方法,其特征在于,所述当前宏块的复杂度信息包括所述当前宏块的编码信息量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述当前宏块的复杂度信息,确定所述当前宏块的复杂度值,包括:
将所述当前宏块的编码信息量,确定为所述当前宏块的复杂度值。
7.根据权利要求2所述的方法,其特征在于,所述根据所述内容复杂度值,确定所述当前宏块的目标量化参数,包括:
若所述内容复杂度值包括所述起始图像的复杂度值,则根据所述起始图像的复杂度值,确定所述当前宏块的初始量化参数,并根据所述初始量化参数确定所述当前宏块的目标量化参数;和/或,
若所述内容复杂度值包括所述当前宏块的复杂度值,则确定所述当前图像的模糊复杂度值,根据所述当前图像的模糊复杂度值,确定所述当前宏块的初始量化参数,并根据所述当前宏块的复杂度值对所述当前宏块的初始量化参数进行调整,得到所述当前宏块的目标量化参数;和/或,
若所述内容复杂度值包括所述起始图像的复杂度值和所述当前宏块的复杂度值,则根据所述起始图像的复杂度值,确定所述当前宏块的初始量化参数,并根据所述当前宏块的复杂度值对所述当前宏块的初始量化参数进行调整,得到所述当前宏块的目标量化参数。
8.根据权利要求7所述的方法,其特征在于,所述根据所述起始图像的复杂度值,确定所述当前宏块的初始量化参数,包括:
根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值;
根据所述当前图像的第一复杂度值,确定所述当前图像的初始量化级别;
根据所述初始量化级别,确定所述当前宏块的初始量化参数。
9.根据权利要求8所述的方法,其特征在于,所述根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值,包括:
若所述当前图像为所述起始图像,则根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值;和/或,
若所述当前图像不是所述起始图像,则确定所述当前图像经过运动补偿后的残差绝对值总和satd,并根据所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值。
10.根据权利要求9所述的方法,其特征在于,若所述当前图像为所述起始图像,则根据所述起始图像的复杂度值,确定所述当前图像的第一复杂度值,包括:
若所述起始图像的复杂度值小于第一数值,则确定所述当前图像的第一复杂度值为第一预设复杂度值;和/或,
若所述起始图像的复杂度值大于或等于第二数值,则将所述起始图像的复杂度值与第三数值的乘积,确定为所述当前图像的第一复杂度值;和/或,
若所述起始图像的复杂度值大于或等于所述第一数值且小于所述第二数值,则将所述起始图像的复杂度值与第四数值的乘积,确定为所述当前图像的第一复杂度值。
11.根据权利要求9所述的方法,其特征在于,所述根据所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值,包括:
获取所述当前图像的分辨率;
根据所述当前图像的分辨率,在预设的分辨率与分辨率因子的对应关系中,查询所述当前图像对应的分辨率因子;
根据所述当前图像对应的分辨率因子、所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值。
12.根据权利要求11所述的方法,其特征在于,所述根据所述当前图像对应的分辨率因子、所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值,包括:
若所述当前图像的satd大于第一satd值、且所述起始图像的复杂度值大于第二预设复杂度值时,则将第三预设值与所述分辨率因子相乘,得到第一乘积;
将所述当前图像的satd与所述第一乘积相减,得到第一差值;
将所述第一差值与所述起始图像的复杂度值相乘,得到第二乘积;
将所述第二乘积与第四预设值相比,得到第一比值后,与所述第一乘积相加,得到所述当前图像的第一复杂度值。
13.根据权利要求11所述的方法,其特征在于,所述根据所述当前图像对应的分辨率因子、所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值,包括:
若所述当前图像的satd大于第一satd值小于第二satd值,且所述起始图像的复杂度值小于或等于第二预设复杂度值时,则将所述起始图像的复杂度值与第五预设值相比,得到第二比值;
将第六预设值与所述第二比值相加,得到第二和值;
将所述第二和值与所述当前图像的satd相乘,得到第三乘积;
将第七预设值与所述分辨率因子相乘,得到第四乘积;
将所述第三乘积与所述第四乘积的比值,确定为所述当前图像的第一复杂度值。
14.根据权利要求11所述的方法,其特征在于,所述根据所述当前图像对应的分辨率因子、所述起始图像的复杂度值和所述当前图像的satd,确定所述当前图像的第一复杂度值,包括:
若所述当前图像的satd大于或等于第二satd值且小于第三satd值,且所述起始图像的复杂度值小于或等于第二预设复杂度值时,则将所述起始图像的复杂度值与第八预设值相比,得到第三比值;
将第九预设值与所述第三比值相加,得到第三和值;
将所述第三和值与所述当前图像的satd相乘,得到第四乘积;
将第十预设值与所述分辨率因子相乘,得到第五乘积;
将所述第四乘积与所述第五乘积的比值,确定为所述当前图像的第一复杂度值。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若所述当前图像的satd小于第一satd值,则根据所述当前图像的satd和所述当前图像对应的分辨率因子,确定所述当前图像的第一复杂度值。
16.根据权利要求15所述的方法,其特征在于,所述根据所述当前图像的satd和所述当前图像对应的分辨率因子,确定所述当前图像的第一复杂度值,包括:
将第十一预设值与所述当前图像的satd相乘,得到第六乘积;
将第十二预设值与所述分辨率因子相乘,得到第七乘积;
将所述第六乘积与所述第七乘积的比值,确定为所述当前图像的第一复杂度值。
17.根据权利要求8所述的方法,其特征在于,所述根据所述当前图像的第一复杂度值,确定所述当前图像的初始量化级别,包括:
确定所述当前图像的模糊复杂度值;
根据所述当前图像的模糊复杂度值,确定所述当前图像的第二复杂度值;
根据所述当前图像的第一复杂度值和第二复杂度值,确定所述当前图像的初始量化级别。
18.根据权利要求17所述的方法,其特征在于,所述根据所述当前图像的第一复杂度值和第二复杂度值,确定所述当前图像的初始量化级别,包括:
获取所述当前图像的码率因子;
将所述当前图像的第一复杂度值和第二复杂度值的和值,与所述码率因子的比值确定为所述当前图像的初始量化级别。
19.根据权利要求7所述的方法,其特征在于,所述根据所述当前宏块的复杂度值对所述当前宏块的初始量化参数进行调整,得到所述当前宏块的目标量化参数,包括:
若所述当前宏块的复杂度值小于预设的最小阈值,则将所述初始量化参数与第五数值之和,确定为所述当前宏块的目标量化参数;和/或,
若所述当前宏块的复杂度值大于预设的最大阈值,则将所述初始量化参数与第六数值之差,确定为所述当前宏块的目标量化参数。
20.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述当前宏块的初始量化参数大于预设的量化参数时,则将所述初始量化参数与第七数值之和,确定为所述当前宏块的目标量化参数。
21.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对预设的N个帧内模式中的第i个帧内模式,确定使用所述第i个帧内模式对所述当前宏块进行编码时的第一率失真代价,所述N为正整数,所述i为小于或等于N的正整数;
获取所述第i个帧内模式对应的调整后的率失真代价阈值;
若所述第一率失真代价小于或等于调整后的率失真代价阈值时,则使用所述第i个帧内模式对所述当前宏块进行编码。
22.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前宏块的相邻已编码宏块的编码模式为跳跃Skip模式时,则使用所述跳跃Skip模式对所述当前宏块进行编码。
23.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对预设的M个帧间模式中的第j个帧间模式,确定使用所述第j个帧间模式对所述当前宏块进行编码时的第二率失真代价,所述M为正整数,所述j为小于或等于M的正整数;
确定使用Skip模式对所述当前宏块进行编码时的第三率失真代价;
若所述第三率失真代价小于或等于所述第二率失真代价,则使用跳跃Skip模式对所述当前宏块进行编码。
24.一种图像处理装置,其特征在于,包括:
获取单元,用于获取待编码的当前图像对应的内容复杂度信息,所述内容复杂度信息包括所述当前图像所在的视频数据中的起始图像的复杂度信息和所述当前图像中的当前宏块的复杂度信息中的至少一个;
复杂度确定单元,用于根据所述内容复杂度信息,确定所述当前图像对应的内容复杂度值;
量化参数确定单元,用于根据所述内容复杂度值,确定所述当前宏块的目标量化参数;
编码单元,用于根据所述当前宏块的目标量化参数,对所述当前宏块进行编码。
25.一种编码器,其特征在于,包括:处理器和存储器;
所述存储器用于存储计算机程序;
所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行如权利要求1-23任一项所述的方法。
26.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-23任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095305.1A CN113784126A (zh) | 2021-09-17 | 2021-09-17 | 图像编码方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111095305.1A CN113784126A (zh) | 2021-09-17 | 2021-09-17 | 图像编码方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113784126A true CN113784126A (zh) | 2021-12-10 |
Family
ID=78852045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111095305.1A Pending CN113784126A (zh) | 2021-09-17 | 2021-09-17 | 图像编码方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113784126A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114374847A (zh) * | 2022-01-17 | 2022-04-19 | 海宁奕斯伟集成电路设计有限公司 | 图像压缩方法、装置、设备及计算机可读存储介质 |
CN114531594A (zh) * | 2022-02-16 | 2022-05-24 | 北京百度网讯科技有限公司 | 一种数据处理和图像编码方法、装置、设备及存储介质 |
CN115412734A (zh) * | 2022-08-29 | 2022-11-29 | 京东科技信息技术有限公司 | 一种视频转码方法、装置、设备和计算机可读存储介质 |
CN116095318A (zh) * | 2022-05-31 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116095319A (zh) * | 2022-07-26 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116095320A (zh) * | 2022-12-30 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 量化参数调整方法、装置、设备及存储介质 |
WO2023138532A1 (zh) * | 2022-01-21 | 2023-07-27 | 杭州海康威视数字技术股份有限公司 | 一种视频解码方法、装置、视频解码器及存储介质 |
CN117750017A (zh) * | 2023-12-27 | 2024-03-22 | 书行科技(北京)有限公司 | 编码控制方法、装置、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094411A (zh) * | 2007-07-03 | 2007-12-26 | 芯瀚电子技术(上海)有限公司 | 一种视频编码的码率控制方法 |
CN103096079A (zh) * | 2013-01-08 | 2013-05-08 | 宁波大学 | 一种基于恰可察觉失真的多视点视频码率控制方法 |
CN104219522A (zh) * | 2013-06-04 | 2014-12-17 | 北京大学 | 一种视频图像编码中的码率控制方法及装置 |
CN106937112A (zh) * | 2017-03-31 | 2017-07-07 | 西安电子科技大学 | 基于h.264视频压缩标准的码率控制方法 |
CN109076212A (zh) * | 2017-12-27 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
CN111866504A (zh) * | 2020-07-17 | 2020-10-30 | Oppo广东移动通信有限公司 | 一种编码方法、编码器及计算机可读存储介质 |
-
2021
- 2021-09-17 CN CN202111095305.1A patent/CN113784126A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101094411A (zh) * | 2007-07-03 | 2007-12-26 | 芯瀚电子技术(上海)有限公司 | 一种视频编码的码率控制方法 |
CN103096079A (zh) * | 2013-01-08 | 2013-05-08 | 宁波大学 | 一种基于恰可察觉失真的多视点视频码率控制方法 |
CN104219522A (zh) * | 2013-06-04 | 2014-12-17 | 北京大学 | 一种视频图像编码中的码率控制方法及装置 |
CN106937112A (zh) * | 2017-03-31 | 2017-07-07 | 西安电子科技大学 | 基于h.264视频压缩标准的码率控制方法 |
CN109076212A (zh) * | 2017-12-27 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
CN111866504A (zh) * | 2020-07-17 | 2020-10-30 | Oppo广东移动通信有限公司 | 一种编码方法、编码器及计算机可读存储介质 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114374847A (zh) * | 2022-01-17 | 2022-04-19 | 海宁奕斯伟集成电路设计有限公司 | 图像压缩方法、装置、设备及计算机可读存储介质 |
CN114374847B (zh) * | 2022-01-17 | 2024-06-25 | 海宁奕斯伟集成电路设计有限公司 | 图像压缩方法、装置、设备及计算机可读存储介质 |
WO2023138532A1 (zh) * | 2022-01-21 | 2023-07-27 | 杭州海康威视数字技术股份有限公司 | 一种视频解码方法、装置、视频解码器及存储介质 |
CN114531594A (zh) * | 2022-02-16 | 2022-05-24 | 北京百度网讯科技有限公司 | 一种数据处理和图像编码方法、装置、设备及存储介质 |
CN116095318B (zh) * | 2022-05-31 | 2025-01-07 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116095318A (zh) * | 2022-05-31 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116506613A (zh) * | 2022-05-31 | 2023-07-28 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
WO2023231866A1 (zh) * | 2022-05-31 | 2023-12-07 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116506613B (zh) * | 2022-05-31 | 2025-01-07 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
TWI864785B (zh) * | 2022-05-31 | 2024-12-01 | 大陸商杭州海康威視數字技術股份有限公司 | 視頻解碼方法、視頻編碼方法、視頻解碼裝置、視頻編碼裝置、視頻解碼器、視頻編碼器、視頻編解碼系統、電腦可讀儲存媒體及電腦程式產品 |
CN116095319A (zh) * | 2022-07-26 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 一种视频译码方法、装置及存储介质 |
CN116366847A (zh) * | 2022-07-26 | 2023-06-30 | 杭州海康威视数字技术股份有限公司 | 一种视频图像解码方法、装置及存储介质 |
WO2024022039A1 (zh) * | 2022-07-26 | 2024-02-01 | 杭州海康威视数字技术股份有限公司 | 一种视频图像解码方法、编码方法、装置及存储介质 |
CN116366847B (zh) * | 2022-07-26 | 2024-10-18 | 杭州海康威视数字技术股份有限公司 | 一种视频图像解码方法、装置及存储介质 |
CN116095319B (zh) * | 2022-07-26 | 2024-09-24 | 杭州海康威视数字技术股份有限公司 | 一种视频图像解码方法、编码方法、装置及存储介质 |
CN115412734A (zh) * | 2022-08-29 | 2022-11-29 | 京东科技信息技术有限公司 | 一种视频转码方法、装置、设备和计算机可读存储介质 |
CN116095320A (zh) * | 2022-12-30 | 2023-05-09 | 杭州海康威视数字技术股份有限公司 | 量化参数调整方法、装置、设备及存储介质 |
WO2024140500A1 (zh) * | 2022-12-30 | 2024-07-04 | 杭州海康威视数字技术股份有限公司 | 量化参数调整方法、装置、设备及存储介质 |
CN117255199A (zh) * | 2022-12-30 | 2023-12-19 | 杭州海康威视数字技术股份有限公司 | 量化参数调整方法、装置、设备及存储介质 |
CN117750017A (zh) * | 2023-12-27 | 2024-03-22 | 书行科技(北京)有限公司 | 编码控制方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111819852B (zh) | 用于变换域中残差符号预测的方法及装置 | |
CN113784126A (zh) | 图像编码方法、装置、设备及存储介质 | |
CN116405686A (zh) | 图像重建方法和装置 | |
CN113785573A (zh) | 编码器、解码器和使用自适应环路滤波器的对应方法 | |
CN115695784A (zh) | 对图像的块进行编码的方法,编码设备和计算机可读介质 | |
KR102725069B1 (ko) | 모드 및 크기 의존적 블록 레벨 제한의 방법 및 장치 | |
CN115348449A (zh) | 编码器,解码器和使用压缩mv存储的对应方法 | |
CN113411613B (zh) | 对图像块进行视频译码的方法、解码设备和编/解码器 | |
CN114205582B (zh) | 用于视频编解码的环路滤波方法、装置及设备 | |
US20240236372A1 (en) | Video encoding and decoding method, and device | |
CN116405701A (zh) | 图像滤波方法、装置、设备及存储介质 | |
CN113938679B (zh) | 图像类型的确定方法、装置、设备及存储介质 | |
CN119817096A (zh) | 一种图像预测方法、装置及计算机可读存储介质 | |
CN117981307A (zh) | 视频编解码方法、设备、系统、及存储介质 | |
CN114079782A (zh) | 视频图像重建方法、装置、计算机设备及存储介质 | |
WO2023122969A1 (zh) | 帧内预测方法、设备、系统、及存储介质 | |
CN113766227B (zh) | 用于图像编码和解码的量化和反量化方法及装置 | |
CN114979628B (zh) | 图像块预测样本的确定方法及编解码设备 | |
EP4459995A1 (en) | Intra-frame prediction method, device and system, and storage medium | |
WO2022155922A1 (zh) | 视频编解码方法与系统、及视频编码器与视频解码器 | |
CN118975242A (zh) | 视频编解码方法、装置、设备、系统及存储介质 | |
WO2023236113A1 (zh) | 视频编解码方法、装置、设备、系统及存储介质 | |
CN119137938A (zh) | 视频编码方法、装置、设备、系统、及存储介质 | |
WO2024192733A1 (zh) | 视频编解码方法、装置、设备、系统、及存储介质 | |
WO2023184248A1 (zh) | 视频编解码方法、装置、设备、系统及存储介质 |
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 |