CN117676141A - 图像编解码方法、装置、编码器、解码器和*** - Google Patents
图像编解码方法、装置、编码器、解码器和*** Download PDFInfo
- Publication number
- CN117676141A CN117676141A CN202211696812.5A CN202211696812A CN117676141A CN 117676141 A CN117676141 A CN 117676141A CN 202211696812 A CN202211696812 A CN 202211696812A CN 117676141 A CN117676141 A CN 117676141A
- Authority
- CN
- China
- Prior art keywords
- coding unit
- bits
- current
- current coding
- bit
- 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
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000013139 quantization Methods 0.000 claims abstract description 83
- 230000015654 memory Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013500 data storage Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 24
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 24
- 230000006854 communication Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 21
- 238000007906 compression Methods 0.000 description 9
- 230000006835 compression Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 241000985610 Forpus Species 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
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/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- 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/182—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 a pixel
-
- 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/184—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 bits, e.g. of the compressed video stream
-
- 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/42—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
公开了图像编解码方法、装置、编码器、解码器和***,涉及多媒体领域。该方法包括,依据剩余编码单元的数量近似值确定有损比特数的调整值,即将有损比特数计算过程中涉及除法的平均环节在编码端和解码端都可以通过移位操作实现,从而在不增加计算复杂度时,提高了有损比特数的精确性,进而提升量化参数的精确性,从而有效提升了重建后图像的图像质量。
Description
本申请要求于2022年09月08日提交国家知识产权局、申请号为202211097271.4,申请名称为“一种码率控制方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及多媒体领域,尤其涉及一种图像编解码方法、装置、编码器、解码器和***。
背景技术
目前,编码器对图像帧进行预测、量化、熵编码等编码操作得到位流。解码器对位流进行熵解码、反量化、预测重建等解码操作,得到图像帧的重建后图像。其中,由于量化参数的值越大,位流包含的图像帧中有效信息越少导致重建后图像的质量较差;反之,量化参数的值越小重建后图像的质量越高,则位流包含的图像帧的冗余信息越多而位流的比特数较多。但是,在提升量化参数的精确性时,又增加了计算复杂度。因此,在确定对图像进行编解码所使用的量化参数,在确保重建后图像的质量的前提下,减少对图像进行编码后的编码比特数如何平衡确定量化参数的精确性的计算复杂度是亟待解决的问题。
发明内容
本申请提供了一种图像编解码方法、装置、编码器、解码器和***,由此平衡确定量化参数的精确性的计算复杂度。
第一方面,提供了一种图像解码方法,该方法包括:获取图像位流中当前编码单元的位流;根据位流缓冲区的数据存储情况和待解码编码单元的数量近似值确定当前编码单元的有损比特数的调整值,位流缓冲区用于存储一个或多个编码单元的位流或部分位流;根据当前编码单元的有损比特数的初始值和当前编码单元的有损比特数的调整值确定当前编码单元的有损比特数,当前编码单元的有损比特数用于确定对当前编码单元的位流进行解码所使用的量化参数。
如此,依据剩余编码单元的数量近似值确定有损比特数的调整值,即将有损比特数计算过程中涉及除法的平均环节在编码端和解码端都可以通过移位操作实现,从而在不增加计算复杂度时,提高了有损比特数的精确性,进而提升量化参数的精确性,从而有效提升了重建后图像的图像质量。
在一种可能的实现方式中,方法还包括:根据第一量化参数对当前编码单元的位流进行解码,得到当前编码单元的重建后图像。
第二方面,提供了一种图像编码方法,方法包括:获取当前帧中当前编码单元;根据位流缓冲区的数据存储情况和待编码的编码单元的数量近似值确定当前编码单元的有损比特数的调整值,位流缓冲区用于存储一个或多个编码单元的位流或部分位流;根据当前编码单元的有损比特数的初始值和当前编码单元的有损比特数的调整值确定当前编码单元的有损比特数,当前编码单元的有损比特数用于确定对当前编码单元进行编码所使用的量化参数。
在一种可能的实现方式中,方法还包括:根据位流缓冲区的数据存储情况和待解码编码单元的数量近似值确定当前编码单元的有损比特数的调整值,包括:根据位流缓冲区中当前帧解码结束的期望比特数和位流缓冲区中数据的比特数的差值;根据差值和待解码编码单元的数量的二进制非零最高位的位数确定当前编码单元的有损比特数的调整值。
在一种可能的实现方式中,方法还包括:根据所述第一量化参数对所述当前编码单元进行编码,得到所述当前编码单元的位流。
在一种可能的实现方式中,根据在先编码单元的编码比特数确定当前编码单元的无损比特数,包括:根据在先编码单元的编码比特数和第二量化参数,确定当前编码单元的无损比特数,在先编码单元指在当前时刻之前时刻已进行解码处理的编码单元,第二量化参数用于对在先编码单元的位流进行解码;当前编码单元的无损比特数用于更新当前编码单元的图像内容对应的无损比特数。
在另一种可能的实现方式中,方法还包括:根据在先编码单元的编码比特数,确定对在先编码单元解码后位流缓冲区中数据的比特数,位流缓冲区用于存储一个或多个编码单元的位流或部分位流。
在另一种可能的实现方式中,方法还包括:根据当前编码单元的图像内容确定当前编码单元的无损比特数;根据在先编码单元解码后位流缓冲区中数据的比特数确定当前编码单元的有损比特数;根据当前编码单元的有损比特数和当前编码单元的平均无损比特数确定当前编码单元的信息量,信息量用于指示当前编码单元表达的内容在当前帧所表达的内容的复杂程度;根据当前编码单元的无损比特数和当前编码单元的信息量确定当前编码单元的目标比特数,当前编码单元的目标比特数用于指示在参考当前编码单元的内容时对当前编码单元进行有损编码后的期望比特数;根据当前编码单元的目标比特数确定第一量化参数。
第三方面,提供了一种图像编解码装置,所述装置包括用于执行第一方面或第一方面任一种可能设计的方法的各个模块,以及执行第二方面或第二方面任一种可能设计的方法的各个模块。
第四方面,提供了一种编码器,所述编码器包括至少一个处理器和存储器,其中,存储器用于存储计算机程序,使得计算机程序被至少一个处理器执行时实现第二方面或第二方面任一种可能设计中所述的方法。
第五方面,提供了一种解码器,所述解码器包括至少一个处理器和存储器,其中,存储器用于存储计算机程序,使得计算机程序被至少一个处理器执行时实现第一方面或第一方面任一种可能设计中所述的方法。
第六方面,提供一种编解码***,该编解码***包括如第四方面所述的编码器和如第五方面所述的解码器。
第七方面,提供一种芯片,包括:处理器和供电电路;其中,所述供电电路用于为所述处理器供电;所述处理器用于执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤,以及执行第二方面或第二方面任一种可能实现方式中的方法的操作步骤。
第八方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤,以及执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
第九方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行第一方面或第一方面任一种可能实现方式中的方法的操作步骤,以及执行如第二方面或第二方面任意一种可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种编解码***的结构示意图;
图2为本申请提供的一种编解码***的场景示意图;
图3为本申请提供的一种编码器和解码器的结构示意图;
图4为本申请提供的一种图像编解码方法的流程示意图;
图5为本申请提供的一种图像编码方法的流程示意图;
图6为本申请提供的一种图像解码方法的流程示意图;
图7为本申请提供的一种确定有损比特数的方法示意图;
图8为本申请提供的一种编解码装置的结构示意图;
图9为本申请提供的一种编解码***的结构示意图。
具体实施方式
本申请所涉及的技术方案不仅可能应用于视频编码标准(如H.264、HEVC等标准),还可能应用于未来的视频编码标准(如H.266标准)。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。下面先对本申请可能涉及的一些概念进行简单介绍。
视频,包含连续的多个图像,连续的多个图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,则看上去平滑连续的多个画面即视频。
视频编码,指处理形成视频或视频序列的图片序列。在视频编码领域,术语“图片(picture)”、“帧(frame)”或“图像(image)”可以用作同义词。本文中使用的视频编码表示视频编码或视频解码。视频编码在源侧执行,通常包括在满足一定图像质量的条件下,处理(例如,压缩)原始视频图片以减少表示该视频图片所需的数据量,从而更高效地存储和/或传输。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重构视频图片。实施例涉及的视频图片“编码”应理解为涉及视频序列的“编码”或“解码”。编码部分和解码部分的组合也称为编解码(编码和解码)。视频编码也可以称为图像编码(imagecoding)也称图像压缩(image compression)。图像解码(imagedecoding)是指图像编码的逆过程。
视频序列,包括一系列图像(picture),图像被进一步划分为切片(slice),切片再被划分为块(block)。视频编码以块为单位进行编码处理,在一些新的视频编码标准中,块的概念被进一步扩展。比如,在H.264标准中有宏块(macroblock,MB),宏块可进一步划分成多个可用于预测编码的预测块(partition)。在高性能视频编码(high efficiency videocoding,HEVC)标准中,采用编码单元(coding unit,CU),预测单元(prediction unit,PU)和变换单元(transform unit,TU)等基本概念,从功能上划分了多种块单元,并采用全新的基于树结构进行描述。比如CU可以按照四叉树进行划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构,CU是对编码图像进行划分和编码的基本单元。对于PU和TU也有类似的树结构,PU可以对应预测块,是预测编码的基本单元。对CU按照划分模式进一步划分成多个PU。TU可以对应变换块,是对预测残差进行变换的基本单元。然而,无论CU,PU还是TU,本质上都属于块(或称编码单元)的概念。
例如在HEVC中,通过使用表示为编码树的四叉树结构将CTU拆分为多个CU。在CU层级处作出是否使用图片间(时间)或图片内(空间)预测对图片区域进行编码的决策。每个CU可以根据PU拆分类型进一步拆分为一个、两个或四个PU。一个PU内应用相同的预测过程,并在PU基础上将相关信息传输到解码器。在通过基于PU拆分类型应用预测过程获取残差块之后,可以根据类似于用于CU的编码树的其它四叉树结构将CU分割成变换单元(transformunit,TU)。在视频压缩技术最新的发展中,使用四叉树和二叉树(Quad-tree and binarytree,QTBT)分割帧来分割编码块。在QTBT块结构中,CU可以为正方形或矩形形状。
本文中,为了便于描述和理解,可将当前编码图像中待编码的编码单元称为当前块,例如在编码中,指当前正在编码的块;在解码中,指当前正在解码的块。将参考图像中用于对当前块进行预测的已解码的编码单元称为参考块,即参考块是为当前块提供参考信号的块,其中,参考信号表示编码单元内的像素值。可将参考图像中为当前块提供预测信号的块为预测块,其中,预测信号表示预测块内的像素值或者采样值或者采样信号。例如,在遍历多个参考块以后,找到了最佳参考块,此最佳参考块将为当前块提供预测,此块称为预测块。
无损视频编码,指可以重构原始视频图片,即经重构视频图片具有与原始视频图片相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。
有损视频编码,指通过例如量化执行进一步压缩,来减少表示视频图片所需的比特数,而解码器侧无法完全重构视频图片,即经重构视频图片的质量相比原始视频图片的质量较低或较差。
位流(Data Rate),指对图像或视频进行编码后生成的二进制流。位流也称为码流或码率,即在单位时间内传输的比特数。图像编码中画面质量控制中重要部分。对于同样分辨率的图像,图像的位流越大,压缩比就越小,画面质量就越好。
码率控制,指在编解码过程中对码率进行调整的作用,以下简写为码控。码率控制模式包括恒定码率(Constant Bit Rate,CBR)和动态码率(Variable Bit Rate,VBR)。
恒定码率(Constant Bit Rate,CBR),即在码率统计时间内确保码率平稳。
动态码率(Variable Bit Rate,VBR),即允许在码率统计时间内码率波动,从而保证编码后的图像质量平稳。
量化,指将信号的连续取值映射成多个离散的幅值的过程。
量化参数(quantization parameter,QP),用于在编码过程中,预测操作产生的残差值或变换操作产生的系数进行量化后。在解码过程中对语法元素进行反量化得到残差值或系数。量化参数为量化过程使用的参数,通常量化参数的值越大,量化程度越明显,重建后图像的质量越差,码率越低;反之,量化参数的值越小,重建后图像的质量越好,码率越高。
位流缓冲区满度,指位流缓冲区中数据的比特数占位流缓冲区的存储容量的比值。在编码端,位流缓冲区中数据的比特数包括编码单元的编码比特数。在解码端,位流缓冲区中数据的比特数包括编码单元的解码后比特数。
钳位,指将某数值限制在规定范围的操作。
下面结合附图对本申请的实施方式进行说明。
图1为本申请提供的一种编解码***的结构示意图。编解码***100包括源设备110和目的设备120。源设备110用于对视频或图像进行压缩编码得到位流,向目的设备120传输位流。目的设备120对位流进行解码,并重建视频或图像,显示重建后图像。
具体地,源设备110包括图像采集器111、预处理器112、编码器113和通信接口114。
图像采集器111用于获取原始图像。图像采集器111,可以包括或可以为任何类别的图像捕获设备,用于例如捕获现实世界图像,和/或任何类别的图像或评论(对于屏幕内容编码,屏幕上的一些文字也认为是待编码的图像或图像的一部分)生成设备,例如,用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供现实世界图像、计算机动画图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)的任何类别设备,和/或其任何组合(例如,增强现实(Augmented Reality,AR)图像)。图像采集器111可以为用于捕获图像的相机或者用于存储图像的存储器,图像采集器111还可以包括存储先前捕获或产生的图像和/或获取或接收图像的任何类别的(内部或外部)接口。当图像采集器111为相机时,图像采集器111可例如为本地的或集成在源设备中的集成相机;当图像采集器111为存储器时,图像采集器111可为本地的或例如集成在源设备中的集成存储器。当所述图像采集器111包括接口时,接口可例如为从外部视频源接收图像的外部接口,外部视频源例如为外部图像捕获设备,比如相机、外部存储器或外部图像生成设备,外部图像生成设备例如为外部计算机图形处理器、计算机或服务器。接口可以为根据任何专有或标准化接口协议的任何类别的接口,例如有线或无线接口、光接口。
图像可以视为像素点(picture element)的二维阵列或矩阵。阵列中的像素点也可以称为采样点。阵列或图像在水平和垂直方向(或轴线)上的采样点数目定义图像的尺寸和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图像可以表示为或包含三个采样阵列。例如在RBG格式或颜色空间中,图像包括对应的红色、绿色及蓝色采样阵列。但是,在视频编码中,每个像素通常以亮度/色度格式或颜色空间表示,例如对于YUV格式的图像,包括Y指示的亮度分量(有时也可以用L指示)以及U和V指示的两个色度分量。亮度(luma)分量Y表示亮度或灰度水平强度(例如,在灰度等级图像中两者相同),而两个色度(chroma)分量U和V表示色度或颜色信息分量。相应地,YUV格式的图像包括亮度采样值(Y)的亮度采样阵列,和色度值(U和V)的两个色度采样阵列。RGB格式的图像可以转换或变换为YUV格式,反之亦然,该过程也称为色彩变换或转换。如果图像是黑白的,该图像可以只包括亮度采样阵列。本申请中,由图像采集器111传输至编码器113的图像也可称为原始图像数据。
预处理器112用于接收图像采集器111采集的原始图像,并对原始图像进行预处理,得到预处理后图像。例如,预处理器112执行的预处理包括整修、色彩格式转换(例如,从RGB格式转换为YUV格式)、调色或去噪等。
编码器113用于接收预处理器112生成的预处理后图像,对预处理后图像进行压缩编码得到位流。示例地,编码器113可以包括码控单元1131和编码单元1132,码控单元1131用于确定对当前帧中每个编码单元进行编码所使用的量化参数,以便于编码单元1132根据量化参数对预处理后图像进行预测、量化和编码得到位流,其中,编码器113可以根据编码单元的图像内容和位流缓冲区中数据的比特数确定目标比特数,根据目标比特数确定的量化参数对编码单元进行编码。
通信接口114用于接收编码器113生成的位流,通过通信信道130向目的设备120发送位流,以便于目的设备120根据位流重建原始图像。
目的设备120包括显示器121、后处理器122、解码器123和通信接口124。
通信接口124用于接收通信接口114发送的位流,并将位流传输给解码器123。以便于解码器123根据位流重建原始图像。
通信接口114和通信接口124可用于通过源设备110与目的设备120之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收原始图像的相关数据。
通信接口114和通信接口124均可配置为如图1中从源设备110指向目的设备120的对应通信信道130的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的位流传输等数据传输相关的任何其它信息,等等。
解码器123用于对位流进行解码,并重建原始图像。示例地,解码器123对位流进行熵解码、反量化和预测重建,得到重建后图像。其中,解码器123可以包括码控单元1231和解码单元1232,码控单元1231用于确定对当前帧中每个编码单元进行解码所使用的量化参数,以便于解码单元1232根据量化参数对位流进行解码、反量化、预测重建得到重建后图像,其中,解码器123可以根据编码单元的图像内容和位流缓冲区中数据的比特数确定编码单元的目标比特数,根据目标比特数确定的量化参数对编码单元的位流进行解码。
后处理器122用于接收解码器123生成的重建后图像,对重建后图像进行后处理。例如,后处理器122执行的后处理包括色彩格式转换(例如,从YUV格式转换为RGB格式)、调色、整修或重采样,或任何其它处理等。
显示器121用于显示重建后图像。显示器121可以为或可以包括任何类别的用于呈现经重构图片的显示设备,例如,集成的或外部的显示器或监视器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emittingdiode,OLED)显示器、等离子显示器、投影仪、微LED显示器、硅基液晶(liquid crystal onsilicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类别的其它显示器。
其中,编码器113和解码器123都可以实施为各种合适电路中的任一个,例如,一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件或其任何组合。如果部分地以软件实施所述技术,则设备可将软件的指令存储于合适的非暂时性计算机可读存储介质中,且可使用一或多个处理器以硬件执行指令从而执行本公开的技术。前述内容(包含硬件、软件、硬件与软件的组合等)中的任一者可视为一或多个处理器。
图像采集器111和编码器113可以集成在一个物理设备上,也可以设置在不同的物理设备上,不予限定。示例地,如图1所示的源设备110包括图像采集器111和编码器113,表示图像采集器111和编码器113集成在一个物理设备上,则源设备110也可称为采集设备。源设备110例如是手机、平板电脑、计算机、笔记本电脑、摄像机、照相机、可穿戴设备、车载设备、终端设备、虚拟现实(virtual reality,VR)设备、增强现实(Augmented Reality,AR)设备、混合现实(Mixed Reality,MR)设备或扩展现实(Extended Reality,XR)设备或者其他采集图像设备。若源设备110不包括图像采集器111,表示图像采集器111和编码器113是两个不同的物理设备,源设备110可以从其他设备(如:采集图像设备或存储图像设备)获取原始图像。
另外,显示器121和解码器123可以集成在一个物理设备上,也可以设置在不同的物理设备上,不予限定。示例地,如图1所示的目的设备120包括显示器121和解码器123,表示显示器121和解码器123集成在一个物理设备上,则目的设备120也可称为回放设备,目的设备120具有解码和显示重建后图像的功能。目的设备120例如是显示器、电视机、数字媒体播放器、视频游戏控制台、车载计算机或其他显示图像的设备。若目的设备120不包括显示器121,表示显示器121和解码器123是两个不同的物理设备,目的设备120对位流解码重建原始图像后,将重建后图像传输给其他显示设备(如:电视机、数字媒体播放器),由其他显示设备显示重建后图像。
此外,图1示出了源设备110和目的设备120可以集成在一个物理设备上,也可以设置在不同的物理设备上,不予限定。
示例地,如图2中的(a)所示,源设备110可以是摄像头,目的设备120可以是各种可能形态的显示器。源设备110可以采集第一场景的视频,将视频中多帧原始图像传输至编解码设备,编解码设备对原始图像进行编解码处理,得到重建后图像,由目的设备120显示重建后图像,播放视频。
又示例地,如图2中的(b)所示,源设备110和目的设备120集成在虚拟现实(virtual reality,VR)设备、增强现实(Augmented Reality,AR)设备、混合现实(MixedReality,MR)设备或扩展现实(Extended Reality,XR)设备中,则VR/AR/MR/XR设备具备采集原始图像、显示重建后图像和编解码的功能。源设备110可以采集用户所处现实场景的图像和目的设备120可以在虚拟环境中显示现实场景的重建后图像。
在这些实施例中,源设备110或其对应功能和目的设备120或其对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。根据描述,图1所示的源设备110和/或目的设备120中的不同单元或功能的存在和划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
上述编解码***的结构只是示意性说明,在一些可能的实现方式中,编解码***还可以包括其他设备,例如,编解码***还可以包括端侧设备或云侧设备。源设备110采集到原始图像后,对原始图像进行预处理,得到预处理后图像;并将预处理后图像传输至端侧设备或云侧设备,由端侧设备或云侧设备实现对预处理后图像进行编解码的功能。
本申请提供的图像编解码方法应用于编码端和解码端。结合图3对编码器和解码器的结构进行详细说明。如图3所示,编码器300包括预测单元310、码控单元320、量化单元330、编码单元340和块划分单元350。
块划分单元350用于将原始图像划分为多个编码单元。
码控单元320用于根据块划分单元350输出的当前需要进行编码的编码单元的图像内容和位流缓冲区中数据的比特数确定编码单元的目标比特数,根据目标比特数确定量化参数。
在一些实施例中,编码器300对一帧图像编码完成后向解码器400传输图像帧的位流时,位流缓冲区中数据包括图像帧的位流,位流缓冲区中数据的比特数包括图像帧的位流的比特数。
在另一些实施例中,编码器300对一帧图像中编码单元编码完成后向解码器400传输编码单元的位流时,位流缓冲区中数据包括一个或多个编码单元的位流,位流缓冲区中数据的比特数包括一个或多个编码单元的位流的比特数。可理解地,一个或多个编码单元的位流可以是编码器300已编码的编码单元的位流减去编码器300向解码器400传输的已编码的编码单元的位流。
预测单元310用于对块划分单元350输出的编码单元进行帧内预测得到预测比特数,输出编码单元的原始比特数和预测比特数的残差。例如,关于帧内预测的解释可以参考HEVC的帧内预测。帧内预测是一种常见的去除原始图像中空间冗余信息的手段,即采用相邻编码块重建像素作为参考值对当前编码单元进行预测,相当于原始图像内的编码单元与其周围的编码块存在相关性,可以用周围已重建的编码单元来估计当前编码单元的像素值,估计出来的像素值就是预测值,将预测值与当前编码单元的原始值的残差进行量化、熵编码。编码传输的往往是预测残差。解码端进行相同预测过程,得到当前编码单元的预测值,然后通过预测值与解出的残差相加得到当前编码单元的重建值。
量化单元330用于根据码控单元320输出的量化参数对预测单元310输出的残差进行量化得到量化后残差。
编码单元340用于对量化单元330输出的量化后残差进行编码得到编码单元的位流。例如对量化单元330输出的量化后残差进行熵编码。
码控单元320还提供了码控更新的功能,即更新块划分单元350输出的编码单元对应的无损比特数和平均无损比特数。例如,码控单元320根据在先编码单元的编码比特数确定当前编码单元的无损比特数。又如,根据在先编码单元的编码比特数确定当前编码单元对应的平均无损比特数。又如,在先编码单元的编码比特数更新在先编码单元解码后位流缓冲区中数据的比特数。
结合图3对解码器的结构进行详细说明。如图3所示,解码器400包括解码单元410、码控单元420、反量化单元430和预测重建单元440。
解码单元410用于对编码单元的位流进行解码得到量化后残差和图像内容。
码控单元420根据解码单元410输出的当前需要进行解码的编码单元的图像内容位流缓冲区中数据的比特数确定编码单元的目标比特数,根据目标比特数确定量化参数。
在一些实施例中,编码器300对一帧图像编码完成后向解码器400传输图像帧的位流时,解码器400的位流缓冲区中数据包括图像帧的解码后数据,位流缓冲区中数据的比特数包括图像帧的解码后数据的比特数。
在另一些实施例中,编码器300对一帧图像中编码单元编码完成后向解码器400传输编码单元的位流时,解码器400的位流缓冲区中数据包括一个或多个编码单元的解码后数据,位流缓冲区中数据的比特数包括一个或多个编码单元的解码后数据的比特数。
反量化单元430用于根据码控单元420输出的量化参数对解码单元410输出的量化后残差进行反量化得到残差。
预测重建单元440用于根据反量化单元430输出的残差进行预测重建得到重建后图像,以便于显示器显示重建后图像。
码控单元420还提供了码控更新的功能,即更新编码单元对应的无损比特数和平均无损比特数。例如,码控单元420根据在先编码单元的编码比特数确定当前编码单元的无损比特数。又如,根据在先编码单元的编码比特数确定当前编码单元的平均无损比特数。又如,在先编码单元的编码比特数更新在先编码单元解码后位流缓冲区中数据的比特数。
为了解决在确定对图像进行编解码所使用的量化参数,以确保重建后图像的质量,如何平衡确定量化参数的精确性的计算复杂度的问题,本申请提供一种图像编解码方法,依据剩余编码单元的数量近似值确定有损比特数的调整值,即将有损比特数计算过程中涉及除法的平均环节在编码端和解码端都可以通过移位操作实现,从而在不增加计算复杂度时,提高了有损比特数的精确性,进而提升量化参数的精确性,从而有效提升了重建后图像的图像质量。
接下来,结合附图对图像编解码过程进行说明。图4为本申请提供的一种图像编解码方法的流程示意图。在这里由图1中源设备110和目的设备120执行图像编解码过程为例进行说明。如图4所示,该方法包括以下步骤。
步骤410、源设备110获取当前帧中待编码的编码单元。
如上述实施例所述,若源设备110携带图像采集器111,源设备110可以通过图像采集器111采集原始图像。可选地,源设备110也可以接收其他设备采集的原始图像;或者从源设备110中的存储器或其他存储器获取原始图像。原始图像可以包括实时采集的现实世界图像、设备存储的图像和由多个图像合成的图像中至少一种。本实施例对原始图像的获取方式以及原始图像的类型不予限定。
当前帧是指在当前时刻进行编解码处理的一帧图像或原始图像。在先帧是指在当前时刻之前时刻已进行编解码处理的一帧图像或原始图像。在先帧可以是当前时刻的前一时刻或者前多个时刻的帧。当前编码单元指在当前时刻进行编解码处理的编码单元。在先编码单元指在当前时刻之前时刻已进行编解码处理的编码单元。在先编码单元可以是当前时刻的前一时刻或者前多个时刻的编码单元。
源设备110可以对当前帧进行划分得到多个编码单元,对多个编码单元进行编码。
步骤420、源设备110根据编码单元的图像内容和位流缓冲区中数据的比特数确定目标比特数,根据目标比特数确定的量化参数。
编码单元的图像内容指示编码单元中不同像素区域的复杂程度。例如,像素区域的颜色、纹理、形状等复杂程度。在一些实施例中,编码器113将编码单元分为若干个子块,对于每个子块,从水平和竖直两个方向逐步计算相邻像素值的差值。将差值的绝对值求和后,得到子块对应的复杂度等级,将复杂度等级和阈值进行比较,得到子块的复杂度等级。将各个子块的复杂度等级进行规则运算后,得到编码单元的复杂度等级k。当前帧中不同编码单元的复杂度等级可以不同也可以相同。
位流缓冲区中数据的比特数用于指示位流缓冲区存储的当前帧中已编码的编码单元的位流的比特数。在编码前,可以在存储器中预先配置用于存储位流的物理缓冲区。位流缓冲区可以是根据物理缓冲区存储的已编码的编码单元的位流的比特数得到的。
源设备110根据编码单元的图像内容指示的复杂度等级和位流缓冲区中数据的比特数确定目标比特数,根据目标比特数确定的量化参数。关于确定量化参数的具体解释参考下述步骤510至560的阐述。
步骤430、源设备110根据量化参数对编码单元进行编码,得到编码单元的位流。
源设备110可以对编码单元进行变换或量化、熵编码等编码操作,生成位流,从而实现对待编码的编码单元进行数据压缩的目的。编码单元的位流的比特数可以小于目标比特数也可以大于目标比特数。生成位流的具体方法可以参考现有技术,以及上述实施例中编码单元330的阐述。
另外,源设备110更新未经过编码的编码单元的无损比特数和平均无损比特数,以及位流缓冲区中数据的比特数。关于更新过程的具体解释参考下述步骤710至740的阐述。
步骤440、源设备110向目的设备120发送位流。
源设备110可以对视频全部编码完成后,向目的设备120发送视频的位流。或者,源设备110也可以以帧为单位,实时对原始图像进行编码处理,对一帧编码完成后发送一帧的位流。或者,源设备110对原始图像的编码单元进行编码处理,对编码单元编码完成后发送编码单元的位流。发送位流的具体方法可以参考现有技术,以及上述实施例中通信接口114和通信接口124的阐述。
步骤450、目的设备120获取图像位流中待解码的编码单元的位流。
步骤460、目的设备120根据编码单元的图像内容和位流缓冲区中数据的比特数确定目标比特数,根据编码单元的目标比特数确定量化参数。
目的设备120接收到编码单元的位流后,对编码单元的位流进行解码得到编码单元的图像内容和编码单元的编码后数据,再根据位流缓冲区中数据的比特数和编码单元的图像内容确定量化参数。目的设备120根据编码单元的图像内容指示的复杂度等级和位流缓冲区中数据的比特数确定目标比特数,根据目标比特数确定的量化参数。关于确定量化参数的具体解释参考下述步骤510至560的阐述。
步骤470、目的设备120根据量化参数对当前帧的编码单元的位流进行解码,得到重建后图像。
目的设备120,根据编码单元的目标比特数确定的量化参数对编码单元的编码后数据进行解码,得到重建后图像。
目的设备120显示重建后图像。或者,目的设备120将重建后图像传输给其他显示设备,由其他显示设备显示重建后图像。
另外,目的设备120更新未经过解码的编码单元的无损比特数和平均无损比特数,以及位流缓冲区中数据的比特数。关于更新过程的具体解释参考下述步骤710至740的阐述。
如此,为了获得更好的编解码性能和重建后图像的质量,平衡位流缓冲区中数据的比特数和编码单元的图像内容两个因素,动态地设置量化参数,从而在确保重建后图像的质量的前提下,减少对图像进行编码后的编码比特数。
接下来,结合附图对确定量化参数的过程进行详细说明。图5为本申请提供的一种图像编码方法的流程示意图。在这里由图3中编码器300执行量化参数的确定过程为例进行说明。其中,图5的方法流程是对图4中步骤420和步骤460所包括的具体操作过程的阐述。如图5所示,该方法包括以下步骤。
步骤510、编码器300根据编码单元的图像内容确定编码单元的无损比特数。
编码单元的图像内容用于指示编码单元中不同像素区域的复杂程度。编码器300可以根据编码单元的图像内容确定编码单元的复杂度等级,例如,如步骤420中的阐述。编码单元的无损比特数用于指示对编码单元进行无损编码后的期望比特数。
在一些实施例中,编码单元为当前帧中首个需要进行编码的编码单元时,无损比特数可以是根据经验配置的默认值。在另一些实施例中,编码单元为当前帧中第二个及以上需要进行编码的编码单元时,编码器300根据编码单元的编码比特数设置未编码的编码单元的无损编码后的期望比特数。编码器300可以根据编码单元的标识和编码单元的复杂度等级查表,确定编码单元的无损比特数。假设BLL表示无损比特数。BLL=RecordBLL[T][k],其中,T表示编码单元的标识,k表示编码单元的复杂度等级。
步骤520、编码器300根据位流缓冲区中数据的比特数确定编码单元的有损比特数。
编码单元的有损比特数用于指示在不参考编码单元的内容时对编码单元进行有损编码后的期望比特数。
编码器300根据位流缓冲区中已编码的编码单元的比特数确定有损比特数的调整值。进而,编码器300根据有损比特数的初始值和有损比特数的调整值确定有损比特数。有损比特数满足如下公式(1)。
Bpp= BppINI+BppADJ 公式(1)
其中,Bpp表示有损比特数,BppINI表示有损比特数的初始值,BppADJ表示有损比特数的调整值。有损比特数的初始值根据编码单元的比特数和压缩率确定得到。压缩率根据实际应用场景的需求确定的。
有损比特数的调整值与(RcBufEND-RcBufT)成正比,RcBufEND表示当前帧编码或解码结束时位流缓冲区的期望比特数。RcBufT表示位流缓冲区中已编码的编码单元的比特数。如果RcBufEND-RcBufT的差值大于0,表示位流缓冲区中已编码的编码单元的比特数未超过当前帧编码或解码结束时位流缓冲区的预期比特数,可以为未编码的编码单元分配较多的目标比特数;如果RcBufEND-RcBufT的差值小于0,表示位流缓冲区中已编码的编码单元的比特数超过当前帧编码或解码结束时位流缓冲区的预期比特数,可以为未编码的编码单元分配较少的目标比特数;如果RcBufEND-RcBufT的差值等于0,表示位流缓冲区中已编码的编码单元的比特数等于当前帧编码或解码结束时位流缓冲区的预期比特数,可以为未编码的编码单元分配较少的目标比特数。关于编码单元的有损比特数的调整值可以参考如下步骤710至步骤740的阐述。
位流缓冲区中已编码的编码单元的比特数与物理缓冲区中已编码的编码单元的比特数线性得到。例如,RcBufT=PhyBufT+X0,PhyBufT表示物理缓冲区中已编码的编码单元的比特数,物理缓冲区指存储器中用于存储已编码的编码单元的位流的存储空间。物理缓冲区的存储容量可以是一个或多个编码单元的位流的比特数。X0表示约定好的参数。
当前帧中不同的编码单元对应的RcBufEND相同。不同的帧中编码单元对应的RcBufEND可以相同也可以不同。
步骤530、编码器300根据有损比特数和平均无损比特数确定信息量。
信息量表示当前待编码的编码单元的信息在当前帧的信息的占比,即编码单元表达的内容在当前帧所表达的内容的复杂程度。例如,信息量为有损比特数和平均无损比特数的比值。平均无损比特数用于指示对当前帧进行无损编码后的期望比特数。平均无损比特数可以是当前帧中每个编码单元进行无损编码后的平均期望比特数。例如,当前帧包括编码单元1和编码单元2,编码单元1的进行无损编码后的期望比特数为10比特,编码单元2的进行无损编码后的期望比特数为20比特,当前帧的平均无损比特数为15比特。
在一些实施例中,编码单元为当前帧中首个需要进行编码的编码单元时,平均无损比特数可以是根据经验配置的默认值。在另一些实施例中,编码单元为当前帧中第二个及以上需要进行编码的编码单元时,编码器300根据编码单元的编码比特数设置未编码的编码单元对应的无损编码后的平均期望比特数。编码器300可以根据编码单元的标识查表,确定编码单元的平均无损比特数。假设BAVG表示平均无损比特数,BAVG=RecordBAVG[n],其中,RecordBAVG[n]表示第n个位置的平均无损比特数。
信息量表示编码单元的复杂度等级。信息量满足如下公式(2)。
R=(Bpp*InvTab[X3*BAVG-bitsOffset-1]+X4)*X5 公式(2)
其中,R表示信息量,Bpp表示有损比特数,BAVG表示平均无损比特数。bitsOffset表示偏移量,bitsOffset=BitsOffset-X1*Bpp+X2,BitsOffset表示偏移量的初始值,偏移量的初始值与图像位深相关。X1、X2、X3、X4和X5表示约定好的参数。
步骤540、编码器300根据无损比特数和编码单元的信息量确定目标比特数。
目标比特数用于指示在参考编码单元的内容时对编码单元进行有损编码后的期望比特数,即编码器300在参考编码单元的内容时对编码单元进行量化编码后的期望比特数。
有损比特数越大,目标比特数越大;有损比特数越小,目标比特数越小。目标比特数满足如下公式(3)。
BTGT=(R*(BLL-bitsOffset)+X6)*X7 公式(3)
其中,BTGT表示目标比特数,R表示信息量,BLL表示无损比特数,bitsOffset表示偏移量,X6和X7为约定好的参数。
步骤550、编码器300根据有损比特数、无损比特数和位流缓冲区满度中至少一个对目标比特数进行钳位,得到目标比特数的钳位值。
编码器300根据有损比特数Bpp,无损比特数BLL和位流缓冲区满度F确定目标比特数的最小值BMIN和目标比特数的最大值BMAX,进而,根据目标比特数的最小值BMIN和目标比特数的最大值BMAX对目标比特数BTGT进行钳位,得到目标比特数的钳位值B’TGT。目标比特数的钳位值满足如下公式(4)。
B’TGT=MIN(MAX(BMIN,BTGT),BMAX) 公式(4)
例如,若BMIN>BTGT,BMIN<BMAX,则目标比特数为BMIN。又如,若BMIN>BTGT,BMIN>BMAX,则目标比特数为BMAX。又如,若BMIN<BTGT,BTGT<BMAX,则目标比特数为BTGT。
位流缓冲区满度用于指示位流缓冲区对已编码的编码单元的位流的存储情况。位流缓冲区满度满足如下公式(5)。
F=RcBufT/RcBufMAX 公式(5)
其中,F表示位流缓冲区满度,RcBufT表示位流缓冲区中已编码的编码单元的比特数,RcBufMAX表示位流缓冲区允许的最大比特数。为了保持物理缓冲区的比特数,如果位流缓冲区满度高了,减少在参考编码单元的内容时对编码单元进行有损编码后的期望比特数,以降低物理缓冲区的比特数。
步骤560、编码器300根据无损比特数和目标比特数的钳位值确定量化参数。
编码器300在参考编码单元的内容时对编码单元进行量化编码后的期望比特数进行钳位后,根据无损比特数和目标比特数的钳位值确定量化参数。量化参数满足公式(6)。
QP=(BLL- B’TGT +X8)*X9)*X10 公式(6)
其中,BLL表示无损比特数,B’TGT表示目标比特数的钳位值,X8、X9和X10为约定好的参数。
可理解地,编码器根据当前需要编码的编码单元相对于整帧图像的复杂情况决定的编码单元进行编码后的期望值,即根据编码单元的复杂度等级和整帧的平均复杂度等级推到得到的。从而,为了获得更好的编码性能和重建后图像的质量,通过码控模块为图像内的不同编码单元分配不同的编码后的期望比特数,从而达到最大化利用规定的总编码的比特数,解压后的图像质量尽可能最优的目的。
图6示出了一种解码过程中码率控制的流程示意图。图6与图5的区别在于码率控制输出的量化参数用于反量化过程。关于确定量化参数的过程参考上述图5中的解释。
下面对获取当前编码单元的有损比特数的方法进行说明。在一些实施例中,编码器300根据位流缓冲区中当前帧解码结束的期望比特数和位流缓冲区中已编码的编码单元的比特数的差值;根据差值和待编码的编码单元的数量的二进制非零最高位的位数确定当前编码单元的有损比特数的调整值。如图7所示,获取有损比特数方法包括以下步骤。
步骤710、编码器300确定待编码的编码单元的数量的二进制非零最高位的位数。
待编码的编码单元的数量表示当前帧中未编码的编码单元的数量。待编码的编码单元的数量近似值指示数量的2的幂次方的近似表示。例如,待编码的编码单元的数量为9,待编码的编码单元的数量近似值为23。例如,待编码的编码单元的数量为17,待编码的编码单元的数量近似值为24。待编码的编码单元的数量的二进制非零最高位的位数用于指示2的幂次方的幂。假设待编码的编码单元的数量的二进制非零最高位的位数为s。
在一些实施例中,编码器300还未对当前帧中编码单元进行编码,表示当前编码单元为当前帧中首个需要进行编码的编码单元,s的取值可以是当前帧中所有编码单元的数量的2的幂次方的幂。s的取值为初始位数。
在另一些实施例中,编码器300已对当前帧中编码单元进行编码,s的取值可以是当前帧中剩余未编码的编码单元的数量的2的幂次方的幂。s的取值为初始位数经过i-1个编码单元更新后的值。
步骤720、编码器300根据位流缓冲区中当前帧解码结束的期望比特数和位流缓冲区中已编码的编码单元的比特数的差值。
差值可以是如上述步骤520中阐述的RcBufEND-RcBufT的值。
步骤730、编码器300根据差值和待编码的编码单元的数量的二进制非零最高位的位数确定当前编码单元的有损比特数的调整值。
编码器300根据差值除以待编码的编码单元的数量的二进制非零最高位的位数确定当前编码单元的有损比特数的调整值。编码单元的有损比特数的调整值满足公式(7)。
BppADJ =D>>s 公式(7)
其中,D表示差值,s表示步骤710中位数s,>>表示右移操作。
步骤740、编码器300根据有损比特数的初始值和有损比特数的调整值确定有损比特数。
编码器300根据有损比特数的初始值和有损比特数的调整值之和确定有损比特数。有损比特数满足编码器300可以参考如上述步骤520中阐述的公式(1)。
编码器300对编码单元编码完成后,更新当前帧中未编码的编码单元的数量。例如,将当前剩余编码单元数量Blockremain更新为Blockremain-1。
另外,当更新后的当前剩余编码单元数量Blockremain-1小于更新前的当前剩余编码单元数量Blockremain的近似值2的幂次方,则将s更新为s-1,避免由于实际剩余编码单元数量小于2的幂次方,导致降低有损比特数的调整值的准确性。反之,当更新后的当前剩余编码单元数量Blockremain-1大于或等于更新前的当前剩余编码单元数量Blockremain的近似值2的幂次方,则位数s保持不变。
可选地,编码器300还可以设置位数更新标志。例如,当更新后的当前剩余编码单元数量Blockremain-1小于更新前的当前剩余编码单元数量Blockremain的近似值2的幂次方,位数更新标志为0,表示更新位数,即Blocks=1<<s,其中,s表示位数,<<表示左移操作。当更新后的当前剩余编码单元数量Blockremain-1大于或等于更新前的当前剩余编码单元数量Blockremain的近似值2的幂次方,位数更新标志为1,表示不更新位数,则位数s保持不变。
上述实施例说明了对编码单元进行编码时确定有损比特数的过程。对编码单元进行解码时确定有损比特数的过程参考上述阐述。区别在于,待解码的编码单元的数量表示当前帧中未解码的编码单元的数量。
如此,依据剩余编码单元的数量近似值确定有损比特数的调整值,在不增加计算复杂度时,提高了有损比特数的精确性,进而提升量化参数的精确性。
可以理解的是,为了实现上述实施例中的功能,编码器和解码器包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图7,详细描述了根据本实施例所提供的图像编解码方法,下面将结合图8,描述根据本实施例所提供的编解码装置。
图8为本实施例提供的可能的编解码装置的结构示意图。这些编解码装置可以用于实现上述方法实施例中编码器和解码器的功能,因此也能实现上述方法实施例所具备的有益效果。在本实施例中,该编解码装置可以是如图3所示的编码器300和解码器400,还可以是应用于计算设备的模块(如芯片)。
如图8所示,编解码装置800包括通信模块810、码控模块820、编码模块830和存储模块840。编解码装置800用于实现上述图3中所示的方法实施例中编码器300和解码器400的功能。
编解码装置800用于实现编码器300的功能时,各个模块的具体功能如下。
通信模块810用于获取当前帧中待编码的编码单元。例如,通信模块810用于执行图4中步骤410。
码控模块820,用于根据所述编码单元的图像内容和位流缓冲区中数据的比特数确定所述编码单元的目标比特数,根据所述编码单元的目标比特数确定量化参数。例如,码控模块820用于执行图4中步骤420。
编码模块830,用于根据所述量化参数对所述编码单元进行编码,得到所述编码单元的位流。例如,编码模块830用于执行图4中步骤430。
编解码装置800用于实现解码器400的功能时,各个模块的具体功能如下。
通信模块810用于获取图像位流中待解码的编码单元的位流。例如,通信模块810用于执行图4中步骤450。
码控模块820,用于根据所述编码单元的图像内容和位流缓冲区中数据的比特数确定所述编码单元的目标比特数,根据所述编码单元的目标比特数确定量化参数。例如,码控模块820用于执行图4中步骤460。
编码模块830,用于根据所述量化参数对所述编码单元的位流进行解码,得到所述编码单元的重建后图像。例如,编码模块830用于执行图4中步骤470。
码控模块820,还用于根据所述在先编码单元的编码比特数确定所述当前编码单元的无损比特数,以及根据所述在先编码单元的编码比特数确定所述当前编码单元的平均无损比特数。例如,码控模块820用于执行图7中步骤710至步骤740。
存储模块840用于位流缓冲区中数据的比特数,以便于码控模块820确定量化参数。
应理解的是,本申请实施例的编解码装置800可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),现场可编程门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3所示的方法时,及其各个模块也可以为软件模块,编解码装置800其各个模块也可以为软件模块。
根据本申请实施例的编解码装置800可对应于执行本申请实施例中描述的方法,并且编解码装置800中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
图9为本申请提供的一种图像处理***的结构示意图,该图像处理***以手机为例进行说明,该手机或者内置于手机的芯片***包括:存储器910、处理器920、传感器组件930、多媒体组件940以及输入/输出接口950。下面结合图9对手机或者内置于手机的芯片***的各个构成部件进行具体的介绍。
存储器910可用于存储数据、软件程序以及模块;主要包括存储程序区和存储数据区,其中,存储程序区可存储软件程序,包括以代码形成的指令,包括但不限于操作***、至少一个功能所需的应用程序,比如声音播放功能、图像播放功能等;存储数据区可存储根据手机的使用所创建的数据,比如音频数据、图像数据、电话本等。在本申请实施例中,存储器910可用于存储位流缓冲区中数据的比特数等。在一些可行的实施例中,可以有一个存储器,也可以有多个存储器;该存储器可以包括软盘,硬盘如内置硬盘和移动硬盘,磁盘,光盘,磁光盘如CD_ROM、DCD_ROM,非易失性存储设备如RAM、ROM、PROM、EPROM、EEPROM、闪存、或者技术领域内所公知的任意其他形式的存储介质。
处理器920是手机的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器910内的软件程序和/或软件模块,以及调用存储在存储器910内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。在本申请实施例中,处理器920可用于执行本申请方法实施例中的一个或者多个步骤,比如,处理器920可用于执行下述方法实施例中的步骤420至步骤470中的一个或者多个步骤。在一些可行的实施例中,处理器920可以是单处理器结构、多处理器结构、单线程处理器以及多线程处理器等;在一些可行的实施例中,处理器920可以包括中央处理器单元、通用处理器、数字信号处理器、神经网络处理器、图像处理单元、图像信号处理器、微控制器或微处理器等的至少一个。除此以外,处理器920还可进一步包括其他硬件电路或加速器,如专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器920也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。
传感器组件930包括一个或多个传感器,用于为手机提供各个方面的状态评估。其中,传感器组件930可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用,即成为相机或摄像头的组成部分。在本申请实施例中,传感器组件930可用于支持多媒体组件940中的摄像头获取图像等。此外,传感器组件930还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器,通过传感器组件930可以检测到手机的加速/减速、方位、打开/关闭状态,组件的相对定位,或手机的温度变化等。
多媒体组件940在手机和用户之间提供一个输出接口的屏幕,该屏幕可以为触摸面板,且当该屏幕为触摸面板时,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。此外,多媒体组件940还包括至少一个摄像头,比如,多媒体组件940包括一个前置摄像头和/或后置摄像头。当手机处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以感应外部的多媒体信号,该信号被用于形成图像帧。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
输入/输出接口950为处理器920和***接口模块之间提供接口,比如,***接口模块可以包括键盘、鼠标、或USB(通用串行总线)设备等。在一种可能的实现方式中,输入/输出接口950可以只有一个输入/输出接口,也可以有多个输入/输出接口。
尽管未示出,手机还可以包括音频组件和通信组件等,比如,音频组件包括麦克风,通信组件包括无线保真(wireless fidelity,WiFi)模块、蓝牙模块等,本申请实施例在此不再赘述。
上述图像处理***可以是一个通用设备或者是一个专用设备。例如,图像处理***可以是边缘设备(例如,携带具有处理能力芯片的盒子)等。可选地,图像处理***也可以是服务器或其他具有计算能力的设备。
应理解,根据本实施例的图像处理***可对应于本实施例中的编解码装置800,并可以对应于执行根据图3中任一方法中的相应主体,并且编解码装置800中的各个模块的上述和其它操作和/或功能分别为了实现图3中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种图像解码方法,其特征在于,包括:
获取图像位流中当前编码单元的位流;
根据位流缓冲区的数据存储情况和待解码编码单元的数量近似值确定所述当前编码单元的有损比特数的调整值,所述位流缓冲区用于存储一个或多个编码单元的位流或部分位流;
根据所述当前编码单元的有损比特数的初始值和所述当前编码单元的有损比特数的调整值确定所述当前编码单元的有损比特数,所述当前编码单元的有损比特数用于确定对所述当前编码单元的位流进行解码所使用的量化参数。
2.根据权利要求1所述的方法,其特征在于,根据位流缓冲区的数据存储情况和待解码编码单元的数量近似值确定所述当前编码单元的有损比特数的调整值,包括:
根据所述位流缓冲区中当前帧解码结束的期望比特数和所述位流缓冲区中数据的比特数的差值;
根据所述差值和待解码编码单元的数量的二进制非零最高位的位数确定所述当前编码单元的有损比特数的调整值。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据所述当前编码单元的图像内容确定所述当前编码单元的无损比特数;
根据所述当前编码单元的有损比特数和所述当前编码单元的平均无损比特数确定所述当前编码单元的信息量,所述信息量用于指示所述当前编码单元表达的内容在所述当前帧所表达的内容的复杂程度;
根据所述当前编码单元的无损比特数和所述当前编码单元的信息量确定所述当前编码单元的目标比特数,所述当前编码单元的目标比特数用于指示在参考所述当前编码单元的内容时对所述当前编码单元进行有损编码后的期望比特数;
根据当前编码单元的目标比特数确定所述量化参数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
根据所述量化参数对所述当前编码单元的位流进行解码,得到所述当前编码单元的重建后图像。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
获取当前帧中在先编码单元的编码比特数,所述当前编码单元指在当前时刻进行解码处理的编码单元,所述在先编码单元指在所述当前时刻之前时刻已进行解码处理的编码单元;
根据所述在先编码单元的编码比特数确定所述当前编码单元的无损比特数,以及根据所述在先编码单元的编码比特数确定所述当前编码单元的平均无损比特数;
其中,所述当前编码单元的无损比特数用于指示对所述当前编码单元进行无损编码后的期望比特数;
所述当前编码单元的平均无损比特数用于指示对所述当前帧进行无损编码后的期望比特数;
所述当前编码单元的无损比特数和所述当前编码单元的平均无损比特数用于确定对所述当前编码单元的位流进行解码所使用的量化参数。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
根据所述在先编码单元的编码比特数,确定对所述在先编码单元解码后位流缓冲区中数据的比特数,所述位流缓冲区用于存储一个或多个编码单元的位流或部分位流。
7.一种图像编码方法,其特征在于,包括:
获取当前帧中当前编码单元;
根据位流缓冲区的数据存储情况和待编码的编码单元的数量近似值确定所述当前编码单元的有损比特数的调整值;
根据所述编码单元的有损比特数的初始值和所述编码单元的有损比特数的调整值确定所述编码单元的有损比特数,所述编码单元的有损比特数用于确定对所述当前编码单元进行编码所使用的量化参数。
8.根据权利要求7所述的方法,其特征在于,根据位流缓冲区的数据存储情况和待解码编码单元的数量近似值确定所述当前编码单元的有损比特数的调整值,包括:
根据所述位流缓冲区中当前帧解码结束的期望比特数和所述位流缓冲区中数据的比特数的差值;
根据所述差值和待解码编码单元的数量的二进制最高位确定所述当前编码单元的有损比特数的调整值。
9.根据权利要求7或8所述的方法,其特征在于,
根据所述当前编码单元的图像内容确定所述当前编码单元的无损比特数;
根据所述当前编码单元的有损比特数和所述当前编码单元的平均无损比特数确定所述当前编码单元的信息量,所述信息量用于指示所述当前编码单元表达的内容在所述当前帧所表达的内容的复杂程度;
根据所述当前编码单元的无损比特数和所述当前编码单元的信息量确定所述当前编码单元的目标比特数,所述当前编码单元的目标比特数用于指示在参考所述当前编码单元的内容时对所述当前编码单元进行有损编码后的期望比特数;
根据当前编码单元的目标比特数确定所述量化参数。
10.根据权利要求7-9中任一项所述的方法,其特征在于,所述方法还包括:
根据所述量化参数对所述当前编码单元进行编码,得到所述当前编码单元的位流。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取当前帧中在先编码单元的编码比特数,所述当前编码单元指在当前时刻进行编码处理的编码单元,所述在先编码单元指在所述当前时刻之前时刻已进行编码处理的编码单元;
根据所述在先编码单元的编码比特数确定所述当前编码单元的无损比特数,以及根据所述在先编码单元的编码比特数确定所述当前编码单元的平均无损比特数;
其中,所述当前编码单元的无损比特数用于指示对所述当前编码单元进行无损编码后的期望比特数;
所述当前编码单元的平均无损比特数用于指示对所述当前帧进行无损编码后的期望比特数;
所述当前编码单元的无损比特数和所述当前编码单元的平均无损比特数用于确定对所述当前编码单元进行编码所使用的量化参数。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
根据所述在先编码单元的编码比特数,确定对所述在先编码单元解码后位流缓冲区中数据的比特数,所述位流缓冲区用于存储一个或多个编码单元的位流或部分位流。
13.一种编解码装置,其特征在于,所述编解码装置包括用于执行实现如权利要求1-12中任一项所述的方法。
14.一种解码器,其特征在于,所述编码器包括至少一个处理器和存储器,其中,所述存储器用于存储计算机程序,使得所述计算机程序被所述至少一个处理器执行时实现如权利要求1-6中任一项所述的方法。
15.一种编码器,其特征在于,所述编码器包括至少一个处理器和存储器,其中,所述存储器用于存储计算机程序,使得所述计算机程序被所述至少一个处理器执行时实现如权利要求7-12中任一项所述的方法。
16.一种编解码***,其特征在于,所述编解码***包括如权利要求15所述的编码器,以及如权利要求14所述的解码器,所述编码器用于执行上述权利要求7-12中任一项所述的方法的操作步骤,所述解码器用于执行上述权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/105332 WO2024051331A1 (zh) | 2022-09-08 | 2023-06-30 | 图像编解码方法、装置、编码器、解码器和*** |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022110972714 | 2022-09-08 | ||
CN202211097271 | 2022-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117676141A true CN117676141A (zh) | 2024-03-08 |
Family
ID=90073982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211696812.5A Pending CN117676141A (zh) | 2022-09-08 | 2022-12-28 | 图像编解码方法、装置、编码器、解码器和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117676141A (zh) |
WO (1) | WO2024051331A1 (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5677969A (en) * | 1995-02-23 | 1997-10-14 | Motorola, Inc. | Method, rate controller, and system for preventing overflow and underflow of a decoder buffer in a video compression system |
US8054880B2 (en) * | 2004-12-10 | 2011-11-08 | Tut Systems, Inc. | Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window |
GB201308073D0 (en) * | 2013-05-03 | 2013-06-12 | Imagination Tech Ltd | Encoding an image |
US20170280139A1 (en) * | 2016-03-22 | 2017-09-28 | Qualcomm Incorporated | Apparatus and methods for adaptive calculation of quantization parameters in display stream compression |
CN113132726B (zh) * | 2019-12-31 | 2022-07-29 | 上海海思技术有限公司 | 编码方法及编码器 |
CN112738516B (zh) * | 2021-03-30 | 2021-07-09 | 浙江华创视讯科技有限公司 | 编码方法、装置、存储介质及电子设备 |
-
2022
- 2022-12-28 CN CN202211696812.5A patent/CN117676141A/zh active Pending
-
2023
- 2023-06-30 WO PCT/CN2023/105332 patent/WO2024051331A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024051331A1 (zh) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180027257A1 (en) | Image processing device and image processing method | |
KR102243120B1 (ko) | 인코딩 방법 및 장치 및 디코딩 방법 및 장치 | |
US20220295071A1 (en) | Video encoding method, video decoding method, and corresponding apparatus | |
US20220094947A1 (en) | Method for constructing mpm list, method for obtaining intra prediction mode of chroma block, and apparatus | |
AU2020261145B2 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
US20240040126A1 (en) | Encoder, a decoder and corresponding methods using compact mv storage | |
US20220046234A1 (en) | Picture prediction method and apparatus, and computer-readable storage medium | |
CN114339238A (zh) | 视频编码的方法、视频解码的方法及其装置 | |
WO2020253681A1 (zh) | 融合候选运动信息列表的构建方法、装置及编解码器 | |
EP3905692A1 (en) | Video coder, video decoder, and corresponding method | |
WO2024051331A1 (zh) | 图像编解码方法、装置、编码器、解码器和*** | |
WO2024051328A1 (zh) | 图像编解码方法、装置、编码器、解码器和*** | |
US20210329225A1 (en) | Context Modeling Method and Apparatus for Flag | |
US20210329289A1 (en) | Inter prediction method and apparatus | |
WO2024051329A1 (zh) | 图像编解码方法、装置、编码器、解码器和*** | |
WO2020224476A1 (zh) | 一种图像划分方法、装置及设备 | |
CN116188603A (zh) | 图像处理方法和装置 | |
CN111277840B (zh) | 变换方法、反变换方法以及视频编码器和视频解码器 | |
CN110876061B (zh) | 色度块预测方法及装置 | |
CN112204971A (zh) | 视频图像编码方法、设备及可移动平台 | |
RU2784414C1 (ru) | Сигнализация размера выходного изображения для передискретизации опорного изображения | |
CN111479111B (zh) | 图像显示顺序的确定方法、装置和视频编解码设备 | |
RU2783385C2 (ru) | Кодер, декодер и соответствующие способы с использованием компактного mv хранилища | |
RU2771925C1 (ru) | Кодер, декодер и соответствующие способы с использованием компактного mv хранилища | |
CN113766227B (zh) | 用于图像编码和解码的量化和反量化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |