CN117221564A - 一种视频解码方法、装置及存储介质 - Google Patents
一种视频解码方法、装置及存储介质 Download PDFInfo
- Publication number
- CN117221564A CN117221564A CN202310485423.6A CN202310485423A CN117221564A CN 117221564 A CN117221564 A CN 117221564A CN 202310485423 A CN202310485423 A CN 202310485423A CN 117221564 A CN117221564 A CN 117221564A
- Authority
- CN
- China
- Prior art keywords
- current block
- image
- decoded
- bits
- quantization
- 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.)
- Granted
Links
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/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请实施例提供一种视频解码方法、装置及存储介质,涉及视频解码技术领域,有助于节省码流中的资源,提升码流的传输效率。该方法包括:获取待解码图像中当前块的一个或多个码率控制参数;根据一个或多个码率控制参数确定当前块的量化参数;基于当前块的量化参数对当前块进行解码。
Description
本申请是分案申请,原申请的申请号是202210074669.X,原申请日是2022年01月21日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及视频解码技术领域,尤其涉及一种视频解码方法、装置及存储介质。
背景技术
视频编解码技术在视频传输与存储领域发挥着重要的作用。其中,量化在视频编解码过程中是决定图像质量的关键步骤。量化主要通过量化参数降低数据的冗余,但同时可能带来图像失真的风险。当前,用于进行量化的量化参数在视频编码阶段写入码流,视频解码端通过解析码流中的量化参数,实现解码。而量化参数在码流中占据较多资源,影响传输效率。
发明内容
本申请实施例提供一种视频解码方法、装置及存储介质,有助于节省码流中的资源,提升码流的传输效率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种视频解码方法,该方法应用于视频解码设备或视频解码设备的芯片中,该方法包括:获取待解码图像中当前块的一个或多个码率控制参数;根据一个或多个码率控制参数确定当前块的量化参数;基于当前块的量化参数对当前块进行解码。
由于量化参数在码流中占据较多资源,影响传输效率。因此,采用本申请提出的视频解码方法,解码端获取码率控制参数,通过码率控制参数计算得到量化参数用于实现解码,实现节省码流中的资源,提升码流传输的效率。
在一种可能的实现方式中,获取待解码图像中当前块的一个或多个码率控制参数,包括:获取待解码图像的信息,待解码图像的信息包括待解码图像的基本信息和待解码图像中图像块的信息;根据待解码图像的信息中的部分或全部确定当前块的一个或多个码率控制参数。
该种可能的实现方式,提供了获取码率控制参数的具体实现方式,通过获取待解码图像的基本信息和该待解码图像中图像块的信息,计算用于生成量化参数的码率控制参数。通过图像的部分特征完成量化参数的计算。
在一种可能的实现方式中,码率控制参数包括当前块的资源充裕度、当前块的复杂度、当前块的预测比特数、当前块的平均量化参数和当前块的量化参数的变化值;其中,平均量化参数用于表征待解码图像中已解码图像块的量化参数的平均程度,资源充裕度是指用于存储当前块的资源在用于存储待解码图像的资源中的充足程度,复杂度是指待解码图像中已解码图像块的复杂程度,预测比特数是指预估当前块解码后占用的资源,量化参数的变化值是指待解码图像中已解码图像块之间量化参数的变化值。
该种可能的实现方式,提供了多种码率控制参数,该多种码率控制参数均可通过不同方式生成量化参数,提升方案可实施性。
在一种可能的实现方式中,根据一个或多个码率控制参数确定当前块的量化参数,包括:获取已解码图像块的码率控制参数;根据已解码图像块的码率控制参数确定当前块的量化参数。
该种可能的实现方式,提供了一种根据码率控制参数生成量化参数的具体实现方式,通过已解码图像块的码率控制参数确定当前块的量化参数,有助于建立图像块之间的相关性。
在一种可能的实现方式中,根据一个或多个码率控制参数确定当前块的量化参数,包括:获取已解码图像块的量化参数;根据已解码图像块的量化参数确定当前块的量化参数。
该种可能的实现方式,提供了一种根据码率控制参数生成量化参数的具体实现方式,通过已解码图像块的量化参数确定当前块的量化参数,有助于建立图像块之间的相关性。
在一种可能的实现方式中,在获取待解码图像的信息之后,该方法还包括:根据当前块信息计算当前块的总比特数,当前块的总比特数为当前块解码后所占用的比特数;根据总比特数确定可用比特数,可用比特数为存储当前块解码后的图像数据,可用比特数用于确定当前块的一个或多个码率控制参数。
该种可能的实现方式,提供了一种根据待解码图像的信息确定码率控制参数的具体实现方式,通过计算图像块的可用比特数,有助于提升码率控制参数的精确度,提升方案可实施性。
在一种可能的实现方式中,根据总比特数确定可用比特数,包括:去除总比特数中用于存储非图像数据的其他比特数。
该种可能的实现方式,提供了一种确定可用比特数的具体实现方式,其中,通过去除部分用于存储非图像数据的其他比特数,确定用于存储图像数据的可用比特数,有助于提升码率控制参数的精确度,提升方案可实施性。
在一种可能的实现方式中,该方法还包括:初始化中间参数,中间参数用于结合一个或多个码率控制参数确定当前块的量化参数。
该种可能的实现方式,提供了用于确定量化参数的中间参数的初始化过程,有助于量化参数的生成。
在一种可能的实现方式中,在根据一个或多个码率控制参数确定当前块的量化参数之后,方法还包括:基于一个或多个码率控制参数,修正量化参数。
该种可能的实现方式中,提供了确定量化参数后,修正量化参数的方法,有助于提升解码后图像的质量。
在一种可能的实现方式中,在根据一个或多个码率控制参数确定量化参数之后,该方法还包括:更新一个或多个码率控制参数。
该种可能的实现方式中,提供了更新码率控制参数的方法,针对待解码图像中图像块适应性调整,有助于提升方案应用的灵活性。
第二方面,本申请实施例提供一种视频解码装置,该装置具有实现上述第一方面中任一项的视频解码方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,提供一种视频解码装置,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该视频解码装置运行时,该处理器执行该存储器存储的该计算机执行指令,以使该视频解码装置执行如上述第一方面中任一项的视频解码方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的视频解码方法。
第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面中任一项的视频解码方法。
第六方面,提供一种电子设备,电子设备包括视频解码装置,处理电路被配置为执行如上述第一方面中任一项的视频解码方法。
第七方面,提供一种芯片,芯片包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面中任意一项的视频解码方法。
第二方面至第七方面中的任一种实现方式所带来的技术效果可参见第一方面中对应实现方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的编解码系统的系统架构图;
图2为本申请实施例提供的视频编码器的结构示意图;
图3为本申请实施例提供的视频解码器的结构示意图;
图4为本申请实施例提供的一种视频解码的流程示意图;
图5为本申请实施例提供的视频解码器结构示意图;
图6为本申请实施例提供的视频解码方法的流程图;
图7为本申请实施例提供的图像块位置信息的示意图;
图8为本申请实施例提供的sigmoid函数示意图;
图9为本申请实施例提供的确定参数初始化的流程图;
图10为本申请实施例提供的编码装置的结构示意图。
具体实施方式
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
首先,对本申请实施例涉及的技术术语进行介绍:
1、视频编码技术
视频序列存在空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余、知识冗余、重要性冗余等一系列的冗余信息。为了尽可能的去除视频序列中的冗余信息,减少表征视频的数据量,提出了视频编码技术,以达到减小存储空间和节省传输带宽的效果。视频编码技术也称为视频压缩技术。
在国际通用范围内,视频压缩编码标准,例如:由运动图像专家组(MotionPicture Experts Group,MPEG)制定的MPEG-2和MPEG-4标准中第10部分的高级视频编解码(Advanced Video Coding,AVC),由国际电信联盟电信标准化部门(InternationalTelecommunication Uion-Telecommunication Standardization Sector,ITU-T)制定的H.263、H.264和H.265(又称高效率视频编解码(High Efficiency Video Codingstandard,HEVC))。
需要说明的是,在基于混合编码架构的编码算法中,上述压缩编码方式可以被混合使用。
视频压缩编码过程中的基本处理单位是图像块,该图像块是编码端将一帧/幅图像进行划分得到的。以HEVC为例,HEVC定义了编码树单元(Coding Tree Unit,CTU)、编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU)。CTU、CU、PU和TU均可作为划分后得到的图像块。其中PU和TU均基于CU进行划分。
2、视频采样
像素为视频或图像最小的完整采样,因此,对图像块进行数据处理是以像素为单位。其中,每个像素记录颜色信息,一种通过RGB表示颜色,包括三个图像通道,R表示红色red,G表示绿色green,B表示蓝色blue;另一种通过YUV表示颜色,包括三个图像通道,Y表示亮度(luminance),U表示第一色度Cb,V表示第二色度Cr。由于人们对亮度的敏感程度强于对色度的敏感程度,因此,可以通过多存储亮度,少存储色度实现减少存储空间。具体地,在视频编解码中,通常采用YUV格式进行视频采样,包括420采样格式、444采样格式等。该采样格式基于亮度的取样数量,确定两个色度的取样数量,例如,假设一个CU有4×2个像素,格式如下:
[Y0,U0,V0][Y1,U1,V1][Y2,U2,V2][Y3,U3,V3];
[Y4,U4,V4][Y5,U5,V5][Y6,U6,V6][Y7,U7,V7];
420采样格式表示YUV以4:2:0的格式进行采样,即亮度与第一色度或第二色度以4:2的比例进行选取,其中第一色度与第二色度隔行选取。则上述CU采样选取第一行的亮度Y0-Y3,以及第一色度U0和U2,选取第二行的亮度Y4-Y7,以及第二色度V4和V6。该CU经采样由亮度编码单元及色度编码单元构成,其中,亮度编码单元为:
[Y0][Y1][Y2][Y3];
[Y4][Y5][Y6][Y7];
色度编码单元为:
[U0][U2];
[V4][V6];
类似地,444采样格式表示YUV以4:4:4的格式进行采样,即亮度与第一色度和第二色度以4:4:4的比例进行选取。则上述CU经采样的亮度编码单元为:
[Y0][Y1][Y2][Y3];
[Y4][Y5][Y6][Y7];
色度编码单元为:
[U0,V0][U1,V1][U2,V2][U3,V3];
[U4,V4][U5,V5][U6,V6][U7,V7];
上述经采样得到的亮度编码单元与色度编码单元作为后续进行编码处理的数据单元。
本申请提供的解码方法适用于视频编解码系统。图1示出了视频编解码系统的结构。
如图1所示,视频编解码系统包含源装置10和目的装置11。源装置10产生经过编码后的视频数据,源装置10也可以被称为视频编码装置或视频编码设备,目的装置11可以对源装置10产生的经过编码后的视频数据进行解码,目的装置11也可以被称为视频解码装置或视频解码设备。源装置10和/或目的装置11可包含至少一个处理器以及耦合到所述至少一个处理器的存储器。所述存储器可包含但不限于只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、带电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、快闪存储器或可用于以可由计算机存取的指令或数据结构的形式存储所要的程序代码的任何其它媒体,本申请对此不作具体限定。
源装置10和目的装置11可以包括各种装置,包含桌上型计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其类似者等电子设备。
目的装置11可经由链路12从源装置10接收经编码视频数据。链路12可包括能够将经编码视频数据从源装置10移动到目的装置11的一个或多个媒体和/或装置。在一个实例中,链路12可包括使得源装置10能够实时地将编码后的视频数据直接发射到目的装置11的一个或多个通信媒体。在此实例中,源装置10可根据通信标准(例如:无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的装置11。上述一个或多个通信媒体可包含无线和/或有线通信媒体,例如:射频(Radio Frequency,RF)频谱、一个或多个物理传输线。上述一个或多个通信媒体可形成基于分组的网络的一部分,基于分组的网络例如为局域网、广域网或全球网络(例如,因特网)等。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置10到目的装置11的通信的其它设备。
在另一实例中,可将编码后的视频数据从输出接口103输出到存储装置13。类似地,可通过输入接口113从存储装置13存取编码后的视频数据。存储装置13可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(Digital Video Disc,DVD)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,存储装置13可对应于文件服务器或存储由源装置10产生的编码后的视频数据的另一中间存储装置。在此实例中,目的装置11可经由流式传输或下载从存储装置13获取其存储的视频数据。文件服务器可为任何类型的能够存储经编码的视频数据并且将经编码的视频数据发射到目的装置11的服务器。例如,文件服务器可以包含全球广域网(World Wide Web,Web)服务器(例如,用于网站)、文件传送协议(File TransferProtocol,FTP)服务器、网络附加存储(Network Attached Storage,NAS)装置以及本地磁盘驱动器。
目的装置11可通过任何标准数据连接(例如,因特网连接)存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器发射的方式可为流式传输、下载传输或两者的组合。
本申请的解码方法不限于无线应用场景,示例性的,本申请的解码方法可以应用于支持以下多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统可经配置,以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
需要说明的是,图1示出的视频编解码系统仅仅是视频编解码系统的示例,并不是对本申请中视频编解码系统的限定。本申请提供的编解码方法还可适用于编码装置与解码装置之间无数据通信的场景。在其它实例中,待编码视频数据或编码后的视频数据可以从本地存储器检索,也可以在网络上流式传输等。视频编码装置可对待编码视频数据进行编码并且将编码后的视频数据存储到存储器,视频解码装置也可从存储器中获取编码后的视频数据并且对该编码后的视频数据进行解码。
在图1中,源装置10包含视频源101、视频编码器102和输出接口103。在一些实例中,输出接口103可包含调制器/解调器(调制解调器)和/或发射器。视频源101可包括视频捕获装置(例如,摄像机)、含有先前捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,和/或用于产生视频数据的计算机图形系统,或视频数据的此些来源的组合。
视频编码器102可对来自视频源101的视频数据进行编码。在一些实例中,源装置10经由输出接口103将编码后的视频数据直接发射到目的装置11。在其它实例中,编码后的视频数据还可存储到存储装置13上,供目的装置11稍后存取来用于解码和/或播放。
在图1的实例中,目的装置11包含显示装置111、视频解码器112以及输入接口113。在一些实例中,输入接口113包含接收器和/或调制解调器。输入接口113可经由链路12和/或从存储装置13接收编码后的视频数据。显示装置111可与目的装置11集成或可在目的装置11外部。一般来说,显示装置111显示解码后的视频数据。显示装置111可包括多种显示装置,例如,液晶显示器、等离子显示器、有机发光二极管显示器或其它类型的显示装置。
可选的,视频编码器102和视频解码器112可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器单元或其它硬件和软件,以处理共同数据流或单独数据流中的音频和视频两者的编码。
视频编码器102和视频解码器112可以包括至少一个微处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application-Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、离散逻辑、硬件或其任何组合。若本申请提供的解码方法采用软件实现,则可将用于软件的指令存储在合适的非易失性计算机可读存储媒体中,且可使用至少一个处理器执行所述指令从而实施本申请。
本申请中的视频编码器102和视频解码器112可以根据视频压缩标准(例如HEVC)操作,也可根据其它业界标准操作,本申请对此不作具体限定。
图2是本申请实施例中视频编码器102的一种示意性框图。视频编码器102可以在预测模块21、变换模块22、量化模块23以及熵编码模块24分别进行预测、变换、量化以及熵编码的过程。视频编码器102中还包括预处理模块20和求和器202,其中预处理模块20包括分割模块和码率控制模块。对于视频块重构建,视频编码器102也包括反量化模块25、反变换模块26、求和器201和参考图像存储器27。
如图2中所展示,视频编码器102接收视频数据,预处理模块20中的分割模块将数据分割成原始块。此分割也可包含分割成条带(slice)、图像块或其它较大单元,以及(例如)根据最大编码单元(Largest Coding Unit,LCU)及CU的四叉树结构进行视频块分割。示例性的,视频编码器102编码在待编码的视频条带内的视频块的组件。一般的,条带可划分成多个原始块(且可能划分成称作图像块的原始块的集合)。通常在分割模块中确定CU、PU以及TU的尺寸。
预处理模块20中的码率控制模块获取CU、PU以及TU的尺寸,以及视频数据的输入参数,其中,该输入参数包括该视频数据中图像的分辨率、图像的格式、位宽和输入bpp;
目标bpp像素深度。码率控制模块根据输入参数和图像块尺寸生成码率控制参数,该码率控制参数用于生成量化参数以使得量化模块23和反量化模块25进行相关计算。码率控制模块还可以根据求和器201经重构得到的重建块,更新码率控制参数。
预测模块21可将预测块提供到求和器202以产生残差块,且将该预测块提供到求和器201经重构得到重建块,该重建块用于后续进行预测的参考像素。其中,视频编码器102通过原始块的像素值减去预测块的像素值来形成像素差值,该像素差值即为残差块,该残差块中的数据可包含亮度差及色度差。求和器201表示执行此减法运算的一个或多个组件。预测模块21还可将相关的语法元素发送至熵编码模块24用于合并至码流。
变换模块22可将残差块划分为一个或多个TU进行变换。变换模块22可将残差块从像素域转换到变换域(例如,频域)。例如,使用离散余弦变换(Discrete CosineTransform,DCT)或离散正弦变换(Discrete Sine Transform,DST)将残差块经变换得到变换系数。变换模块32可将所得变换系数发送到量化模块23。
量化模块23对变换系数进行量化以进一步减小码率得到量化系数。量化过程可减少与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化的程度。在一些可行的实施方式中,量化模块23可接着执行包含经量化变换系数的矩阵的扫描。替代的,熵编码模块24可执行扫描。
在量化之后,熵编码模块24可熵编码量化系数。例如,熵编码模块24可执行上下文自适应性可变长度编码(Context-Adaptive Variable-Length Coding,CAVLC)、上下文自适应性二进制算术编码(Context-based Adaptive Binary Arithmetic Coding,CABAC)、基于语法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或另一熵编码方法或技术。在通过熵编码模块24进行熵编码之后,可将经编码码流传输到视频解码器112或存档以供稍后传输或由视频解码器112检索。
反量化模块25及反变换模块26分别应用反量化与反变换,求和器201将反变换后的残差块得和预测的残差块相加以产生重建块,该重建块用作后续原始块进行预测的参考像素。该重建块存储于参考图像存储器27中。
图3是本申请实施例中视频解码器112的结构示意图。如图3所示,视频解码器112包含熵解码模块30、预测模块31、反量化模块32、反变换模块33、求和器301和参考图像存储器34。其中,熵解码模块30包括解析模块和码率控制模块。在一些可行的实施方式中,视频解码器112可执行与关于来自图2的视频编码器102描述的编码流程的示例性地互逆的解码流程。
在解码过程期间,视频解码器112从视频编码器102接收经编码的视频的码流。视频解码器112的熵解码模块30中的解析模块对码流进行熵解码,以产生量化系数和语法元素。熵解码模块30将语法元素转递到预测模块31。视频解码器112可在视频条带层级和/或视频块层级处接收语法元素。
熵解码模块30中的码率控制模块根据解析模块得到的待解码图像的信息,生成码率控制参数,该码率控制参数用于生成量化参数以使得反量化模块32进行相关计算。码率控制模块还可以根据求和器301经重构得到的重建块,更新码率控制参数。
反量化模块32对码流中所提供且通过熵解码模块30所解码的量化系数以及所生成的量化参数进行反量化(例如,解量化)。反量化过程可包含使用通过视频编码器102针对视频条带中的每一视频块所计算的量化参数确定量化的程度,且同样地确定应用的反量化的程度。反变换模块33将反变换(例如,DCT、DST等变换方法)应用于反量化后的变换系数,将反量化后的变换系数按照反变换单元在像素域中产生反变换后的残差块。其中,反变换单元的尺寸与TU的尺寸相同,反变换方法与变换方法采用同样的变换方法中相应的正变换与反变换,例如,DCT、DST的反变换为反DCT、反DST或概念上类似的反变换过程。
预测模块31生成预测块后,视频解码器112通过将来自反变换模块33的反变换后的残差块与通过与预测块求和来形成经解码视频块。求和器301表示执行此求和运算的一个或多个组件。在需要时,也可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。给定帧或图像中的经解码的视块存储于参考图像存储器34中,作为后续进行预测的参考像素。
本申请提供一种可能的视频编/解码实现方式,如图4所示,图4为本申请提供的一种视频编/解码的流程示意图,该视频编/解码实现方式包括过程①至过程⑤,过程①至过程⑤可以由上述的源装置10、视频编码器102、目的装置11或视频解码器112中的任意一个或多个执行。
过程①:将一帧图像分成一个或多个互相不重叠的并行编码单元。该一个或多个并行编码单元间无依赖关系,可完全并行/独立编码和解码,如图4所示出的并行编码单元1和并行编码单元2。
过程②:对于每个并行编码单元,可再将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用一些并行编码单元头信息。
独立编码单元既可以是包括亮度Y、第一色度Cb、第二色度Cr三个分量,或RGB三个分量,也可以仅包含其中的某一个分量。若独立编码单元包含三个分量,则这三个分量的尺寸可以完全一样,也可以不一样,具体与图像的输入格式相关。
过程③:对于每个独立编码单元,可再将其分成一个或多个互相不重叠的编码单元,独立编码单元内的各个编码单元可相互依赖,如多个编码单元可以进行相互参考预编解码。
若编码单元与独立编码单元尺寸相同(即独立编码单元仅分成一个编码单元),则其尺寸可为过程②所述的所有尺寸。
编码单元既可以是包括亮度Y、第一色度Cb、第二色度Cr三个分量(或RGB三分量),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
值得注意的是,过程③是视频编解码方法中一个可选的步骤,视频编/解码器可以对过程②获得的独立编码单元进行残差系数(或残差值)进行编/解码。
过程④:对于编码单元,可以将其可再将其分成一个或多个互相不重叠的预测组(Prediction Group,PG),PG也可简称为Group,各个PG按照选定预测模式进行编解码,得到PG的预测值,组成整个编码单元的预测值,基于预测值和编码单元的原始值,获得编码单元的残差值。
过程⑤:基于编码单元的残差值,对编码单元进行分组,获得一个或多个相不重叠的残差小块(residual block,RB),各个RB的残差系数按照选定模式进行编解码,形成残差系数流。具体的,可分为对残差系数进行变换和不进行变换两类。
其中,过程⑤中残差系数编解码方法的选定模式可以包括,但不限于下述任一种:半定长编码方式、指数哥伦布(Golomb)编码方法、Golomb-Rice编码方法、截断一元码编码方法、游程编码方法、直接编码原始残差值等。
例如,视频编码器可直接对RB内的系数进行编码。
又如,视频编码器也可对残差块进行变换,如DCT、DST、Hadamard变换等,再对变换后的系数进行编码。
作为一种可能的示例,当RB较小时,视频编码器可直接对RB内的各个系数进行统一量化,再进行二值化编码。若RB较大,可进一步划分为多个系数组(coefficient group,CG),再对各个CG进行统一量化,再进行二值化编码。在本申请的一些实施例中,系数组(CG)和量化组(QG)可以相同。
下面以半定长编码方式对残差系数编码的部分进行示例性说明。首先,将一个RB块内残差绝对值的最大值定义为修整最大值(modified maximum,mm)。其次,确定该RB块内残差系数的编码比特数(同一个RB块内残差系数的编码比特数一致)。例如,若当前RB块的关键限值(critical limit,CL)为2,当前残差系数为1,则编码残差系数1需要2个比特,表示为01。若当前RB块的CL为7,则表示编码8-bit的残差系数和1-bit的符号位。CL的确定是去找满足当前子块所有残差都在[-2^(M-1),2^(M-1)]范围之内的最小M值。若同时存在-2^(M-1)和2^(M-1)两个边界值,则M应增加1,即需要M+1个比特编码当前RB块的所有残差;若仅存在-2^(M-1)和2^(M-1)两个边界值中的一个,则需要编码一个Trailing位来确定该边界值是-2^(M-1)还是2^(M-1);若所有残差均不存在-2^(M-1)和2^(M-1)中的任何一个,则无需编码该Trailing位。
另外,对于某些特殊的情况,视频编码器也可以直接编码图像的原始值,而不是残差值。
上述视频编码器102以及视频解码器112也可以通过另外一种实现形态来实现,例如,采用通用的数字处理器系统实现,如图5所示的编解码装置50,该编解码装置50可以为上述视频编码器102中的部分装置,也可以为上述视频解码器112中的部分装置。
该编解码装置50可以是应用于编码侧,也可以是应用于解码侧。编解码装置50包括处理器501以及存储器502。所述处理器501与存储器502相连接(如通过总线504相互连接)。可选的,编解码装置50还可包括通信接口503,通信接口503连接处理器501和存储器502,用于接收/发送数据。
存储器502可以为随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)。该存储器502用于存储相关程序代码及视频数据。
处理器501可以是一个或多个中央处理器(Central Processing Unit,CPU),例如图5中所示的CPU 0和CPU 1。在处理器501是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该处理器501用于读取所存储器502中存储的程序代码,执行图6所对应的任意一个实施方案及其各种可行的实施方式的操作。
以下,结合上述图1示出的视频编解码系统、图2示出的视频编码器102以及图3示出的视频解码器112对本申请提供的解码方法进行详细描述。
如图6所示,为本申请提供的一种视频解码方法的流程图。该方法包括:
S601、视频解码器获取待解码图像中当前块的一个或多个码率控制参数。
其中,待解码图像由多个图像块构成,当前块为多个图像块中的任意一块。
其中,码率控制参数用于生成量化参数,该量化参数应用于解码过程中的反量化过程,如上述图3中关于反量化模块32的描述。码率控制参数包括当前块的资源充裕度、当前块的复杂度、当前块的预测比特数、当前块的平均量化参数和量化参数变化值。资源充裕度是指用于存储当前块的资源在用于存储该待解码图像的资源中的充足程度。当前块的复杂度是指待解码图像中已解码图像块的复杂程度。当前块的预测比特数是指预估当前块解码后占用的资源。当前块的平均量化参数用于表征待解码图像中已解码图像块的量化参数的平均程度。量化参数的变化值是指待解码图像中已解码图像块之间量化参数的变化值。
可选的,在步骤S601之前,该方法还包括,视频解码器获取待解码图像的信息,该待解码图像的信息包括待解码图像的基本信息和待解码图像中图像块的信息。其中,基本信息包括以下信息的一种或多种:
待解码图像的分辨率,用于表示待解码图像中所包含的像素个数,通常由水平像素和垂直像素构成。示例性的,640×480表示水平像素为640个单位,垂直像素为480个单位,该图像的分辨率为307200像素,也可以表示为30万像素。
待解码图像的格式,是指待解码图像的采样格式,可参考上述关于视频采样的描述。
待解码图像的位宽,是指用于存储待解码图像的每个像素的深度。例如,一幅彩色图像的每个像素用R,G,B三个分量表示,若每个分量用8位,那么一个像素共用24位表示,也就说像素的深度为24。
其中,待解码图像中图像块的信息包括以下信息的一种或多种:
待解码图像的输入像素深度(bits per pixel,bpp),是指传输待解码图像的每个像素的深度。例如,期望该图像在码流中以每个像素占用18位进行传输,若该图像以RGB三个分量表示,则每个分量占用6位,相比上述用于存储图像的位宽节省2个比特位。
需要说明的是,bpp通常情况下小于等于位宽,该bpp通常在编码阶段确定并写入码流中供解码端获取。
待解码图像中图像块的尺寸信息(block_size),其中,图像块的尺寸可以相同或不同,相应地,待解码图像中所有图像块的尺寸信息也可根据该信息推算,或在码流中直接获取,本申请对此不作限制。关于图像块的尺寸信息可参考上述关于图2的描述,例如CU、PU以及TU的一种或多种尺寸,具体可以为8×8、16×8等其他尺寸。
当前块的位置信息,是指当前块在待编码图像中的位置信息。如图7所示,待编码图像的尺寸为8×4,并按照2×2的图像块大小进行划分,则可分为8小块,假设图中阴影部分为当前块,则当前块在待编码图像中的位置可以以坐标的形式表示为(1,1)。
重建图像块,也可以称为重建块,是指根据反变换后的残差块与预测的残差块经重构得到多个像素形成的图像块,如图3中所示的重建块。
其中,根据上述基本信息和各个图像块的信息至少可以得到该待解码图像的资源,以及该待解码图像中每个图像块所占用的资源,该资源可以通过以下部分或全部信息表示:
当前块的剩余比特数(ramin_bits),是指存储待解码图像的资源中未被已解码图像块占用的比特资源。
当前块的剩余块个数(remain_blocks)是指待解码图像中未解码图像块的个数。
实际比特数是指存储待解码图像的资源中每块已解码图像块分别占用的比特资源。
需要说明的是,上述待解码图像的信息的获取方式为本领域技术人员所熟知,例如视频解码器可通过获取码流的头信息,以获取该待解码图像的基本信息,该基本信息是指该图像文件的格式、分辨率、尺寸等信息,码流中还包括该待解码图像中图像块的信息,例如图像块的尺寸以及bpp等信息。
视频解码器根据部分或全部的待解码图像的信息确定码率控制参数。具体地,包括以下5种情况。
情况1、视频解码器根据待解码图像的信息确定当前块的资源充裕度(sufficiency)。
1)视频解码器根据剩余比特数(ramin_bits)、剩余块个数(remain_blocks)、当前块的尺寸信息(block_size)和输入像素深度bpp确定资源充裕度。
如果(ramin_bits/remain_blocks)>block_size×bpp×M,则表示资源充足;
如果(ramin_bits/remain_blocks)<block_size×bpp×N,则表示资源不足;
其中,M>N>0。
2)视频解码器根据剩余比特数、剩余块个数和当前块的位置信息确定资源充裕度。
具体地,视频解码器确定当前块在待解码图像中的位置,进一步地,确定当前块在该待解码图像中并行单元的位置,该并行单元可以为slice和/或组处理单元。具体地,若当前块处于该并行单元的前1/n位置,则将第一权重系数w1设为1+a;若当前块处于该并行单元的中间1/n位置,则将w1设为1;若当前块处于该并行单元的后1/n位置,则将w1设为1-a,其中,0<a<1。
可选的,a随着前1/n与后1/n相对中间1/n的距离的增加而增加。通过a取值的改变,调整相应的第一权重系数。
sufficiency=w1×(remain_bits/remain_blocks);
可以理解的是,并行单元不同,第一权重系数不同,当同时考虑当前块在待解码图像中slice的位置和组处理单元的位置时,视频解码器可以将各自的权重系数的乘积作为第一权重系数。
情况2、视频解码器根据已解码图像块的信息中的重建图像块确定当前块的复杂度(complexity)。
1)变换系数加权法。
具体地,视频解码器根据当前块的前n个重建块的变换系数进行加权,1≤n≤已解码图像块的个数。已解码图像块的个数可以通过解析码流获取,或者根据剩余块个数与待解码图像的图像块个数进行计算得到。其中,变换方法可以为DCT变换、Hadamard变换或DST变换。
complexity=∑WC;
其中,C表示变换系数,W表示变换系数的权重系数。示例性的,在DCT变换中,包括DC系数和AC系数,DC系数表示已解码图像块中第一个图像块的变换系数,AC系数表示已解码图像块中其他图像块的变换系数。示例性的,当n为已解码图像块的个数时,DC系数的权重系数设为0,其它AC系数的权重系数设为1。通过上述选取方式,有助于简化计算过程。
需要说明的是,本申请对于n的选取方式不作限制,例如,n为预设的固定值,或者n可以参考上述资源充裕度,当资源充足时n取值较小,当资源不足时n取值较大。
2)视频解码器将当前块的前n个重建块的像素值的方差作为复杂度,其中,1≤n≤已解码图像块的个数。
3)梯度加权法
具体地,视频解码器根据当前块的前n个重建块的梯度进行加权,1≤n≤已解码图像块的个数。
水平梯度x=第t列重建-第t-1列重建;
垂直梯度y=第s行重建-第s-1行重建;
水平复杂度(complexity1)=水平梯度的和(gradx)/grad_block_size
垂直复杂度(complexity2)=垂直梯度的和(grady)/grad_block_size
其中,0≤x≤重建块的总列数,0≤y≤重建块的总行数,grad_block_size是计算梯度重建块中像素点的个数。例如,当前重建块为4×2,水平复杂度中的grad_block_size为3×2=6,垂直复杂度中的grad_block_size为1×4=4。
4)锐化加权法
具体地,视频解码器根据当前块的前n个重建块进行锐化,对锐化结果进行加权。其中,1≤n≤已解码图像块的个数。常见的锐化算法包括Robert、Prewitt、Sobel、Laplacian和Kirsch。
complexity1=A1×P;
complexity2=A2×P;
complexity=|complexity1|+|complexity2|;
其中,P表示重建块的像素值,A1和A2分别表示上述任意一种锐化算法的水平算子和垂直算子。
情况3、视频解码器根据待解码图像的信息确定当前块的预测比特数(pred_bits)。
1)视频解码器根据剩余比特数和剩余块个数得到预测比特数。
pred_bits=remain_bits/remain_blocks。
2)视频解码器根据实际比特数(real_bits)加权得到预测比特数。
具体地,视频解码器根据前n个已解码图像块的实际比特数进行加权,1≤n≤已解码图像块的个数。
pred_bits=B1×real_bits1+B2×real_bits2+……+Bn×real_bitsn。
其中,B1>B2>……>Bn>0,且B1+B2+……+Bn=1。
可选的,在上述通过待编码图像的信息确定至少一种码率控制参数的基础上,其他码率控制参数还可以根据至少一种码率控制参数推算得到。具体地,包括以下3种情形:
情形1、视频解码器根据预测比特数和复杂度确定资源充裕度
1)视频解码器根据当前块的信息(剩余比特数、剩余块个数)和预测比特数确定资源充裕度。
具体地,如果(remain_bits/remain_blocks)>1+a×pred_bits,则表示资源充足;
如果(remain_bits/remain_blocks)≤1-a×pred_bits,则表示资源不足。其中,0<a<1。
2)视频解码器根据当前块的复杂度和预测比特数,以及前n个已解码图像块的复杂度的最大值(max_complexity),结合当前块的尺寸信息和输入像素深度确定资源充裕度。其中,1≤n≤已解码图像块的个数。
具体地,
如果complexity/max_complexity×C×block_size×bpp<pred_bits;则表示资源充足;
如果complexity/max_complexity×C×block_size×bpp>pred_bits;则表示资源不足。
其中,C>1。
情形2、视频解码器根据预测比特数和资源充裕度确定复杂度
1)复杂度加权法
视频解码器根据前n个已解码图像块的复杂度进行加权,1≤n≤已解码图像块的个数;
complexity=D1×complexity1+D2×complexity2+……+Dn×complexityn
其中,D1>D2>……>Dn>0,且D1+D2+……+Dn=1。
2)视频解码器根据前n个已解码图像块的复杂度(pre_complexity)和当前块的位置信息确定当前块的复杂度。其中,1≤n≤已解码图像块的个数。
具体地,视频解码器确定当前块在待解码图像中的位置,进一步地,确定当前块在该待解码图像中并行单元的位置,该并行单元可以为slice和/或组处理单元。若当前块处于该并行单元的前1/n位置,则将第二权重系数w2设为1+a;若当前块处于该并行单元的中间1/n位置,则将w2设为1;若当前块处于该并行单元的后1/n位置,则将w2设为1-a,其中,0<a<1。
可选的,a随着前1/n与后1/n相对中间1/n的距离的增加而增加。通过a取值的改变,调整相应的第二权重系数。
complexity=w2×pre_complexity;
可以理解的是,并行单元不同,第二权重系数不同,当同时考虑当前块在待解码图像中slice的位置和组处理单元的位置时,视频解码器可以将各自的权重系数的乘积作为第二权重系数。
3)视频解码器根据前n个已解码图像块的预测比特数(pre_pred_bits)、前n个已解码图像块的资源充裕度(pre_sufficiency),以及当前块的预测比特数、资源充裕度确定当前块的复杂度;
如果pred_bits>pre_pred_bits且sufficiency>pre_sufficiency认为是复杂度小;
如果pred_bits<pre_pred_bits且sufficiency<pre_sufficiency认为是复杂度大。
情形3、视频解码器根据资源充裕度和复杂度确定预测比特数
1)视频解码器根据前n个已解码图像块的预测比特数加权得到当前块的预测比特数,1≤n≤已解码图像块的个数。
pred_bits=E1×pred_bits1+E2×pred_bits2+……+En×pred_bitsn;
其中,E1>E2>……>En>0,且E1+E2+……+En=1。
2)视频解码器根据前n个已解码图像块的预测比特数和实际比特数加权得到当前块的预测比特数,1≤n≤已解码图像块的个数。
pred_bits=F1×pred_bits1+……+Fn×pred_bitsn+G1×real_bits1+……+Gn×real_bitsn其中,F1,……,Fn,G1,……,Gn均大于0,且F1+……+Fn+G1+……+Gn=1。
3)视频解码器根据前n个已解码图像块的整体复杂度(pre_complexity)、预测比特数(pred_bits),以及当前块的复杂度(complexity)加权得到当前块的预测比特数,1≤n≤已解码图像块的个数。其中,pre_complexity为可变值,以满足以下公式的计算;
pred_bits=clip(complexity/pre_complexity,1-a,1+a)×pred_bits;
其中,clip(complexity/pre_complexity,1-a,1+a)表示通过调整pre_complexity使得complexity/pre_complexity的值处于(1-a,1+a)的区间范围内,0<a<1。
需要说明的是,其中,pre_complexity可以为前n个已解码图像块的复杂度均值;或者,为前n个已解码图像块的任意一个复杂度;或者,为前n个已解码图像块的复杂度的最大值等其他表示整体复杂度的系数。
4)视频解码器根据前n个已解码图像块的整体复杂度、实际比特数以及当前块的复杂度加权得到当前块的预测比特数,1≤n≤已解码图像块的个数。其中,pre_complexity为可变值,以满足以下公式的计算;
pred_bits=clip(complexity/pre_complexity,1-a,1+a)×real_bits;
相关系数取值与上述3)相同,此处不再赘述。
5)视频解码器根据位置信息获得经验值,以及当前块的复杂度,和前n个已解码图像块的预测比特数加权得到当前块的预测比特数,1≤n≤已解码图像块的个数。
具体地,视频解码器确定当前块在待解码图像中的位置,进一步地,确定当前块在该待解码图像中并行单元的位置,该并行单元可以为slice和/或组处理单元。具体地,若当前块处于该并行单元的前1/n位置且复杂度小于第一预设复杂度,则将第三权重系数w3设为1+a;若当前块处于该并行单元的中间1/n位置,则将w3设为1;若当前块处于该并行单元的后1/n位置且复杂度大于第二预设复杂度,则将w3设为1-a,其中,0<a<1,第一预设复杂度小于第二预设复杂度。示例性的,a为0.2,第一预设复杂度为2000,第二预设复杂度为10000。
可选的,a随着前1/n与后1/n相对中间1/n的距离的增加而增加。通过a取值的改变,调整相应的第三权重系数。
可以理解的是,并行单元不同,第三权重系数不同,当同时考虑当前块在待解码图像中slice的位置和组处理单元的位置时,视频解码器可以将各自的权重系数的乘积作为第三权重系数。
通过上述三种情形,利用码率控制参数之间的相关性,有助于提升方案可实施性。
情况4、视频解码器根据待解码图像的信息确定平均量化参数(average_quantization)。
可选的,视频解码器采用上述三种情况中的任意一种情况获取前n个已解码图像块的量化参数,1≤n≤已解码图像块的个数,获取前n个已解码图像块的量化参数可参考下文步骤S602的描述。
1)全局平均
average_quantization=前n块量化参数之和(total_sum)/n(total_blocks)
2)滑动平均
具体地,视频解码器根据位置信息对应不同权重计算平均量化参数;
average_quantizationt=average_quantizationt-1×H1+H2×pre_quantization
其中,t表示当前块,t-1表示当前块的前一个已解码图像块,average_quantizationt-1表示前一个已解码图像块的平均量化参数,pre_quantization表示前一个已解码图像块的量化参数。
其中,H1+H2=1,H1、H2均大于0。
3)视频解码器根据前n个已解码图像块的复杂度和当前块的复杂度确定平均量化参数。
具体地,视频解码器将前n个已解码图像块的复杂度划分k个级别,确定当前块的复杂度在k个级别中的位置,并计算该级别的量化参数的平均值作为当前块的量化参数。示例性的,级别1为complexity>10000,级别2为1000<complexity<10000,级别3为complexity<1000,若当前块的复杂度在级别3的范围内,则计算级别3的量化参数的平均值作为该当前块的平均量化参数。
4)视频解码器根据前n个已解码图像块的资源充裕度和当前块的资源充裕度确定平均量化参数。
5)视频解码器根据前n个已解码图像块的预测比特数和当前块的预测比特数确定平均量化参数。
其中,4)、5)与上述3)类似,划分级别并计算相应级别的量化参数的平均值,此处不再赘述。
6)视频解码器用当前块的预测比特数和之前块的实际比特数进行聚类。
需要说明的是,上述3)-6)的方法主要采用了根据当前块的某种信息和之前N个块的某种信息进行聚类,相似类中的块的量化参数进行平均,其中,还可以针对级别中不同块使用不同的系数进行加权平均,得到平均量化参数。此外,用于聚类的信息可以是多种信息的组合,例如复杂度,资源充裕度,预测比特数中的至少两个。
情况5、视频解码器根据待解码图像的信息确定量化参数的变化值(Δquantization)。
1)视频解码器根据前n个已解码图像块的预测比特数和实际比特数的差值的累加,以及当前块的尺寸信息映射得到量化参数的变化值。
其中,前n个已解码图像块的预测比特数和实际比特数的差值的累加由pred_real_sum表示,即1≤n≤已解码图像块的个数。
Δquantization=clip(pred_real_sum/block_size,J1,J2);
其中,|J1|和|J2|均小于最大量化参数,该最大量化参数为预设值,表示待解码图像块可采用的最大的量化参数。
可选的,pred_real_sum可替换为target_real_sum,该target_real_sum表示前n个已解码图像块的目标比特数和实际比特数的差值的累加。
其中,目标比特数(target_bits)是指目标像素深度(target bpp)与当前块的尺寸信息的乘积。
可以理解的是,目标像素深度以块处理单元为单位,用于表示传输当前块的像素深度,即在基于传输待解码图像的输入bpp的基础上,进一步限定的参数。
其中,target_bits=target bpp×block_size;
1≤n≤已解码图像块的个数
Δquantization=clip(target_real_sum/block_size,J1,J2)
可选的,pred_real_sum可替换为target_pred_sum,该target_pred_sum表示前n个已解码图像块的目标比特数和预测比特数的差值的累加。
1≤n≤已解码图像块的个数
Δquantization=clip(target_pred_sum/block_size,J1,J2)
示例性的,最大量化参数用max_quantization来表示,J1为-max_quantization/3,J2为max_quantization/3;或者,J1为-4,J2为4。
2)视频解码器根据前n个已解码图像块的目标比特数和预测bits数比特数的差值的累加,映射得到量化参数的变化值。
Δquantization=sigmoid(target_pred_sum/block_size)×(J3)
如图8所示,函数y=sigmoid(x)是一个s形函数,y的取值范围是[0,1],x趋于正无穷时,y=1,x趋于负无穷时,y=0。
需要说明的是,target_pred_sum还可以替换为pred_real_sum或target_real_sum。
3)视频解码器根据当前块的复杂度、前一个已解码图像块的复杂度以及最大量化参数确定量化参数的变化值。
若complexity>pre_complexity,则Δquantization=clip(Δpre_quantization+1,0,max_Δquantization);
若complexity<pre_complexity,则Δquantization=clip(Δpre_quantization-1,0,max_Δquantization)。
其中,Δpre_quantization表示前一个已解码图像块的量化参数的变化值,max_Δquantization表示待解码图像中图像块的最大的量化参数的变化值,该最大值可以为预设固定值。
5)视频解码器设定量化参数的变化值为固定值。
示例性的,固定值为Δquantization=1。
6)视频解码器根据待解码图像的信息以及当前块的其他码控参数调整量化参数的变化值。
如果图像位宽大于8bit,则Δquantization=2;
或者,如果当前通道为色度分量时,则Δquantization=2;
或者,如果当前块的位置处于并行单元的前1/n位置,则Δquantization=1;如果当前块的位置处于并行单元的后1/n位置,则Δquantization=2;如果当前块的位置处于并行单元的边界处,则Δquantization=1。
需要说明的是,视频解码器还可以根据其他输入参数调整固定值。
可选的,视频解码器根据当前块的其他码控参数中的资源充裕度设定量化参数的变化值为固定值。
示例性的,如果当前块的资源充足,则Δquantization=1;如果当前块的资源不足,则Δquantization=4。
可选的,在上述步骤S601之前,该方法还包括,视频解码器初始化码率控制参数,如图9所示,包括以下步骤:
S901、视频解码器根据待解码图像的信息计算当前块的总比特数。
其中,总比特数是指当前块所占用的比特数,根据上述待解码图像的基本信息中的采样格式、分辨率、bpp计算总比特数。
可选的,总比特数可以按照图像的采样格式进行计算,例如,图像为YUV格式,则可以分别计算Y通道的总比特数,U通道的总比特数和V通道的总比特数。其中,多个通道还可以组成不同的集合计算总比特数。
具体地,N通道图像划分为M个集合(M≤N)。示例性的,Y通道为第一集合,U通道和V通道为第二集合。
第一种可能的实现方式,各集合的参数相互独立。其中,参数包括初始化参数,码率控制参数、量化参数等解码过程中的所有可变参数。该参数也可以包括上述所有可变参数中的部分参数,即各集合的部分参数或全部参数相互独立。
第二种可能的实现方式,各集合的参数公用。类似地,该参数可以包括上述所有可变参数中的部分或全部参数,各集合公用部分或全部参数。示例性的,第一集合和第二集合的公用参数包括初始化的参数、更新的参数阈值和量化参数,独立参数包括中间变量,码率控制参数。其中,该中间变量是指计算量化参数中产生的中间参数,例如,基于当前块的已解码的图像块的个数。
可选的,上述参数按照M个集合进行更新。具体地,各个集合完成解码后,更新参数;或者,所有集合完成解码后,更新参数。
S902、视频解码器根据总比特数确定可用比特数。
其中,可用比特数用于存储当前块解码前的图像数据。
可选的,视频解码器去除总比特数中用于存储非图像数据的其他比特数。示例性的包括以下多种类型的数据,例如用于存储图像的头信息的预留比特数,用于确定数据在码流中的位置的块间偏移比特数。
可选的,在上述步骤S902之后,还可以包括步骤S904、视频解码器根据通道划分结合,并计算各集合的可用总比特数目;将总资源按照M个集合的比例分配到各个集合的总比特数。
其中,M个集合的比例可以参考各个集合的图像块数确定。视频解码器将当前块的可用总比特数按照集合的比例分配。
可选的,该步骤S904还可以应用与步骤S902之前,视频解码器计算M个集合分别当可用比特数。
其中,步骤S902中的其他非图像比特数在划分集合后分别去除。
可以理解的是,先划分集合再分别去除各个集合中的用于存储非图像数据的其他比特数,有助于提升各个集合中可用比特数的灵活性,提升视频解码器的性能;先在总比特数中去除用于存储非图像数据的其他比特数,得到总的可用比特数,再划分各个集合的可用比特数时,有助于保证各个集合中可用比特数的一致性。
可选的,在上述步骤S901之后,视频解码器还根据bpp,计算目标BPP(target_bpp);
示例性的,target_bpp=bpp-0.1;
可选的,该target_bpp可以是M个集合公用的,也可以是每个集合独立的target_bpp。
如果每个集合具有独立的target_bpp,此时全部集合加权得到的target_bpp要满足bpp的限制,例如bpp=target_bpp+0.1(经验值)。
需要说明的是,该目标bpp用于确定目标比特数,以及与目标比特数的其他参数。
S903、视频解码器初始化中间参数。
其中,中间参数用于结合一个或多个码率控制参数确定当前块的量化参数。
示例性的,包括以下参数:
1.target_bits=total_bits/total_blocks
2.target_real_sum=target_bits×total_blocks–total_bits
3.pred_real_sum=0
可选的,在计算码率控制参数中的部分中间变量也可以在该步骤中预先定义,例如最大量化参数、允许复杂度的最大值等等。
S602、视频解码器根据一个或多个码率控制参数确定当前块的量化参数。
具体地,包括以下7种方案。
方案1、将平均量化参数作为量化参数。
方案2、根据平均量化参数和量化参数变化值加权得到量化参数。
quantization=clip(average_quantization+Δquantization,0,max_quantization)
方案3、根据当前块的复杂度、前一个已解码图像块的复杂度以及前一个已解码图像块的量化参数确定量化参数。
quantization=clip(complexity/pre_complexity,1-a,1+a)×pre_quantization
其中,0<a<1。
方案4、根据当前块的位置信息、复杂度,以及前一个已解码图像块的量化参数确定当前块的量化参数。
如果当前块处于该并行单元的前1/n位置,则第四权重系数w4为1-a;处于该并行单元的后1/2位置,则w4为1+a,0<a<1;
quantization=w4×pre_quantization;
可选的,如果当前块的复杂度大于K1(或资源充裕度小于L1),则quantization=w4×pre_quantization×1+b;如果复杂度小于K2(或资源充裕度大于L2),则quantization=w4×pre_quantization×1-b,0<b<1,0<K1<K2,0<L1<L2;
方案5、根据前一个已解码图像块的信息确定当前块的量化参数。
1)如果前一个已解码图像块的target_real_sum>0,
则quantization=clip(pre_quantization+M,0,max_quantization);
如果前一个已解码图像块的target_real_sum<0,
则quantization=clip(pre_quantization-M,0,max_quantization),其中,M>1。
2)或者根据pred_real_sum,如果pred_real_sum大于预设阈值,则量化参数增加,反之,量化参数减少。
方案6、根据当前块的位置信息确定当前块的量化参数。
示例性的,如果当前块是并行单元中的第一个块,quantization=0;
方案7、根据当前块的多个复杂度确定当前块的量化参数。
如果{complexity1<N1||complexity2<N2},其中,complexity1<N1与complexity2<N2至少一个满足条件即成立;则quantization=0。N1与N2可通过位宽进行标定,N1、N2均大于0。
需要说明的是,结合上文针对图2描述的编码过程,视频编码器基于码率控制参数生成量化参数的具体实现方式与上述解码侧的实施例为互逆的编码流程,不再重复描述。
S603、视频解码器基于当前块的量化参数对当前块进行解码。
可选的,在上述确定量化参数后,视频解码器修正量化参数。
第一种可能的实现方式,根据当前块的资源充裕度调整;若超过该资源充裕度的范围则进行相应的调整。
示例性的,若资源充足,则quantization=clip(quantization-x,0,max_quantization);
若资源不足,则quantization=clip(quantization+x,0,max_quantization);x>0。
第二种可能的实现方式,基于上述比特数进行调整。
1)根据之前全部目标比特数和实际比特数调整;
如果target_real_sum≥P1×target_bits且quntization≤pre_quantization;
则quantization=clip(quantization+Q1,0,max_quantization);
如果target_real_sum<P2×target_bits且quantization>pre_quantization
quantization=clip(quantization+Q2,0,max_quantization)。
其中,P1、P2、Q1、Q2的绝对值均大于1。
2)根据预测比特数和实际比特数目调整;
如果pred_real_sum<P3,则quantization=clip(quantization+Q3,0,max_quantization);
如果pred_real_sum>P4,则quantization=clip(quantization+Q4,0,max_quantization);
其中,P3、P4、Q3、Q4的绝对值均大于1。
第三种可能的实现方式,根据前n个块的实际比特数,以及当前块的码控缓冲区(buffer_size);
target_real_sum实际和buffer_size相同;
示例性的,如果是8bit图像,且buffer_size≥((max_buffer_size*63)>>6);
则quantization=max_quantization;
如果是10bit图像,且((max_buffer_size*15)>>4)≤buffer_size;
则quantization=max_quantization;
如果是其它比特图像,且((max_buffer_size*7)>>3)≤buffer_size;
则quantization=max_quantization;
如果buffer_size>0,则quantization=max(buffer_size×max_quantization/max_buffer_size,quantization);
如果buffer_size<0,则quantization=0,buffer_size=0。
第四种可能的实现方式,根据当前块的位置调整量化参数。
示例性的,如果处于并行单元的边界处,则quantization=quantization/2;
且并行单元的边界左右的并行单元的差距不能大于3;
同一个并行单元的中上下左右块的量化参数差距不能大于max_quantization/4。
第五种可能的实现方式,基于码率控制的平滑度进行调整。
恒定码率控制(Constant Bit Rate,CBR):该码率控制方法存在一个buffer_size,每个块都会根据实际比特数目和目标比特数更新buffer_size,buffer_size严格不能超过第一预设阈值且不能小于0。其中,buffer_size为target_real_sum,或采用输入bpp作为目标bpp计算target_real_sum。示例性的,采用了两级缓冲区,两级缓冲区并行独立,来进行CBR。
a)一级缓冲,视频解码器限制量化参数的修正;
如果max_buffer_size×R1≥buffer_size;
则quantization=max_quantization;
如果max_buffer_size×R1<buffer_size<max_buffer_size×R2;
则quantization=max(buffer_size×max_quantization/max_buffer_size,quantization);
如果max_buffer_size×R2≤buffer_size;
则quantization=0;
如果buffer_size<0,表示编码端在编码过程中该当前块包括多个无效数据;
相应地,解码端填充-buffer_size个比特数,该比特数为多个无效数据的比特数,并令buffer_size=0,使得解码后图像块于编码的图像块相同。
需要说明的是,上述一级缓冲还可以应用于视频编码器计算量化参数后进行修正。
可选的,b)二级缓冲,该量化参数的修正应用于编码过程。
如果当前选择的最优模式的real_bits会使得buffer_size<max_buffer_size×U1,此时选择一个失真最小的模式;
如果当前选择的最优模式的real_bits会使得buffer_size<max_buffer_size×U2,此时选择无失真的模式或者失真最小的模式;
如果当前选择的最优模式的real_bits会使得buffer_size>max_buffer_size×U3,此时选择一个不会超过max_buffer_size x U3且失真较小;
如果当前选择的最优模式的real_bits会使得buffer_size>max_buffer_size×U4,此时选择一个cost最小的新模式。
需要说明的是,该U1-U4可以根据max_buffer_size中cost最小模式的cost计算得到,或者预设不同的固定值。
第六种可能的实现方式,为了保证不出现buffer_size<0或buffer_size≥max_buffer_size的情况,要求buffer_size处于理想范围内,即max_buffer_size×V1<buffer_size<max_buffer_size×V2,其中,0≤V1≤V2≤1。
为了实现buffer_size处于上述理想范围内,编码端或解码端可以在参数初始化时预留资源,该预留资源为max_buffer_size×V3,其中,V3≥1。其中,该预留资源在参数初始化中确定可用比特数时,属于预留比特数,需要扣除以满足后续资源的补充。
可以理解的是,该预留资源在实现buffer_size不外溢的情况下,还可以用于为最后几个图像块编解码,或者用于并行单元的边界,将该预留资源释放于资源相对不充裕的地方。
需要说明的是,上述修正量化参数的方案中未进行特殊说明的方案,均可在解码端或编码端生成量化参数后进行。
可选的,上述步骤S601-S603按照不同的并行单元实施。
实施例一、块、行、组、slice级并行
具体地,编码端记录当前块的数据的偏移信息。该偏移信息是指当前块在并行单元中的位置,通过并行单元的第一个块到当前块的前一个图像块的实际比特数之和表示。
在编码端,视频编码器将该偏移信息写入码流,用于解码端解析码流并获取该偏移信息,实现定位当前块在并行单元中的位置。
可选的,编码端写入码流中的位置是整个并行单元码流的开头。
在解码端,视频解码器获取码流中的偏移信息,根据该偏移信息定位该当前块的位置,进行解码。
需要说明的是,该偏移信息在上述方案执行过程中,可以在参数初始化阶段作为存储非图像数据的其他比特数去除,或者在编解码过程中作为对并行单元的消耗计入实际比特数,或者在编解码过程中不计入实际比特数的消耗。其中,计入方式不同,对于上述方案中的部分参数计算产生影响,综合考虑进行选择。
实施例二、行级并行
具体地,编码端按照规则填充于码流中。
第一种可能的实现方式,每行分成若干个单元,每个单元按照某个给定参数(如128bit)对齐;(若该单元比特数不是128bit的倍数,则将该单元填充到128bits的倍数)。其中给定参数可以是:经验参数,或者由行的宽、高以及bpp中的一个或多个信息得到。
第二种可能的实现方式,slice行间最大bits数:所有slice同位置行中最长行的消耗bits数。按照slice行间最大比特数进行对齐;(若该行消耗比特数不是slice行间最大bits数的倍数,则将该消耗bits数填充到是slice行间最大比特数的倍数)。
第三种可能的实现方式,slice的编码结束后,填充-buffer_size个bits数(CBR保证了buffer_size≤0)
针对上述三种可能的实现方式,解码端包括三种可能的实现方式:
第一种可能的实现方式,读取到单元末尾时,判断当前消耗bits是否满足给定参数bits的对齐,满足则无需读取填充bits,否则读取满足给定bits倍数所填充的bits数。
第二种可能的实现方式,解码到行末尾时,判断当前消耗bits是否满足slice行间最大比特数的对齐,满足则无需读取填充bits,否则读取slice行间最大比特数倍数所填充的比特数。
第三种可能的实现方式,读取-buffer_size个填充比特数。
示例性的,一种码流排布方法,以2个slice为例,其中,slice只会纵向划分:
slice1的第一个单元(填充),slice2的第一个单元(填充),slice1的第二个单元,slice2的第二个单元(填充)……slice1第一行的最后一个单元,slice2第一行的最后一个单元(填充)。
需要说明的是,slice第一行间最大比特数是slice1编码一行所消耗的比特数。
需要说明的是,该填充所消耗的比特数计入对应块的实际比特数消耗,或者,填充所消耗的比特数不计入对应块的实际比特数消耗。
实施例三、slice级并行
编码端计算单元比特数写入码流;
可选的,当单元确定时,可以根据slice的宽度和高度以及bpp(或者target_bpp)中的一个或多个计算得到每个单元的比特数。示例性的,slice的宽×高×bpp=10000比特,该10000比特为slice中单元的比特数,
可选的,该单元的比特数也可以为预设的固定值。
其中,码流排布一种码流排布方法,以2个slice为例,其中,slice只会纵向划分:
slice1的第一个单元,slice2的第一个单元,slice1的第二个单元,slice2的第二个单元……slice1的最后一个单元,slice2的最后一个单元。
需要说明的是,每个单元的比特数为上述两种可选方式中任意一种确定的恒定大小。
解码端按照第一slice的第一个单元、第二个slice的第一个单元、第一个slice的第二个单元、第二个slice的第二个单元的顺序解析码流。
需要说明的是,上述并行方案中未进行特殊说明的方案,均可在解码侧或编码侧进行。
需要说明的是,在不冲突的情况下是,上文中任意多个实施例中的部分或全部内容可以构成新的实施例。
本申请实施例提供一种解码装置,该解码装置可以为视频解码器。具体的,解码装置用于执行以上解码方法中的视频解码器所执行的步骤。本申请实施例提供的解码装置可以包括相应步骤所对应的模块。
本申请实施例可以根据上述方法示例对解码装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图10示出上述实施例中所涉及的解码装置的一种可能的结构示意图。如图10所示,解码装置100包括获取模块1001、确定模块1002和解码模块1003。
获取模块1001,用于获取待解码图像中当前块的一个或多个码率控制参数,例如上述步骤S601。
确定模块1002,用于根据一个或多个码率控制参数确定当前块的量化参数;例如上述步骤S602。
解码模块1003,用于基于当前块的量化参数对当前块进行解码,例如上述步骤S603。
在一种示例中,获取模块1001,具体用于获取待解码图像的信息,待解码图像的信息包括待解码图像的基本信息和待解码图像中图像块的信息;根据待解码图像的信息中的部分或全部确定当前块的一个或多个码率控制参数。
在一种示例中,码率控制参数包括当前块的资源充裕度、当前块的复杂度、当前块的预测比特数、当前块的平均量化参数和当前块的量化参数的变化值;其中,平均量化参数用于表征待解码图像中已解码图像块的量化参数的平均程度,资源充裕度是指用于存储当前块的资源在用于存储待解码图像的资源中的充足程度,复杂度是指待解码图像中已解码图像块的复杂程度,预测比特数是指预估当前块解码后占用的资源,量化参数的变化值是指待解码图像中已解码图像块之间量化参数的变化值。
在一种示例中,确定模块1002,具体用于获取已解码图像块的码率控制参数;根据已解码图像块的码率控制参数确定当前块的量化参数。
在一种示例中,确定模块1002,具体用于获取已解码图像块的量化参数;根据已解码图像块的量化参数确定当前块的量化参数。
在一种示例中,确定模块1002,还用于根据当前块信息计算当前块的总比特数,当前块的总比特数为当前块解码后所占用的比特数;根据总比特数确定可用比特数,可用比特数为存储当前块解码后的图像数据,可用比特数用于确定当前块的一个或多个码率控制参数。
在一种示例中,确定模块1002,具体用于去除总比特数中用于存储非图像数据的其他比特数。
在一种示例中,确定模块1002,还用于初始化中间参数,中间参数用于结合一个或多个码率控制参数确定当前块的量化参数。
在一种示例中,确定模块1002,还用于基于一个或多个码率控制参数,修正量化参数。
在一种示例中,确定模块1002,还用于更新一个或多个码率控制参数。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
当然,本申请实施例提供的解码装置包括但不限于上述模块,例如:解码装置还可以包括存储模块1004。
存储模块1004可以用于存储该解码装置的程序代码和数据。
本申请实施例还提供了一种电子设备,该电子设备包括上述解码装置100,该解码装置100执行上文提供的任意一种视频解码器所执行的方法。
本申请实施例还提供了一种通信系统,该通信系统包括上述解码装置100和编码装置,该解码装置100执行上文提供的任意一种视频解码器所执行的方法,该编码装置执行上文中提供的任意一种视频编码器所执行的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上文提供的任意一种视频解码器所执行的方法。
关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
本申请实施例还提供了一种芯片。该芯片中集成了用于实现上述解码装置100的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定集成电路(application specific integrated circuit,ASIC)、微处理器(digital signal processor,DSP),现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如SSD)等。
应注意,本申请实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种视频解码方法,其特征在于,包括:
获取待解码图像的信息,所述待解码图像的信息包括所述待解码图像的基本信息和所述待解码图像中图像块的信息;
根据所述待解码图像的信息中的部分或全部确定所述当前块的一个或多个码率控制参数;获取待解码图像中当前块的一个或多个码率控制参数;
根据所述一个或多个码率控制参数确定所述当前块的量化参数;
基于所述当前块的量化参数对所述当前块进行解码。
2.根据权利要求1所述的方法,其特征在于,所述当前块的码率控制参数包括所述当前块的预测比特数;其中,所述预测比特数是指预估所述当前块编码后占用的资源。
3.根据权利要求2所述的方法,其特征在于,所述待解码图像中图像块的信息包括所述当前块的剩余比特数和剩余块个数,所述获取待解码图像中当前块的一个或多个码率控制参数,包括:
根据所述剩余比特数与所述剩余块个数的比值导出所述当前块的预测比特数,所述剩余比特数用于指示存储所述待解码图像的资源中未被已解码图像块占用的比特资源,所述剩余块个数用于指示所述待解码图像中未解码图像块个数,所述剩余比特数与所述剩余块个数的比值用于指示平均每个剩余块可用的存储资源。
4.根据权利要求2所述的方法,其特征在于,所述待解码图像中图像块的信息包括实际比特数,所述实际比特数用于表示每块已解码图像块实际占用比特数,所述获取待解码图像中当前块的一个或多个码率控制参数,包括:
根据前n个已解码图像块的实际比特数的加权值导出所述当前块的预测比特数。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述一个或多个码率控制参数确定所述当前块的量化参数,包括:
获取所述已解码图像块的码率控制参数;
根据所述已解码图像块的码率控制参数确定所述当前块的量化参数。
6.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据所述一个或多个码率控制参数确定所述当前块的量化参数之后,所述方法还包括:
基于所述一个或多个码率控制参数,修正所述量化参数。
7.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据所述一个或多个码率控制参数确定量化参数之后,所述方法还包括:
更新所述一个或多个码率控制参数。
8.一种视频解码装置,其特征在于,包括:
获取模块,用于获取待解码图像中当前块的一个或多个码率控制参数;
确定模块,根据所述一个或多个码率控制参数确定所述当前块的量化参数;
处理模块,用于基于所述当前块的量化参数对所述当前块进行解码。
9.一种视频解码器,其特征在于,包括处理器和存储器;
所述存储器存储有所述处理器可执行的指令;
所述处理器被配置为执行所述指令时,使得所述视频解码器实现如权利要求1-7中任一项所述的视频解码方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序,当所述程序在所述计算机上运行时,使得所述计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310485423.6A CN117221564B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074669.XA CN116095335B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
CN202310485423.6A CN117221564B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074669.XA Division CN116095335B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117221564A true CN117221564A (zh) | 2023-12-12 |
CN117221564B CN117221564B (zh) | 2025-01-17 |
Family
ID=86197950
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310485423.6A Active CN117221564B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
CN202210074669.XA Active CN116095335B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074669.XA Active CN116095335B (zh) | 2022-01-21 | 2022-01-21 | 一种视频解码方法、装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
CN (2) | CN117221564B (zh) |
TW (1) | TWI838089B (zh) |
WO (1) | WO2023138532A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109076212A (zh) * | 2017-12-27 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
CN112690000A (zh) * | 2018-09-21 | 2021-04-20 | 华为技术有限公司 | 用于进行反量化的装置和方法 |
WO2021244341A1 (zh) * | 2020-06-05 | 2021-12-09 | 中兴通讯股份有限公司 | 图像编码方法及装置、电子设备及计算机可读存储介质 |
WO2022012183A1 (zh) * | 2020-07-17 | 2022-01-20 | Oppo广东移动通信有限公司 | 一种编码方法、编码器及计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019104635A1 (en) * | 2017-11-30 | 2019-06-06 | SZ DJI Technology Co., Ltd. | System and method for controlling video coding at frame level |
WO2020004912A1 (ko) * | 2018-06-25 | 2020-01-02 | 한국전자통신연구원 | 양자화 파라미터를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 |
WO2020111981A1 (en) * | 2018-11-26 | 2020-06-04 | Huawei Technologies Co., Ltd. | Apparatus and method for chrominance quantization parameter derivation |
CN113784126A (zh) * | 2021-09-17 | 2021-12-10 | Oppo广东移动通信有限公司 | 图像编码方法、装置、设备及存储介质 |
-
2022
- 2022-01-21 CN CN202310485423.6A patent/CN117221564B/zh active Active
- 2022-01-21 CN CN202210074669.XA patent/CN116095335B/zh active Active
-
2023
- 2023-01-16 WO PCT/CN2023/072358 patent/WO2023138532A1/zh active Application Filing
- 2023-01-17 TW TW112102125A patent/TWI838089B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109076212A (zh) * | 2017-12-27 | 2018-12-21 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
CN112690000A (zh) * | 2018-09-21 | 2021-04-20 | 华为技术有限公司 | 用于进行反量化的装置和方法 |
WO2021244341A1 (zh) * | 2020-06-05 | 2021-12-09 | 中兴通讯股份有限公司 | 图像编码方法及装置、电子设备及计算机可读存储介质 |
WO2022012183A1 (zh) * | 2020-07-17 | 2022-01-20 | Oppo广东移动通信有限公司 | 一种编码方法、编码器及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116095335B (zh) | 2025-01-07 |
CN116095335A (zh) | 2023-05-09 |
TW202337212A (zh) | 2023-09-16 |
CN117221564B (zh) | 2025-01-17 |
WO2023138532A1 (zh) | 2023-07-27 |
TWI838089B (zh) | 2024-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI864785B (zh) | 視頻解碼方法、視頻編碼方法、視頻解碼裝置、視頻編碼裝置、視頻解碼器、視頻編碼器、視頻編解碼系統、電腦可讀儲存媒體及電腦程式產品 | |
TWI847806B (zh) | 視訊圖像解碼方法、編碼方法、裝置及存儲介質 | |
WO2024061055A1 (zh) | 图像编码方法和图像解码方法、装置及存储介质 | |
TWI870108B (zh) | 圖像編解碼方法、裝置及存儲介質 | |
CN116156167B (zh) | 一种残差跳过编解码方法及装置 | |
CN116074539B (zh) | 一种图像编解码方法及装置 | |
CN116095335B (zh) | 一种视频解码方法、装置及存储介质 | |
TWI821013B (zh) | 視頻編解碼方法及裝置 | |
TW202510564A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |