CN116506617B - 图像浅压缩码率控制方法及装置 - Google Patents
图像浅压缩码率控制方法及装置 Download PDFInfo
- Publication number
- CN116506617B CN116506617B CN202310770774.1A CN202310770774A CN116506617B CN 116506617 B CN116506617 B CN 116506617B CN 202310770774 A CN202310770774 A CN 202310770774A CN 116506617 B CN116506617 B CN 116506617B
- Authority
- CN
- China
- Prior art keywords
- quantization parameter
- compression
- code rate
- buffer
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000007906 compression Methods 0.000 title claims abstract description 198
- 230000006835 compression Effects 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000013139 quantization Methods 0.000 claims abstract description 387
- 239000000872 buffer Substances 0.000 claims abstract description 200
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000000875 corresponding effect Effects 0.000 claims description 67
- 238000012360 testing method Methods 0.000 claims description 15
- 230000001276 controlling effect Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002596 correlated effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000013441 quality evaluation Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012669 compression test Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000007723 transport mechanism 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/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种图像浅压缩码率控制方法及装置,涉及浅压缩技术领域。其中,图像浅压缩码率控制方法中获取参考帧数据块及压缩参数,计算最大量化参数和最小码率,再划分得到多个参考量化参数,并对应地将缓冲区划分得到多个子缓冲区,不同的子缓冲区对应不同的填充值,参考量化参数与填充值的满足预设的映射关系,由此根据映射关系可以得到当前填充值对应的参考量化参数,结合压缩参数对参考帧数据块进行编码得到编码数据块,在编码过程中判断编码数据块的数据大小输出至缓冲区是否会溢出,若缓冲区会溢出,则调整量化参数继续编码。由此根据缓冲区的填充值自适应选择并调整量化参数,在缓冲区中实现了码率和压缩质量的联合控制。
Description
技术领域
本申请涉及浅压缩技术领域,特别是涉及一种图像浅压缩码率控制方法及装置。
背景技术
在视频等媒体文件的传输过程中,若视频数据超出了可用的带宽范围,将会导致视频数据丢失或花屏现象,影响用户的观看体验。而VBV缓冲区(Video BufferingVerifier)用于存储正在编码的视频数据,控制码率确保视频在传输过程中不会丢失数据或产生花屏现象。
在编码压缩数据的过程中,码率较低会导致压缩质量下降,码率较高时压缩质量也会更好。然而高码率会导致传输带宽不足,也会占用更多的存储空间,增加存储成本,而压缩质量低则会导致视频画质模糊、失真等,从而影响观看效果。因此如何在缓冲区模型中实现码率和压缩质量的联合控制,对于在有限带宽下完成数据的传输具有重要意义。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请实施例提供了一种图像浅压缩码率控制方法及装置,能够根据缓冲区的填充值自适应调整量化参数,从而在缓冲区模型中实现码率和压缩质量的联合控制。
第一方面,本申请实施例提供了一种图像浅压缩码率控制方法,包括:
获取待压缩参考帧的参考帧数据块,以及获取所述参考帧数据块的压缩参数;
根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率;
将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区;其中,不同的子缓冲区对应不同的填充值,所述参考量化参数与所述填充值满足预设的映射关系,所述缓冲区的缓冲区大小与所述最小码率相关;
基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数;
根据所述压缩参数和所述量化参数,对所述参考帧数据块进行编码得到编码数据块;在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数继续进行编码过程,直至得到所述参考帧数据块的所述编码数据块,并根据所述编码数据块得到所述待压缩参考帧的压缩图像。
在本申请的一些实施例中,所述压缩参数包括像素位宽和数据块大小;所述根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率,包括:
判断所述像素位宽是否为偶数;
若所述像素位宽为偶数,根据第一公式计算所述最大量化参数;其中,所述第一公式为:MaxQp=4*像素位宽/2,MaxQp代表所述最大量化参数;
若所述像素位宽为奇数,根据第二公式计算所述最大量化参数;其中,所述第二公式为:MaxQp=4*(像素位宽+1)/2;
基于所述数据块大小和所述像素位宽,根据第三公式计算码率控制参数;其中,所述第三公式为:码率控制参数=数据块大小x像素位宽/2+宏块头字节数x8;
基于所述码率控制参数和所述最大量化参数,根据第四公式计算所述最小码率;其中,所述第四公式为:最小码率=码率控制参数+MaxQp+1。
在本申请的一些实施例中,所述将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区,包括:
将所述最大量化参数进行划分得到多个参考量化参数;其中,各个所述参考量化参数为[0,MaxQp]范围内的整数;
获取所述缓冲区的缓冲区大小;其中,所述缓冲区大小大于所述最小码率;
基于所述缓冲区大小,将所述缓冲区进行等分得到N个所述子缓冲区;其中,N=MaxQp+1;
设置第1个所述子缓冲区的填充值对应的参考量化参数为0,第N个所述子缓冲区的填充值对应的参考量化参数为MaxQp,使得所述参考量化参数与所述填充值满足预设的映射关系。
在本申请的一些实施例中,所述基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数,包括:
获取所述缓冲区当前所述填充值,并基于所述填充值得到目标填充值;其中,若所述填充值小于所述码率控制参数,设置所述目标填充值为0,否则设置所述目标填充值为所述填充值与所述码率控制参数的差值;
基于所述映射关系,根据所述最大量化参数、所述目标填充值和所述缓冲区的缓冲区大小得到所述参考量化参数,设置量化参数为所述参考量化参数;其中,参考量化参数=目标填充值*(最大量化参数+1)/缓冲区大小。
在本申请的一些实施例中,所述在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数,包括:
根据预设关系计算预测量化参数;其中,所述预设关系为:预测量化参数=量化参数-4*log2((缓冲区大小–填充值)/数据大小);
对比所述预测量化参数与所述量化参数,若所述预测量化参数与所述量化参数相等,设置预测量化参数=量化参数+1;
对比所述预测量化参数与所述最大量化参数,若所述预测量化参数大于所述最大量化参数,设置预测量化参数为所述最大量化参数;
设置新量化参数为所述预测量化参数,根据所述新量化参数重复所述参考帧数据块的编码。
在本申请的一些实施例中,所述压缩参数包括压缩比;所述最大量化参数与所述压缩比呈正相关,包括:
当所述压缩比越高,所述最大量化参数越大;
当所述压缩比越低,所述最大量化参数越小。
在本申请的一些实施例中,所述方法还包括:
针对不同的量化参数进行预编码,确定目标量化参数,包括:
设置所述基于所述映射关系得到所述填充值对应的所述参考量化参数为最小量化参数;
在所述最小量化参数和所述最大量化参数的范围内,以预设步进增加所述参考量化参数,得到测试量化参数;
基于各个所述测试量化参数对所述参考帧数据块进行预编码,得到预编码数据块;
在满足预设条件下选择最小的测试量化参数作为所述目标量化参数;其中,所述预设条件为所述预编码数据块的预编码数据大小输出至所述缓冲区不会溢出。
第二方面,本申请实施例还提供了一种图像浅压缩码率控制装置,应用如本申请第一方面实施例所述的图像浅压缩码率控制方法,包括:
第一获取模块,用于获取待压缩参考帧的参考帧数据块,以及获取所述参考帧数据块的压缩参数;
计算模块,用于根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率;
划分模块,用于将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区;其中,不同的子缓冲区对应不同的填充值,所述参考量化参数与所述填充值满足预设的映射关系,所述缓冲区的缓冲区大小与所述最小码率相关;
设置模块,用于基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数;
编码模块,用于根据所述压缩参数和所述量化参数,对所述参考帧数据块进行编码得到编码数据块;在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数继续进行编码过程,直至得到所述参考帧数据块的所述编码数据块,并根据所述编码数据块得到所述待压缩参考帧的压缩图像。
第三方面,本申请实施例还提供了一种电子设备,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如本申请第一方面实施例所述的图像浅压缩码率控制方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如本申请第一方面实施例所述的图像浅压缩码率控制方法。
本申请实施例至少包括以下有益效果:
本申请实施例提供了一种图像浅压缩码率控制方法及装置,其中,图像浅压缩码率控制方法中通过获取待压缩参考帧的参考帧数据块及其压缩参数,基于此计算最大量化参数和最小码率,再根据最大量化参数得到多个参考量化参数,并对应地将缓冲区进行划分得到多个子缓冲区,不同的子缓冲区对应不同的填充值,参考量化参数与填充值的满足预设的映射关系,由此根据映射关系可以得到当前缓冲区的填充值对应的参考量化参数,设置量化参数为该参考量化参数,并结合压缩参数对参考帧数据块进行编码得到编码数据块,在编码过程中判断编码数据块的数据大小输出至缓冲区是否会溢出,若缓冲区会溢出,则调整量化参数,直至得到参考帧数据块的编码数据块,并根据编码数据块得到待压缩参考帧的压缩图像。由此根据缓冲区的填充值自适应选择并调整量化参数,通过量化参数协调码率与压缩质量的平衡,从而在缓冲区模型中实现码率和压缩质量的联合控制。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一个实施例提供的图像浅压缩码率控制方法的流程示意图;
图2是图1中步骤S102的流程示意图;
图3是图1中步骤S103的流程示意图;
图4是本申请一个实施例提供的映射关系示意图;
图5是图1中步骤S104的流程示意图;
图6是图1中步骤S105的流程示意图;
图7是本申请另一个实施例提供的图像浅压缩码率控制方法的流程示意图;
图8是本申请一个实施例提供的解码方法的流程示意图;
图9是本申请的编码端的浅压缩***编码流程示意图;
图10是本申请的解码端的浅压缩***解码流程示意图;
图11是本申请的编解码方法质量评估示意图;
图12是本申请的编解码方法与20-30倍压缩串联效果示意图;
图13是本申请的编解码方法与80-120倍压缩串联效果示意图;
图14是本申请一个实施例提供的图像浅压缩码率控制装置模块示意图;
图15是本申请一个实施例提供的电子设备的结构示意图。
附图标记:第一获取模块 101、计算模块 102、划分模块 103、设置模块 104、编码模块 105、电子设备 1000、处理器 1001、存储器 1002。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本申请的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本申请中的具体含义。
为了更好地理解本申请提供的技术方案,在此对本文中出现的术语进行相应地说明:
VBV:视频缓存检验器(Video Buffering Verifier),用于在编码过程中对视频数据进行缓存和管理,以确保视频在播放时能够保持稳定的质量和流畅度。VBV技术通过设置一个视频缓冲区(Buffer),用于接收和存储视频数据,然后根据视频数据的大小和码率,动态地控制视频的传输速度。如果视频数据的码率过高,就可以先将部分数据存储在缓冲区中,等待解码器处理;如果视频数据的码率过低,就可以从缓冲区中获取之前存储的数据进行补充,以保证视频数据的连贯性和流畅度。
量化参数:QP(Quantization Parameter)是视频编码中的一个常用参数,用于控制视频图像质量和压缩比例。在视频编码中,QP值越小,代表的是更高的量化精度和更好的图像质量,但同时会带来更低的压缩比率和更大的码率;反之,当QP值较大时,代表的是较低的量化精度和较差的图像质量,但可以获得更高的压缩比率和更小的码率。
随着数据的不断增加和互联网的发展,数据压缩已成为一项必要的技术。浅压缩又称轻度压缩(Light Compression),是一种数据压缩技术,可以满足各种类型的数据处理需求,减少存储空间和网络传输带宽消耗,通常用于对图像、音频和视频等媒体文件进行压缩。
在视频等媒体文件的传输过程中,若视频数据超出了可用的带宽范围,将会导致视频数据丢失或花屏现象,影响用户的观看体验。而VBV缓冲区(Video BufferingVerifier)用于存储正在编码的视频数据,控制码率确保视频在传输过程中不会丢失数据或产生花屏现象。
在编码压缩数据的过程中,码率较低会导致压缩质量下降,码率较高时压缩质量也会更好。然而高码率会导致传输带宽不足,也会占用更多的存储空间,增加存储成本,而压缩质量低则会导致视频画质模糊、失真等,从而影响观看效果。在码率有上界的视频压缩体系中,压缩质量还和参考帧相关,参考帧越多图像的质量越好,但图像类专业芯片主频一般在400M上下,对于处理4K120 4:4:4输入图像数据时,只用一个参考帧都已经超过芯片处理能力的上界。因此如何在缓冲区模型中实现码率和压缩质量的联合控制,对于在有限带宽下完成数据的传输、减少芯片设计的复杂度等均具有重要意义。
相关技术中,高压缩编码架构(如H264、H265、AVS/AVS+、AVS2等)的VBV缓冲区模型一般以帧为单位对缓冲区的填充值进行控制,需要非常大的缓冲区并引起相应的长延时。因此基于帧类型和缓冲区填充值的码率控制的负反馈延时过大,而且不能控制提升压缩质量。
基于此,本申请实施例提供了一种图像浅压缩码率控制方法及装置,适合硬件实现的兼有质量控制设计的缓冲区模型,以MB为单位进行码率控制,和帧类型无关,将目标码率和目标质量有机动态地联合,实现极快的响应速度。本实施例可以在非常小的缓冲区大小下(一般为几十个宏块,延时为微秒级),对质量与码率的进行联合控制,从而在有限的带宽下提升浅压缩***的压缩质量。
本申请实施例提供图像浅压缩码率控制方法及装置,具体通过如下实施例进行说明,首先描述本申请实施例中的图像浅压缩码率控制方法。
本申请实施例提供的图像浅压缩码率控制方法,涉及图像压缩技术领域,尤其涉及浅压缩技术领域。本申请实施例提供的图像浅压缩码率控制方法应用于终端中。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑或者台式计算机等。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
下面描述本发明实施例中的图像浅压缩码率控制方法。
参照图1所示,本申请实施例提供了一种图像浅压缩码率控制方法,应用于浅压缩***的缓冲区模型,该图像浅压缩码率控制方法包括但不限于以下步骤S101至步骤S105。
步骤S101,获取待压缩参考帧的参考帧数据块,以及获取参考帧数据块的压缩参数。
参考帧(Reference frame)是视频编码中使用的一种技术,用来压缩视频文件。在视频编码中,参考帧包含完整的图像信息,而不依赖于之前或之后的任何帧。在一些实施例中,对读取到的待压缩参考帧进行分块处理,得到多个参考帧数据块,即宏块。可以理解的是,宏块(macroblock)是图像压缩技术中的基本编码单元,可以是16*16像素的大小,也可以是8*8像素的大小,本实施例对此不做限制。
在一些实施例中,获取待压缩参考帧的参考帧数据块的同时获取参考帧数据块的压缩参数,示例性的,压缩参数可以是参考帧数据块的数据块大小、像素位宽、压缩比等参数。具体的,数据块大小即一个参考帧数据块具有多少个像素,例如8*8的数据块大小代表该参考帧数据块具有64个像素;像素位宽即一个像素具有多少位数,位数越高,可以表示的颜色范围也就越广,但是同时也会增加数据量和计算复杂度;压缩比即压缩前的数据大小与压缩后的数据大小的比值,压缩比越高,数据被压缩得越紧密,但图像细节的损失也越大。
步骤S102,根据压缩参数计算最大量化参数,并基于压缩参数和最大量化参数计算最小码率。
可以理解的是,量化参数用于控制图像质量和压缩比的平衡,进而影响码率,因此量化参数是用于控制视频压缩编码码率和压缩质量的重要参数。在视频压缩编码过程中,根据压缩算法和编码标准对数字信号进行量化处理,将其转换为一系列数字值,用来表示信号的强度和细节等信息,以便进行压缩编码。不同的量化参数会产生不同的压缩质量和码率,具体的,当量化参数越小,压缩后的图像质量越好,相应的码率就会变大;相反,当量化参数越大,压缩后的图像质量就会变差,但相应的码率会变小。
在一些实施例中,根据压缩参数计算最大量化参数,由此确定了该参考帧数据块的最大量化参数,即限制参考帧数据块对应压缩质量最差但码率最高的量化参数,可以有效避免过度压缩导致图像失真或者损失细节等。基于压缩参数和最大量化参数进一步计算相应的最小码率,即数据流中每秒传输的最少比特数,对应为每秒的数据量。可以在保证视频压缩质量的前提下,最大限度地降低码率,以实现存储和传输资源的最优化利用。
步骤S103,将最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与参考量化参数对应的多个子缓冲区。
在一些实施例中,将最大量化参数进行以量化步长为1的划分,得到多个参考量化参数,即各个参考量化参数为整数,可以理解的是,参考量化参数还可以为浮点数或者以量化步长为2进行划分得到的整数等,本实施例对此不做限制。
在一些实施例中,对缓冲区进行划分得到与参考量化参数对应的多个子缓冲区,示例性的,当参考量化参数的个数为10时,对应将缓冲区划分为10个子缓冲区。其中,不同的子缓冲区对应不同的填充值,对应的,参考量化参数与填充值满足预设的映射关系。
在一些实施例中,缓冲区的填充值指的是缓冲区中当前存储数据的大小。示例性的,如果一个缓冲区的缓冲区大小为100字节,被划分为10个子缓冲区,当前有60字节的数据存储在其中,则对应的子缓冲区为第6个子缓冲区,对应的填充值为60字节,由此对应第6个参考量化参数。可以理解的是,不同的子缓冲区按存储顺序位于缓冲区的不同位置,因此得到子缓冲区的填充值之后,将其作为缓冲区当前的填充值。
在一些实施例中,填充值还可以以填充度形式表示,填充度表示为填充值与缓冲区大小的比值,即缓冲区当前的存储程度,本实施例对此不做限制。
在一些实施例中,缓冲区大小还与最小码率相关。在视频流中,缓冲区用于平衡网络传输速度和播放速度之间的差异。如果缓冲区太小,传输速度可能会波动,导致视频或音频播放中断或卡顿;如果缓冲区太大,播放延迟会增加,导致用户体验不佳。因此,为了提供良好的用户体验,缓冲区应该根据相关用户参数和最小码率进行设置。最小码率是视频或音频流传输所需的最低速度。缓冲区大小应该足够大,以便在网络传输速度下降时保存足够的数据,以确保无缝播放;同时,缓冲区大小也应该足够小,以确保最小的播放延迟。
步骤S104,基于映射关系得到缓冲区的填充值对应的参考量化参数,设置量化参数为参考量化参数。
在一些实施例中,基于参考量化参数和填充值的映射关系,根据当前缓冲区的填充程度可以得到对应的参考量化参数,并将该参考量化参数作为量化参数。由此实时根据缓冲区不同的存储情况,自适应选择参考帧数据块对应的量化参数,从而协调压缩质量和码率之间的平衡,实现了缓冲区对压缩质量和码率的联合控制。
步骤S105,根据压缩参数和量化参数,对参考帧数据块进行编码得到编码数据块。
在一些实施例中,根据压缩参数和量化参数,对参考帧数据块进行压缩编码得到编码数据块,具体的,根据量化参数对参考帧数据块进行量化,然后利用压缩算法进行编码得到编码数据块。在量化编码过程中,判断编码数据块的数据大小输出至缓冲区时,缓冲区是否会发生溢出,若缓冲区会发生溢出,则反馈调整量化参数继续进行编码过程,直至缓冲区不会溢出,由此得到参考帧数据块的编码数据块,最后根据编码数据块得到待压缩参考帧的压缩图像。
参照图2所示,在本申请的一些实施例中,上述步骤S102还可以包括但不限于以下步骤S201至步骤S205。
步骤S201,判断像素位宽是否为偶数。
在一些实施例中,压缩参数为像素位宽,像素位宽也称为颜色深度或色彩位深度,是指用二进制编码描述单个像素颜色所需的位数,通常用于描述图像或视频的颜色精度。较低的像素位宽意味着像的颜色表现能力较低,可能会出现色带和色彩不准确的情况。而较高的位宽则意味着更准确和细致的颜色显示,但也需要更多的存储空间和处理能力。常见的像素位宽包括8位、16位、24位和32位。具体的,8位像素位宽可以表示256种不同的颜色,而24位像素位宽可以表示约1677万种不同的颜色。
在一些实施例中,首先判断参考帧数据块的像素位宽是否为偶数,从而对应选择不同的公式计算最大量化参数。
步骤S202,若像素位宽为偶数,根据第一公式计算最大量化参数。
在一些实施例中,若判断像素位宽为偶数,则根据第一公式计算最大量化参数,具体的,第一公式为:MaxQp=4*像素位宽/2,MaxQp代表所述最大量化参数。示例性的,当像素位宽为10时,计算最大量化参数MaxQp=4*10/2=20。
步骤S203,若像素位宽为奇数,根据第二公式计算最大量化参数。
在一些实施例中,若判断像素位宽为奇数,则根据第二式计算最大量化参数,具体的,第二公式为:MaxQp=4*(像素位宽+1)/2。示例性的,当像素位宽为13时,计算最大量化参数MaxQp=4*(13+1)/2=28。
在本申请的一些实施例中,压缩参数还包括压缩比,最大量化参数与压缩比呈正相关,具体的,当压缩比越高,最大量化参数越大;当压缩比越低,最大量化参数越小。
步骤S204,基于数据块大小和像素位宽,根据第三公式计算码率控制参数。
在一些实施例中,压缩参数还包括数据块大小,即参考帧数据块中的像素个数。基于数据块大小和像素位宽,根据第三公式计算码率控制参数,具体的,第三公式为:码率控制参数=数据块大小x像素位宽/2+宏块头字节数x8。可以理解的是,宏块头是视频编码标准中描述宏块相关信息的一种结构,参考帧中每个宏块头的字节数取决于编码器的设置和视频的分辨率、帧率等参数。示例性的,参考帧数据块的数据块大小为8*8,像素位宽为10,宏块头字节数为2,则对应的码率控制参数计算为8*8*10/2+2*8=336,单位为bit。
在一些实施例中,码率控制参数还可以作为控制块的目标大小,控制块的目标大小是指单位时间内的目标码率所对应的数据量大小。
步骤S205,基于码率控制参数和最大量化参数,根据第四公式计算最小码率。
在一些实施例中,基于码率控制参数和最大量化参数,可以根据第四公式计算最小码率,具体的,第四公式为:最小码率=码率控制参数+MaxQp+1,单位为bit。可以理解的是,码率是指每一个宏块时间内从缓冲区读取数据的下界,因此最小码率同时也是缓冲区的最小缓冲区大小,即缓冲区的最小下界。
参照图3所示,在本申请的一些实施例中,上述步骤S103还可以包括但不限于以下步骤S301至步骤S304。
步骤S301,将最大量化参数进行划分得到多个参考量化参数。
在一些实施例中,将最大量化参数以量化步长为1从0开始进行划分,对应得到多个参考量化参数,因此各个参考量化参数均为[0,MaxQp]范围内的整数。示例性的,最大量化参数为20,即MaxQp=20,则可以对应划分得到21个参考量化参数,本实施例对此不做限制。
步骤S302,获取缓冲区的缓冲区大小。
在一些实施例中,缓冲区大小由用户参数指定,和压缩参数相关,一般为码率控制参数的若干倍,而且缓冲区大小大于最小码率。获取缓冲区的缓冲区大小,即缓冲区的总容量。
步骤S303,基于缓冲区大小,将缓冲区进行等分得到N个子缓冲区。
在一些实施例中,基于缓冲区大小将缓冲区进行等分得到N个子缓冲区,具体的,N=MaxQp+1,从而与参考量化参数的数量对应。示例性的,MaxQp=20,则将缓冲区等分为21个子缓冲区。
步骤S304,设置第1个子缓冲区的填充值对应的参考量化参数为0,第N个子缓冲区的填充值对应的参考量化参数为MaxQp,使得参考量化参数与填充值满足预设的映射关系。
在一些实施例中,不同的子缓冲区对应不同的填充值,参考图4所示的映射关系示意图,设置第1个子缓冲区对应的参考量化参数为0,即填充值1对应的参考量化参数为0;设置第2个子缓冲区对应的参考量化参数为1,即填充值2对应的参考量化参数为1,以此类推,直至设置第N个子缓冲区的参考量化参数为MaxQp,即填充值N对应的参考量化参数为最大量化参数,使得参考量化参数与填充值满足预设的映射关系。
参照图5所示,在本申请的一些实施例中,上述步骤S104还可以包括但不限于以下步骤S401至步骤S402。
步骤S401,获取缓冲区当前填充值,并基于填充值得到目标填充值。
在一些实施例中,获取缓冲区当前的填充值,然后基于填充值和码率控制参数得到目标填充值。具体的,可以先判断填充值与码率控制参数的关系,若填充值小于码率控制参数,则直接设置目标填充值为0,否则设置目标填充值为填充值与码率控制参数的差值。也可以直接设置目标填充值为填充值与码率控制参数的差值,再判断目标填充值是否小于0,若目标填充值小于0则将目标填充值设置为0,本实施例对此不做限制。
可以理解的是,目标填充值是单位时间内从当前缓冲区读取数据后的填充值,由此保证即使是最大量化参数对应的缓冲区也不会发生溢出。
步骤S402,基于映射关系,根据最大量化参数、目标填充值和缓冲区的缓冲区大小得到参考量化参数,设置量化参数为参考量化参数。
在一些实施例中,基于映射关系,根据最大量化参数、目标填充值和缓冲区的缓冲区大小可以计算得到参考量化参数,具体的,映射关系为:参考量化参数=目标填充值*(最大量化参数+1)/缓冲区大小,从而设置量化参数为参考量化参数,以便根据缓冲区的存储情况选取对应的量化参数以实现码率和压缩质量的联合控制。
参照图6所示,在本申请的一些实施例中,上述步骤S105还可以包括但不限于以下步骤S501至步骤S504。
步骤S501,根据预设关系计算预测量化参数。
可以理解的是,缓冲区溢出会产生相关危害,例如当VBV缓冲区溢出时,压缩编码器可能会丢弃一些像数据,这会导致视频质量下降;当VBV缓冲区溢出时,压缩编码器可能会暂停编码过程,等待缓冲区恢复正常,这会导致视频卡顿或者停止播放;又或者会出现码率不稳定、视频延迟以及无法播放等问题。而缓冲区会溢出,说明压缩的数据大小大于缓冲区所剩余的容量,因此需要增大量化参数以减小压缩后的数据大小。具体的,可以根据预设关系计算预测量化参数。
在一些实施例中,预设关系为:预测量化参数=量化参数-4*log2((缓冲区大小–填充值)/数据大小)。
步骤S502,对比预测量化参数与所述量化参数,若预测量化参数与量化参数相等,设置预测量化参数=量化参数+1。
在一些实施例中,对比预测量化参数与量化参数的大小关系,如果预测量化参数与量化参数相等,则将预测量化参数设置为量化参数+1,从而增大量化参数以压缩参考帧数据块,便于输出至缓冲区时不会导致缓冲区发生溢出。
步骤S503,对比预测量化参数与最大量化参数,若预测量化参数大于最大量化参数,设置预测量化参数为最大量化参数。
在一些实施例中,还需要进一步对比预测量化参数与最大量化参数关系,防止预测量化参数超过最大量化参数的范围,以至压缩质量较差。具体的,若预测量化参数大于最大量化参数,则设置预测量化参数为最大量化参数。
步骤S504,设置新量化参数为预测量化参数,根据新量化参数重复参考帧数据块的编码。
在一些实施例中,最后将预测量化参数作为新量化参数,根据新量化参数重复该参考帧数据块的编码,在编码过程中继续判断编码数据块的数据大小输出至缓冲区是否会溢出,直至缓冲区不会溢出即得到对应的编码数据块。
关于芯片硬件实现方面,由于进行量化参数的迭代可能需要不确定次数的预编码,在芯片实现有严格时序要求的环境下,无法进行精确的码率控制。因此在本申请的一些实施例中,图像浅压缩码率控制方法还包括针对不同的量化参数进行预编码,确定目标量化参数,通过离散的并行预图像浅压缩码率控制方法,可以在较少的资源代价下,实现码率控制的时序精确性。参照图7所示,具体可以包括但不限于以下步骤S601至步骤S604。
步骤S601,设置基于映射关系得到填充值对应的参考量化参数为最小量化参数。
在一些实施例中,将当前缓冲区的填充值计算的目标填充值对应的参考量化参数作为最小量化参数,即在量化参数迭代过程中作为起点的入口量化参数。
步骤S602,在最小量化参数和最大量化参数的范围内,以预设步进增加参考量化参数,得到测试量化参数。
可以理解的是,按单侧迭代的原则,最小量化参数对应的压缩质量是最好的,而最大量化参数作为最大量化点,对应的压缩质量最差。因此码率控制的最优量化参数在最小量化参数和最大量化参数的范围内。
在一些实施例中,以预设步进增加参考量化参数,得到对应的测试量化参数。示例性的,参考量化参数为2,即最小量化参数为2,最大量化参数为20,预设步进为4,则对应得到的测试量化参数分别为:2、6、10、14、18、20。可以理解的是,需要取到最大量化参数,以便在该范围内进行预编码选取目标量化参数。
步骤S603,基于各个测试量化参数对参考帧数据块进行预编码,得到预编码数据块。
在一些实施例中,基于各个测试量化参数对参考帧数据块进行预编码,具体的,量化/反量化放大系数为:量化放大系数QuantScale[4]={16384,13777,11585,9742},反量化放大系数DequantScale[4]={16384,19484,23170,27554}。示例性的,设参考帧数据块中的某点数据值为M,把它看成一个无符号数,当前选择的量化参数为QP,则量化后的数据QuantM的公式为:QuantM=(M*QuantScale[QP%4])>>(14+QP/4);令反量后的数据为DequantM,则其反量化公式为:DequantM=((QuantM<<(QP/4))*DequantScale[QP%4])>>14。
可以理解的是,预设步进的是4,如果量化参数为0,相当于没有量化(M>>0),此时压缩质量最好,如果量化参数为最大量化参数,则相当于最大量化(M>>(MaxQp/4)),对应的压缩质量最差。
步骤S604,在满足预设条件下选择最小的测试量化参数作为所述目标量化参数。
在一些实施例中,各个测试量化参数在芯片中并行运算,可以高并发快速得出率失真最优的目标量化参数,然后在满足预设条件下选择最小的测试量化参数作为目标量化参数以实现缓冲区中码率和压缩质量的联合控制。具体的,预设条件为预编码数据块的预编码数据大小输出至缓冲区不会溢出,即按编码后数据大小能进入缓冲区的最小量化参数的原则选取对应的目标量化参数。
本申请实施例还提供一种解码方法,在通过图像浅压缩码率控制方法进行编码后,对应的解码方法,参照图8所示,解码方法可以包括但不限于以下步骤S701至步骤S702。
步骤S701,获取压缩图像对应的多个编码数据块,以及获取压缩参数和量化参数。
在一些实施例中,压缩图像为本申请实施例第一方面的在图像浅压缩码率控制方法过程中进行编码得到的,获取压缩图像对应的多个编码数据块,以及获取压缩参数和量化参数。可以理解的是,压缩参数和量化参数一起打包至所述编码数据块中。
步骤S702,根据压缩参数和量化参数,对编码数据块进行反量化,对所述压缩图像进行解码,得到对应的参考帧数据块,并根据所述参考帧数据块得到参考帧。
在一些实施例中,根据压缩参数和量化参数,对编码数据块进行反量化,以实现压缩图像对应的各个编码数据块的解码,从而得到对应的参考帧。
以下通过一个浅压缩***的实施例进行说明,参考图9所示的编码端的浅压缩***编码流程示意图和图10所示的解码端的浅压缩***解码流程示意图。在编码过程中,获取参考帧数据块后,根据量化参数对参考帧数据块进行量化,得到量化后数据块,然后可以选择对量化后数据块进行预测得到残差,也可以直接将量化后数据块输出至中间缓冲,再通过无损的定长码或者变长码进行传输。具体的,传输的数据可以是直接的量化数据,也可以是预测得到的残差。最后基于缓冲区进行最优比较,选择用bit最少的输出,通过判断VBV缓冲区是否有上溢出,从而确定是否调整量化参数以实现码率和压缩质量的联合控制。对应的,在解码过程中,首先通过无损的定长码或变长码还原直接的量化数据或预测得到的残差,再用无损的残差数据还原量化数据,最后对直接量化数据或通过残差还原的量化数据进行反量化,从而得有损或无损的原始图像数据,即参考帧。应该理解的是,浅压缩***的图象质量下降由是由量化产生的,而量化产生图象质量下降的程度是由缓冲区决定的。缓冲区通过控制码率进行传输,当码率越高时,可以传输更多的信息量,因此可以减小量化误差,从而提高图像质量。因此,本申请通过根据缓冲区当前的填充值与不同量化参数之间的映射关系,选取对应的量化参数进行编码以实现缓冲区的码率和压缩质量的联合控制。
可以理解的是,本申请适用于对编码延时要求比较低的使用场景,对编码标准和编码类型没有依赖性。在图像的压缩比变化时,例如需要更高的压缩比时,只需要调大最大量化参数的取值即可,因此更高的压缩比与最大量化参数是正相关关系,同时缓冲区大小和码率控制参数的计算也可以根据压缩比进行相应的调整,本实施例对此不做限制。
在一些实施例中,本申请可用较低的主频和硬件资源,实现透明质量的2-3倍浅压缩,参照图11所示的编解码方法质量评估示意图,使用22个超高清序列直接编解码压缩测试的结果,具体使用了视频编码质量评估中常用的VMAF、PSNR、MS-SSIM质量指标。可以理解的是,VMAF(Video Multi-method Assessment Fusion)是一种综合评估视频质量的指标,可以评估视频的失真程度、锐度、色彩饱和度等多个方面;PSNR(Peak Signal-to-NoiseRatio)是一种传统的视频质量评估指标,它评估视频的失真程度,即原始视频和编码后视频之间的差异程度,PSNR越高,表示编码后的视频质量越好;MS-SSIM(Multi-ScaleStructural Similarity Index)是一种结构相似度指标,它评估视频的失真程度和结构变化程度。相比于PSNR,MS-SSIM更能反映人眼对视频质量的感知,因为它考虑了视频的结构和纹理等因素。具体的,图11中序列22为随机噪声,由此可知本申请对无法预测的随机噪声,可以很好地收敛并维持高质量;而且对其余序列部分达到完全无损(40%的序列),其余则达到人眼无法分辨的误差精度(>50dB)。
在一些实施例中,本申请可以使用于参考帧压缩和视频接口压缩等场景,可以理解的是,无论是那种场景,均可能面临多重压缩,参照图12和图13所示,是本申请与更高压缩比的算法串联编解码时的效果,由此可知本申请在和不同压缩率范围的压缩编解码器串联时,对质量或码率带来的影响极小(码率影响<=0.7%),基本可以忽略,达到了透明的串联效果。
由此通过将当前缓冲区的填充值和压缩质量进行映射,令码率与压缩质量联合受控,显著提高了压缩质量的稳定度并达到更好的整体编码效果。而且通过使用全精度的映射入口量化参数和预设步进的离散预编码量化参数点进行并行运算,使得在较少资源代价下,实现了确定性的码率控制时序并减少最高达75%的时钟需求。因此本申请以较少的并行资源,同时实现了精准的码率控制和高度稳定的压缩质量,例如当压缩比为2时,在测试序列中有40%的序列实现了数学无损,并且除随机噪声外,所有视频序列的PSNR>50dB,达到了透明的压缩编码效果,从而在有限的带宽等资源下,实现了质量稳定和精确码率的控制。
本发明实施例还提供一种图像浅压缩码率控制装置,可以实现上述图像浅压缩码率控制方法,参照图14所示,在本申请一些实施例中,图像浅压缩码率控制装置包括:
第一获取模块101,用于获取待压缩参考帧的参考帧数据块,以及获取参考帧数据块的压缩参数;
计算模块102,用于根据压缩参数计算最大量化参数,并基于压缩参数和最大量化参数计算最小码率;
划分模块103,用于将最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与参考量化参数对应的多个子缓冲区;其中,不同的子缓冲区对应不同的填充值,参考量化参数与填充值满足预设的映射关系,缓冲区与最小码率相关;
设置模块104,用于基于映射关系得到填充值对应的参考量化参数,设置量化参数为参考量化参数;
编码模块105,用于根据压缩参数和量化参数,对参考帧数据块进行编码得到编码数据块;在编码过程中判断编码数据块的数据大小输出至缓冲区是否会溢出,若缓冲区会溢出,则调整量化参数,直至得到参考帧数据块的编码数据块,并根据编码数据块得到待压缩参考帧的压缩图像。
本实施例的图像浅压缩码率控制装置的具体实施方式与上述图像浅压缩码率控制方法的具体实施方式基本一致,在此不再一一赘述。
图15示出了本申请实施例提供的电子设备1000。电子设备1000包括:处理器1001、存储器1002及存储在存储器1002上并可在处理器1001上运行的计算机程序,计算机程序运行时用于执行上述的图像浅压缩码率控制方法。
处理器1001和存储器1002可以通过总线或者其他方式连接。
存储器1002作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例描述的图像浅压缩码率控制方法。处理器1001通过运行存储在存储器1002中的非暂态软件程序以及指令,从而实现上述的图像浅压缩码率控制方法。
存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储执行上述的图像浅压缩码率控制方法。此外,存储器1002可以包括高速随机存取存储器1002,还可以包括非暂态存储器1002,例如至少一个储存设备存储器件、闪存器件或其他非暂态固态存储器件。在一些实施方式中,存储器1002可选包括相对于处理器1001远程设置的存储器1002,这些远程存储器1002可以通过网络连接至该电子设备1000。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的图像浅压缩码率控制方法所需的非暂态软件程序以及指令存储在存储器1002中,当被一个或者多个处理器1001执行时,执行上述的图像浅压缩码率控制方法,例如,执行图1中的方法步骤S101至步骤S105、图2中的方法步骤S201至步骤S205、图3中的方法步骤S301至步骤S304、图5中的方法步骤S401至步骤S402、图6中的方法步骤S501至步骤S504、图7中的方法步骤S601至步骤S604、图8中的方法步骤S701至步骤S702。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述图像浅压缩码率控制方法。存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的图像浅压缩码率控制方法及装置,通过将当前缓冲区的填充值和量化参数进行映射,令码率与压缩质量联合受控,显著提高了压缩质量的稳定度,而且通过使用全精度的映射入口量化参数和预设步进的离散预编码的量化参数进行并行运算,在有限资源下实现了精确的码率控制时序。因此在有限的带宽等资源下,根据缓冲区的填充值自适应选择并调整量化参数,同时实现了精准的码率控制和高度稳定的压缩质量。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、储存设备存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
还应了解,本申请实施例提供的各种实施方式可以任意进行组合,以实现不同的技术效果。以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换。
Claims (8)
1.一种图像浅压缩码率控制方法,其特征在于,包括:
获取待压缩参考帧的参考帧数据块,以及获取所述参考帧数据块的压缩参数;
根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率;
将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区;其中,不同的子缓冲区对应不同的填充值,所述参考量化参数与所述填充值满足预设的映射关系,所述缓冲区的缓冲区大小与所述最小码率相关;
基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数;
根据所述压缩参数和所述量化参数,对所述参考帧数据块进行编码得到编码数据块;在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数继续进行编码过程,直至得到所述参考帧数据块的所述编码数据块,并根据所述编码数据块得到所述待压缩参考帧的压缩图像;
所述压缩参数包括像素位宽和数据块大小;所述根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率,包括:
判断所述像素位宽是否为偶数;
若所述像素位宽为偶数,根据第一公式计算所述最大量化参数;其中,所述第一公式为:MaxQp=4*像素位宽/2,MaxQp代表所述最大量化参数;
若所述像素位宽为奇数,根据第二公式计算所述最大量化参数;其中,所述第二公式为:MaxQp=4*(像素位宽+1)/2;
基于所述数据块大小和所述像素位宽,根据第三公式计算码率控制参数;其中,所述第三公式为:码率控制参数=数据块大小x像素位宽/2+宏块头字节数x8;
基于所述码率控制参数和所述最大量化参数,根据第四公式计算所述最小码率;其中,所述第四公式为:最小码率=码率控制参数+MaxQp+1;
所述将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区,包括:
将所述最大量化参数进行划分得到多个参考量化参数;其中,各个所述参考量化参数为[0,MaxQp]范围内的整数;
获取所述缓冲区的缓冲区大小;其中,所述缓冲区大小大于所述最小码率;
基于所述缓冲区大小,将所述缓冲区进行等分得到N个所述子缓冲区;其中,N=MaxQp+1;
设置第1个所述子缓冲区的填充值对应的参考量化参数为0,第N个所述子缓冲区的填充值对应的参考量化参数为MaxQp,使得所述参考量化参数与所述填充值满足预设的映射关系。
2.根据权利要求1所述的图像浅压缩码率控制方法,其特征在于,所述基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数,包括:
获取所述缓冲区当前所述填充值,并基于所述填充值得到目标填充值;其中,若所述填充值小于所述码率控制参数,设置所述目标填充值为0,否则设置所述目标填充值为所述填充值与所述码率控制参数的差值;
基于所述映射关系,根据所述最大量化参数、所述目标填充值和所述缓冲区的缓冲区大小得到所述参考量化参数,设置量化参数为所述参考量化参数;其中,参考量化参数=目标填充值*(最大量化参数+1)/缓冲区大小。
3.根据权利要求1所述的图像浅压缩码率控制方法,其特征在于,所述在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数,包括:
根据预设关系计算预测量化参数;其中,所述预设关系为:预测量化参数=量化参数-4*log2((缓冲区大小–填充值)/数据大小);
对比所述预测量化参数与所述量化参数,若所述预测量化参数与所述量化参数相等,设置预测量化参数=量化参数+1;
对比所述预测量化参数与所述最大量化参数,若所述预测量化参数大于所述最大量化参数,设置所述预测量化参数为所述最大量化参数;
设置新量化参数为所述预测量化参数,根据所述新量化参数重复所述参考帧数据块的编码。
4.根据权利要求1所述的图像浅压缩码率控制方法,其特征在于,所述压缩参数包括压缩比;所述最大量化参数与所述压缩比呈正相关,包括:
当所述压缩比越高,所述最大量化参数越大;
当所述压缩比越低,所述最大量化参数越小。
5.根据权利要求1至4中任一项所述的图像浅压缩码率控制方法,其特征在于,所述方法还包括:
针对不同的量化参数进行预编码,确定目标量化参数,包括:
设置所述基于所述映射关系得到所述填充值对应的所述参考量化参数为最小量化参数;
在所述最小量化参数和所述最大量化参数的范围内,以预设步进增加所述参考量化参数,得到测试量化参数;
基于各个所述测试量化参数对所述参考帧数据块进行预编码,得到预编码数据块;
在满足预设条件下选择最小的测试量化参数作为所述目标量化参数;其中,所述预设条件为所述预编码数据块的预编码数据大小输出至所述缓冲区不会溢出。
6.一种图像浅压缩码率控制装置,其特征在于,应用于权利要求1至5中任一项所述的图像浅压缩码率控制方法,包括:
第一获取模块,用于获取待压缩参考帧的参考帧数据块,以及获取所述参考帧数据块的压缩参数;
计算模块,用于根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率;所述压缩参数包括像素位宽和数据块大小,所述根据所述压缩参数计算最大量化参数,并基于所述压缩参数和所述最大量化参数计算最小码率,包括:判断所述像素位宽是否为偶数;若所述像素位宽为偶数,根据第一公式计算所述最大量化参数;其中,所述第一公式为:MaxQp=4*像素位宽/2,MaxQp代表所述最大量化参数;若所述像素位宽为奇数,根据第二公式计算所述最大量化参数;其中,所述第二公式为:MaxQp=4*(像素位宽+1)/2;基于所述数据块大小和所述像素位宽,根据第三公式计算码率控制参数;其中,所述第三公式为:码率控制参数=数据块大小x像素位宽/2+宏块头字节数x8;基于所述码率控制参数和所述最大量化参数,根据第四公式计算所述最小码率;其中,所述第四公式为:最小码率=码率控制参数+MaxQp+1;
划分模块,用于将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区;其中,不同的子缓冲区对应不同的填充值,所述参考量化参数与所述填充值满足预设的映射关系,所述缓冲区的缓冲区大小与所述最小码率相关;所述将所述最大量化参数进行划分得到多个参考量化参数,以及对缓冲区进行划分得到与所述参考量化参数对应的多个子缓冲区,包括:将所述最大量化参数进行划分得到多个参考量化参数;其中,各个所述参考量化参数为[0,MaxQp]范围内的整数;获取所述缓冲区的缓冲区大小;其中,所述缓冲区大小大于所述最小码率;基于所述缓冲区大小,将所述缓冲区进行等分得到N个所述子缓冲区;其中,N=MaxQp+1;设置第1个所述子缓冲区的填充值对应的参考量化参数为0,第N个所述子缓冲区的填充值对应的参考量化参数为MaxQp,使得所述参考量化参数与所述填充值满足预设的映射关系;
设置模块,用于基于所述映射关系得到所述填充值对应的所述参考量化参数,设置量化参数为所述参考量化参数;
编码模块,用于根据所述压缩参数和所述量化参数,对所述参考帧数据块进行编码得到编码数据块;在编码过程中判断所述编码数据块的数据大小输出至所述缓冲区是否会溢出,若所述缓冲区会溢出,则调整所述量化参数继续进行编码过程,直至得到所述参考帧数据块的所述编码数据块,并根据所述编码数据块得到所述待压缩参考帧的压缩图像。
7.一种电子设备,其特征在于,包括存储器、处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的图像浅压缩码率控制方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序,所述程序被处理器执行实现如权利要求1至5中任一项所述的图像浅压缩码率控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310770774.1A CN116506617B (zh) | 2023-06-28 | 2023-06-28 | 图像浅压缩码率控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310770774.1A CN116506617B (zh) | 2023-06-28 | 2023-06-28 | 图像浅压缩码率控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116506617A CN116506617A (zh) | 2023-07-28 |
CN116506617B true CN116506617B (zh) | 2023-09-12 |
Family
ID=87321669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310770774.1A Active CN116506617B (zh) | 2023-06-28 | 2023-06-28 | 图像浅压缩码率控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116506617B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090049108A (ko) * | 2007-11-13 | 2009-05-18 | 바로비젼(주) | 양자화계수 특성에 따른 비트율 제어장치와 방법 |
CN102724507A (zh) * | 2012-06-18 | 2012-10-10 | 上海交通大学 | 一种gpu加速编码器码率控制方法 |
CN112887725A (zh) * | 2021-01-19 | 2021-06-01 | 珠海全志科技股份有限公司 | 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质 |
CN113491125A (zh) * | 2019-02-22 | 2021-10-08 | 北京字节跳动网络技术有限公司 | 基于历史的仿射模式子表 |
CN113780549A (zh) * | 2021-08-05 | 2021-12-10 | 鹏城实验室 | 溢出感知的量化模型训练方法、装置、介质及终端设备 |
CN115103190A (zh) * | 2022-06-14 | 2022-09-23 | 晶晨芯半导体(成都)有限公司 | 编码器码率控制方法及模块、芯片、电子设备和存储介质 |
CN115550650A (zh) * | 2022-09-27 | 2022-12-30 | 上海富瀚微电子股份有限公司 | 一种有效调节参考帧图像压缩率的方法及装置、电子设备 |
-
2023
- 2023-06-28 CN CN202310770774.1A patent/CN116506617B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090049108A (ko) * | 2007-11-13 | 2009-05-18 | 바로비젼(주) | 양자화계수 특성에 따른 비트율 제어장치와 방법 |
CN102724507A (zh) * | 2012-06-18 | 2012-10-10 | 上海交通大学 | 一种gpu加速编码器码率控制方法 |
CN113491125A (zh) * | 2019-02-22 | 2021-10-08 | 北京字节跳动网络技术有限公司 | 基于历史的仿射模式子表 |
CN112887725A (zh) * | 2021-01-19 | 2021-06-01 | 珠海全志科技股份有限公司 | 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质 |
CN113780549A (zh) * | 2021-08-05 | 2021-12-10 | 鹏城实验室 | 溢出感知的量化模型训练方法、装置、介质及终端设备 |
CN115103190A (zh) * | 2022-06-14 | 2022-09-23 | 晶晨芯半导体(成都)有限公司 | 编码器码率控制方法及模块、芯片、电子设备和存储介质 |
CN115550650A (zh) * | 2022-09-27 | 2022-12-30 | 上海富瀚微电子股份有限公司 | 一种有效调节参考帧图像压缩率的方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116506617A (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI724303B (zh) | 用於顯示器串流壓縮之子串流多工 | |
US10574988B2 (en) | System and methods for reducing slice boundary visual artifacts in display stream compression (DSC) | |
US10244255B2 (en) | Rate-constrained fallback mode for display stream compression | |
JP6921873B2 (ja) | ディスプレイストリーム圧縮のためのサブストリーム多重化 | |
TWI743098B (zh) | 用於在顯示串流壓縮中量化參數之適應性計算的裝置及方法 | |
CN110225343B (zh) | 一种视频编码的码率控制方法及装置 | |
CN106165420B (zh) | 用于译码视频数据的方法及装置 | |
TWI721042B (zh) | 用於在顯示器串流壓縮中固定點近似之系統及方法 | |
WO2021129007A1 (zh) | 视频码率的确定方法、装置、计算机设备及存储介质 | |
CN113132728B (zh) | 编码方法及编码器 | |
CN113132726B (zh) | 编码方法及编码器 | |
TWI686078B (zh) | 用於在顯示串流壓縮(dsc)中計算失真之系統及方法 | |
KR102112942B1 (ko) | 디스플레이 스트림 압축에 대한 지각적 양자화 파라미터 (qp) 가중을 위한 장치 및 방법들 | |
CN116506617B (zh) | 图像浅压缩码率控制方法及装置 | |
CN113727102B (zh) | 一种低延时有损图像编码器和解码器 | |
US10123045B2 (en) | Modification to block size for transform mode in display stream compression | |
EP1841237B1 (en) | Method and apparatus for video encoding | |
Le Pendu et al. | Template based inter-layer prediction for high dynamic range scalable compression | |
CN117676143A (zh) | 一种编解码方法及装置 | |
WO2024064329A1 (en) | Reinforcement learning-based rate control for end-to-end neural network bsed video compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |