CN116918331A - 编码方法和编码装置 - Google Patents
编码方法和编码装置 Download PDFInfo
- Publication number
- CN116918331A CN116918331A CN202180094389.9A CN202180094389A CN116918331A CN 116918331 A CN116918331 A CN 116918331A CN 202180094389 A CN202180094389 A CN 202180094389A CN 116918331 A CN116918331 A CN 116918331A
- Authority
- CN
- China
- Prior art keywords
- current frame
- tile
- frame
- target
- encoding
- 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 137
- 230000009466 transformation Effects 0.000 claims abstract description 87
- 238000013139 quantization Methods 0.000 claims abstract description 63
- 238000004364 calculation method Methods 0.000 claims description 39
- 238000007906 compression Methods 0.000 claims description 24
- 230000006835 compression Effects 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 abstract description 24
- 230000015654 memory Effects 0.000 description 49
- 238000010586 diagram Methods 0.000 description 44
- 230000008569 process Effects 0.000 description 33
- 230000001186 cumulative effect Effects 0.000 description 21
- 238000004590 computer program Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000001914 filtration Methods 0.000 description 9
- 238000013144 data compression Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013178 mathematical model Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal 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/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供编码方法和编码装置,包括:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个瓦片的量化参数。本申请提供的方案,通过根据图像复杂度信息更新或计算待编码图像所包括的各个瓦片的QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
Description
本申请涉及编解码领域,并且更为具体地,涉及一种编码方法和编码装置。
联合摄影专家组扩展范围(Joint Photographic Experts Group Extended Range,JPEG XR)是一种连续色调静止图像压缩算法和文件格式。
由于JPEG XR编码器压缩图像的码率最终大小取决于量化程度,而量化程度取决于指定的量化参数(Quantization Parameter,QP)。目前针对JPEG XR的码率控制算法中,有一些算法需要多次编码,该做法会带来额外的复杂度导致编码延迟,从而影响编码器的运行速度,并且不利于实现实时编码。另外一些算法则使用固定量化参数的办法,然而使用固定量化参数会导致输出码率不可控的问题。
因此,如何提高编码效率以及保证QP的灵活性是需要解决的问题。
发明内容
本申请实施例提供编码方法和编码装置,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
第一方面,提供了一种编码方法,包括:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个瓦片的量化参数。
本申请实施例提供的方案,由于图像复杂度信息与当前帧中的瓦片的变换系数有关,且该变换系数是经过对瓦片的像素值进行PCT处理后的得到的系数,通过根据图像复杂度信息更新或计算待编码图像所包括的各个瓦片的QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问 题。
第二方面,提供了一种编码方法,包括:获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
本申请实施例提供的方案,由于图像复杂度信息与当前帧的变换系数有关,且该变换系数是经过对当前帧中的像素值进行PCT处理后的得到的系数,通过根据图像复杂度信息确定当前帧的初始QP并根据该初始QP更新目标帧的初始QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
第三方面,提供了一种编码装置,包括:复杂度计算模块,用于获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;码率控制模块,用于根据所述图像复杂度信息更新所述n1个瓦片的量化参数。
第三方面的有益效果可以参考第一方面的有益效果,在此不再赘述。
第四方面,提供了一种编码装置,包括:复杂度计算模块,用于获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;码率控制模块,用于根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);所述码率控制模块还用于:根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
第四方面的有益效果可以参考第二方面的有益效果,在此不再赘述。
第五方面,提供了一种编码装置,包括:处理器,用于:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个 瓦片的量化参数。
第五方面的有益效果可以参考第一方面的有益效果,在此不再赘述。
第六方面,提供了一种编码装置,包括:处理器,用于:获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
第六方面的有益效果可以参考第二方面的有益效果,在此不再赘述。
第七方面,提供了一种编码装置,包括处理器和存储器。该存储器用于存储计算机程序,该处理器用于调用并运行该存储器中存储的计算机程序,执行上述第一方面或第二方面或其各实现方式中的方法。
第八方面,提供一种芯片,用于实现上述第一方面或第二方面或其各实现方式中的方法。
具体地,该芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有该芯片的设备执行如上述第一方面或第二方面或其各实现方式中的方法。
第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行第一方面至第二方面或第一方面至第二方面的任意可能的实现方式中的方法的指令。
第十方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面至第二方面或第一方面至第二方面的各实现方式中的方法。
下面将对实施例使用的附图作简单地介绍。
图1是应用本申请实施例的技术方案的架构图。
图2是根据本申请实施例的视频编码框架2示意图。
图3为本申请实施例提供的JPEG XR处理图像时将图像按从大到小以下五个层次进行处理的示意性图。
图4为本申请一实施例提供的JPEG XR编码器的示意性结构图。
图5为本申请实施例提供的一种基于宏块形成变换系数的示意图。
图6为本申请一实施例提供的一种编码方法的示意图。
图7a为本申请一实施例提供的一种对待编码图像划分的示意性图。
图7b为本申请另一实施例提供的一种对待编码图像划分的示意性图。
图7c为本申请又一实施例提供的一种对待编码图像划分的示意性图。
图7d为本申请再一实施例提供的一种对待编码图像划分的示意性图。
图7e为本申请再一实施例提供的一种对待编码图像划分的示意性图。
图7f为本申请再一实施例提供的一种对待编码图像划分的示意性图。
图8为本申请实施例提供的一种实现的矩阵位置转换功能的示意性图。
图9为本申请实施例提供的一种块的映射关系的示意图。
图10为本申请另一实施例提供的一种编码方法的示意图。
图11为本申请又一实施例提供的一种编码方法的示意图。
图12为本申请一实施例提供的一种编码装置的示意性结构图。
图13a为本申请另一实施例提供的JPEG XR编码器的示意性结构图。
图13b为本申请又一实施例提供的JPEG XR编码器的示意性结构图。
图14为本申请另一实施例提供的一种编码装置的示意性结构图。
图15为本申请又一实施例提供的一种编码装置的示意性结构图。
图16为本申请再一实施例提供的一种编码装置的示意性结构图。
图17本申请实施例提供的芯片的示意性结构图。
下面对本申请实施例中的技术方案进行描述。
除非另有说明,本申请实施例所使用的所有技术和科学术语与本申请的技术领域的技术人员通常理解的含义相同。本申请中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本申请的范围。
图1是应用本申请实施例的技术方案的架构图。
如图1所示,系统100可以接收待处理数据102,对待处理数据102进行处理,产生处理后的数据108。例如,系统100可以接收待编码数据,对待编码数据进行编码以产生编码后的数据,或者,系统100可以接收待解码数据,对待解码数据进行解码以产生解码后的数据。在一些实施例中,系统100中的部件可以由一个或多个处理器实现,该处理器可以是计算设备中的 处理器,也可以是移动设备(例如无人机)中的处理器。该处理器可以为任意种类的处理器,本发明实施例对此不做限定。在一些可能的设计中,该处理器可以包括编码器、解码器或编解码器等。系统100中还可以包括一个或多个存储器。该存储器可用于存储指令和数据,例如,实现本发明实施例的技术方案的计算机可执行指令、待处理数据102、处理后的数据108等。该存储器可以为任意种类的存储器,本发明实施例对此也不做限定。
待编码数据可以包括文本、图像、图形对象、动画序列、音频、视频、或者任何需要编码的其他数据。在一些情况下,待编码数据可以包括来自传感器的传感数据,该传感器可以为视觉传感器(例如,相机、红外传感器),麦克风、近场传感器(例如,超声波传感器、雷达)、位置传感器、温度传感器、触摸传感器等。在一些情况下,待编码数据可以包括来自用户的信息,例如,生物信息,该生物信息可以包括面部特征、指纹扫描、视网膜扫描、嗓音记录、DNA采样等。
图2是根据本申请实施例的视频编码框架2示意图。如图2所示,在接收待编码视频后,从待编码视频的第一帧开始,依次对待编码视频中的每一帧进行编码。其中,当前编码帧主要经过:预测(Prediction)、变换(Transform)、量化(Quantization)和熵编码(Entropy Coding)等处理,最终输出当前编码帧的码流。对应的,解码过程通常是按照上述过程的逆过程对接收到的码流进行解码,以恢复出解码前的视频帧信息。
具体地,如图2所示,所述视频编码框架2中包括一个编码控制模块201,用于进行编码过程中的决策控制动作,以及参数的选择。例如,如图2所示,编码控制模块201控制变换、量化、反量化、反变换的中用到的参数,控制进行帧内模式或者帧间模式的选择,以及运动估计和滤波的参数控制,且编码控制模块201的控制参数也将输入至熵编码模块中,进行编码形成编码码流中的一部分。
对当前编码帧开始编码时,对编码帧进行划分202处理,具体地,首先对其进行条带(slice)划分,再进行块划分。可选地,在一个示例中,编码帧划分为多个互不重叠的最大的CTU,各CTU还可以分别按四叉树、或二叉树、或三叉树的方式迭代划分为一系列更小的编码单元(Coding Unit,CU),一些示例中,CU还可以包含与之相关联的预测单元(Prediction Unit,PU)和变换单元(Transform Unit,TU),其中PU为预测的基本单元,TU 为变换和量化的基本单元。一些示例中,PU和TU分别是在CU的基础上划分成一个或多个块得到的,其中一个PU包含多个预测块(Prediction Block,PB)以及相关语法元素。一些示例中,PU和TU可以是相同的,或者,是由CU通过不同的划分方法得到的。一些示例中,CU、PU和TU中的至少两种是相同的,例如,不区分CU、PU和TU,全部是以CU为单位进行预测、量化和变换。为方便描述,下文中将CTU、CU或者其它形成的数据单元均称为编码块。
应理解,在本申请实施例中,视频编码针对的数据单元可以为帧,条带,编码树单元,编码单元,编码块或以上任一种的组。在不同的实施例中,数据单元的大小可以变化。
具体地,如图2所示,编码帧划分为多个编码块后,进行预测过程,用于去除当前编码帧的空域和时域冗余信息。当前比较常用的预测编码方法包括帧内预测和帧间预测两种方法。帧内预测仅利用本帧图像中己重建的信息对当前编码块进行预测,而帧间预测会利用到之前已经重建过的其它帧图像(也被称作参考帧)中的信息对当前编码块进行预测。具体地,在本申请实施例中,编码控制模块201用于决策选择帧内预测或者帧间预测。
当选择帧内预测模式时,帧内预测203的过程包括获取当前编码块周围已编码相邻块的重建块作为参考块,基于该参考块的像素值,采用预测模式方法计算预测值生成预测块,将当前编码块与预测块的相应像素值相减得到当前编码块的残差,当前编码块的残差经过变换204、量化205以及熵编码210后形成当前编码块的码流。进一步的,当前编码帧的全部编码块经过上述编码过程后,形成编码帧的编码码流中的一部分。此外,帧内预测203中产生的控制和参考数据也经过熵编码210编码,形成编码码流中的一部分。
具体地,变换204用于去除图像块的残差的相关性,以便提高编码效率。对于当前编码块残差数据的变换通常采用二维离散余弦变换(Discrete Cosine Transform,DCT)变换和二维离散正弦变换(Discrete Sine Transform,DST)变换,例如在编码端将编码块的残差信息分别与一个N×M的变换矩阵及其转置矩阵相乘,相乘之后得到当前编码块的变换系数。
在产生变换系数之后用量化205进一步提高压缩效率,变换系数经量化可以得到量化后的系数,然后将量化后的系数进行熵编码210得到当前编码块的残差码流,其中,熵编码方法包括但不限于内容自适应二进制算术编码 (Context Adaptive Binary Arithmetic Coding,CABAC)熵编码。最后将熵编码得到的比特流及进行编码后的编码模式信息进行存储或发送到解码端。在编码端,还会对量化的结果进行反量化206,对反量化结果进行反变换207。在反变换207之后,利用反变换结果以及运动补偿结果,得到重建像素。之后,对重建像素进行滤波(即环路滤波)211。在211之后,输出滤波后的重建图像(属于重建视频帧)。后续,重建图像可以作为其他帧图像的参考帧图像进行帧间预测。本申请实施例中,重建图像又可称为重建后的图像或重构图像。
具体地,帧内预测203过程中的已编码相邻块为:当前编码块编码之前,已进行编码的相邻块,该相邻块的编码过程中产生的残差经过变换204、量化205、反量化206、和反变换207后,与该相邻块的预测块相加得到的重建块。对应的,反量化206和反变换207为量化206和变换204的逆过程,用于恢复量化和变换前的残差数据。
如图2所示,当选择帧间预测模式时,帧间预测过程包括运动估计(Motion Estimation,ME)208和运动补偿(Motion Compensation,MC)209。具体地,编码端可以根据重建视频帧中的参考帧图像进行运动估计208,在一张或多张参考帧图像中根据一定的匹配准则搜索到与当前编码块最相似的图像块作为预测块,该预测块与当前编码块的相对位移即为当前编码块的运动矢量(Motion Vector,MV)。并将该编码块像素的原始值与对应的预测块像素值相减得到编码块的残差。当前编码块的残差经过变换204、量化205以及熵编码210后形成编码帧的编码码流中的一部分。对于解码端来说,可以基于上述确定的运动矢量和预测块进行运动补偿209,获得当前编码块。
其中,如图2所示,重建视频帧为经过滤波211之后得到视频帧。重建视频帧包括一个或多个重建后的图像。滤波211用于减少编码过程中产生的块效应和振铃效应等压缩失真,重建视频帧在编码过程中用于为帧间预测提供参考帧,在解码过程中,重建视频帧经过后处理后输出为最终的解码视频。
具体地,帧间预测模式可以包括高级运动矢量预测(Advanced Motion Vector Prediction,AMVP)模式、合并(Merge)模式或跳过(skip)模式。
对于AMVP模式而言,可以先确定运动矢量预测(Motion Vector Prediction,MVP),在得到MVP之后,可以根据MVP确定运动估计的起始点,在起始点附近,进行运动搜索,搜索完毕之后得到最优的MV,由MV 确定参考块在参考图像中的位置,参考块减去当前块得到残差块,MV减去MVP得到运动矢量差值(Motion Vector Difference,MVD),并将该MVD和MVP的索引通过码流传输给解码端。
对于Merge模式而言,可以先确定MVP,并直接将MVP确定为当前块的MV。其中,为了得到MVP,可以先构建一个MVP候选列表(merge candidate list),在MVP候选列表中,可以包括至少一个候选MVP,每个候选MVP可以对应有一个索引,编码端在从MVP候选列表中选择MVP之后,可以将该MVP索引写入到码流中,则解码端可以按照该索引从MVP候选列表中找到该索引对应的MVP,以实现对图像块的解码。
应理解,以上过程只是Merge模式的一种具体实现方式。Merge模式还可以具有其他的实现方式。
例如,Skip模式是Merge模式的一种特例。按照Merge模式得到MV之后,如果编码端确定当前块和参考块基本一样,那么不需要传输残差数据,只需要传递MVP的索引,以及进一步地可以传递一个标志,该标志可以表明当前块可以直接从参考块得到。
也就是说,Merge模式特点为:MV=MVP(MVD=0);而Skip模式还多一个特点,即:重构值rec=预测值pred(残差值resi=0)。
Merge模式可以应用于几何预测技术中。在几何预测技术中,可以将待编码的图像块划分为多个形状为多边形的子图像块,可以从运动信息候选列表中,分别为每个子图像块确定运动矢量,并基于每个子图像块的运动矢量,确定每个子图像块对应的预测子块,基于每个子图像块对应的预测子块,构造当前图像块的预测块,从而实现对当前图像块的编码。
对于解码端,则进行与编码端相对应的操作。首先利用熵解码以及反量化和反变换得到残差信息,并根据解码码流确定当前图像块使用帧内预测还是帧间预测。如果是帧内预测,则利用当前帧中已重建图像块按照帧内预测方法构建预测信息;如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,得到预测信息;接下来,再将预测信息与残差信息进行叠加,并经过滤波操作便可以得到重建信息。
如上所述,基于图2所示出的视频编码框架2对视频进行编码可以节约视频图像存储和传输所占用的空间或流量。一般情况下,摄像头采集所得未经压缩的原始图像数据占用的存储空间很大,以分辨率为3840×2160、存储 格式为YUV4:2:210-bit的图像为例,在无压缩的情况下存储该图像需要占用约20M字节的存储空间,通常一张8G的存储卡只能存放500张上述规格的未压缩照片,同时也意味着在网络传输时一张未压缩的上述规格的照片就需要20M字节流量。因此为了节约图像存储和传输所占用的空间或流量,需要对图像数据进行编码压缩处理。
联合摄影专家组扩展范围(Joint Photographic Experts Group Extended Range,JPEG XR)是一种连续色调静止图像压缩算法和文件格式,也可以称为HD Photo或网络媒体图像(Windows Media Photo),由微软(microsoft)开发,属于网络媒体(windows media)家族的一部分。它支持有损数据压缩以及无损数据压缩,并且是微软的XML文本规格(XML Paper Specification,XPS)文档的首选图像格式。其中XML为可扩展标记语言(Extensible Markup Language)。目前支持的软件包括.NET framework(3.0或更新版本),操作系统(windows vista/windows 7)、网络探路者(Internet Explorer,IE)9,动画播放器(flashplayer)11等。
JPEG XR是一款可以实现高动态范围图像编码,而且在压缩与解压时只需要整数运算的图像编解码器。它可以支持单色、Red Green Blue(RGB)、Cyan Magenta Yellow Black(CMYK)、16位无符号整数或者32位定点或者浮点数表示的多通道彩色格式的图像,并且它还可以支持RGBE Radiance图像格式。它可以选择嵌入国际色彩协会(International Color Consortium,ICC)彩色描述档以实现不同设备上的色彩一致性。阿尔法通道可以表示透明程度,同时支持可交换图像文件(Exchangeable Image File,EXIF)、可扩展元数据平台(Extensible Metadata Platform,XMP)元数据格式。这种格式还支持在一个文件中包含多幅图像。支持只对图像的进行部分解码,对于一些特定的操作如裁剪、降采样、水平竖直翻转或者旋转都无需对整幅图像进行解码。
如图3所示为JPEG XR处理图像时将图像按从大到小以下五个层次进行处理的示意性图。其中,该图中包括图像(image)、瓦片(tile)、宏块(macro block)、块(block)、像素(pixel)。其中一个图像可以由一个或多个瓦片组成。如果瓦片位于图像的右侧和底部边缘,则会将其填充为整数个宏块(16×16)。每个宏块可以包含16个4×4块,并且每个块可以包含4×4像素。JPEG XR对每个4×4块和16×16宏块中的重组低通块进行两阶段变换。
如图4所示,为本申请一实施例提供的JPEG XR编码器的示意性结构图。该JPEG XR编码器可以包括滤波模块410、变换模块420、量化模块430、预测模块440、熵编码模块450五个模块,这五个模块的作用与上述图2中所涉及到的模块的作用相类似。具体地,滤波模块410可以通过相邻像素间的平滑减轻解码重建图像的块效应;变换模块420可以将图像信息从空域转换到频域,去除部分空域冗余信息;量化模块430可以将频域系数进行缩小,降低需要编码的系数幅值,系数幅值降低的程度取决于指定的量化参数(Quantization Parameter,QP)的大小;预测模块440可以通过相邻块部分系数间的预测去除相邻块间部分系数的相关性;熵编码模块450可以将最终得到的系数编码成二进制码流。
从上述五个模块的功能分析以及结合上述图2中关于这些模块的描述,可以看出,最终码流的大小(即码率)主要取决于量化程度、预测效率以及熵编码性能,其中,量化程度具有决定性作用。
下文先介绍关于JPEG XR的变换模块及量化模块。
1、变换模块
JPEG XR的变换是基于整数的变换,每个宏块可以参与两个阶段的变换。变换均可以基于4x4个块进行。如图5所示,第一阶段变换可以应用于宏块内的16个块,产生16个低通系数(Low Pass Coefficient,LP Coefficient)和240个高通(High Pass Coefficient,HP Coefficient)系数,即这16个块中的每一个块均产生一个LP系数和15个HP系数。第二阶段变换可以应用于第一阶段得到的16个LP系数的重组块,并通过再次变换最终生成1个直流系数(Direct Current Coefficient,DC Coefficient)和15个LP系数。
2、量化模块
JPEG XR中的量化具有高度的灵活性,因为量化参数在瓦片,宏块和DC系数、LP系数、HP系数中可能会有所不同。JPEG XR的量化参数范围为从0到255的整数,其中量化参数为0及1时为无损压缩,量化参数为255时为损失程度最大的压缩。从量化参数到缩放因子(Scale Factor,SF)的映射关系如下式(1)所示:
通过将原始系数除以所选量化参数的相应缩放因子,然后将其舍入为整 数,即可得到量化后的系数。
由此可知,使用JPEG XR编码器压缩图像的码率最终大小取决于量化程度,而量化程度取决于指定的量化参数。目前针对JPEG XR的码率控制算法中,有一些算法需要多次编码,该做法会带来额外的复杂度导致编码延迟,从而影响编码器的运行速度,并且不利于实现实时编码。另外一些算法则使用固定量化参数的办法,然而使用固定量化参数会导致输出码率不可控的问题。
针对上述问题,本申请提出了一种编码方法,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
如图6所示,为本申请实施例提供的一种编码方法600,该编码方法600可以包括步骤610-620。
610,获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换(Photo Core Transform,PCT)处理后得到的变换系数,n1为大于或等于2的正整数。
本申请实施例中,在对待编码图像进行划分的时候,可以按照固定宽度或固定高度对待编码图像进行划分,也可以不按照固定宽度或固定高度对待编码图像进行划分。
此外,本申请实施例中,可以对编码图像进行水平划分,也可以对待编码图像进行垂直划分。
应理解,本申请实施例中的水平划分可以是指从水平方向对待编码图像进行的划分,垂直划分可以是指从垂直方向对待编码图像进行的划分。
例如,如图7a所示,为本申请一实施例提供的一种对待编码图像划分的示意性图。可以按照预设的固定宽度对待编码图像进行垂直划分,假设预设的固定宽度为384,从图7a中可以看出,待编码图像可以划分为3个瓦片,且这3个瓦片的宽度均相同,均为384。
如图7b所示,为本申请另一种实施例提供的一种对待编码图像划分的示意性图。同样地,可以按照预设的固定宽度对待编码图像进行垂直划分,假设预设的固定宽度为384,从图7b中可以看出,待编码图像可以划分为3个瓦片,且瓦片1和瓦片2的宽度相同,均为384,而瓦片3的宽度小于384。
可以理解的是,按照上述图7a和图7b的划分方式,划分后的瓦片(即瓦片1、瓦片2和瓦片3)的高度是相同的,均为待编码图像的高度。
如图7c所示,为本申请又一实施例提供的一种对待编码图像划分的示意性图。可以按照预设的固定高度对待编码图像进行水平划分,假设预设的固定高度为384,从图7c中可以看出,待编码图像可以划分为3个瓦片,且这3个瓦片的高度均相同,均为384。
如图7d所示,为本申请再一实施例提供的一种对待编码图像划分的示意性图。可以按照预设的固定高度对待编码图像进行水平划分,假设预设的固定高度为384,从图7d中可以看出,待编码图像可以划分为3个瓦片,且瓦片1和瓦片2的高度相同,均为384,瓦片3的高度小于384。
可以理解的是,按照上述图7c和图7d的划分方式,划分后的瓦片的宽度是相同的,均为待编码图像的宽度。
在一些实施例中,也可以不按照固定宽度或固定高度对待编码图像进行划分,可以按照预设的多个宽度或多个高度对待编码图像进行划分。
如图7e所示,为本申请再一实施例提供的一种对待编码图像划分的示意性图。可以按照多个预设的固定宽度对待编码图像进行垂直划分,假设预设的固定宽度包括160和384,则从图7e中可以看出,瓦片1的宽度为160,瓦片2的宽度为384,瓦片3的宽度为224。
如图7f所示,为本申请再一实施例提供的一种对待编码图像划分的示意性图。可以按照多个预设的固定高度对待编码图像进行水平划分,假设多个预设的固定高度为160和384,则从图7f中可以看出,瓦片1的高度为160,瓦片2的高度为384,瓦片3的高度为224。
应理解,上述数值均为举例说明,还可以为其它数值,本申请对此不作具体限定。
需要特别说明的是,在一些实施例中,在按照固定宽度或固定高度对待编码图像进行划分的时候,该固定宽度或固定高度的设置与PCT处理的块所包括的像素的个数有关,具体描述请参见后文。
在一些实施例中,图像复杂度信息的计算也可以替换为包括但不限于哈达玛变换或均方误差等算子进行计算。
520,根据所述图像复杂度信息更新所述n1个瓦片的量化参数。
本申请实施例中的图像复杂度信息可以是指待编码图像中包括的瓦片 的变换系数,根据瓦片的变换系数更新瓦片的QP。
本申请实施例提供的方案,由于图像复杂度信息与当前帧中的瓦片的变换系数有关,且该变换系数是经过对瓦片的像素值进行PCT处理后的得到的系数,通过根据图像复杂度信息更新或计算待编码图像所包括的各个瓦片的QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
上文指出,图像复杂度信息包括对每一个瓦片的像素值经过PCT处理后得到的变换系数,下文将对其中所涉及的PCT处理进行说明。
PCT处理可以包括以下流程,其中,对于每一个宏块所包括的4*4的块均可以按照以下流程进行变换。
下文中的_2×2T_h(a,b,c,d,flag)、_T_odd(a,b,c,d)、_T_odd_odd(a,b,c,d)以及_FwdPermute(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)表示4种不同的计算,括号内的字母表示计算的输入及输出。
PCT4×4(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
_2×2T_h(a,d,m,p,0)
_2×2T_h(f,g,j,k,0)
_2×2T_h(b,c,n,o,0)
_2×2T_h(e,h,i,l,0)
_2×2T_h(a,b,e,f,1)
_T_odd(c,d,g,h)
_T_odd(i,m,j,n)
_T_odd_odd(k,l,o,p)
_FwdPermute(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
1)、_2×2T_h(a,b,c,d,flag)的计算过程如式(2)-式(9)所示
a=a+d (2)
b=b-c (3)
t1=((a-b+flag)>>1) (4)
t2=c (5)
c=t1-d (6)
d=t1-t2 (7)
a=a-d (8)
b=b+c (9)
其中,上述式中t1、t2为临时值,>>符号表示右移操作。
2)、_T_odd(a,b,c,d)的计算过程如式(10)-式(21)所示
b=b-c (10)
a=a+d (11)
c=c+((b+1)>>1) (12)
d=((a+1)>>1)-d (13)
b=b-((a*3+4)>>3) (14)
a=a+((b*3+4)>>3) (15)
d=d-((c*3+4)>>3) (16)
c=c+((d*3+4)>>3) (17)
d=d+(b>>1) (18)
c=c-((a+1)>>1) (19)
b=b-d (20)
a=a+c (21)
3)、_T_odd_odd(a,b,c,d)的计算过程如式(22)-式(36)所示
b=-1*b (22)
c=-1*c (23)
d=d+a (24)
c=c-b (25)
t1=d>>1 (26)
t2=c>>1 (27)
a=a-t1 (28)
b=b+t2 (29)
a=a+((b*3+4)>>3) (30)
b=b-((a*3+4)>>2) (31)
a=a+((b*3+3)>>3) (32)
b=b-t2 (33)
a=a+t1 (34)
c=c+b (35)
d=d-a (36)
其中,上述式中t1、t2为临时值,>>符号表示右移操作。
4)、_FwdPermute(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)的计算过程如图8所示
该过程实现的是一个矩阵位置转换功能,即将图8所示的左侧图形的字母的位置转换到图8所示的右侧图形的字母的位置。
示例性地,以简单的数值为例,对上述PCT处理流程进行说明,假设上述a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p的取值分别为1,2,3,4,2,3,5,4,2,3,4,0,3,2,1,1,按照上述流程对这些数值进行PCT处理。
1)、进行_2×2T_h(a,b,c,d,flag)处理
①、_2×2T_h(a,d,m,p,0)的流程如下
a=a+p=1+1=2
d=d-m=4-3=1
t1=((a-d+flag)>>1)=0
t2=m=3
m=t1-p=-1
p=t1-t2=0-3=-3
a=a-p=2-(-3)=5
d=d+m=1+(-1)=0
②、_2×2T_h(f,g,j,k,0)的流程如下
f=f+k=3+4=7
g=g-j=5-3=2
t1=((f-g+flag)>>1)=2
t2=j=3
j=t1-k=2-4=-2
k=t1-t2=2-3=-1
f=f-k=7-(-1)=8
g=g+j=2-(-2)=0
③、_2×2T_h(b,c,n,o,0)的流程如下
b=b+o=2+1=3
c=c-n=3-2=1
t1=((b-c+flag)>>1)=1
t2=n=2
n=t1-o=1-1=0
o=t1-t2=1-2=-1
b=b-o=3-(-1)=4
c=c+n=1+0=1
④、_2×2T_h(e,h,i,l,0)的流程如下
e=e+l=2+0=2
h=h-i=4-2=2
t1=((e-h+flag)>>1)=0
t2=i=2
i=t1-l=0-0=0
l=t1-t2=0-2=-2
e=e-l=2-(-2)=4
h=h+i=2+0=2
⑤、_2×2T_h(a,b,e,f,1)的流程如下
a=a+f=5+8=13
b=b-e=4-4=0
t1=((a-b+flag)>>1)=7
t2=e=4
e=t1-f=7-8=-1
f=t1-t2=7-4=3
a=a-f=13-3=10
b=b+e=0+(-1)=-1
基于此,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p的取值分别更新为10,-1,1,0,-1,3,0,2,0,-1,-1,-2,-1,0,-1,-3。
2)、进行_T_odd(a,b,c,d)的处理
①、_T_odd(c,d,g,h)的流程如下
从上述可以看出,c,d,g,h的取值分别为1,0,0,2。
d=d-g=0-0=0
c=c+h=1+2=3
g=g+((d+1)>>1)=0
h=((c+1)>>1)-h=0
d=d-((c*3+4)>>3)=0
c=c+((d*3+4)>>3)=3
h=h-((g*3+4)>>3)=0
g=g+((h*3+4)>>3)=0
h=h+(d>>1)=0
g=g-((c+1)>>1)=-2
d=d-h=0-0=0
c=c+g=3+(-2)=1
因此,更新后的c,d,g,h的取值分别为1,0,-2,0。
②、_T_odd(i,m,j,n)的流程如下
从上述可以看出,i,m,j,n的取值分别为0,-1,-1,0。
m=m-j=-1-(-1)=0
i=i+n=0+0=0
j=j+((m+1)>>1)=-1
n=((i+1)>>1)-n=0
m=m-((i*3+4)>>3)=0
i=i+((m*3+4)>>3)=0
n=n-((j*3+4)>>3)=0
j=j+((n*3+4)>>3)=-1
n=n+(m>>1)=0
j=j-((i+1)>>1)=-1
m=m-n=0
i=i+j=-1
因此,更新后的i,m,j,n的取值分别为-1,0,-1,0。
3)、进行_T_odd_odd(k,l,o,p)处理
从上述可以看出,k,l,o,p的取值分别为-1,2,-1,-3。
l=-1*l=2
o=-1*o=1
p=p+k=(-3)+(-1)=-4
o=o-l=1-2=-1
t1=p>>1=2
t2=o>>1=0
k=k-t1=(-1)-2=-3
l=l+t2=2+0=2
k=k+((l*3+4)>>3)=-2
l=l-((k*3+4)>>2)=1
k=k+((l*3+3)>>3)=-2
l=l-t2=1-0=1
k=k+t1=(-2)+2=0
o=o+l=(-1)+1=0
p=p-k=(-4)-0=-4
因此,更新后的k,l,o,p的取值分别为0,1,0,-4。
基于此,更新后的a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p的取值分别为10,-1,1,0,-1,3,-2,0,-1,-1,0,1,0,0,0,-4。
4)、进行_FwdPermute(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)处理
按照如图8所示的,对输入值进行矩阵变换处理,最终更新后的a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p的取值分别为10,-1,-1,0,1,-4,0,0,-1,0,3,-1,0,1,-2,0。
应理解,上述过程仅以简单的数值进行举例说明,在实际编码过程中,待编码图像中的像素值可能远远大于上述所列举的数值,但计算流程在本质上是一致的。
可选地,在一些实施例中,所述根据所述图像复杂度信息更新所述n1个瓦片的QP,包括:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积值,i为小于或等于n1的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
本申请实施例中的第i个瓦片的目标字节数的累积值可以是指前i个瓦片(包括第i个瓦片)的所有瓦片的目标字节数。
例如,第2个瓦片的目标字节数的累积值可以是指第1个瓦片的目标字节数与第2个瓦片的目标字节数的和;第5个瓦片的目标字节数的累积值可以是指第1个瓦片的目标字节数、第2个瓦片的目标字节数、第3个瓦片的 目标字节数、第4个瓦片的目标字节数以及第5个瓦片的目标字节数的和;以此类推,第n1个瓦片的目标字节数的累积值可以是指第1个瓦片的目标字节数、第2个瓦片的目标字节数……、第n1-1个瓦片的目标字节数以及第n1个瓦片的目标字节数的和。
本申请实施例中,可以根据第i个瓦片的目标字节数的累积值更新第i个瓦片的QP。例如,可以根据第1个瓦片的目标字节数的累积值(即第1个瓦片的目标字节数)更新第1个瓦片的QP,根据第3个瓦片的目标字节数的累积值更新第3个瓦片的QP。
需要说明的是,对于第1个瓦片,可以有一个初始QP,然后再根据第1个瓦片的目标字节数更新该第1个瓦片的初始QP。
如上所述,本申请实施例中的图像复杂度信息包括对每一个瓦片的像素值经过PCT处理后得到的变换系数。这是因为,由于使用JPEG XR的变换模块的变换形式计算得到的图像复杂度信息与最终码流大小有强相关性,因此,本申请实施例中使用的图像复杂度信息可以采用上述PCT处理后累加变换系数的方法进行计算。
其中,所述获取当前帧中的n1个瓦片的每一个瓦片的的图像复杂度信息,包括:
对所述瓦片内的块进行映射后进行预设变换生成预设变换参数,根据所述预设变换参数生成所述瓦片的图像复杂度信息。所述预设变换包括PCT变换
值得注意的是,为减少硬件的边界情况,在一些实施例中,若待编码图像的宽度不是固定宽度的整数倍,则可以不计算最右侧宽度不满固定宽度的瓦片内像素的复杂度,或,若待编码图像的高度不是固定高度的整数倍,则可以不计算最下方高度不满固定高度的瓦片内像素的复杂度。
在另一些实施例中,若待编码图像的宽度不是固定宽度的整数倍,则可以通过比例关系推算该待编码图像最右侧瓦片的图像复杂度,或,若待编码图像的高度不是固定高度的整数倍,则可以通过比例关系推算该待编码图像最下方瓦片的图像复杂度。
如上所述,PCT处理的输入可以包括4*4像素的块,考虑到在系统级芯片(System On Chip,SOC)实现中节约硬件行缓存资源,可以将2x8的块映射为4x4的块进行输入。通过该操作可节约2行行缓存资源。
如图9所示,为本申请实施例提供的一种块的映射关系的示意图。其中,图9中的(a)为映射前的块的示意图,图9中的(b)为映射后的块的示意图。
该映射关系可以理解为将第一行的后四个像素移动至第二行的下方,即第三行的位置,将第二行的后四个像素移动至第三行的下方,即第四行的位置。
可以理解是,通过上述操作仅仅涉及到像素的位置的变化,并未涉及到像素的数值的变化。
此外,上文还指出,在一些实施例中,在按照固定宽度或固定高度对待编码图像进行划分的时候,该固定宽度或固定高度的设置与PCT处理的块所包括的像素的个数有关。
由于上述映射关系是将2x8的块映射为4x4的块进行输入,即映射前的块包括2行8列个像素,因此,在设置上述固定宽度的时候,可以设置为8的整数倍的数值,这样在映射瓦片的最右侧的块的时候,刚好可以被映射为4*4的块。
类似地,在设置上述固定高度的时候,可以设置为2的整数倍的数值,这样在映射瓦片的最下方的块的时候,刚好也可以被映射为4*4的块。
在上文的描述中,在对待编码图像按照固定宽度进行垂直划分或按照固定高度进行水平划分的时候,其最右侧瓦片的宽度可能不满足固定宽度,或最下方瓦片的高度可能不满足固定高度,在计算最右侧瓦片或最最下方瓦片的图像复杂度值的时候,可以通过下文的方式进行计算。
以对待编码图像按照固定宽度进行垂直划分为例,若待编码图像被划分为n1个瓦片,最右侧瓦片(即第n1个瓦片)的宽度可能不满384。因此,可以先计算第1~n1-1个瓦片的图像复杂度值,再依据比例关系推算第n1个瓦片的图像复杂度值。
在将1~n1-1的瓦片内的所有2x8的块都映射并完成PCT处理后,可以将得到的瓦片内所有DC系数绝对值及除DC系数外的系数(称为LPHP系数)绝对值各自累加作为该瓦片的图像复杂度值,如式(37)、式(38)所示,式中i=1,2,3,…,n1-1。
complexityDC
i=∑
2x8 blocks in tileDC coefficient (37)
complexityLPHP
i=∑
2x8 blocks in tileLPHP coefficient (38)
其中,complexityDC
i表示第i个瓦片的DC系数的图像复杂度值, ∑
2x8 blocks in tileDC coefficient表示第i个瓦片中的所有块的DC系数之和,complexityLPHP
i表示第i个瓦片的LPHP系数的图像复杂度值,∑
2x8 blocks in tileLPHP coefficient表示第i个瓦片的所有块的LPHP系数之和。
对于最右侧不满宽度384的瓦片,其图像复杂度值可通过式(39)和式(40)计算:
complexityDC
n1=complexityDC
n1-1*tilewidth
n1/384 (39)
complexityLPHP
n1=complexityLPHP
n1-1*tilewidth
n1/384 (40)
其中,complexityDC
n1表示最右侧瓦片的DC系数的图像复杂度值,complexityDC
n1-1表示与最右侧的瓦片的左侧相邻的瓦片的DC系数的图像复杂度值,complexitLPHP
n1表示最右侧瓦片的LPHP系数的图像复杂度值,complexitLPHP
n1-1表示与最右侧的瓦片的左侧相邻的瓦片的LPHP系数的图像复杂度值,tilewidth
n1表示最右侧的瓦片的实际宽度。
如上述图7b所示,通过对待编码图像按照固定宽度384进行垂直划分,可以得到3个瓦片,分别为瓦片1、瓦片2和瓦片3。其中,瓦片1和瓦片2的宽度均为384,瓦片3的宽度小于384。
根据上述公式(37)和(38)可以得到瓦片1和瓦片2的图像复杂度值,根据上述公式(39)和(40)可以得到瓦片3的图像复杂度值。其中,关于瓦片内的DC系数和LPHP系数已在上文进行了描述,为了简洁,这里不再赘述。
假设瓦片1内的DC系数的绝对值之和为100,LPHP系数的绝对值之和为80;瓦片2内的DC系数的绝对值之和为146,LPHP系数的绝对值之和为100。即:
(1)、瓦片1
complexityDC
1=∑
2x8 blocks in tileDC coefficient=100
complexityLPHP
1=∑
2x8 blocks in tileLPHP coefficient=80
则瓦片1的DC系数的图像复杂度值为100,瓦片1的LPHP系数的图像复杂度值为80。
(2)、瓦片2
complexityDC
2=∑
2x8 blocks in tileDC coefficient=146
complexityLPHP
2=∑
2x8 blocks in tileLPHP coefficient=100
则瓦片2的DC系数的图像复杂度值为146,瓦片2的LPHP系数的图像复杂度值为100。
(3)、瓦片3
complexitDC
3=complexitDC
2*tilewidth
3/384=146*100/384=38
complexitLPHP
3=complexitLPHP
2*tilewidth
3/384=146*100/384=26
则瓦片3的DC系数的图像复杂度值为38,瓦片3的LPHP系数的图像复杂度值为26。
在得到每一个瓦片的图像复杂度值后,可以根据其图像复杂度值计算每一个瓦片的目标字节数,然后再基于第i个瓦片的目标字节数的累积值更新第i个瓦片的QP。其中,关于根据其图像复杂度值计算每一个瓦片的目标字节数可以参考下文内容。
本申请实施例提供的方案,通过根据待编码图像包括的第i个瓦片的目标字节数的累积值更新第i个瓦片的QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
可选地,在一些实施例中,所述根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP,包括:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
类似地,本申请实施例中的第i个瓦片的实际编码字节数的累积值可以是指前i个瓦片(包括第i个瓦片)的所有瓦片的实际编码字节数。
例如,第2个瓦片的实际编码字节数的累积值可以是指第1个瓦片的实际编码字节数与第2个瓦片的实际编码字节数的和;第5个瓦片的实际编码字节数可以是指第1个瓦片的实际编码字节数、第2个瓦片的实际编码字节数、第3个瓦片的实际编码字节数、第4个瓦片的实际编码字节数以及第5个瓦片的实际编码字节数的和;以此类推,第n1个瓦片的实际编码字节数的累积值可以是指第1个瓦片的实际编码字节数、第2个瓦片的实际编码字节数……、第n1-1个瓦片的实际编码字节数以及第n1个瓦片的实际编码字节数的和。
本申请实施例中的第i个瓦片的实际编码字节数可以通过编码器在对待编码图像进行编码的过程中获得。
本申请实施例中的第一阈值可以固定的,也可以是不断调整的,本申请对此不作具体限定。
本申请实施例中,编码器可以以瓦片为单位进行编码,在图像编码开始 前,可以根据图像原始大小和当前帧的目标字节数计算第一个瓦片的初始QP
0,此后在编码当前瓦片的QP时,可以根据当前瓦片的目标字节数的累积值与实际编码字节数的累积值的差值来更新当前瓦片的QP。
关于当前帧的目标字节数以及各瓦片目标字节数的计算如下文所示。
a、当前帧的目标字节数的计算可以通过式(41)进行计算
其中,t arg etByte表示图像(即为本申请实施例中的当前帧)的目标字节数,width表示图像的宽度,height表示图像的高度,bitdepth表示图像的位深,m表示所有像素点个数与亮度像素点个数比例(如编码YUV422格式图像时n值为2),compressRatio表示图像压缩比。
b、各瓦片的目标字节数的计算可以通过式(42)进行计算
其中,n表示当前图像总共分为的瓦片的个数,i表示第i个瓦片,t arg etByte
i表示第i个瓦片的目标字节数,complexityLPHP
i表示第i个瓦片对应的LPHP系数的图像复杂度,
表示当前帧中的所有瓦片的LPHP系数的图像复杂度的和。
值得注意的是,本实施例中使用的并不是全部的图像复杂度信息,这是基于先验数据得到的指导信息。例如,下文中根据图像复杂度信息计算各个瓦片的Qp均是基于LPHP系数的图像复杂度值进行计算的。
继续以上述图7b为例进行说明,假设图像的高度为100,位深为8,压缩比为200,编码格式为YUV422,则当前帧的目标字节数为:
各瓦片的目标字节数为:
在得到每一个瓦片的目标字节数后,可以先计算每一个瓦片的目标字节数的累积值与实际编码字节数的累积值的差值,然后再基于获得的差值更新 或计算每一个瓦片的QP。
本申请实施例中第一阈值可以包括多个阈值,例如,可以包括两个阈值,该阈值可以通过式(43)和式(44)进行计算。
其中,t arg etByte表示图像(即为本申请实施例中的当前帧)的目标字节数,n表示表示当前待编码图像总共分为的瓦片的个数,threhold1和threhold2表示阈值1和阈值2,alpha、beta为预设参数,一种设置方法可以设置为alpha=4,beta=16。
此外,上文还指出可以先计算第一个瓦片的初始QP
0,再基于该初始QP
0更新或计算各个瓦片的QP。
因为图像复杂度可以表征原始图像内容的信息量,目标字节数代表压缩后的信息量,所以通过结合复杂度和目标字节数建立数学模型计算表征压缩程度的参数QP是合理有效的。同时为了将复杂度与目标字节数的幅度范围拉近,在计算QP时会将二者转换到对数域进行计算。
初始的QP计算可以通过式(45)至式(49)进行计算。本实施例中式(45)将字节数归一化到每个像素的数据量bpp,并将其转换到对数域。
log(bpp)=log(t arg etByte/(width*height)) (45)
其中,式中log表示以自然对数为底的对数,log10是以10为底的对数。式(46)、式(47)将复杂度转换到对数域,由于压缩是非线性过程,因此在建立数学模型的过程中会将复杂度进一步转换为bpp的乘性关系算子式(46)和加性关系算子式(47)以提高数学模型的吻合度。
其中,paramA、paramB、paramC、paramD为预设的参数,一种典型的来自先验知识的配置可以为paramA=0.02213,paramB=-24.32,paramC=30.45,paramD=-76.78。
本实施例中用复杂度的乘性算子、加性算子、log(bpp)和变量参数x、y建立的公式(48)求得QP。
QP=x*log(bpp)+y+z (48)
其中,式中z为变量参数,在后文中可以被更新,初始值可以设置为0。
QP
0=Cilp3(min QP,max QP,QP) (49)
其中,式中QP
0为最终确定的初始QP,minQP和maxQP分别为QP的最小值和最大值,minQP可以不小于0,maxQP可以不大于255。一组典型的配置可以为min QP=5,max QP=150。
需要说明的是,上述式(49)表示的含义是QP
0可以为括号中的任意一个值。若通过上述式(18)计算得到的QP在minQP和maxQP之间,则QP
0为QP;若通过上述式(18)计算得到的QP小于minQP,则QP
0为minQP;若通过上述式(18)计算得到的QP大于maxQP,则QP
0为maxQP。
继续以上述图7b为例,如上所述,待编码图像的宽度和高度分别为868和100,则log(bpp)=log(t arg etByte/(width*height))=log(868(868*100))=0.01
QP=x*log(bpp)+y+z=147.47
QP
0=Cilp3(5,150,147.47)
则可以得到确定的初始QP
0为147.47。
在后续编码过程中,可以基于确定的初始QP
0更新当前帧中的瓦片1的QP,再基于更新后的瓦片1的QP计算瓦片2的QP,最后基于瓦片2的QP计算瓦片3的QP。
本申请实施例提供的方案,通过根据第一差值的绝对值与第一阈值更新待编码图像所包括的瓦片的QP,可以进一步保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
上文说明了编码端可以根据第一差值的绝对值与第一阈值更新第i个瓦片的QP,下文将对其进行详细说明。
可选地,在一些实施例中,所述根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,包括:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
本申请实施例中,可以结合第一差值的正负来更新待编码图像的第i个瓦片的QP。
若当前已编码至第i个瓦片,此时第i个瓦片的目标字节数的累积值及实际编码字节数的累积值可以根据式(50)、式(51)计算。
其中,accTarBytes
i表示第i个瓦片的目标字节数的累积值,
表示前i个瓦片(包括第i个瓦片)的所有瓦片的目标字节数的和,accActBytes
i表示第i个瓦的实际编码字节数的累积值,
表示前i个瓦片(包括第i个瓦片)的所有瓦片的实际编码字节数的和。
根据式(50)和式(51)计算第一差值,如式(52)所示,并通过式(53)和式(54)得到QP的偏移值。
deltaBytes
i=accTarBytes
i-accActBytes
i (52)
QPoffset
i=|deltaBytes
i|>threhold1?offsetA:offsetB (53)
offsetB=|deltaBytes
i|>threhold2?1:0 (54)
其中,deltaBytes
i表示第i个瓦片的目标字节数的累积值与实际编码字节数的累积值的差值,即第一差值,QPoffset
i表示第i个瓦片的QP的偏移值,offsetA为预设参数,可以设置为2。
式(53)表示的含义为:若当前编码的第i个瓦片的目标字节数的累积值与实际编码字节数的累积值的差值的绝对值|deltaBytes
i|大于预设阈值threhold1,则当前编码的第i个瓦片的QP的偏移值QPoffset
i可以取值为offsetA,否则取值为offsetB。
类似地,式(54)表示的含义为:若当前编码的第i个瓦片的目标字节数的累积值与实际编码字节数的累积值的差值的绝对值|deltaBytes
i|大于预设阈值threhold2,则当前编码的第i个瓦片的QP的偏移值QPoffset
i可以取值为1,否则取值为0。
进一步更新第i个瓦片使用的QP,QP的范围仍然可以在[min QP,max QP]之间。可以根据式(55)更新第i个瓦片的QP。
QP
i=QP
i-1-sign(deltaBytes
i)*QPoffset
i (55)
QP
i=Cilp3(min QP,max QP,QP
i) (56)
其中,QP
i表示第i个瓦片的QP,QP
i-1表示第i-1个瓦片的QP,sign(deltaBytes
i)表示取deltaBytes
i的符号。
继续以上述图7b为例进行说明,分别更新或计算瓦片1、瓦片2和瓦片3的QP。
a、瓦片1的QP的计算
首先,可以先根据上述式(43)和式(44)分别计算预设阈值1(threhold1)和预设阈值2(threhold2)。假设alpha=4,beta=16,则:
其次,如上所述,瓦片1的目标字节数为337,假设瓦片1的实际编码字节数为300,则通过式(52)可以得到瓦片1的目标字节数与实际编码字节数的差值为deltaBytes
1=accTarBytes
1-accActBytes
1=337-300=37。
根据式(53)和式(54)计算瓦片1的QP的偏移值,由于瓦片1的目标字节数与实际编码字节数的差值为37,大于预设阈值2,因此,瓦片1的QP的偏移值为1。
则可以根据上述瓦片1的QP的偏移值和第一差值的绝对值更新瓦片1的QP1为:QP
1=QP
0-sign(deltaBytes
1)*QPoffset
1=147.47-1=146.47
b、瓦片2的QP的计算
如上所述,瓦片2的目标字节数为421,假设瓦片2的实际编码字节数为470,则瓦片2的目标字节数的累积值为瓦片1的目标字节数与瓦片2的目标字节数的和,即为421+337=758;瓦片2的实际编码字节数的累积值为瓦片1的实际编码字节数与瓦片2的实际编码字节数的和,即为300+470=770。
则通过式(52)可以得到瓦片2的目标字节数累积值与实际编码字节数累积值的差值为deltaBytes
2=accTarBytes
2-accActBytes
2=758-770=-12。
根据式(53)和式(54)计算瓦片2的QP的偏移值,由于瓦片2的目标字节数的累积值与实际编码字节数的累积值的差值为-12,其绝对值为12,小于预设阈值2,因此,瓦片2的QP的偏移值为0。
则可以根据上述瓦片2的QP的偏移值和第一差值的绝对值更新瓦片2的QP2为:QP
2=QP
1-sign(deltaBytes
2)*QPoffset
2=146.47-0=146.47
c、瓦片3的QP的计算
如上所述,瓦片3的目标字节数为109.5,假设瓦片3的实际编码字节数为50,则瓦片3的目标字节数的累积值为瓦片1的目标字节数与瓦片2 的目标字节数以及瓦片3的目标字节数的和,即为421+337+109.5=867.5;瓦片3的实际编码字节数的累积值为瓦片1的实际编码字节数与瓦片2的实际编码字节数以及瓦片3的实际编码字节数的和,即为300+470+50=820。
则通过式(52)可以得到瓦片3的目标字节数累积值与实际编码字节数累积值的差值为deltaBytes
3=accTarBytes
3-accActBytes
3=867.5-820=47.5。
根据式(53)和式(54)计算瓦片3的QP的偏移值,由于瓦片3的目标字节数的累积值与实际编码字节数的累积值的差值为47.5,大于预设阈值2,因此,瓦片3的QP的偏移值为1。
则可以根据上述瓦片3的QP的偏移值和第一差值的绝对值更新瓦片3的QP3为:QP
3=QP
2-sign(deltaBytes
3)*QPoffset
3=146.47-1=145.47
可选地,在一些实施例中,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的变换系数。
可选地,在一些实施例中,所述当前帧的目标字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前帧的编码格式或所述当前帧的图像压缩比。
本申请实施例中,第i个瓦片的目标字节数可以与当前帧的目标字节数、第i个瓦片的变换系数或当前帧的变换系数有关。例如,第i个瓦片的目标字节数可以通过上述式(42)进行计算,具体内容可以参考上述式(42)的说明,为了简洁,这里不再赘述。
本申请实施例中,当前帧的目标字节数可以与当前帧的宽度、当前帧的高度、当前帧的位深、当前帧的编码格式或当前帧的图像压缩比有关。例如,当前帧的目标字节数可以通过上述上述式(41)进行计算,具体内容可以参考上述式(41)的说明,为了简洁,这里不再赘述。
基于此,上文说明了当前帧的n1个瓦片的QP的计算,下文将说明目标帧中的瓦片的QP的计算,具体请参见下文。
可选地,在一些实施例中,所述方法还包括:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP。
其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编 码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
本申请实施例中,可以根据第二差值的绝对值与当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP。
本申请实施例中,若当前编码方法为前向预测,则目标帧帧可以为当前帧的前x帧;若当前编码方法为后向预测,则目标帧可以为当前帧的后y帧;若当前编码方法为双向预测,则目标帧可以为当前帧的前x帧和后y帧。
类似地,与上述当前帧的划分方式类似,本申请实施例中,在对待编码图像(目标帧)进行划分的时候,可以按照固定宽度或固定高度对待编码图像进行划分,也可以不按照固定宽度或固定高度对待编码图像进行划分;不予限制。
本申请实施例中,可以对编码图像进行水平划分,也可以对待编码图像进行垂直划分。
应理解,本申请实施例中的n2可以与上文中的n1相同,也可以不同,本申请对此不作具体限定。
本申请实施例提供的方案,通过第二差值(当前帧的目标字节数与实际编码字节数的差值)与当前帧的目标字节数的比值,更新目标帧包括的瓦片的QP,可以进一步提高编码效率,同时可以保证量化参数的灵活性以避免输出码率不可控的问题。
可选地,在一些实施例中,所述根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP,包括:
若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;
或,
若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
本申请实施例中,更新目标帧的n2个瓦片的QP可以先获得目标帧的第一个瓦片的初始QP0,可以先通过以下方式更新上述式(48)中的参数z,然后基于更新后的参数z(即为本申请中的第一参数)计算目标帧的初始QP
0。
首先,可以通过式(57)计算当前帧的实际编码的字节数。
其中,accActBytes
n1表示当前帧的实际编码的字节数,n1表示当前帧划分的瓦片的个数。
根据式(58)计算该当前帧的目标字节数与实际编码的字节数的差值。
deltaBytes
n1=t arg etByte
n1-accActBytes
n1 (58)
其中,deltaBytes
n1表示当前帧的目标字节数与实际编码字节数的差值,t arg etByte
n1表示当前帧的目标字节数,accActBytes
n1表示当前帧的实际编码字节数。
根据式(59)-式(61)确定更新的参数z。
其中,delta z表示参数z更新前后的差值,上述式(59)-式(61)中的deltaThres0、deltaThres1、deltaThres2为预设的门限系数,例如,可以预设置为deltaThres0=0.02、deltaThres1=0.05、deltaThres2=0.1;tmpOffset1、tmpOffset2为临时变量。
式(60)和式(61)中的deltaOffset1、deltaOffset2、deltaOffset3为预设的偏移值,例如,可以预设置为deltaOffset1=1、deltaOffset2=2、deltaOffset3=3。
在得到delta z后,可以基于式(62)计算更新的参数z。
z
new=z-sign(deltaBytes
n1)*delta z (62)
其中,z
new表示更新后的参数z的值,z表示更新前的参数z的值,sign(deltaBytes
n)表示取deltaBytes
n的符号。
仍然以上述图7b为例进行说明,更新上述参数z。
通过上述式(57)可以得到该当前帧的实际编码的字节数可以为:
如上所述,该当前帧的目标字节数为867.5。
则通过上述式(58)可以得到,该当前帧的目标字节数与实际编码字节数的差值为:deltaBytes
3=t arg etByte
3-accActBytes
3=867.5-820=47.5。
在获得当前帧的目标字节数与实际编码的字节数的差值后,可以先通过 式(59)计算,上述差值的绝对值与该当前帧的目标字节数的比值为47.5/867.5=0.05,由于该比值0.05大于差值预设门限系数0(deltaThres0=0.02),则delta z=tmpOffset1,进一步地,可以根据式(60)来计算,该比值0.05等于差值预设门限系数1(deltaThres1=0.05),则delta z=tmpOffset2;进一步地,可以根据式(61)来计算,该比值0.05小于差值预设门限系数2(deltaThres2=0.1),则delta z=deltaOffset2,若deltaOffset2=2,则参数z更新前后的差值为2。
通过上述式(62)计算更新后的参数z
new=z-sign(deltaBytes
3)*delta z=0-2=-2。后续计算目标帧的第一个瓦片的初始QP
0的时候,可以利用更新后的参数z
new进行计算。
换句话说,在编码目标帧的过程中,上述式(48)中的参数z的数值用更新后的参数z
new进行计算,即用-2计算目标帧的第一个瓦片的初始QP
0。后续可以基于目标帧的第一个瓦片的图像复杂度信息更新第一个瓦片的初始QP
1,然后基于更新后的第一个瓦片的初始QP
1计算第二个瓦片的QP
2,再基于第二个瓦片的QP
2计算第三个瓦片的QP
3,……,后续以此类推,直到目标帧的所有瓦片的QP计算完成。
本申请实施例提供的方案,结合第二差值的符号,确定更新的第一参数,基于更新后的第一参数更新目标帧包括的瓦片的QP,可以进一步提高编码效率。
图10为本申请另一实施例提供的一种编码方法1000的示意性图。该编码方法1000可以包括步骤1010~1060。下文结合图10概述本申请实施例提供的编码方法。
1010,计算当前帧的目标字节数以及各瓦片的目标字节数。
1020,判断当前是否编码第一个瓦片。
若当前编码第一个瓦片,则执行步骤1030;若当前不是编码第一个瓦片,则执行步骤1040。
1030,计算第一个瓦片的初始QP。
1040,进行当前帧的帧内QP更新。
1050,判断当前帧的最后一个瓦片是否编码完成。
若是,则执行步骤1060,若否,则返回执行步骤1020。
1060,帧级参数更新。
关于上述步骤1010~1060的内容详见上文中关于图6-图9的内容,为了 简洁,这里不再赘述。
在上文的内容中,仅涉及到了对待编码图像进行单通道编码,在一些实施例中,可以对待编码图像进行多通道编码,在这种情况下,获取当前帧中的每一个瓦片的图像复杂度信息可以获取多个分量的图像复杂度信息,具体详见下文。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,包括:分别获取所述n1个瓦片中的每一个瓦片的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述图像复杂度信息更新n1个瓦片的QP,包括:根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的QP。
本申请实施例中的多通道编码可以包括YUV编码或RGB编码,不予限制。
YUV是指亮度参量和色度参量分开表示的像素格式,YUV编码的格式可以包括YUV444,YUV422,YUV420以及YUV411。下文以YUV编码的格式为YUV422为例进行说明。
Y分量:关于Y分量的瓦片的图像复杂度信息可以参考上文内容。
UV分量:由于YUV编码的格式为YUV422,则关于UV分量的像素可以为待编码图像的像素值的一半,基于这一半的像素值获取瓦片的图像复杂度信息。
本申请实施例中,可以分别获取n1个瓦片中的每一个瓦片的Y分量和UV分量的图像复杂度信息,可以基于Y分量的图像复杂度信息和UV分量的图像复杂度信息的平均值更新n1个瓦片的的QP;也可以根据Y分量的图像复杂度信息更新n1个瓦片的的QP;还可以根据UV分量的图像复杂度信息更新n1个瓦片的的QP;不予限制。
应理解,根据分量中的至少一个分量的图像复杂度信息更新n1个瓦片的QP不局限于上述所列举的,还可以为其它方式,例如,Y分量的图像复杂度信息和UV分量的图像复杂度信息的均方根值等,本申请对此不作具体限定。
本申请实施例提供的方案,通过根据获取的每一个瓦片的分量的图像复杂度信息中的至少一个分量的图像复杂度信息更新瓦片的QP,可以提高量 化参数的精准度。
可选地,在一些实施例中,所述获取当前帧中的n1个瓦片的每一个瓦片的的图像复杂度信息,包括:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
本申请实施例中,可以从获取的多个变换参数中选择一个参数计算每一个瓦片的图像复杂度信息。上文所描述的内容中,是基于瓦片的LPHP系数来计算每一个瓦片的图像复杂度信息,在一些实施例中,也可以根据瓦片的DC系数来计算每一个瓦片的图像复杂度信息,或者,还可以根据瓦片的LPHP系数和DC系数的平均值来计算每一个瓦片的图像复杂度信息,本申请对此不作具体限定。
可选地,在一些实施例中,所述方法600还可以包括:
若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所述更新后的所述n1个瓦片的QP;或,
若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;
其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
本申请实施例中,在对待编码图像进行编码的过程中,可以设置QP的最小值(即第三阈值)和最大值(即第四阈值)。本申请实施例中的第三阈值和/或第四阈值可以是固定的,也可以是不断调整的,不予限制。
若通过上述公式计算的瓦片的QP小于最小值,则后续可以基于设置的最小值计算瓦片的QP;若通过上述公式计算的瓦片的QP大于最大值,则后续可以基于设置的最大值计算瓦片的QP。
示例性地,如上所述,可以设置QP的最小值和最大值分别为5和150,若通过上述公式计算的瓦片的QP为5~150中的任何一个数值,可以基于计算得到的QP对下一个瓦片进行编码;若通过上述公式计算的瓦片的QP为3,则可以基于5对下一个瓦片进行编码;若通过上述公式计算的瓦片的QP为160,则可以基于150对下一个瓦片进行编码。
可选地,在一些实施例中,所述编码方法应用于JPEG XR编码格式中。
如上所述,JPEG XR编码格式是一种连续色调静止图像压缩算法和文件格式,可以支持有损数据压缩以及无损数据压缩。
JPEG XR编码格式相比JPEG编码格式具有一定的优势。
首先,JPEG使用8位元编码,实现了256色,而JPEG XR可以使用16位元或更多,提供了更好的效果和更多的编辑灵活性。
其次,JPEG XR编码格式使用更加高效率的压缩算法,与JPEG文件同等大小的情况下,图像质量可以是后者的两倍,或同等质量只需后者一半的体积。并且与JPEG不同,JPEG XR的最高质量压缩可以不丢失任何信息。
图11为本申请实施例又一实施例提供的一种编码方法1100的示意图,该编码方法1100可以包括步骤1110-1130。
1110,获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数。
本申请实施例中,关于PCT处理的流程可以参考上述式(2)~式(36)的描述,为了简洁,这里不再赘述。
1120,根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP)。
本申请实施例中,可以根据图像复杂度信息确定当前帧的初始QP,该初始QP可以根据上述式(45)~式(49)的描述,为了简洁,这里不再赘述。
需要说明的是,由于该编码方法1100是以帧为单位进行的,因此,本申请实施例中的初始QP即为当前帧的初始QP;而上文中的编码方法600是以瓦片为单位进行的,因此,上述实施例中的初始QP为当前帧中的第一个瓦片的初始QP。
1130,根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
本申请实施例中,若当前编码方法为前向预测,则目标帧帧可以为当前帧的前x帧;若当前编码方法为后向预测,则目标帧可以为当前帧的后y帧;若当前编码方法为双向预测,则目标帧可以为当前帧的前x帧和后y帧。
本申请实施例提供的方案,由于图像复杂度信息与当前帧的变换系数有关,且该变换系数是经过对当前帧中的像素值进行PCT处理后的得到的系数,通过根据图像复杂度信息确定当前帧的初始QP并根据该初始QP更新目标帧的初始QP,可以保证在不牺牲码率控制精度的前提下,提高编码效率以及降低硬件资源消耗,同时可以保证量化参数的灵活性以避免输出码率 不可控的问题。
可选地,在一些实施例中,所述根据所述当前帧的初始QP更新目标帧的初始QP,包括:根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值。
本申请实施例中的第二阈值可以为固定值,也可以不断调整,本申请对此不作具体限定。
可选地,在一些实施例中,所述根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧的初始QP,包括:
若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;
根据更新后的第一参数计算所述目标帧的初始QP;
或,
若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;
根据更新后的第一参数计算所述目标帧的初始QP。
本申请实施例中的第一参数可以为上文式(48)中的参数z,在计算上述当前帧的初始QP的过程中,参数z的初始值可以设定为0,后续在计算目标帧的初始QP的时候,可以根据当前帧的图像复杂度信息更新该式(48)中的参数z。
具体地,可以先计算当前帧的目标字节数与实际编码字节数的差值,基于该差值的绝对值与当前帧的目标字节数的比值和第二阈值的大小更新式(48)中的参数z,然后再基于更新后的参数z以及目标帧的的图像复杂度信息来更新目标帧的初始QP,具体内容可以参考上述式(57)~式(62)以及式(45)~(49),为了简洁,这里不再赘述。
本申请实施例提供的方案,结合第二差值的符号,确定更新的第一参数,基于更新后的第一参数更新目标帧的QP,可以进一步提高编码效率。
在上文的内容中,仅涉及到了对待编码图像进行单通道编码,在一些实施例中,可以对待编码图像进行多通道编码,在这种情况下,获取当前帧的图像复杂度信息可以获取多个分量的图像复杂度信息,具体详见下文。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述获取 当前帧的图像复杂度信息,包括:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述当前帧的初始QP更新目标帧的初始QP,包括:根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
本申请实施例中的多通道编码可以包括YUV编码或RGB编码,不予限制。
YUV是指亮度参量和色度参量分开表示的像素格式,YUV编码的格式可以包括YUV444,YUV422,YUV420以及YUV411。下文以YUV编码的格式为YUV422为例进行说明。
Y分量:关于Y分量的瓦片的图像复杂度信息可以参考上文内容。
UV分量:由于YUV编码的格式为YUV422,则关于UV分量的像素可以为待编码图像的像素值的一半,基于这一半的像素值获取瓦片的图像复杂度信息。
假设分别获取当前帧的Y分量和UV分量的图像复杂度信息,可以基于Y分量的图像复杂度信息和UV分量的图像复杂度信息的平均值更新目标帧的初始QP;也可以根据Y分量的图像复杂度信息更新目标帧的初始QP;还可以根据UV分量的图像复杂度信息更新目标帧的初始QP;不予限制。
应理解,根据分量中的至少一个分量的图像复杂度信息更新目标帧的初始QP不局限于上述所列举的,还可以为其它方式,例如,Y分量的图像复杂度信息和UV分量的图像复杂度信息的均方根值等,本申请对此不作具体限定。
本申请实施例提供的方案,通过根据获取的当前帧的分量的图像复杂度信息中的至少一个分量的图像复杂度信息更新目标帧的初始QP,可以提高量化参数的精准度。
可选地,在一些实施例中,所述获取当前帧的图像复杂度信息,包括:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
本申请实施例中,可以从获取的多个变换参数中选择一个参数计算每一个瓦片的图像复杂度信息。上文所描述的内容中,可以基于当前帧的LPHP系数来计算当期帧的图像复杂度信息,在一些实施例中,也可以根据当前帧的DC系数来计算当前帧的图像复杂度信息,或者,还可以根据当前帧的 LPHP系数和DC系数的平均值来计算当前帧的图像复杂度信息,本申请对此不作具体限定。
可选地,在一些实施例中,所述方法还可以包括:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
本申请实施例中,在对待编码图像进行编码的过程中,可以设置初始QP的最小值(即第三阈值)和最大值(即第四阈值)。
若通过上述公式计算的当前帧的初始QP小于最小值,则后续可以基于设置的最小值计算目标帧的初始QP;若通过上述公式计算的当前帧的初始QP大于最大值,则后续可以基于设置的最大值计算目标帧的初始QP。
示例性地,如上所述,设置的初始QP的最小值和最大值可以分别为5和150,若通过上述公式计算的当前帧的初始QP为5~150中的任何一个数值,可以基于计算得到的初始QP对目标帧进行编码;若通过上述公式计算的当前帧的初始QP为3,则可以基于5对目标帧进行编码;若通过上述公式计算的当前帧的初始QP为160,则可以基于150对目标帧进行编码。
可选地,在一些实施例中,所述编码方法应用于JPEG XR编码格式中。
如上所述,JPEG XR编码格式是一种连续色调静止图像压缩算法和文件格式,可以支持有损数据压缩以及无损数据压缩。
JPEG XR编码格式相比JPEG编码格式具有一定的优势。
首先,JPEG使用8位元编码,实现了256色,而JPEG XR可以使用16位元或更多,提供了更好的效果和更多的编辑灵活性。
其次,JPEG XR编码格式使用更加高效率的压缩算法,与JPEG文件同等大小的情况下,图像质量可以是后者的两倍,或同等质量只需后者一半的体积。并且与JPEG不同,JPEG XR的最高质量压缩可以不丢失任何信息。
上文结合图1-图11,详细描述了本申请的方法实施例,下面结合图12-图17,描述本申请的装置实施例,装置实施例与方法实施例相互对应,因此未详细描述的部分可参见前面各部分方法实施例。
图12为本申请一实施例提供的一种编码装置1200的示意性结构图,该编码装置1200可以包括复杂度计算模块1210和码率控制模块1220。
复杂度计算模块1210,用于获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数。
码率控制模块1220,用于根据所述图像复杂度信息更新所述n1个瓦片的量化参数(QP)。
如图13a所示为本申请一实施例提供的JPEG XR编码器的示意性结构图。该示意图中可以包括滤波模块410、变换模块420、量化模块430、预测模块440、熵编码模块450、复杂度计算模块460和码率控制模块470。
其中,滤波模块410、变换模块420、量化模块430、预测模块440、熵编码模块450这五个模块作用与上述图2中所涉及到的模块的作用相类似。
复杂度计算模块460和码率控制模块470可以为本申请实施例中的复杂度计算模块1210和码率控制模块1220,可以实现本申请实施例中瓦片的QP的更新。
其中,复杂度计算模块460可以获取图像复杂度信息并将其信息输出至码率控制模块470,同时码率控制模块470可以接收实际码流的大小作为输入进行码率控制参数更新,即实现QP的更新。
如图13b所示为本申请另一实施例提供的JPEG XR编码器的示意性结构图。该示意图中也可以包括滤波模块410、变换模块420、量化模块430、预测模块440、熵编码模块450、复杂度计算模块460和码率控制模块470。
与图13a不同的是,图13b中的复杂度计算模块460和码率控制模块470均位于JPEG XR编码器中,而图13a中的复杂度计算模块460位于处理器中,码率控制模块470位于JPEG XR编码器中。
图13a和图13b所示出的这两种JPEG XR编码器均可以实现本申请实施例的瓦片的QP的更新,区别在于,图13a所示的JPEG XR编码器在编码的过程中,当前待编码图像的复杂度计算完成后才可以开始编码当前待编码图像,与图13b所示出的JPEG XR编码器相比,在时间上略有增加;当前待编码图像的复杂度计算完成才开始编码当前待编码图像,此后延迟一帧使用,与图13b所示出的JPEG XR编码器相比,第一帧无输入先验知识。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积 值,i为小于或等于n的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
可选地,在一些实施例中,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的变换系数。
可选地,在一些实施例中,所述当前帧的目标字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前帧的编码格式或所述当前帧的图像压缩比。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;或,若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述复杂 度计算模块1210进一步用于:分别获取所述n1个瓦片中的每一个瓦片的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;所述码率控制模块1220进一步用于:根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的的QP。
可选地,在一些实施例中,所述复杂度计算模块1210进一步用于:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
可选地,在一些实施例中,所述码率控制模块1220进一步用于:若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所述更新后的所述n1个瓦片的QP;或,若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
可选地,在一些实施例中,所述编码装置1200应用于JPEG XR编码格式中。
图14为本申请另一实施例提供的一种编码装置1400的示意性结构图,该编码装置1400可以包括复杂度计算模块1410和码率控制模块1420。
复杂度计算模块1410,用于获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数。
码率控制模块1420,用于根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP)。
所述码率控制模块1420还用于:根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
上述图13b中的复杂度计算模块460和码率控制模块470可以为本申请实施例中的复杂度计算模块1210和码率控制模块1220,可以实现本申请实施例中的目标帧的QP的更新。
可选地,在一些实施例中,所述码率控制模块1420进一步用于:根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标 字节数与所述当前帧的实际编码字节数的差值。
可选地,在一些实施例中,所述码率控制模块1420进一步用于:若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP;或,若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述复杂度计算模块1410进一步用于:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;所述码率控制模块1420进一步用于:根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
可选地,在一些实施例中,所述复杂度计算模块1410进一步用于:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
可选地,在一些实施例中,所述码率控制模块1420进一步用于:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
可选地,在一些实施例中,所述编码装置1400应用于JPEG XR编码格式中。
图15为本申请又一实施例提供一种编码装置1500,该编码装置1500可以包括处理器1510。
处理器1510,用于:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个瓦片的量化参数(QP)。
可选地,在一些实施例中,所述处理器1510进一步用于:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积值,i 为小于或等于n的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
可选地,在一些实施例中,所述处理器1510进一步用于:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
可选地,在一些实施例中,所述处理器1510进一步用于:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
可选地,在一些实施例中,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的变换系数。
可选地,在一些实施例中,所述当前帧的目标字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前帧的编码格式或所述当前帧的图像压缩比。
可选地,在一些实施例中,所述处理器1510进一步用于:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
可选地,在一些实施例中,所述处理器1510进一步用于:若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;或,若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述处理器1510进一步用于:分别获取所述n1个瓦片中的每一个瓦片的分量的图像 复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的的QP。
可选地,在一些实施例中,所述处理器1510进一步用于:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
可选地,在一些实施例中,所述处理器1510进一步用于:若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所述更新后的所述n1个瓦片的QP;或,若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
可选地,在一些实施例中,所述编码装置1500应用于JPEG XR编码格式中。
可选地,该编码装置1500还可以包括存储器1520。其中,处理器1510可以从存储器1520中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器1520可以是独立于处理器1510的一个单独的器件,也可以集成在处理器1510中。
可选地,该编码装置1500还可以包括收发器1530。其中,收发器1530可以是独立于处理器1510的一个单独的器件,也可以集成在处理器1510中。
可选地,该编码装置例如可以是编码器、终端(包括但不限于手机、相机、无人机等),并且该编码装置可以实现本申请实施例的编码方法600中的相应流程,为了简洁,在此不再赘述。
图16为本申请再一实施例提供一种编码装置1600,该编码装置1600可以包括处理器1610。
处理器1610,用于:获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
可选地,在一些实施例中,所述处理器1610进一步用于:根据所述第 二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值。
可选地,在一些实施例中,所述处理器1610进一步用于:若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP;或,若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP。
可选地,在一些实施例中,若对所述当前帧进行多通道编码,所述处理器1610进一步用于:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
可选地,在一些实施例中,所述处理器1610进一步用于:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
可选地,在一些实施例中,所述处理器1610进一步用于:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
可选地,在一些实施例中,所述编码装置1600应用于JPEG XR编码格式中。
可选地,该编码装置1600还可以包括存储器1620。其中,处理器1610可以从存储器1620中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器1620可以是独立于处理器1610的一个单独的器件,也可以集成在处理器1610中。
可选地,该编码装置1600还可以包括收发器1630。其中,收发器1630可以是独立于处理器1610的一个单独的器件,也可以集成在处理器1610中。
可选地,该编码装置例如可以是编码器、终端(包括但不限于手机、相机、无人机等),并且该编码装置可以实现本申请实施例的编码方法1100中的相应流程,为了简洁,在此不再赘述。
图17是本申请实施例的芯片的示意性结构图。图17所示的芯片1700包括处理器1710,处理器1710可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
可选地,如图17所示,芯片1700还可以包括存储器1720。其中,处理器1710可以从存储器1720中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器1720可以是独立于处理器1710一个单独的器件,也可以集成在处理器1710中。
可选地,该芯片1700还可以包括输入接口1730。其中,处理器1710可以控制该输入接口1730与其他装置或芯片进行通信,具体地,可以获取其他装置或芯片发送的信息或数据。
可选地,该芯片1700还可以包括输出接口1740。其中,处理器1710可以控制该输出接口1740与其他装置或芯片进行通信,具体地,可以向其他装置或芯片输出信息或数据。
应理解,本申请实施例提到的芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。
应理解,本申请实施例的处理器可能是一种集成电路图像处理系统,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该 存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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 Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例中的存储器可以向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器可以用于执行存储器中存储的指令,并且该处理器执行该指令时,该处理器可以执行上述方法实施例中与终端设备对应的各个步骤。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑 电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
还应理解,在本申请实施例中,图像中的像素点可以位于不同的行和/或列,其中,A的长度可以对应于A包括的位于同一行的像素点个数,A的高度可以对应于A包括的位于同一列的像素点个数。此外,A的长度和高度也可以分别称为A的宽度和深度,本申请实施例对此不做限定。
还应理解,在本申请实施例中,“与A的边界间隔分布”可以指与A的边界间隔至少一个像素点,也可以称为“不与A的边界相邻”或者“不位于A的边界”,本申请实施例对此不做限定,其中,A可以是图像、矩形区域或子图像,等等。
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的编码装置,并且该计算机程序使得计算机执行本申请实施例的各个方法中由编码装置实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的编码装置,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由编码装置实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的编码装置,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由编码装置实现的相应流程,为了简洁,在此不再赘述。
应理解,在本申请实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A, 同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在 一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (60)
- 一种编码方法,其特征在于,包括:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个瓦片的量化参数(QP)。
- 根据权利要求1所述的编码方法,其特征在于,所述根据所述图像复杂度信息更新所述n1个瓦片的QP,包括:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积值,i为小于或等于n1的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
- 根据权利要求2所述的编码方法,其特征在于,所述根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP,包括:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
- 根据权利要求3所述的编码方法,其特征在于,所述根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,包括:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
- 根据权利要求3或4所述的编码方法,其特征在于,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的变换系数。
- 根据权利要求5所述的编码方法,其特征在于,所述当前帧的目标 字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前帧的编码格式或所述当前帧的图像压缩比。
- 根据权利要求1至6中任一项所述的编码方法,其特征在于,所述方法还包括:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
- 根据权利要求7所述的编码方法,其特征在于,所述根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP,包括:若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;或,若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
- 根据权利要求1至8中任一项所述的编码方法,其特征在于,若对所述当前帧进行多通道编码,所述获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,包括:分别获取所述n1个瓦片中的每一个瓦片的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述图像复杂度信息更新n1个瓦片的QP,包括:根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的的QP。
- 根据权利要求1至9中任一项所述的编码方法,其特征在于,所述获取当前帧中的n1个瓦片的每一个瓦片的的图像复杂度信息,包括:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
- 根据权利要求1至10中任一项所述的编码方法,其特征在于,所述获取当前帧中的n1个瓦片的每一个瓦片的的图像复杂度信息,包括:对所述瓦片内的块进行映射后进行预设变换生成预设变换参数,根据所述预设变换参数生成所述瓦片的图像复杂度信息。
- 根据权利要求11所述的编码方法,其特征在于,所述预设变换包括PCT变换。
- 根据权利要求1至12中任一项所述的编码方法,其特征在于,所述方法还包括:若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所述更新后的所述n1个瓦片的QP;或,若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求1至13中任一项所述的编码方法,其特征在于,所述编码方法应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种编码方法,其特征在于,包括:获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
- 根据权利要求15所述的编码方法,其特征在于,所述根据所述当前帧的初始QP更新目标帧的初始QP,包括:根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编 码字节数的差值。
- 根据权利要求16所述的编码方法,其特征在于,所述根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP,包括:若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP;或,若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP。
- 根据权利要求15至17中任一项所述的编码方法,其特征在于,若对所述当前帧进行多通道编码,所述获取当前帧的图像复杂度信息,包括:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述当前帧的初始QP更新目标帧的初始QP,包括:根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
- 根据权利要求15至18中任一项所述的编码方法,其特征在于,所述获取当前帧的图像复杂度信息,包括:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
- 根据权利要求15至19中任一项所述的编码方法,其特征在于,所述方法还包括:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求15至20中任一项所述的编码方法,其特征在于,所述编码方法应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种编码装置,其特征在于,包括:复杂度计算模块,用于获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;码率控制模块,用于根据所述图像复杂度信息更新所述n1个瓦片的量化参数(QP)。
- 根据权利要求22所述的编码装置,其特征在于,所述码率控制模块进一步用于:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积值,i为小于或等于n的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
- 根据权利要求23所述的编码装置,其特征在于,所述码率控制模块进一步用于:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
- 根据权利要求24所述的编码装置,其特征在于,所述码率控制模块进一步用于:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
- 根据权利要求24或25所述的编码装置,其特征在于,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的 变换系数。
- 根据权利要求26所述的编码装置,其特征在于,所述当前帧的目标字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前帧的编码格式或所述当前帧的图像压缩比。
- 根据权利要求22至27中任一项所述的编码装置,所述码率控制模块进一步用于:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
- 根据权利要求28所述的编码装置,其特征在于,所述码率控制模块进一步用于:若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;或,若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
- 根据权利要求22至29中任一项所述的编码装置,其特征在于,若对所述当前帧进行多通道编码,所述复杂度计算模块进一步用于:分别获取所述n1个瓦片中的每一个瓦片的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;所述码率控制模块进一步用于:根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的的QP。
- 根据权利要求22至30中任一项所述的编码装置,其特征在于,所述复杂度计算模块进一步用于:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
- 根据权利要求22至31中任一项所述的编码装置,其特征在于,所述码率控制模块进一步用于:若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所述更新后的所述n1个瓦片的QP;或,若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求22至32中任一项所述的编码装置,其特征在于,所述编码装置应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种编码装置,其特征在于,包括:复杂度计算模块,用于获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;码率控制模块,用于根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);所述码率控制模块还用于:根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
- 根据权利要求34所述的编码装置,其特征在于,所述码率控制模块进一步用于:根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值。
- 根据权利要求35所述的编码装置,其特征在于,所述码率控制模块进一步用于:若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP;或,若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP。
- 根据权利要求34至36中任一项所述的编码装置,其特征在于,若对所述当前帧进行多通道编码,所述复杂度计算模块进一步用于:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;所述码率控制模块进一步用于:根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
- 根据权利要求34至37中任一项所述的编码装置,其特征在于,所述复杂度计算模块进一步用于:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
- 根据权利要求34至38中任一项所述的编码装置,其特征在于,所述码率控制模块进一步用于:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求34至39中任一项所述的编码装置,其特征在于,所述编码装置应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种编码装置,其特征在于,包括:处理器,用于:获取当前帧中的n1个瓦片的每一个瓦片的图像复杂度信息,所述图像复杂度信息包括对所述每一个瓦片的像素值经过图像核变换处理(PCT处理)后得到的变换系数,n1为大于或等于2的正整数;根据所述图像复杂度信息更新所述n1个瓦片的量化参数(QP)。
- 根据权利要求41所述的编码装置,其特征在于,所述处理器进一步用于:根据所述图像复杂度信息计算所述n1个瓦片中的第i个瓦片的目标字节数的累积值,i为小于或等于n的正整数;根据所述第i个瓦片的目标字节数的累积值更新所述第i个瓦片的QP。
- 根据权利要求42所述的编码装置,其特征在于,所述处理器进一步用于:根据第一差值的绝对值与第一阈值更新所述第i个瓦片的QP,所述第一差值为所述第i个瓦片的目标字节数的累积值与所述第i个瓦片的实际编码字节数的累积值的差值。
- 根据权利要求43所述的编码装置,其特征在于,所述处理器进一步用于:若所述第一差值为正值,将第i-1个瓦片的QP与第一偏移QP的差值作为所述第i个瓦片的QP;若所述第一差值为负值,将所述第i-1个瓦片的QP与所述第一偏移QP的和作为所述第i个瓦片的QP;其中,所述第一偏移QP是基于所述第一差值的绝对值和所述第一阈值得到的。
- 根据权利要求43或44所述的编码装置,其特征在于,所述第i个瓦片的目标字节数与第一信息有关;所述第一信息为以下信息中的至少一个:所述当前帧的目标字节数、所述第i个瓦片的变换系数或所述当前帧的变换系数。
- 根据权利要求45所述的编码装置,其特征在于,所述当前帧的目标字节数与第二信息有关;所述第二信息为以下信息中的至少一种:所述当前帧的宽度、所述当前帧的高度、所述当前帧的位深、所述当前 帧的编码格式或所述当前帧的图像压缩比。
- 根据权利要求41至46中任一项所述的编码装置,其特征在于,所述处理器进一步用于:根据第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新目标帧中的n2个瓦片的QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数,n2为大于或等于2的正整数。
- 根据权利要求47所述的编码装置,其特征在于,所述处理器进一步用于:若所述第二差值为正值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP;或,若所述第二差值为负值,将用于计算所述n1个瓦片的QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述n2个瓦片的QP。
- 根据权利要求41至48中任一项所述的编码装置,其特征在于,若对所述当前帧进行多通道编码,所述处理器进一步用于:分别获取所述n1个瓦片中的每一个瓦片的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述分量中的至少一个分量的图像复杂度信息更新所述n1个瓦片的的QP。
- 根据权利要求41至49中任一项所述的编码装置,其特征在于,所述处理器进一步用于:获取所述每一个瓦片的多个变换参数;从所述多个变换参数中选择一个参数作为所述每一个瓦片的图像复杂度信息。
- 根据权利要求41至50中任一项所述的编码装置,其特征在于,所述处理器进一步用于:若更新后的所述n1个瓦片的QP小于第三阈值,将所述第三阈值作为所 述更新后的所述n1个瓦片的QP;或,若更新后的所述n1个瓦片的QP大于第四阈值,将所述第四阈值作为所述更新后的所述n1个瓦片的QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求41至51中任一项所述的编码装置,其特征在于,所述编码装置应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种编码装置,其特征在于,包括:处理器,用于:获取当前帧的图像复杂度信息,所述图像复杂度信息包括对所述当前帧的像素值经过图像核变换处理(PCT处理)后得到的变换系数;根据所述图像复杂度信息确定所述当前帧的初始量化参数(初始QP);根据所述当前帧的初始QP更新目标帧的初始QP,所述目标帧为所述当前帧的前x帧和/或后y帧,x和y为大于或等于1的正整数。
- 根据权利要求53所述的编码装置,其特征在于,所述处理器进一步用于:根据所述第二差值的绝对值与所述当前帧的目标字节数的比值和第二阈值的大小更新所述目标帧中的初始QP;其中,所述第二差值为所述当前帧的目标字节数与所述当前帧的实际编码字节数的差值。
- 根据权利要求54所述的编码装置,其特征在于,所述处理器进一步用于:若所述第二差值为正值,将用于计算所述当前帧的初始QP中的第一参数与偏移参数的差值作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP;或,若所述第二差值为负值,将用于计算前帧的初始QP中的第一参数与偏移参数的和作为更新后的第一参数;根据更新后的第一参数计算所述目标帧的初始QP。
- 根据权利要求53至55中任一项所述的编码装置,其特征在于,若 对所述当前帧进行多通道编码,所述处理器进一步用于:分别获取所述当前帧的分量的图像复杂度信息,所述分量包括所述当前帧的亮度分量和/或至少一个色度分量;根据所述分量中的至少一个分量的图像复杂度信息更新所述目标帧的初始QP。
- 根据权利要求53至56中任一项所述的编码装置,其特征在于,所述处理器进一步用于:获取所述当前帧的多个变换参数;从所述多个变换参数中选择一个参数作为所述当前帧的图像复杂度信息。
- 根据权利要求53至57中任一项所述的编码装置,其特征在于,所述处理器进一步用于:若更新后的所述目标帧的初始QP小于第三阈值,将所述第三阈值作为所述更新后的所述目标帧的的初始QP;或,若更新后的所述目标帧的的初始QP大于第四阈值,将所述第四阈值作为所述更新后的所述目标帧的的初始QP;其中,所述第三阈值为用于编码的QP的最小值,所述第四阈值为用于编码的QP的最大值。
- 根据权利要求53至58中任一项所述的编码装置,其特征在于,所述编码装置应用于联合摄影专家组扩展范围编码格式(JPEG XR编码格式)中。
- 一种计算机可读存储介质,其特征在于,包括程序指令,所述程序指令被计算机运行时,所述计算机执行如权利要求1至19中任一项所述的编码方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/098383 WO2022252222A1 (zh) | 2021-06-04 | 2021-06-04 | 编码方法和编码装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116918331A true CN116918331A (zh) | 2023-10-20 |
Family
ID=84323728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180094389.9A Pending CN116918331A (zh) | 2021-06-04 | 2021-06-04 | 编码方法和编码装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116918331A (zh) |
WO (1) | WO2022252222A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478881A (zh) * | 2023-11-06 | 2024-01-30 | 淘宝(中国)软件有限公司 | 视频信息处理方法、系统、设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478891B (zh) * | 2023-12-28 | 2024-03-15 | 辽宁云也智能信息科技有限公司 | 一种建筑施工智慧管理系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06292019A (ja) * | 1993-04-02 | 1994-10-18 | Fujitsu Ltd | 画像データ圧縮装置と画像符号圧縮装置 |
CN100562118C (zh) * | 2007-07-03 | 2009-11-18 | 上海富瀚微电子有限公司 | 一种视频编码的码率控制方法 |
KR101450645B1 (ko) * | 2013-04-26 | 2014-10-15 | 주식회사 코아로직 | 비디오 비트율 제어 방법 및 장치 |
WO2019127136A1 (zh) * | 2017-12-27 | 2019-07-04 | 深圳市大疆创新科技有限公司 | 码率控制的方法与编码装置 |
WO2019191983A1 (zh) * | 2018-04-04 | 2019-10-10 | 深圳市大疆创新科技有限公司 | 编码方法、装置、图像处理系统和计算机可读存储介质 |
-
2021
- 2021-06-04 WO PCT/CN2021/098383 patent/WO2022252222A1/zh active Application Filing
- 2021-06-04 CN CN202180094389.9A patent/CN116918331A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117478881A (zh) * | 2023-11-06 | 2024-01-30 | 淘宝(中国)软件有限公司 | 视频信息处理方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022252222A1 (zh) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113574898B (zh) | 自适应环路滤波器 | |
WO2013109898A1 (en) | Reference pixel reduction for intra lm prediction | |
CN114793282B (zh) | 带有比特分配的基于神经网络的视频压缩 | |
CN103782598A (zh) | 用于无损编码的快速编码方法 | |
CN104982035B (zh) | 用于对数字图像的序列进行编码的方法 | |
CN114145016A (zh) | 视频信号的矩阵加权帧内预测 | |
CN113196783B (zh) | 去块效应滤波自适应的编码器、解码器及对应方法 | |
CN113068026B (zh) | 编码预测方法、装置及计算机存储介质 | |
CN114598873B (zh) | 量化参数的解码方法和装置 | |
CN116918331A (zh) | 编码方法和编码装置 | |
JP6502739B2 (ja) | 画像符号化装置、画像処理装置、画像符号化方法 | |
WO2021196035A1 (zh) | 视频编码的方法和装置 | |
CN114303380A (zh) | 用于几何划分标志的索引的cabac译码的编码器、解码器及对应方法 | |
CN115836525A (zh) | 用于从多个交叉分量进行预测的方法和系统 | |
CN114902670A (zh) | 用信号通知子图像划分信息的方法和装置 | |
CN114788284A (zh) | 用于在调色板模式下对视频数据进行编码的方法和装置 | |
CN112335245A (zh) | 视频图像分量预测方法及装置、计算机存储介质 | |
US8811474B2 (en) | Encoder and encoding method using coded block pattern estimation | |
CN118044184A (zh) | 用于执行组合帧间预测和帧内预测的方法和系统 | |
JP2018032909A (ja) | 画像符号化装置及びその制御方法及び撮像装置及びプログラム | |
CN112913242B (zh) | 编码方法和编码装置 | |
WO2021134700A1 (zh) | 视频编解码的方法和装置 | |
CN118474373A (zh) | 编解码方法和装置 | |
CN116647683A (zh) | 量化处理方法和装置 | |
Nguyen et al. | Reducing temporal redundancy in MJPEG using Zipfian estimation techniques |
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 |