CN112887725B - 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质 - Google Patents

参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质 Download PDF

Info

Publication number
CN112887725B
CN112887725B CN202110066419.7A CN202110066419A CN112887725B CN 112887725 B CN112887725 B CN 112887725B CN 202110066419 A CN202110066419 A CN 202110066419A CN 112887725 B CN112887725 B CN 112887725B
Authority
CN
China
Prior art keywords
bit number
pixels
line
macro block
code rate
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
Application number
CN202110066419.7A
Other languages
English (en)
Other versions
CN112887725A (zh
Inventor
赵启明
汪斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN202110066419.7A priority Critical patent/CN112887725B/zh
Publication of CN112887725A publication Critical patent/CN112887725A/zh
Application granted granted Critical
Publication of CN112887725B publication Critical patent/CN112887725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/182Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy 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

本发明提供一种参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质,该方法包括对每一行像素进行行目标比特数的冒险分配,获得每一行像素的每一颜色分量的行目标比特数;对每一宏块进行宏块目标比特数的冒险分配,获得每一宏块的宏块目标比特数;对宏块进行分析并编码;对每一行像素进行行目标比特数的冒险分配包括:计算每行像素的最低编码比特数,计算每行像素的可冒险码率,对每行像素的可冒险码率进行超前分配,计算每行像素的冒险比特数,将每行像素的最低编码比特数与该行像素的冒险比特数之和作为该行像素的目标比特数。本发明还提供实现上述方法的计算机装置及计算机可读存储介质。本发明可以容易的通过硬件实现参考帧的压缩。

Description

参考帧缓存数据压缩方法、计算机装置及计算机可读存储 介质
技术领域
本发明涉及图像编解码的技术领域,具体地,是一种参考帧缓存数据压缩方法以及实现这种方法的计算机装置、计算机可读存储介质。
背景技术
随着图像的清晰度越来越高,一帧图像的数据量也越来越大。由CMOS或者CCD等图像传感器将捕捉到的光源信号转化为数字信号的原始数据被称为RAW数据,针对RAW数据处理过程中,需要缓存一帧图像的数据作为后续处理的参考帧,由于参考帧的数据量比较大并且需要多次读写,所以通过硬件对图像数据进行处理的过程中,参考帧不仅占用了大量的存储空间,而且读写过程也浪费了巨大的系统带宽,导致图像处理的硬件实现的成本加大,性能也难以保证。因此,为了减少图像数据处理过程中硬件的内存占用同时降低系统总线的读写带宽,需要对参考帧进行压缩,参考帧压缩技术成为图像处理技术的重点技术。
参考帧压缩技术主要分为两种:无损压缩技术和有损压缩技术,相比于无损压缩技术,有损压缩技术不仅可以起到降低功耗和减少带宽的作用,而且可以大幅减少参考帧缓存的内存占用。公开号为CN108063947A的中国发明专利申请公开了一种对参考帧进行无损压缩的方法,具体的,对参考帧分割成多个数据块,对每一个数据块分别计算各种预测模式的压缩率,并选取压缩率最高的预测模式进行压缩。而公开号为CN108810556A的中国发明专利申请公开了一种压缩参考帧的方法,该方法对参考帧的数据进行分块压缩,为每个压缩块灵活选择预测方法以及熵编码方法。
但是,现有的参考帧压缩技术存在以下缺陷:首先,预测方式的复杂度高,单一的预测模式难以适应所有的图像内容,码率控制过程计算复杂度高,不利于通过硬件实现参考帧的压缩;其次,在低成本的硬件实现中,有损压缩方法的压缩倍率太低,导致压缩后的数据量仍较大;最后,压缩后的数据在视频传输时会将压缩误差放大,难以有效的将压缩效果稳定下来。
发明内容
本发明的第一目的是提供一种成本低、容易通过硬件实现的参考帧缓存数据压缩方法。
本发明的第二目的是提供一种实现上述参考帧缓存数据压缩方法的计算机装置。
本发明的第三目的是提供一种实现上述参考帧缓存数据压缩方法的计算机可读存储介质。
为实现本发明的第一目的,本发明提供的参考帧缓存数据压缩方法包括获取初始图像,按照像素的颜色划分宏块;并且,对每一行像素进行行目标比特数的冒险分配,获得每一行像素的每一颜色分量的行目标比特数;并对每一宏块进行宏块目标比特数的冒险分配,获得每一宏块的宏块目标比特数;对宏块进行分析并对宏块进行编码;其中,对每一行像素进行行目标比特数的冒险分配包括:计算每行像素的最低编码比特数,并计算每行像素的可冒险码率,对每行像素的可冒险码率进行超前分配,计算每行像素的冒险比特数,将每行像素的最低编码比特数与该行像素的冒险比特数之和作为该行像素的目标比特数;其中,对每行像素的可冒险码率进行超前分配包括:将该行像素的可冒险码率除以剩余行数的最大的2的指数幂。
由上述方案可见,在对每行像素的可冒险码率进行超前分配时,是通过将该行像素的可冒险码率除以剩余行数的最大的2的指数幂实现的,由于硬件实现时是通过将数值向右移位实现,也就是避免采用除法的方式进行计算,通过硬件可以非常简单实现,从而降低参考帧的压缩成本。
一个优选的方案是,对每一宏块进行宏块目标比特数的冒险分配包括:计算每一宏块的最低编码比特数,并计算每一宏块的可冒险码率,对每一宏块的可冒险码率进行超前分配,计算每一宏块的冒险比特数,将每一宏块的最低编码比特数与该宏块的冒险比特数之和作为该宏块的目标比特数;其中,对每宏块的可冒险码率进行超前分配包括:将该宏块的可冒险码率除以剩余宏块数的最大的2的指数幂。
由此可见,对宏块进行处理时,采用与一行像素相同的方式进行处理,即对每一个宏块的可冒险码率进行超前分配也是可以通过数据的移位实现,大大降低了通过硬件实现对每一宏块的目标比特数的计算的难度。
进一步的方案是,将该行像素的可冒险码率除以剩余行数的最大的2的指数幂包括:将该行像素的可冒险码率的数值向右移位;将该宏块的可冒险码率除以剩余宏块数的最大的2的指数幂包括:将该宏块的可冒险码率的数值向右移位。
可见,不管是行像素超前分配,还是宏块的超前分配,都是通过数值的移位实现,从而避免采用除法计算,硬件实现非常简单,使得参考帧的压缩能够容易的通过硬件实现。
更进一步的方案是,对宏块进行分析前,还执行:通过相同颜色通道内上一行像素对应位置的宏块的实际压缩比特数与压缩误差对当前宏块的目标比特数进行修正。
由此可见,通过对目标比特数进行修正,使得压缩后的参考帧压缩误差更少,可以提高压缩后的数据的准确性与稳定性。
更优选的,对当前宏块的目标比特数进行修正包括:如果当前宏块的目标比特数大于实际压缩比特数加上该宏块修正阈值,且压缩误差小于限定值,则对当前宏块的目标比特数进行负修正;如果当前宏块的目标比特数小于实际压缩比特数减去该宏块修正阈值,且压缩误差大于限定值,则对当前宏块的目标比特数进行正修正。
可见,通过上述修正计算,可以使得宏块的目标比特数更加准确,在满足压缩比的前提下,能够确保压缩质量。
一个优选的方案是,对宏块进行分析包括:根据压缩率确定起始量化参数,从起始量化参数到最大比特深度遍历每一量化参数;在每一量化参数下,分别计算多种编码模式的编码比特数,以满足宏块目标比特数的最小量化参数以及对应的编码模式作为该宏块的量化参数及编码模式。
由此可见,通过遍历每一量化参数并使用满足要求的最小量化参数以及对应的编码模式确定宏块的量化参数以及编码模式,能够使得压缩后的参考帧数据量最少。
更进一步的方案是,计算多种编码模式的编码比特数时,每一种编码模式对应有预设的预测模式。
更进一步的方案是,编码模式包括哥伦布编码、残差直传编码、最值直传编码以及原始点直传编码,其中,最值直传编码和原始点直传编码的编码比特数增加惩罚阈值。
由此可见,通过增加惩罚阈值,以便于优先采用哥伦布编码或者残差直传编码模式,也就是优选采用自适应预测模式,由于自适应预测模式具有较好的压缩质量,通过上述手段能够提高解码后的图像质量。
为实现上述的第二目的,本发明提供的计算机装置包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述参考帧缓存数据压缩方法的各个步骤。
为实现上述的第三目的,本发明提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述参考帧缓存数据压缩方法的各个步骤。
附图说明
图1是RAW图像的像素点的示意图。
图2是本发明参考帧缓存数据压缩方法实施例的流程图。
图3是本发明参考帧缓存数据压缩方法实施例中宏块分析的流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明的参考帧缓存数据压缩方法应用在智能电子设备上,优选的,智能电子设备设置有摄像装置,如摄像头等,摄像装置具有诸如CCD、CMOS等图像传感器,智能电子设备利用摄像装置获取初始图像,本方法是对图像传感器获取的初始图像的参考帧进行压缩。优选的,智能电子设备设置有处理器以及存储器,存储器上存储有计算机程序,处理器通过执行该计算机程序实现上述的参考帧缓存数据压缩方法。
参考帧缓存数据压缩方法实施例:
本实施例是针对图像传感器获取的初始图像作为参考帧时进行有损压缩的方法,具体的,本实施例主要针对RAW图像数据进行有损压缩。参见图1,每一帧RAW图像包含有多个像素,多个像素排列成多行多列,每一个像素具有一种颜色,例如R为红色,Gb、Gr为绿色,B为蓝色,根据各种颜色像素的排列方式,RAW图像可以分为BGGR、RGGB、GBRG、GRBG等多种格式的图像数据。本实施例可以针对多种格式的RAW图像数据进行处理,并且采用分通道的处理方式,一种颜色的像素为一个通道的数据,本实施例针对每一种颜色的像素分量采用独立的码率控制和压缩。
参见图2,本实施例首先执行步骤S1,在获取初始图像后,将RAW图像的像素按照颜色通道划分宏块。例如,一个宏块包括有相同颜色通道的多个像素,优选的,每一个宏块包括32个像素或者48个像素,且多个像素均位于同一行,因此,一个宏块可以包括32×1或者48×1的像素。
然后,执行步骤S2,根据压缩率以及最低编码比特数对图像中每一行像素进行行目标比特数的冒险分配。本实施例中,冒险分配是指根据预先设定的压缩率确定一行像素最大的比特数以后,并且根据最低编码比特数确定该行像素最小的比特数后,以两者的差值作为冒险分配的比特数,也就是每一行像素还可以被分配的比特数。
接着,执行步骤S3,对一行像素中的不同颜色的像素分量进行独立的宏块划分,计算每个宏块的目标比特数,并且对每一个宏块进行目标比特数的冒险分配。
然后,执行步骤S4,进行宏块分析,具体的,设定初始的量化参数,并且遍历每一个量化参数,在每个量化参数中遍历预设数量的预测和熵编码模式,选择满足目标比特数要求的量化参数以及预测和熵编码模式,并记录每个宏块的实际压缩比特数和压缩损失作为下一行该通道的参考数据。
然后,执行步骤S5,进行宏块编码,并执行步骤S6,判断一行像素内的两个像素分量的所有宏块是否都遍历完毕,如是,则进行下一行的目标比特数分配,并执行步骤S7,判断是否所有行的像素都遍历完毕,如是,则结束流程。如果步骤S6判断结果是否,则返回步骤S3,对下一宏块进行比特数的分配。如果步骤S7的判断结果为否,则返回执行步骤S2,对下一行的像素进行比特数的冒险分配,直到图像中所有行的像素均完成比特数的分配。
下面对上述各个步骤进行详细的说明。在步骤S1中,按照RAW图像的各像素的颜色划分为多个宏块,由于一行像素只有2种颜色的像素,因此,一行像素划分的宏块包括2种颜色的宏块,每一个宏块包含32个或者48个像素,且同一个宏块内的所有像素均为同一颜色的像素。
接着,执行本实施例的主体流程,主体流程分为码率控制、宏块分析以及宏块编码,其中,步骤S2与步骤S3为码率控制的流程,其中,步骤S2为行级码率控制,步骤S3为宏块级码率控制。
具体的,在步骤S2中,对每一行像素进行目标比特数的冒险分配时,首先根据整帧图像的压缩比(cmp_ratio)以及宏块最低编码比特数(mb_min_bits)计算每行像素的最低编码比特数(line_min_bits),其中,整帧图像的压缩比是图像数据压缩前后的数据量的比值,是一个预先设定的数值,根据整帧图像的压缩比可以计算出各宏块最低编码比特数,而每行像素的最低编码比特数是一行像素中多个宏块的最低编码比特数的总和。
然后,将整帧图像压缩比特数(frm_bits)与所有行像素的最低编码比特数(line_min_bits*frm_hgt)的差值作为行级可冒险码率(line_adv_bits)。其中,整帧图像压缩比特数是根据图像的压缩比计算得到的压缩后的图像比特数,所有行像素的最低编码比特数是图像各行像素的最低编码比特数的总和。通常,整帧图像压缩比特数是图像压缩后比特数的上限值,所有行像素的最低编码比特数是计算获得的图像压缩后的比特数的下限制,因此,行级可冒险码率实际上是图像压缩后上限值与下限制之间的差值,也就是在确定所有行像素的最低编码比特数以后,行级可冒险码率就是所有行像素的最低编码比特数的基础上还可以增加的比特数。由于所有行像素的最低编码比特数是图像压缩后的下限阈值,如果按照所有行像素的最低编码比特数进行压缩,图像压缩过于厉害,往往导致解码后的图像质量下降,因此,本实施例充分利用整帧图像压缩比特数所剩余的比特数,适当的为每一行像素分别一定数量的比特数,从而避免图像压缩过于厉害而导致解码后的图像质量过低的情况发生。
接着,需要对行级可冒险码率进行超前分配,具体的,将行级可冒险码率除以剩余行数的最大的2的指数幂,获得的数值为行级冒险比特数。例如,行级可冒险码率为100,剩余行数为20,而20以内的数值中,2的指数幂最大值为16,则行级可冒险码率进行超前分配就是将100除以16,获得的整数值就是行级冒险比特数。
然后,将一行像素的最低编码比特数与行级冒险比特数之和作为当前行的目标比特数(line_tar_bits),也就是当前行的目标比特数可以采用下面的公式计算:
line_tar_bits=line_min_bits+line_adv_bits/line_log_num(式1)
其中line_log_num表示剩余行数的最大的2的指数幂。由于传统的参考帧压缩方法大多是采用平均分配码率的方法进行计算,即计算整帧图像压缩比特数与所有行像素的最低编码比特数以后,将两者的差值除以剩余行数,获得的数值直接作为该行像素的行级冒险比特数。然而,由于剩余行数往往不是2的指数幂,除法的计算较为复杂。并且,每一行需要分配的比特数都是整数,因此,对每一行都需要进行一次计算,将上一行使用的比特数后的剩余值作为被除数,因此,被除数不是一个固定值,导致每一次计算行级冒险比特数时,都需要执行一次除法计算,且每次除法计算的被除数、除数都不相同,计算量非常大,不利于硬件实现。
而本实施例中,计算行级冒险比特数时,除数并不是剩余行数,而是剩余行数的最大的2的指数幂,因此,只需要执行向右移位的计算,例如,二进制数的数值向右移位1位,就是执行除以2的计算,二进制数的数值向右移位2位,就是执行除以4的计算,二进制数的数值向右移位3位,就是执行除以8的计算,以此类推。因此,本实施例并不需要执行除法的计算,而是执行移位的操作。由于移位的操作非常简单,只需要通过简单的指令即可以完成,大大降低了硬件实现的难度,且计算效率大幅度提高。
最后,将同一行像素的各颜色分量的码率控制参数相加,即将同一行像素的2种颜色分量的行级目标比特数相加,得到该行像素的总目标比特数。
步骤S3中,在计算得到每种颜色像素分量的行目标比特数之后,可以确定每个颜色通道的宏块最低编码比特数(mb_min_bits),并且将该行像素的行级目标比特数和该行像素的最低编码比特数之差作为该行像素中两个颜色通道的宏块级可冒险码率(mb_adv_bits)。
接着,需要对宏块级可冒险码率进行超前分配,也就是将宏块级可冒险码率即除以剩余宏块数的最大的2的指数幂,获得宏块冒险比特数。然后,将宏块最低编码比特数与宏块冒险比特数之和作为当前宏块的目标比特数(mb_tar_bits),因此,宏块的目标比特数可以采用下面的公式计算:
mb_tar_bits=mb_min_bits+mb_adv_bits/mb_log_num(式2)
其中,mb_log_num表示剩余宏块数的最大的2的指数幂。由于传统的参考帧压缩方法大多是采用平均分配码率的方法进行计算,即使用除法的方式计算宏块级可冒险码率,但由于作为除数的剩余宏块数往往不是2的指数幂,且作为被除数的宏块级可冒险码率还是变量,因此导致除法计算非常复杂,计算量非常大,不利于硬件实现。
而本实施例则是采用移位的方式实现除以2的指数幂的计算,例如通过向右位移1位或者2位等,实现除以2、除以4的计算,不需要进行真正的除法计算,能够大大提升计算效率,并且有利于硬件的实现。
在计算各个宏块的目标比特数后,还对当前宏块的目标比特数进行修正,以减少压缩误差,提高解码后的图像的质量。本实施例通过同一颜色通道内上一行像素对应位置的宏块的实际压缩比特数(mb_bits)和压缩误差(mb_sad)对当前宏块的目标比特数进行修正。其中,压缩误差是原始图像与经过压缩后同一像素的像素值的差值。
具体的,如果当前宏块的目标比特数(mb_tar_bits)大于实际压缩比特数加上宏块的修正阈值(mb_thr),且压缩误差小于限定值,则对当前宏块的目标比特数进行负修正,也就是将当前宏块的目标比特数减去修正阈值;如果当前宏块的目标比特数(mb_tar_bits)小于实际压缩比特数减去宏块修正阈值(mb_thr),且压缩误差大于限定值,则对当前宏块的目标比特数进行正修正,也就是将当前宏块的目标比特数加上修正阈值。其中,宏块的修正阈值、限定值都是预先设定的数值。
由于传统的码率控制方法并未使用上下文之间的信息进行宏块目标比特数的修正,因此,相比起传统的码率控制方法,本实施例在码率分配时提供了上下文之间的信息参考,使得码率分配更加合理和高效,从而确保解码后的图像质量,图像压缩效果更佳。
步骤S4对宏块分析的过程是查找最合适的量化参数与预测、编码模式的过程,具体的,参见图3,首先执行步骤S11,获取初始量化参数。具体的,根据图像的压缩率(cmp_ratio)确定起始量化参数(start_qp),本实施例中,量化参数是数值向右移位的数量,例如压缩比为1时,量化参数应该为0,表示数值向右移位0;如果压缩比就为2时,量化参数应该为1,表示数值向右移位1;如果压缩比就为4时,量化参数应该为2,表示数值向右移位2,以此类推。
然后,从起始量化参数开始到最大比特深度(max_qp)遍历每个量化参数(QP)。最大比特深度是每一个像素的比特数。在每一个量化参数下,遍历预设的多个预测和熵编码模式,本实施例采用四种预测和熵编码模式,分别为自适应预测+哥伦布编码、自适应预测+残差直传编码、最值直传预测+最值直传编码、原始点直传预测+原始点直传编码,因此,分别执行步骤S12至步骤S15。步骤S12中,采用自适应预测+哥伦布编码模式进行预测与熵编码,并且获得哥伦布编码比特数;步骤S13中,采用自适应预测+残差直传编码模式进行预测与熵编码,并且获得残差直传编码比特数;步骤S14中,采用最值直传预测+最值直传编码模式进行预测与熵编码,并且获得最值直传编码比特数;步骤S15中,采用原始点直传预测+原始点直传编码模式进行预测与熵编码,并且获得原始点直传编码比特数。需要说明的是,步骤S12至步骤S15的执行顺序可以任意更换,或者同时执行。
由于自适应预测具有较好的图像压缩质量,因此,本实施例优选使用自适应预测+哥伦布编码模式或者自适应预测+残差直传编码,为此,给最值直传编码模式和原始点直传编码模式增加惩罚阈值,使得在选择最优编码模式时优先选择自适应预测+哥伦布编码模式或者自适应预测+残差直传编码模式。下面分别介绍四种预测和熵编码模式的具体步骤。
自适应预测+哥伦布编码的具体步骤包括:首先,针对当前宏块中的每个像素,在其周围的重建像素中,自适应的选取相关性最大的像素作为当前像素的参考像素,计算得到预测残差后,对预测残差进行比特位裁剪,以达到量化的目的;然后,对于量化后的预测残差,经过映射去除其符号位,变为恒正数,得到量化残差;最后,将量化残差采用指数哥伦布进行编码,其中当前量化残差的k值选取根据上一个量化残差的大小自适应进行变化。其中,比特位裁剪是将预测残差进行向右移位的操作,即裁剪预设数量的比特数,当前量化残差的k值是哥伦布编码的k值。
自适应预测+直传编码的具体步骤包括:首先,针对当前宏块中的每个像素,在其周围的重建像素中,自适应的选取相关性最大的像素作为当前像素的参考像素,计算得到预测残差后,对预测残差进行比特位裁剪,以达到量化的目的;然后,对于量化后的预测残差,经过映射去除其符号位,变为恒正数,得到量化残差;最后,对该子块中所有量化残差,计算其中最大值,得到能够表示该最大值的比特数作为直传比特数,对该子块中所有量化残差采用直传比特数作为码长进行编码;同时将该直传比特数值写入码流中。
原始点直传编码模式的具体步骤包括:首先,针对当前宏块中的每个像素,进行四舍五入后,直接进行比特位裁剪,以达到量化的目的;然后,将量化后的像素,作为量化残差;最后,对该子块中所有量化残差,采用像素比特深度减去量化裁剪位数作为码长,进行编码。
最值直传预测编码模式的具体步骤包括:首先,针对当前宏块中的每个像素,进行四舍五入后,直接进行比特位裁剪,以达到量化的目的;然后,将量化后的像素,作为量化残差;最后,对该子块中所有量化残差,计算其中最大值,得到能够表示该最大值的比特数作为直传比特数,对该子块中所有量化残差采用直传比特数作为码长进行编码;同时将该直传比特数值写入码流中。
在进行四种预测与熵编码模式计算各种编码模式的比特数后,执行步骤S16,判断是否达到最大比特深度,如果没有到达,则执行步骤S18,获取下一量化参数,即将量化参数的数值增加1个单位,并且返回执行步骤S12,即针对下一量化参数,再一次进行四种预测模式与编码模式的计算,并记录当前量化参数下四种预测模式与编码模式计算获得的比特数。
如果到达最大量化参数,则执行步骤S17,获取满足宏块目标比特数的最小量化参数以及其对应的预测和熵编码模式作为该宏块最终的量化参数、预测和熵编码模式。至此,宏块分析完毕。
步骤S5是需要对宏块进行编码,也就是根据步骤S4的宏块分析步骤得到的量化参数、预测和熵编码模式,对当前宏块进行编码,并记录下实际编码比特和压缩误差,以供后续分析使用。
由于本实施例通过合理的码率分配以及多模式预测方式,在保证了图像质量的前提下大幅提升了压缩倍率,并且,本实施例根据冒险码率分配的特性,设计了使用移位运算代替动态变量除法运算的机制,大大降低了硬件实现的复杂度,有利于参考帧的压缩技术通过硬件实现。
计算机装置实施例:
本实施例的计算机装置可以是智能电子设备,该计算机装置包括有处理器、存储器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述参考帧缓存数据压缩方法的各个步骤。当然,智能电子设备还包括摄像装置,用于获取初始图像。
例如,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明的各个模块。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。
本发明所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
计算机可读存储介质实施例:
上述计算机装置所存储的计算机程序如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述参考帧缓存数据压缩方法的各个步骤。
其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后需要强调的是,本发明不限于上述实施方式,例如预测模式与编码模式选择的变化,或者RAW图像类型的变化等,这些改变也应该包括在本发明权利要求的保护范围内。

Claims (9)

1.一种参考帧缓存数据压缩方法,包括:
获取初始图像,按照像素的颜色划分宏块;
其特征在于:
对每一行像素进行行目标比特数的冒险分配,获得每一行像素的每一颜色分量的行目标比特数;并对每一宏块进行宏块目标比特数的冒险分配,获得每一宏块的宏块目标比特数;
对宏块进行分析并对宏块进行编码;
其中,对每一行像素进行行目标比特数的冒险分配包括:计算每行像素的最低编码比特数,并计算每行像素的可冒险码率,对每行像素的可冒险码率进行超前分配,计算每行像素的冒险比特数,将每行像素的最低编码比特数与该行像素的冒险比特数之和作为该行像素的目标比特数;
其中,对每行像素的可冒险码率进行超前分配包括:将该行像素的可冒险码率除以小于或等于剩余行数的最大的2的指数幂;
对每一宏块进行宏块目标比特数的冒险分配包括:根据整帧图像的压缩比以及宏块最低编码比特数计算每行像素的最低编码比特数,整帧图像的压缩比是图像数据压缩前后的数据量的比值,每行像素的最低编码比特数是一行像素中多个宏块的最低编码比特数的总和,并计算每一宏块的可冒险码率,对每一宏块的可冒险码率进行超前分配,计算每一宏块的冒险比特数,将每一宏块的最低编码比特数与该宏块的冒险比特数之和作为该宏块的目标比特数;
其中,对每宏块的可冒险码率进行超前分配包括:将该宏块的可冒险码率除以小于或等于剩余宏块数的最大的2的指数幂;
一行像素的可冒险码率是整帧图像压缩比特数与所有行像素的最低编码比特数的差值;
一行像素中两个颜色通道的宏块级可冒险码率是一行像素的行级目标比特数和该行像素的最低编码比特数之差;
一行像素的冒险比特数是整帧图像压缩比特数与所有行像素的最低编码比特数的差值除以小于或等于剩余行数的最大的2的指数幂;
一个宏块的冒险比特数是该宏块的可冒险码率除以小于或等于剩余宏块数的最大的2的指数幂的数值。
2.根据权利要求1所述的参考帧缓存数据压缩方法,其特征在于:
将该行像素的可冒险码率除以小于或等于剩余行数的最大的2的指数幂包括:将该行像素的可冒险码率的数值向右移位;
将该宏块的可冒险码率除以小于或等于剩余宏块数的最大的2的指数幂包括:将该宏块的可冒险码率的数值向右移位。
3.根据权利要求1或2所述的参考帧缓存数据压缩方法,其特征在于:
对宏块进行分析前,还执行:通过相同颜色通道内上一行像素对应位置的宏块的实际压缩比特数与压缩误差对当前宏块的目标比特数进行修正。
4.根据权利要求3所述的参考帧缓存数据压缩方法,其特征在于:
对当前宏块的目标比特数进行修正包括:
如果当前宏块的目标比特数大于实际压缩比特数加上该宏块修正阈值,且所述压缩误差小于限定值,则对当前宏块的目标比特数进行负修正;
如果当前宏块的目标比特数小于实际压缩比特数减去该宏块修正阈值,且所述压缩误差大于限定值,则对当前宏块的目标比特数进行正修正。
5.根据权利要求1或2所述的参考帧缓存数据压缩方法,其特征在于:
对宏块进行分析包括:
根据压缩率确定起始量化参数,从所述起始量化参数到最大比特深度遍历每一量化参数;
在每一所述量化参数下,分别计算多种编码模式的编码比特数,以满足宏块目标比特数的最小量化参数以及对应的编码模式作为该宏块的量化参数及编码模式。
6.根据权利要求5所述的参考帧缓存数据压缩方法,其特征在于:
计算多种编码模式的编码比特数时,每一种编码模式对应有预设的预测模式。
7.根据权利要求5所述的参考帧缓存数据压缩方法,其特征在于:
所述编码模式包括哥伦布编码、残差直传编码、最值直传编码以及原始点直传编码,其中,最值直传编码和原始点直传编码的编码比特数增加惩罚阈值。
8.一种计算机装置,其特征在于,包括处理器以及存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的参考帧缓存数据压缩方法的各个步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的参考帧缓存数据压缩方法的各个步骤。
CN202110066419.7A 2021-01-19 2021-01-19 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质 Active CN112887725B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110066419.7A CN112887725B (zh) 2021-01-19 2021-01-19 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110066419.7A CN112887725B (zh) 2021-01-19 2021-01-19 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112887725A CN112887725A (zh) 2021-06-01
CN112887725B true CN112887725B (zh) 2022-10-25

Family

ID=76049338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110066419.7A Active CN112887725B (zh) 2021-01-19 2021-01-19 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112887725B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114554204A (zh) * 2022-01-20 2022-05-27 珠海全志科技股份有限公司 一种编码图像画质调节方法及装置
CN116506617B (zh) * 2023-06-28 2023-09-12 鹏城实验室 图像浅压缩码率控制方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127909B (zh) * 2007-09-29 2010-07-07 华为技术有限公司 一种图像码率控制方法及装置
CN103024387B (zh) * 2012-12-17 2015-12-09 宁波大学 一种基于感知的多视点视频码率控制方法
CN104079933B (zh) * 2014-07-09 2018-07-27 上海君观信息技术有限公司 适用于hevc的低延时码率控制方法及比特数分配方法
CN106231214B (zh) * 2016-08-11 2020-04-21 复旦大学 基于可调宏块的高速cmos传感器图像近似无损压缩方法
CN107995494B (zh) * 2017-12-12 2019-11-22 珠海全志科技股份有限公司 视频图像数据的压缩方法与解压方法、计算机装置、计算机可读存储介质
CN108200429B (zh) * 2017-12-28 2020-08-25 上海通途半导体科技有限公司 一种Bayer图像压缩方法及装置
CN110267041B (zh) * 2019-06-28 2021-11-09 Oppo广东移动通信有限公司 图像编码方法、装置、电子设备和计算机可读存储介质

Also Published As

Publication number Publication date
CN112887725A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
KR101241971B1 (ko) 화상 신호 처리장치, 카메라 시스템, 및 화상 신호처리방법
CN112887725B (zh) 参考帧缓存数据压缩方法、计算机装置及计算机可读存储介质
US10205946B2 (en) Image processing apparatus and image processing method
CN101107862B (zh) 编码装置及具备编码装置的动态图像记录系统
JP4440308B2 (ja) 画像圧縮におけるレート制御方法及びシステム
TW202110181A (zh) 濾波器
CN109756736B (zh) Sao模式决策方法、装置、电子设备及可读存储介质
JP2017055267A (ja) 画像符号化装置、画像処理装置、画像符号化方法
CN107846589B (zh) 一种基于局部动态量化的图像压缩方法
CN106937121A (zh) 图像解码和编码方法、解码和编码装置、解码器及编码器
US10785493B2 (en) Method of compressing and decompressing image data
WO2021238605A1 (zh) 视频编码、解码方法、装置、电子设备及存储介质
CN113099221A (zh) 跨分量样点自适应补偿方法、编码方法及相关装置
CN110213576B (zh) 视频编码方法、视频编码装置、电子设备及存储介质
CN110213595B (zh) 基于帧内预测的编码方法、图像处理设备和存储装置
CN115474062B (zh) 一种提高jpeg压缩质量的方法、系统、芯片以及电子设备
US7477787B2 (en) Image compression device and method
CN116982262A (zh) 视频编码中依赖性量化的状态转换
CN113115041A (zh) 支持alpha通道的无损图片压缩方法、装置及介质
CN113473150B (zh) 一种图像处理方法、装置以及计算机可读存储装置
US10893297B2 (en) Processing image data using tiered bit-layers
JP7495457B2 (ja) 適応色空間変換の符号化
US11515961B2 (en) Encoding data arrays
WO2023083239A1 (zh) 图像解码方法及装置、图像编码方法及装置
TWI832661B (zh) 圖像編解碼的方法、裝置及存儲介質

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant