CN118101957A - 一种高性能渲染子像素图像压缩方法及装置 - Google Patents
一种高性能渲染子像素图像压缩方法及装置 Download PDFInfo
- Publication number
- CN118101957A CN118101957A CN202410220796.5A CN202410220796A CN118101957A CN 118101957 A CN118101957 A CN 118101957A CN 202410220796 A CN202410220796 A CN 202410220796A CN 118101957 A CN118101957 A CN 118101957A
- Authority
- CN
- China
- Prior art keywords
- prediction
- coding
- optimal
- macro block
- diff
- 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 66
- 230000006835 compression Effects 0.000 title claims abstract description 33
- 238000007906 compression Methods 0.000 title claims abstract description 33
- 238000009877 rendering Methods 0.000 title claims abstract description 24
- 238000013139 quantization Methods 0.000 claims abstract description 148
- YJZYDPRMWYWYCG-UHFFFAOYSA-N mppf Chemical compound COC1=CC=CC=C1N1CCN(CCN(C(=O)C=2C=CC(F)=CC=2)C=2N=CC=CC=2)CC1 YJZYDPRMWYWYCG-UHFFFAOYSA-N 0.000 claims abstract description 91
- 230000011218 segmentation Effects 0.000 claims abstract description 13
- 238000012360 testing method Methods 0.000 claims abstract description 9
- 230000008859 change Effects 0.000 claims description 20
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 238000010606 normalization Methods 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 7
- 229910003460 diamond Inorganic materials 0.000 description 6
- 239000010432 diamond Substances 0.000 description 6
- 238000001914 filtration Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 230000000007 visual 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/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/182—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及图像处理领域,公开了一种高性能渲染子像素图像压缩方法及装置,该方法包括:对输入的图像进行宏块分割,图像为原始像素图像经过子像素渲染后的渲染子像素图像;进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出当前宏块是否为平滑块,并得到当前宏块的复杂度;综合相关信息,计算出最优量化等级,相关信息包括但不限于当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;测试编码模式,选择最优编码模式,编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;利用最优编码模式进行熵编码,输出最优编码模式对应的码流,可降低算法复杂度,提高压缩效率。
Description
技术领域
本发明涉及图像处理技术领域,特别是涉及一种高性能渲染子像素图像压缩方法及装置。
背景技术
一般情况下,LCD面板的标准像素排列对应RGB三个子像素,而三星首次将AMOLED(有源矩阵有机发光二极体,其中包括有机发光二极体OLED,是描述薄膜显示技术的具体类型,即有机电激发光显示;以及有源矩阵体或称主动式矩阵体AM,是指背后的像素寻址技术)应用于手机面板上时,没有使用标准的RGB排列,这是因为OLED有自发光的特性,且RGB三个子像素的寿命不一样,尤其是蓝色子像素老化的更快、寿命最短。如果使用标准的RGB排列,容易出现烧屏的现象,为了平衡不同子像素间的衰减问题,三星使用了RGBG Pentile排列。然而从Galaxy S4开始,三星全面采用了沿用至今的Diamond钻石排列(参见图1),由于其采用了菱形排列的方式,在显示垂直、水平及斜线文字和内容时,都会减少很多锯齿现象。同时,钻石排列的子像素密度也比RGBG Pentile排列高,在显示清晰度上也更好。目前为止,钻石排列仍然是手机OLED屏最优的子像素排列。随着国产OLED面板的崛起,几大国产OLED面板供应商近几年都推出了各自的类钻子像素排列,类钻子像素排列也变得越来越普及,已然成为趋势。
当今手机面板与显示屏之间采用的主流接口模式有:DSI(Video mode)视频模式和DCS(Command mode)命令模式。如图2所示,在Command模式下,MIPI总线控制器会使用显示命令报文向显示器发送数据流,而显示屏有一个全帧大小的帧缓冲器来存储所有的像素数据。当前主流的屏分辨率基本在FHD+及以上,更高一点能达到QHD或QHD+,所以这个帧缓冲器如果存储原始像素数据的话,存储空间要求会很大,同样会增加显示屏的成本和功耗。
为了满足显示屏低功耗、低成本、高刷新率的要求,压缩算法必须有高效率、低功耗、低延迟、高呑吐率的特点。针对单帧图像进行压缩的国际标准有JPEG、JPEG2000、JPEG-XS、DSC、VDC-M、VC-2、TICO等。但是,这些算法都不同程度的存在着复杂度过高、占用linebuffer(行缓存)资源过多、延迟较大、呑吐率低等缺陷,极不适合集成在显示屏这样的低功耗、低成本、高刷新率的实时系统中。目前,针对渲染子像素图像的压缩方法,主要分为以下两类:
(1)利用已有的图像压缩算法(如JPEG、JPEG2000、JPEG-XS、DSC、VDC-M、VC-2、TICO等),对渲染子像素图像直接压缩。
(2)对渲染子像素图像格式进行空间重排列、矩阵变换等方面的处理,可消除部分冗余信息,然后再用已有压缩算法进行压缩。
但现有技术有以下三个不足之处:
第一,已有标准图像压缩算法复杂度高,且需要使用多条linebuffer对数据进行缓存,这样无法满足低功耗、低成本的硬件要求。
第二,已有标准图像压缩算法呑吐率低,不适宜手机显示屏越来越大的分辨率及越来越高的刷新率。
第三,已有标准图像压缩算法延迟较大,无法满足显示屏实时处理这一要求。
因此,亟需一种降低算法复杂度,同时提高压缩效率,满足显示屏系低能耗、低面积、低延迟、高呑吐率的技术方法。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种高性能渲染子像素图像压缩方法及装置,对经过子像素渲染后的渲染子像素图像进行宏块分割,随后进行宏块分析,控制码率,在测试编码模式后选择最优编码模式进行熵编码,能够降低算法复杂度,提高压缩效率,实现显示屏系统低能耗、低面积、低延迟、高呑吐率。
为达上述目的,本发明提出一种高性能渲染子像素图像压缩方法,包括如下步骤:
步骤S1,对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
步骤S2,进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
步骤S3,综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
步骤S4,测试编码模式,选择最优编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
步骤S5,利用所述最优编码模式进行熵编码,输出最优编码模式对应的码流。
进一步地,于步骤S2中,包括如下步骤:
步骤S21,获取当前宏块的代价SATD,所述当前宏块的代价SATD通过如下公式获得:
其中,M为方阵的大小,H为归一化的MxM Hadamard矩阵;
步骤S22,根据所述当前宏块的代价SATD,将宏块的平滑度分为0-3四个等级,其中,0等级为非常平滑,1等级为一般平滑,2等级为复杂到平滑,3等级为平滑到复杂,判断所述当前宏块的平滑度等级,并得到所述当前宏块的复杂度。
进一步地,于所述步骤S3中,包括如下步骤:
步骤S31,根据前一宏块的最优编码比特数,更新缓冲充盈度buffer_fullness,利用更新后的所述缓冲充盈度buffer_fullness计算出当前缓存的状态buffer_idx,依次通过如下公式实现:
buffer_fullness=buffer_fullness+prev_blk_bits-budget_bits
buffer_idx=buffer_fullness>>norm_bits
其中,prev_blk_bits为前一宏块的最优编码比特数,budget_bits为宏块目标比特数,norm_bits为归一化参数;
步骤S32,获取最终目标比特数target_bits,计算所述最终目标比特数与前一宏块编码比特数的编码比特数差diff_bits,依次通过如下公式实现:
target_bits=budget_bits+delta_lut[buffer_idx]
diff_bits=prev_blk_bits-target_bits
其中,budget_bits为宏块目标比特数,buffer_idx为当前缓存的状态,prev_blk_bits为前一宏块的最优编码比特数;
步骤S33,根据更新后的所述缓冲充盈度buffer_fullness,计算量化等级更新模式qp_update_mode,根据所述编码比特数差diff_bits,得到量化等级的变化等级qp_idx,利用所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过前一宏块的最优量化等级pre_qp和所述qp调整幅度delta_qp,得到量化等级qp,通过所述宏块的平滑度,调整量化等级qp,得到当前宏块的最优量化等级blk_qp。
进一步地,所述步骤S33具体包括如下步骤:
步骤S331,根据所述缓冲充盈度buffer_fullness,依照如下公式,得到量化等级更新模式qp_update_mode:
步骤S332,根据所述编码比特数差,依照如下公式,得到量化等级的变化等级qp_idx:
qp_idx=diff_lut[diff_bits]
其中,diff_bits为编码比特数差,diff_lut为一映射表;
步骤S333,根据所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过如下公式实现:
delta_qp=qp_table[qp_update_mode][qp_idx]
其中,qp_table为映射表,qp_update_mode为量化等级更新模式,qp_idx为量化等级的变化等级;
步骤S334,利用所述qp调整幅度delta_qp和前一宏块的最优量化等级pre_qp,依照如下公式,得到量化等级qp:
qp=pre_qp+delta_qp
步骤S335,通过所述宏块的平滑度,依照如下公式,调整量化等级,得到当前宏块的最优量化等级blk_qp:
其中,qp_flat0、qp_flat1为参数,qp_flat_table为平滑度量化表。
进一步地,于所述步骤S4中,包括如下步骤:
步骤S41,获取基于特殊方向预测编码模式、mpp编码模式和mppf编码模式三种编码模式的率失真代价RD_cost,所述率失真代价RD_cost通过如下公式实现:
RD_cost=D+lambda*Rate
其中,D为量化失真,lambda为拉格朗日乘子,Rate为编码比特数;
步骤S42,判断当前模式是否属于valid,得到当前模式判断结果,通过如下公式实现:
rc_buffer_size=buffer_fullness+mode_bits-budget_bits
其中,rc_buffer_size为码率控制缓冲大小,buffer_fullness为缓冲充盈度,mode_bits为当前模式的编码比特数,budget_bit为宏块目标编码比特数,max_buffer_size为码率控制缓冲允许的最大比特数;
步骤S43,利用所述当前模式判断结果和所述率失真代价RD_cost,根据编码模式判别公式,选择最优编码模式,所述编码模式判别公式cmp_mode为:
其中,0表示基于特殊方向预测编码模式,1表示mpp编码模式,2表示mppf编码模式。
进一步地,于所述步骤S5中,包括如下步骤:
步骤S51,响应于最优编码模式为所述基于特殊方向预测编码模式,通过特殊方向预测的方法计算当前像素点的预测残差,获得第一预测残差,利用所述最优量化等级对所述第一预测残差量化,对量化后的第一预测残差进行delta size变长编码,输出对应的码流,重建当前像素点;
步骤S52,响应于最优编码模式为所述mpp编码模式,获取mpp编码模式的预测值,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,重建当前像素点,通过mpp编码模式编码并输出对应的码流;
步骤S53,响应于最优编码模式为所述mppf编码模式,获取mppf编码模式的预测值,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,重建当前像素点,通过mppf编码模式编码并输出对应的码流。
进一步地,于所述步骤S51中,包括如下步骤:
步骤S511,获取当前宏块的八个预测方向,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,得到当前宏块的最优预测方向,根据所述最优预测方向,获取当前像素点的最优预测像素值;
所述步骤S511具体包括如下步骤:
步骤S5111,进行Median预测,得到预测方向为0的一个预测方向,其中,所述Median预测通过如下公式实现:
max_ab=MAX(rec[j,i-1],rec[j-1,i])
min_ab=MIN(rec[j,i-1],rec[j-1,i])
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
步骤S5112,进行方向预测,包括偶行时方向预测和奇行时方向预测,分别获得偶行时和奇行时的其余七个预测方向,即预测方向1-7,其中,所述偶行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
所述奇行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
步骤S5113,根据均方误差规则,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,获取所述八个预测方向中的最优预测方向以及对应的最优预测像素值,其中,所述均方误差MSE规则通过如下公式实现:
其中,表示所有所有像素的均值,n表示当前宏块像素点数;
步骤S512,根据所述最优预测像素值,获取第一预测残差,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差;
所述步骤S512具体包括如下步骤:
步骤S5121,获取所述第一预测残差,通过如下公式实现:
diff=pix_cur-pix_pred
其中,diff为第一预测残差,pix_cur为当前像素值,pix_pred为最优预测像素值;
步骤S5122,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差,通过如下公式实现:
其中,diff为第一预测残差,near_round为四舍五入量,blk_qp为当前宏块的最优量化等级。
步骤S513,对所述量化后的第一预测残差进行delta size变长编码,对R/G/B三分量的码流合并输出,重建像素点,其中,所述delta size变长编码使用有限长度的编码;
所述步骤S513具体包括如下步骤:
步骤S5131,获取当前分量的编码长度和码字,对R/G/B三分量的码流合并输出,所述当前分量的编码长度code_len通过如下公式获得:
code_len=prefix_len+max_size*N
其中,prefix_len为前缀玛长度,N为量化后的第一预测残差的个数,max_size为N个量化后的第一预测残差的最大编码长度;
所述当前分量的码字code_word通过如下公式获得:
mask=(1<<max_size)-1
code_word=[prx_word,diff0'&mask,diff1'&mask,...,diffN'-1&mask]
其中,N为量化后的第一预测残差的个数,max_size为N个量化后残差的最大编码长度,prefix_len为前缀码长度,prx_word为前缀码,[]为数据连续合并操作,diff'表示量化后的第一预测残差;
步骤S5132,重建像素点通过如下公式实现:
pix_rec=pix_pred+(diff'<<blk_qp);
pix_rec=CLIP(max_v al,0,pix_rec);
其中,pix_rec为重建的像素点,pix_pred为预测像素值,diff'为量化后的第一预测残差,blk_qp为当前宏块的最优量化等级,max_val为最大像素值。
进一步地,于步骤S52中,包括如下步骤:
步骤S521,获取mpp编码模式的预测值,所述mpp编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,blk_qp为当前宏块的最优量化等级,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,max_val为最大值,med_val为中间值,pred_mid表示mpp编码模式的预测值;
步骤S522,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,通过如下公式实现:
t=bit_depth-blk_qp-1
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,blk_qp为当前宏块的最优量化等级,diff'表示量化后的第二预测残差;
步骤S523,重建像素点,通过如下公式实现:
pix_rec=pred_mid+(diff'<<blk_qp);
pix_rec=CLIP(max_val,0,pix_rec);
其中,所述pix_rec为重建的像素点,pred_mid为预测像素值,blk_qp为当前宏块的最优量化等级,max_val为最大像素值,diff'为量化后的第二预测残差;
步骤S524,通过所述mpp编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mpp编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-blk_qp)*N
mask=(1<<(bit_depth-blk_qp))-1
code_word=[diff0'&mask,diff1'&mask,...,diffN'-1&mask]
其中,&表示与操作,bit_depth为像素的比特深度,N为量化后的第二预测残差的个数,diff'为量化后的第二预测残差,prefix_len为前缀码长度,[]为数据连续合并操作。
进一步地,于步骤S53中,包括如下步骤:
步骤S531,获取mppf编码模式的预测值,所述mppf编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,qp_mppf为mppf模式量化参数,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,med_val为中间值,max_val为最大值;
步骤S532,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,通过如下公式实现:
t=bit_depth-qp_mppf-1
diff=pix_cur-pred_mid
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,pix_cur为当前像素值,pred_mid由步骤S531获取,qp_mppf为mppf模式量化参数,diff表示第三预测残差,diff'表示量化后的第三预测残差,near_round为四舍五入量;
步骤S533,重建像素点,通过如下公式实现:
pix_rec=pred_mid+diff'<<qp_mppf;
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建后的像素点,pred_mid为预测像素值,qp_mppf为mppf编码模式量化参数,max_val为最大值;
步骤S534,通过所述mppf编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mppf编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-qp_mppf)*N
mask=(1<<(bit_depth-qp_mppf))-1
code_word=[diff0'&mask,diff1'&mask,...,diffN'-1&mask]
其中,N为量化后残差的个数,diff'为量化后的第三预测残差,所述prefix_len为前缀码长度,qp_mppf为mppf编码模式量化参数,[]为数据连续合并操作。
为达到上述目的,本发明还提供一种高性能渲染子像素图像压缩装置,包括:
宏块分割模块,用于对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
宏块分析模块,用于进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
码率控制模块,用于综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
模式选择模块,用于测试编码模式,选择最优编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
熵编码模块,用于利用所述最优编码模式进行熵编码,输出最优编码模式对应的码流。
与现有技术相比,本发明公开的一个方面具有如下有益效果:
(1)本发明针对当前主流钻石和类钻排列屏,在原始像素数据进入缓冲器之前,显示屏对接受到的RGB图像先做子像素渲染(sub-pixel rendering,SPR),这样就直接减少了1/3的数据量。然后,再在SPR后加入一个压缩器,对渲染后的子像素做3倍左右的视觉无损压缩,然后才进入帧缓冲器(DDR),这样缓冲器的存储大小仅需要原始像素数据量的2/9即可,有效降低帧缓冲器的大小。
(2)对渲染后的R/B分量子像素,偶行与奇行采用特殊的预测方向,判别最优方向时,使用MSE作为判别规则,能够提升预测方向的准确度,编码效率更高,重建图像质量更好。
(3)本发明一次可以处理N个像素,编码性能可以自定义,满足大分辨率、高刷新率需求。
附图说明
图1为Diamond屏子像素排列示意图;
图2为MIPI数据处理通路示意图;
图3为本发明公开的压缩方法的一个方面的步骤流程图;
图4为本发明公开的一个方面的压缩流程图;
图5为本发明公开的一个方面之码率控制流程图;
图6为本发明公开的一个方面之median预测示意图;
图7为特殊方向预测编码之G分量预测方向示意图;
图8为特殊方向预测编码之B分量预测方向示意图;
图9为本发明公开的压缩装置的一个方面的结构框架图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图3为本发明公开的压缩方法的一个方面的步骤流程图,图4为本发明公开的一个方面的压缩流程图。如图3和图4所示,本发明公开的一种高性能渲染子像素图像压缩方法,包括如下步骤:
步骤S1,宏块分割:对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
具体地,可根据算法需求,对输入的图像进行宏块分割,其大小可以为16或者其他大小;显示屏对接收的RGB图像做子像素渲染(SPR)处理,能够减少1/3数据量。
步骤S2,宏块分析:进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
具体地,对宏块进行分析,可采用一维Hadamard变换计算出当前宏块及下一宏块的代价SATD,进而得出当前宏块是否为平滑块,其中,SATD为绝对变换误差和。
步骤S3,码率控制:综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
具体地,计算最优量化等级的整个过程采用二次模型的方式。当前宏块压缩都需要量化等级,编码后都会有编码比特数。在下一个宏块压缩时,就使用了当前宏块的量化等级和编码比特数。
步骤S4,模式选择:测试编码模式,选择最优编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
具体地,mpp编码模式为中间值预测编码模式,mppf编码模式为中间值预测退化编码模式。
步骤S5,熵编码:利用所述最优编码模式进行熵编码,输出最优编码模式对应的码流。
进一步地,于步骤S2中,包括如下步骤:
步骤S21,获取当前宏块的代价SATD,所述当前宏块的代价SATD通过如下公式获得:
其中,M为方阵的大小,H为归一化的MxM Hadamard(哈达玛)矩阵;
步骤S22,根据所述当前宏块的代价SATD,将宏块的平滑度分为0-3四个等级,其中,0等级为非常平滑,1等级为一般平滑,2等级为复杂到平滑,3等级为平滑到复杂,判断当前宏块的平滑度等级,并得到当前宏块的复杂度。
需要说明的是,上述步骤S21-步骤S22未在附图中标出。
进一步地,于所述步骤S3中,包括如下步骤:
步骤S31,根据前一宏块的最优编码比特数,更新缓冲充盈度buffer_fullness,利用更新后的所述缓冲充盈度buffer_fullness计算出当前缓存的状态buffer_idx,依次通过如下公式实现:
buffer_fullness=buffer_fullness+prev_blk_bits-budget_bits
buffer_idx=buffer_fullness>>norm_bits
其中,prev_blk_bits为前一宏块的最优编码比特数,budget_bits为宏块目标比特数,norm_bits为归一化参数;
步骤S32,获取最终目标比特数target_bits,计算所述最终目标比特数与前一宏块编码比特数的编码比特数差diff_bits,依次通过如下公式实现:
target_bits=budget_bits+delta_lut[buffer_idx]
diff_bits=prev_blk_bits-target_bits
其中,budget_bits为宏块目标比特数,buffer_idx为当前缓存的状态,prev_blk_bits为前一宏块的最优编码比特数;
步骤S33,根据更新后的所述缓冲充盈度buffer_fullness,计算量化等级更新模式qp_update_mode,根据所述编码比特数差diff_bits,得到量化等级的变化等级qp_idx,利用所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过前一宏块的最优量化等级pre_qp和所述qp调整幅度delta_qp,得到量化等级qp,通过所述宏块的平滑度,调整量化等级qp,得到当前宏块的最优量化等级blk_qp。
需要说明的是,上述步骤S31-步骤S33未在附图中标出。
进一步地,于步骤S33中,包括如下步骤:
步骤S331,根据所述缓冲充盈度buffer_fullness,依照如下公式,得到量化等级更新模式qp_update_mode:
步骤S332,根据所述编码比特数差,依照如下公式,得到量化等级的变化等级qp_idx:
qp_idx=diff_lut[diff_bits]
其中,diff_bits为编码比特数差,diff_lut为一映射表;
步骤S333,根据所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过如下公式实现:
delta_qp=qp_table[qp_update_mode][qp_idx]
其中,qp_table为映射表,qp_update_mode为量化等级更新模式,qp_idx为量化等级的变化等级;
步骤S334,利用所述qp调整幅度delta_qp和前一宏块的最优量化等级pre_qp,依照如下公式,得到量化等级qp:
qp=pre_qp+delta_qp
其中,pre_qp为前一宏块的最优量化等级,delta_qp为qp调整幅度;
步骤S335,通过所述宏块的平滑度,依照如下公式,调整量化等级,得到当前宏块的最优量化等级blk_qp:
其中,qp_flat0、qp_flat1为参数,qp_flat_table为平滑度量化表,buffer_idx为当前缓存的状态。
需要说明的是,上述步骤S331-步骤S335未在附图中标出。
具体地,如图5所示,本发明实施例公开的码率控制方式包括如下步骤:
(1)先利用前一宏块编码比特数prev_blk_bits,及buffer_fullness、target_bits等求取diff_bits。
(2)通过diff_bits对前一宏块的量化等级pre_qp进行调整,得到blk_qp;
(3)最后根据flatness调整blk_qp,完成blk_qp的更新。后续计算lambda,计算lambda后,根据blk_qp,对每种编码模式求RD_cost。根据RD_cost,判别出最优的编码模式;根据最优编码模式,合并码流并输出,同时得到当前宏块的编码比特数rate;根据rate对buffer_fullness进行更新;当下一宏块来时,重复以上步骤。
进一步地,于步骤S4中,包括如下步骤:
步骤S41,获取基于特殊方向预测编码模式、mpp编码模式和mppf编码模式三种编码模式的率失真代价RD_cost,所述率失真代价RD_cost通过如下公式实现:
RD_cost=D+lambda*Rate
其中,D为量化失真,lambda为拉格朗日乘子,Rate为编码比特数;
步骤S42,判断当前模式是否属于valid,得到当前模式判断结果,通过如下公式实现:
rc_buffer_size=buffer_fullness+mode_bits-budget_bits
其中,rc_buffer_size为码率控制缓冲大小,buffer_fullness为缓冲充盈度,mode_bits为当前模式的编码比特数,budget_bit为宏块目标编码比特数,max_buffer_size为码率控制缓冲允许的最大比特数;
步骤S43,利用所述当前模式判断结果和所述率失真代价RD_cost,根据编码模式判别公式,选择最优编码模式,所述编码模式判别公式cmp_mode为:
其中,0表示基于特殊方向预测编码模式,1表示mpp编码模式,2表示mppf编码模式。
需要说明的是,步骤S41-步骤S43未在附图中标出。
进一步地,于步骤S5中,包括如下步骤:
步骤S51,响应于最优编码模式为所述基于特殊方向预测编码模式,通过特殊方向预测的方法计算当前像素点的预测残差,获得第一预测残差,利用所述最优量化等级对所述第一预测残差量化,对量化后的第一预测残差进行delta size变长编码,输出对应的码流,重建当前像素点。
步骤S52,响应于最优编码模式为所述mpp编码模式,获取mpp编码模式的预测值,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,重建当前像素点,通过mpp编码模式编码并输出对应的码流。
步骤S53,响应于最优编码模式为所述mppf编码模式,获取mppf编码模式的预测值,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,重建当前像素点,通过mppf编码模式编码并输出对应的码流。
需要说明的是,步骤S51-步骤S53未在附图中标出。
进一步地,于步骤S51中,包括如下步骤:
步骤S511,获取当前宏块的八个预测方向,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,得到当前宏块的最优预测方向,根据所述最优预测方向,获取当前像素点的最优预测像素值;
所述步骤S511具体包括如下步骤:
步骤S5111,进行Median预测,得到预测方向为0的一个预测方向,其中,所述Median预测通过如下公式实现:
max_ab=MAX(rec[j,i-1],rec[j-1,i])
min_ab=MIN(rec[j,i-1],rec[j-1,i])
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
具体地,如图6所示,图6主要描述求取当前像素的预测值方法,对应预测方向0,主要使用其左、上、左上三个邻近重建像素点。这三个重建像素点分别对应公式中的rec[j,i-1],rec[j-1,i],rec[j-1,i-1]。
步骤S5112,进行方向预测,包括偶行时方向预测和奇行时方向预测,分别获得偶行时和奇行时的其余七个预测方向,即预测方向1-7,其中,所述偶行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
所述奇行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
具体地,如图7所示,图7主要描述G分量预测值的求取方法,其对应的预测方向有1~7,而使用的周围重建点均为上一行的重建像素点,求值方法则使用相邻像素滤波的方法。
如图8所示,图8主要描述R/B分量预测值的求取方法,其对应的预测方向有1~7,会使用上一行、上上一行的重建像素点,根据奇偶行的位置,则选取不同位置的重建像素点,求值方法则使用相邻像素滤波的方法。
步骤S5113,根据均方误差规则,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,获取所述八个预测方向中的最优预测方向以及对应的最优预测像素值,其中,所述均方误差MSE规则通过如下公式实现:
其中,表示所有所有像素的均值,n表示当前宏块像素点数。
步骤S512,根据所述最优预测像素值,获取第一预测残差,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差;
所述步骤S512具体包括如下步骤:
步骤S5121,获取所述第一预测残差,通过如下公式实现:
diff=pix_cur-pix_pred
其中,diff为第一预测残差,pix_cur为当前像素值,pix_pred为最优预测像素值;
步骤S5122,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差,通过如下公式实现:
其中,diff为第一预测残差,near_round为四舍五入量,blk_qp为当前宏块的最优量化等级。
步骤S513,对所述量化后的第一预测残差进行delta size变长编码,对R/G/B三分量的码流合并输出,重建像素点,其中,所述delta size变长编码使用有限长度的编码;
所述步骤S513具体包括如下步骤:
步骤S5131,获取当前分量的编码长度和码字,对R/G/B三分量的码流合并输出,所述当前分量的编码长度code_len通过如下公式获得:
code_len=prefix_len+max_size*N
其中,prefix_len为前缀玛长度,N为量化后的第一预测残差的个数,max_size为N个量化后的第一预测残差的最大编码长度;
也就是说,假设N(可以为4、8等)个diff’的最大编码长度为max_size,那么当前分量的编码长度code_len通过上述公式表示。
所述当前分量的码字code_word通过如下公式获得:
mask=(1<<max_size)-1
code_word=[prx_word,diff0'&mask,diff1'&mask,...,diffN'-1&mask]
其中,N为量化后的第一预测残差的个数,max_size为N个量化后残差的最大编码长度prx_word为前缀码,[]为数据连续合并操作,diff'表示量化后的第一预测残差;
该前缀码prx_word通过如下表1查得。
表1:delta size变长编码前缀码表
delta_len(qp=0) | prx_word | prefix_len |
0 | 1 | 1 |
1 | 2 | 2 |
2 | 4 | 3 |
3 | 8 | 4 |
4 | 16 | 5 |
5 | 32 | 6 |
6 | 64 | 7 |
7 | 128 | 8 |
8 | 0 | 8 |
步骤S5132,重建像素点通过如下公式实现:
pix_rec=pix_pred+(diff'<<blk_qp);
pix_rec=CLIP(max_v al,0,pix_rec);
其中,pix_rec为重建的像素点,pix_pred为预测像素值,diff'为量化后的第一预测残差,blk_qp为当前宏块的最优量化等级,max_val为最大像素值。
需要说明的是,上述步骤未在附图中标出。
具体地,在本发明公开的一个实施例中,基于特殊方向预测编码模式可以分为如下几个步骤:
(1)获取宏块的最优方向,包括Median预测(即预测方向0),以及方向预测(即预测方向为1-7,区分偶行和奇行)。
(2)根据MSE(均方误差)规则,在8个方向中求出最优预测方向dir,以及对应的预测值pix_pred。
(3)计算预测残差,并量化;
(4)delta size变长编码使用有限长度的编码;
(5)重建像素点pix_rec。
进一步地,通常针对一些复杂场景,适用mpp编码模式,于步骤S52中,包括如下步骤:
步骤S521,获取mpp编码模式的预测值,所述mpp编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,blk_qp为当前宏块的最优量化等级,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,max_val为最大值,med_val为中间值,pred_mid表示mpp编码模式的预测值;
步骤S522,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,通过如下公式实现:
t=bit_depth-blk_qp-1
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,blk_qp为当前宏块的最优量化等级,diff'表示量化后的第二预测残差,near_round为四舍五入量,diff第二预测残差;
步骤S523,重建像素点,通过如下公式实现:
pix_rec=pred_mid+(diff'<<blk_qp);
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建的像素点,pred_mid为预测像素值,blk_qp为当前宏块的最优量化等级,max_val为最大像素值,diff'为量化后的第二预测残差;
步骤S524,通过所述mpp编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mpp编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-blk_qp)*N
mask=(1<<(bit_depth-blk_qp))-1
code_word=[diff0'&mask,diff1'&mask,...,diff′N-1&mask]
其中,&表示与操作,bit_depth为像素的比特深度,N为量化后的第二预测残差的个数,diff'为量化后的第二预测残差,[]为数据连续合并操作。
需要说明的是,步骤S521至步骤S524未在附图中标出。
进一步地,当前buffer即将上溢时,使用mppf模式,于步骤S53中,包括如下步骤:
步骤S531,获取mppf编码模式的预测值,所述mppf编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,qp_mppf为mppf模式量化参数,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,med_val为中间值,max_val为最大值;
步骤S532,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,通过如下公式实现:
t=bit_depth-qp_mppf-1
diff=pix_cur-pred_mid
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,pix_cur为当前像素值,pred_mid由S531获取,qp_mppf为mppf模式量化参数,diff表示第三预测残差,diff'表示量化后的第三预测残差,near_round为四舍五入量。
步骤S533,重建像素点,通过如下公式实现:
pix_rec=pred_mid+diff'<<qp_mppf;
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建后的像素点,pred_mid为预测像素值,qp_mppf为mppf编码模式量化参数,max_val为最大值;
步骤S534,通过所述mppf编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mppf编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-qp_mppf)*N
mask=(1<<(bit_depth-qp_mppf))-1
code_word=[diff0'&mask,diff1'&mask,...,diff′N-1&mask]
其中,N为量化后残差的个数,diff'为量化后的第三预测残差,所述prefix_len为前缀码长度,qp_mppf为mppf编码模式量化参数,[]为数据连续合并操作。
需要说明的是,步骤S531至步骤S534在附图中未标出。
此外,需要指出的是,本方法所公开的上述公式,对于公式中未说明的变量为临时变量,本领域技术人员阅读后能够理解,此处不再说明。
图9为本发明公开的压缩装置的一个方面的结构框架图。如图9所示,本发明公开的一种高性能渲染子像素图像压缩装置,包括:
宏块分割模块91,用于对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
宏块分析模块92,用于进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
码率控制模块93,用于综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
模式选择模块94,用于测试编码模式,选择最优的编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
熵编码模块95,用于利用所述最优的编码模式进行熵编码,输出最优编码模式对应的码流。
进一步地,该宏块分析模块92具体用于:
获取当前宏块的代价SATD,所述当前宏块的代价SATD通过如下公式获得:
其中,M为方阵的大小,H为归一化的MxM Hadamard(哈达玛)矩阵;
根据所述当前宏块的代价SATD,将宏块的平滑度分为0-3四个等级,其中,0等级为非常平滑,1等级为一般平滑,2等级为复杂到平滑,3等级为平滑到复杂,判断当前宏块的平滑度等级,并得到当前宏块的复杂度。
进一步地,该码率控制模块93具体包括:
当前缓存的状态获取模块,用于根据前一宏块的最优编码比特数,更新缓冲充盈度buffer_fullness,利用更新后的所述缓冲充盈度buffer_fullness计算出当前缓存的状态buffer_idx,依次通过如下公式实现:
buffer_fullness=buffer_fullness+prev_blk_bits-budget_bits
buffer_idx=buffer_fullness>>norm_bits
其中,prev_blk_bits为前一宏块的最优编码比特数,budget_bits为宏块目标比特数,norm_bits为归一化参数;
编码比特数差获取模块,用于获取最终目标比特数target_bits,计算所述最终目标比特数与前一宏块编码比特数的编码比特数差diff_bits,依次通过如下公式实现:
target_bits=budget_bits+delta_lut[buffer_idx]
diff_bits=prev_blk_bits-target_bits
其中,budget_bits为宏块目标比特数,buffer_idx为当前缓存的状态,prev_blk_bits为前一宏块的最优编码比特数;
最优量化等级获取模块,用于根据更新后的所述缓冲充盈度buffer_fullness,计算量化等级更新模式qp_update_mode,根据所述编码比特数差diff_bits,得到量化等级的变化等级qp_idx,利用所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过前一宏块的最优量化等级pre_qp和所述qp调整幅度delta_qp,得到量化等级qp,通过所述宏块的平滑度,调整量化等级qp,得到当前宏块的最优量化等级blk_qp。
进一步地,该最优量化等级获取模块,具体用于:
根据所述缓冲充盈度buffer_fullness,依照如下公式,得到量化等级更新模式qp_update_mode:
根据所述编码比特数差,依照如下公式,得到量化等级的变化等级qp_idx:
qp_idx=diff_lut[diff_bits]
其中,diff_bits为编码比特数差,diff_lut为一映射表;
根据所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过如下公式实现:
delta_qp=qp_table[qp_update_mode][qp_idx]
其中,qp_table为映射表,qp_update_mode为量化等级更新模式,qp_idx为量化等级的变化等级;
利用所述qp调整幅度delta_qp和前一宏块的最优量化等级pre_qp,依照如下公式,得到量化等级qp:
qp=pre_qp+delta_qp
其中,pre_qp为前一宏块的最优量化等级,delta_qp为qp调整幅度;
通过所述宏块的平滑度,依照如下公式,调整量化等级,得到当前宏块的最优量化等级blk_qp:
其中,qp_flat0、qp_flat1为参数,qp_flat_table为平滑度量化表,buffer_idx为当前缓存的状态。
进一步地,模式选择模块94具体用于:
获取基于特殊方向预测编码模式、mpp编码模式和mppf编码模式三种编码模式的率失真代价RD_cost,所述率失真代价RD_cost通过如下公式实现:
RD_cost=D+lambda*Rate
其中,D为量化失真,lambda为拉格朗日乘子,Rate为编码比特数;
判断当前模式是否属于valid,得到当前模式判断结果,通过如下公式实现:
rc_buffer_size=buffer_fullness+mode_bits-budget_bits
其中,rc_buffer_size为码率控制缓冲大小,buffer_fullness为缓冲充盈度,mode_bits为当前模式的编码比特数,budget_bit为宏块目标编码比特数,max_buffer_size为码率控制缓冲允许的最大比特数;
利用所述当前模式判断结果和所述率失真代价RD_cost,根据编码模式判别公式,选择最优编码模式,所述编码模式判别公式cmp_mode为:
其中,0表示基于特殊方向预测编码模式,1表示mpp编码模式,2表示mppf编码模式。
进一步地,熵编码模块95具体用于:
第一熵编码模块,用于响应于最优编码模式为所述基于特殊方向预测编码模式,通过特殊方向预测的方法计算当前像素点的预测残差,获得第一预测残差,利用所述最优量化等级对所述第一预测残差量化,对量化后的第一预测残差进行delta size变长编码,输出对应的码流,重建当前像素点。
第二熵编码模块,用于响应于最优编码模式为所述mpp编码模式,获取mpp编码模式的预测值,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,重建当前像素点,通过mpp编码模式编码并输出对应的码流。
第三熵编码模块,用于响应于最优编码模式为所述mppf编码模式,获取mppf编码模式的预测值,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,重建当前像素点,通过mppf编码模式编码并输出对应的码流。
进一步地,第一熵编码模块包括:
最优预测像素值获取模块,用于获取当前宏块的八个预测方向,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,得到当前宏块的最优预测方向,根据所述最优预测方向,获取当前像素点的最优预测像素值;
量化第一预测残差获取模块,用于根据所述最优预测像素值,获取第一预测残差,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差;
delta size变长编码模块,用于对所述量化后的第一预测残差进行delta size变长编码,对R/G/B三分量的码流合并输出,重建像素点,其中,所述delta size变长编码使用有限长度的编码。
进一步地,所述最优预测像素值获取模块,具体用于:
进行Median预测,得到预测方向为0的一个预测方向,其中,所述Median预测通过如下公式实现:
max_ab=MAX(rec[j,i-1],rec[j-1,i])
min_ab=MIN(rec[j,i-1],rec[j-1,i])
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
具体地,如图6所示,图6主要描述求取当前像素的预测值方法,对应预测方向0,主要使用其左、上、左上三个邻近重建像素点。这三个重建像素点分别对应公式中的rec[j,i-1],rec[j-1,i],rec[j-1,i-1]。
进行方向预测,包括偶行时方向预测和奇行时方向预测,分别获得偶行时和奇行时的其余七个预测方向,即预测方向1-7,其中,所述偶行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
所述奇行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
具体地,如图7所示,图7主要描述G分量预测值的求取方法,其对应的预测方向有1~7,而使用的周围重建点均为上一行的重建像素点,求值方法则使用相邻像素滤波的方法。
如图8所示,图8主要描述R/B分量预测值的求取方法,其对应的预测方向有1~7,会使用上一行、上上一行的重建像素点,根据奇偶行的位置,则选取不同位置的重建像素点,求值方法则使用相邻像素滤波的方法。
根据均方误差规则,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,获取所述八个预测方向中的最优预测方向以及对应的最优预测像素值,其中,所述均方误差MSE规则通过如下公式实现:
其中,表示所有所有像素的均值,n表示当前宏块像素点数。
进一步地,所述量化第一预测残差获取模块,具体用于:
获取所述第一预测残差,通过如下公式实现:
diff=pix_cur-pix_pred
其中,diff为第一预测残差,pix_cur为当前像素值,pix_pred为最优预测像素值;
利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差,通过如下公式实现:
其中,diff为第一预测残差,near_round为四舍五入量,blk_qp为当前宏块的最优量化等级
进一步地,所述delta size变长编码模块,具体用于:
获取当前分量的编码长度和码字,对R/G/B三分量的码流合并输出,所述当前分量的编码长度code_len通过如下公式获得:
code_len=prefix_len+max_size*N
其中,prefix_len为前缀玛长度,N为量化后的第一预测残差的个数,max_size为N个量化后的第一预测残差的最大编码长度;
也就是说,假设N(可以为4、8等)个diff’的最大编码长度为max_size,那么当前分量的编码长度code_len通过上述公式表示。
所述当前分量的码字code_word通过如下公式获得:
mask=(1<<max_size)-1
code_word=[prx_word,diff0'&mask,diff1'&mask,...,diff′N-1&mask]
其中,N为量化后的第一预测残差的个数,max_size为N个量化后残差的最大编码长度prx_word为前缀码,[]为数据连续合并操作,diff'表示量化后的第一预测残差;该前缀码prx_word通过上述表1查得。
重建像素点通过如下公式实现:
pix_rec=pix_pred+(diff'<<blk_qp);
pix_rec=CLIP(max_v al,0,pix_rec);
其中,pix_rec为重建的像素点,pix_pred为预测像素值,diff'为量化后的第一预测残差,blk_qp为当前宏块的最优量化等级,max_val为最大像素值。
进一步地,通常针对一些复杂场景,适用mpp编码模式,该第二熵编码模块,具体用于:
获取mpp编码模式的预测值,所述mpp编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,blk_qp为当前宏块的最优量化等级,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,max_val为最大值,med_val为中间值,pred_mid表示mpp编码模式的预测值;
计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,通过如下公式实现:
t=bit_depth-blk_qp-1
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,blk_qp为当前宏块的最优量化等级,diff'表示量化后的第二预测残差,near_round为四舍五入量,diff第二预测残差;
重建像素点,通过如下公式实现:
pix_rec=pred_mid+(diff'<<blk_qp);
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建的像素点,pred_mid为预测像素值,blk_qp为当前宏块的最优量化等级,max_val为最大像素值,diff'为量化后的第二预测残差;
通过所述mpp编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mpp编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-blk_qp)*N
mask=(1<<(bit_depth-blk_qp))-1
code_word=[diff0'&mask,diff1'&mask,...,diff′N-1&mask]
其中,&表示与操作,bit_depth为像素的比特深度,N为量化后的第二预测残差的个数,diff'为量化后的第二预测残差,[]为数据连续合并操作。
进一步地,当前buffer即将上溢时,使用mppf模式,第三熵编码模块具体用于:
获取mppf编码模式的预测值,所述mppf编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,qp_mppf为mppf模式量化参数,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,med_val为中间值,max_val为最大值;
计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,通过如下公式实现:
t=bit_depth-qp_mppf-1
diff=pix_cur-pred_mid
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,pix_cur为当前像素值,pred_mid由S531获取,qp_mppf为mppf模式量化参数,diff表示第三预测残差,diff'表示量化后的第三预测残差,near_round为四舍五入量。
重建像素点,通过如下公式实现:
pix_rec=pred_mid+diff'<<qp_mppf;
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建后的像素点,pred_mid为预测像素值,qp_mppf为mppf编码模式量化参数,max_val为最大值;
通过所述mppf编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mppf编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-qp_mppf)*N
mask=(1<<(bit_depth-qp_mppf))-1
code_word=[diff0'&mask,diff1'&mask,...,diff′N-1&mask]
其中,N为量化后残差的个数,diff'为量化后的第三预测残差,所述prefix_len为前缀码长度,qp_mppf为mppf编码模式量化参数,[]为数据连续合并操作。
需要说明的是,本发明公开的一种高性能渲染子像素图像压缩与所述一种高性能渲染子像素图像压缩方法相对应,本发明一种高性能渲染子像素图像压缩装置中未描述的内容参见所述方法中的内容,此处不再赘述。本方法所公开的上述公式,对于公式中未说明的变量为临时变量,本领域技术人员阅读后能够理解,此处不再说明。
综上所述,本发明公开的一种高性能渲染子像素图像压缩方法及装置,对经过子像素渲染后的渲染子像素图像进行宏块分割,随后进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;综合相关信息,采用二次模型计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;测试编码模式,选择最优的编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;利用所述最优的编码模式进行熵编码,输出最优编码模式对应的码流;本发明能够在算法复杂度极低的同时,压缩效率也很高,满足显示屏系统的低功耗、低面积、低延迟、高呑吐率等各项硬件实现要求。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种高性能渲染子像素图像压缩方法,其特征在于,所述方法包括如下步骤:
步骤S1,对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
步骤S2,进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
步骤S3,综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
步骤S4,测试编码模式,选择最优编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
步骤S5,利用所述最优编码模式进行熵编码,输出最优编码模式对应的码流。
2.如权利要求1所述的一种高性能渲染子像素图像压缩方法,其特征在于,于步骤S2中,包括如下步骤:
步骤S21,获取当前宏块的代价SATD,所述当前宏块的代价SATD通过如下公式获得:
其中,M为方阵的大小,H为归一化的MxM Hadamard矩阵;
步骤S22,根据所述当前宏块的代价SATD,将宏块的平滑度分为0-3四个等级,其中,0等级为非常平滑,1等级为一般平滑,2等级为复杂到平滑,3等级为平滑到复杂,判断所述当前宏块的平滑度等级,并得到所述当前宏块的复杂度。
3.如权利要求2所述的一种高性能渲染子像素图像压缩方法,其特征在于,于所述步骤S3中,包括如下步骤:
步骤S31,根据前一宏块的最优编码比特数,更新缓冲充盈度buffer_fullness,利用更新后的所述缓冲充盈度buffer_fullness计算出当前缓存的状态buffer_idx,依次通过如下公式实现:
buffer_fullness=buffer_fullness+prev_blk_bits-budget_bits
buffer_idx=buffer_fullness>>norm_bits
其中,prev_blk_bits为前一宏块的最优编码比特数,budget_bits为宏块目标比特数,norm_bits为归一化参数;
步骤S32,获取最终目标比特数target_bits,计算所述最终目标比特数与前一宏块编码比特数的编码比特数差diff_bits,依次通过如下公式实现:
target_bits=budget_bits+delta_lut[buffer_idx]
diff_bits=prev_blk_bits-target_bits
其中,budget_bits为宏块目标比特数,buffer_idx为当前缓存的状态,prev_blk_bits为前一宏块的最优编码比特数;
步骤S33,根据更新后的所述缓冲充盈度buffer_fullness,计算量化等级更新模式qp_update_mode,根据所述编码比特数差diff_bits,得到量化等级的变化等级qp_idx,利用所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过前一宏块的最优量化等级pre_qp和所述qp调整幅度delta_qp,得到量化等级qp,通过所述宏块的平滑度,调整量化等级qp,得到当前宏块的最优量化等级blk_qp。
4.如权利要求3所述的一种高性能渲染子像素图像压缩方法,其特征在于,所述步骤S33具体包括如下步骤:
步骤S331,根据所述缓冲充盈度buffer_fullness,依照如下公式,得到量化等级更新模式qp_update_mode:
步骤S332,根据所述编码比特数差,依照如下公式,得到量化等级的变化等级qp_idx:
qp_idx=diff_lut[diff_bits]
其中,diff_bits为编码比特数差,diff_lut为一映射表;
步骤S333,根据所述量化等级更新模式qp_update_mode和所述量化等级的变化等级qp_idx,查表得到qp调整幅度delta_qp,通过如下公式实现:
delta_qp=qp_table[qp_update_mode][qp_idx]
其中,qp_table为映射表,qp_update_mode为量化等级更新模式,qp_idx为量化等级的变化等级;
步骤S334,利用所述qp调整幅度delta_qp和前一宏块的最优量化等级pre_qp,依照如下公式,得到量化等级qp:
qp=pre_qp+delta_qp
步骤S335,通过所述宏块的平滑度,依照如下公式,调整量化等级,得到当前宏块的最优量化等级blk_qp:
其中,qp_flat0、qp_flat1为参数,qp_flat_table为平滑度量化表。
5.如权利要求4所述的一种高性能渲染子像素图像压缩方法,其特征在于,于所述步骤S4中,包括如下步骤:
步骤S41,获取基于特殊方向预测编码模式、mpp编码模式和mppf编码模式三种编码模式的率失真代价RD_cost,所述率失真代价RD_cost通过如下公式实现:
RD_cost=D+lambda*Rate
其中,D为量化失真,lambda为拉格朗日乘子,Rate为编码比特数;
步骤S42,判断当前模式是否属于valid,得到当前模式判断结果,通过如下公式实现:
rc_buffer_size=buffer_fullness+mode_bits-budget_bits
其中,rc_buffer_size为码率控制缓冲大小,buffer_fullness为缓冲充盈度,mode_bits为当前模式的编码比特数,budget_bit为宏块目标编码比特数,max_buffer_size为码率控制缓冲允许的最大比特数;
步骤S43,利用所述当前模式判断结果和所述率失真代价RD_cost,根据编码模式判别公式,选择最优编码模式,所述编码模式判别公式cmp_mode为:
其中,0表示基于特殊方向预测编码模式,1表示mpp编码模式,2表示mppf编码模式。
6.如权利要求5所述的一种高性能渲染子像素图像压缩方法,其特征在于,于所述步骤S5中,包括如下步骤:
步骤S51,响应于最优编码模式为所述基于特殊方向预测编码模式,通过特殊方向预测的方法计算当前像素点的预测残差,获得第一预测残差,利用所述最优量化等级对所述第一预测残差量化,对量化后的第一预测残差进行delta size变长编码,输出对应的码流,重建当前像素点;
步骤S52,响应于最优编码模式为所述mpp编码模式,获取mpp编码模式的预测值,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,重建当前像素点,通过mpp编码模式编码并输出对应的码流;
步骤S53,响应于最优编码模式为所述mppf编码模式,获取mppf编码模式的预测值,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,重建当前像素点,通过mppf编码模式编码并输出对应的码流。
7.如权利要求6所述的一种高性能渲染子像素图像压缩方法,其特征在于,于所述步骤S51中,包括如下步骤:
步骤S511,获取当前宏块的八个预测方向,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,得到当前宏块的最优预测方向,根据所述最优预测方向,获取当前像素点的最优预测像素值;
所述步骤S511具体包括如下步骤:
步骤S5111,进行Median预测,得到预测方向为0的一个预测方向,其中,所述Median预测通过如下公式实现:
max_ab=MAX(rec[j,i-1],rec[j-1,i])
min_ab=MIN(rec[j,i-1],rec[j-1,i])
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
步骤S5112,进行方向预测,包括偶行时方向预测和奇行时方向预测,分别获得偶行时和奇行时的其余七个预测方向,即预测方向1-7,其中,所述偶行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
所述奇行时方向预测通过如下公式实现:
其中,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标;
步骤S5113,根据均方误差规则,于所述八个预测方向中,分别计算R/G/B三个分量的均方误差,合并所述三个分量的均方误差,获取所述八个预测方向中的最优预测方向以及对应的最优预测像素值,其中,所述均方误差MSE规则通过如下公式实现:
其中,表示所有所有像素的均值,n表示当前宏块像素点数;
步骤S512,根据所述最优预测像素值,获取第一预测残差,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差;
所述步骤S512具体包括如下步骤:
步骤S5121,获取所述第一预测残差,通过如下公式实现:
diff=pix_cur-pix_pred
其中,diff为第一预测残差,pix_cur为当前像素值,pix_pred为最优预测像素值;
步骤S5122,利用所述当前宏块的最优量化等级blk_qp对所述第一预测残差量化,得到量化后的第一预测残差,通过如下公式实现:
其中,diff为第一预测残差,near_round为四舍五入量,blk_qp为当前宏块的最优量化等级;
步骤S513,对所述量化后的第一预测残差进行delta size变长编码,对R/G/B三分量的码流合并输出,重建像素点,其中,所述delta size变长编码使用有限长度的编码;
所述步骤S513具体包括如下步骤:
步骤S5131,获取当前分量的编码长度和码字,对R/G/B三分量的码流合并输出,所述当前分量的编码长度code_len通过如下公式获得:
code_len=prefix_len+max_size*N
其中,prefix_len为前缀玛长度,N为量化后的第一预测残差的个数,max_size为N个量化后的第一预测残差的最大编码长度;
所述当前分量的码字code_word通过如下公式获得:
mask=(1<<max_size)-1
code_word=[prx_word,diff0'&mask,diff1'&mask,...,diffN'-1&mask]
其中,N为量化后的第一预测残差的个数,max_size为N个量化后残差的最大编码长度,prefix_len为前缀码长度,prx_word为前缀码,[]为数据连续合并操作,diff'表示量化后的第一预测残差;
步骤S5132,重建像素点通过如下公式实现:
pix_rec=pix_pred+(diff'<<blk_qp);
pix_rec=CLIP(max_v al,0,pix_rec);
其中,pix_rec为重建的像素点,pix_pred为预测像素值,diff'为量化后的第一预测残差,blk_qp为当前宏块的最优量化等级,max_val为最大像素值。
8.如权利要求6所述的一种高性能渲染子像素图像压缩方法,其特征在于,于步骤S52中,包括如下步骤:
步骤S521,获取mpp编码模式的预测值,所述mpp编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,blk_qp为当前宏块的最优量化等级,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,max_val为最大值,med_val为中间值,pred_mid表示mpp编码模式的预测值;
步骤S522,计算当前像素点的预测残差,获得第二预测残差,对所述第二预测残差量化,通过如下公式实现:
t=bit_depth-blk_qp-1
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,blk_qp为当前宏块的最优量化等级,diff'表示量化后的第二预测残差;
步骤S523,重建像素点,通过如下公式实现:
pix_rec=pred_mid+(diff'<<blk_qp);
pix_rec=CLIP(max_val,0,pix_rec);
其中,所述pix_rec为重建的像素点,pred_mid为预测像素值,blk_qp为当前宏块的最优量化等级,max_val为最大像素值,diff'为量化后的第二预测残差;
步骤S524,通过所述mpp编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mpp编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-blk_qp)*N
mask=(1<<(bit_depth-blk_qp))-1
code_word=[diff0'&mask,diff1'&mask,...,diff'N-1&mask]
其中,&表示与操作,bit_depth为像素的比特深度,N为量化后的第二预测残差的个数,diff'为量化后的第二预测残差,prefix_len为前缀码长度,[]为数据连续合并操作。
9.如权利要求6所述的一种高性能渲染子像素图像压缩方法,其特征在于,于步骤S53中,包括如下步骤:
步骤S531,获取mppf编码模式的预测值,所述mppf编码模式的预测值通过如下公式实现:
top_ref[j,i]=(rec[j-1,i-1]+2*rec[j-1,i+]+rec[j-1,i+1])/4
pred_mid[j,i]=CLIP(max_val,med_val,top_ref[j,i]+2*bias)
其中,qp_mppf为mppf模式量化参数,rec[]表示已重建像素,j表示像素点纵坐标,i表示像素点横坐标,med_val为中间值,max_val为最大值;
步骤S532,计算当前像素点的预测残差,获得第三预测残差,对所述第三预测残差量化,通过如下公式实现:
t=bit_depth-qp_mppf-1
diff=pix_cur-pred_mid
diff'=CLIP(max_quant,min_quant,diff')
其中,bit_depth为像素的比特深度,max_val为最大值,pix_cur为当前像素值,pred_mid由步骤S531获取,qp_mppf为mppf模式量化参数,diff表示第三预测残差,diff'表示量化后的第三预测残差,near_round为四舍五入量;
步骤S533,重建像素点,通过如下公式实现:
pix_rec=pred_mid+diff'<<qp_mppf;
pix_rec=CLIP(max_val,0,pix_rec);
其中,pix_rec为重建后的像素点,pred_mid为预测像素值,qp_mppf为mppf编码模式量化参数,max_val为最大值;
步骤S534,通过所述mppf编码模式编码,对R/G/B三分量的码流合并输出,其中,所述mppf编码模式的编码长度code_len和码字code_word通过如下公式获得:
code_len=(bit_depth-qp_mppf)*N
mask=(1<<(bit_depth-qp_mppf))-1
code_word=[diff0'&mask,diff1'&mask,...,diff'N-1&mask]
其中,N为量化后残差的个数,diff'为量化后的第三预测残差,所述prefix_len为前缀码长度,qp_mppf为mppf编码模式量化参数,[]为数据连续合并操作。
10.一种高性能渲染子像素图像压缩装置,其特征在于,所述装置包括:
宏块分割模块,用于对输入的图像进行宏块分割,所述图像为原始像素图像经过子像素渲染后的渲染子像素图像;
宏块分析模块,用于进行宏块分析,计算出当前宏块的代价SATD和下一宏块的代价SATD,得出所述当前宏块是否为平滑块,并得到所述当前宏块的复杂度;
码率控制模块,用于综合相关信息,计算出最优量化等级,所述相关信息包括但不限于所述当前宏块的复杂度、前一宏块的最优量化等级和前一宏块的最优编码比特数;
模式选择模块,用于测试编码模式,选择最优编码模式,所述编码模式包括但不限于基于特殊方向预测编码模式、mpp编码模式和mppf编码模式;
熵编码模块,用于利用所述最优编码模式进行熵编码,输出最优编码模式对应的码流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410220796.5A CN118101957A (zh) | 2024-02-28 | 2024-02-28 | 一种高性能渲染子像素图像压缩方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410220796.5A CN118101957A (zh) | 2024-02-28 | 2024-02-28 | 一种高性能渲染子像素图像压缩方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101957A true CN118101957A (zh) | 2024-05-28 |
Family
ID=91161103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410220796.5A Pending CN118101957A (zh) | 2024-02-28 | 2024-02-28 | 一种高性能渲染子像素图像压缩方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118101957A (zh) |
-
2024
- 2024-02-28 CN CN202410220796.5A patent/CN118101957A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1284355C (zh) | 视频图象的高精度编码和解码 | |
US20110033127A1 (en) | Prediction-Based Image Processing | |
EP3706106A1 (en) | Method for compressing gray scale compensation table of oled display panel | |
US20060233446A1 (en) | Image signal processing apparatus, camera system and image signal processing method | |
CN101142821A (zh) | 新压缩格式和用其在帧存储器中暂存图像数据的设备 | |
JP2021516016A (ja) | 変換領域における残差符号予測のための方法および装置 | |
CN109618157A (zh) | 一种视频显示流压缩编码的硬件实现系统及方法 | |
US20060232451A1 (en) | Image signal processing apparatus, camera system and image signal processing method | |
US10666292B2 (en) | Compressing method of a grayscale compensation table of an OLED display panel | |
JP6661285B2 (ja) | ディスプレイパネルと、ディスプレイパネルのピクセル輝度の補償方法およびピクセルパラメータを補償するための方法 | |
CN107105208A (zh) | 一种Bayer图像的无损编码与解码方法 | |
CN109889852B (zh) | 一种基于邻近值的hevc帧内编码优化方法 | |
US11483585B2 (en) | Electronic apparatus and controlling method thereof | |
CN108289223B (zh) | 一种用于液晶屏过驱动装置中的图像压缩方法及装置 | |
US20140010445A1 (en) | System And Method For Image Compression | |
US7860322B2 (en) | Display driving apparatus and method and medium for implementing the display driving method | |
CN114120915A (zh) | 数据压缩方法和装置、数据解压方法和装置 | |
CN103391437B (zh) | 一种高动态图像视觉无损压缩的方法及装置 | |
CN101406034B (zh) | 使用限定符水印的压缩方案及使用该压缩方案在帧存储器中临时存储图像数据的装置 | |
CN118101957A (zh) | 一种高性能渲染子像素图像压缩方法及装置 | |
KR20180026360A (ko) | 비트율 제어 방법 및 이의 장치 | |
CN109474825B (zh) | 一种脉冲序列压缩方法及系统 | |
US20080056585A1 (en) | Image processing method for facilitating data transmission | |
US11140393B1 (en) | Display device, encoder with adaptive quantization parameter and image processing method | |
JP2008079224A (ja) | 画像データ処理システムおよび画像データ処理方法 |
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 |