CN110381315B - 码率控制方法及装置 - Google Patents

码率控制方法及装置 Download PDF

Info

Publication number
CN110381315B
CN110381315B CN201910584446.6A CN201910584446A CN110381315B CN 110381315 B CN110381315 B CN 110381315B CN 201910584446 A CN201910584446 A CN 201910584446A CN 110381315 B CN110381315 B CN 110381315B
Authority
CN
China
Prior art keywords
macro block
value
macroblock
frame
pixels
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
CN201910584446.6A
Other languages
English (en)
Other versions
CN110381315A (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.)
Xian Wanxiang Electronics Technology Co Ltd
Original Assignee
Xian Wanxiang Electronics 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 Xian Wanxiang Electronics Technology Co Ltd filed Critical Xian Wanxiang Electronics Technology Co Ltd
Priority to CN201910584446.6A priority Critical patent/CN110381315B/zh
Publication of CN110381315A publication Critical patent/CN110381315A/zh
Application granted granted Critical
Publication of CN110381315B publication Critical patent/CN110381315B/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/102Methods 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/124Quantisation
    • 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/134Methods 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/146Data rate or code amount at the encoder output
    • 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/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开提供一种码率控制方法及装置,涉及计算机图像传输领域,所述方法包括:将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,所述宏块特征包括基本像素数nbc和高梯度像素数nhg;根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q并将Δ1和Q做为该帧编码的量化参数。本公开能够解决现有码率控制中计算复杂度过高的问题。

Description

码率控制方法及装置
技术领域
本公开涉及计算机图像传输领域,尤其涉及码率控制方法及装置。
背景技术
在视频压缩传输领域,以直播和视频会议为代表的实时视频传输应用场景正在变得越来越重要,随之而来的是2K、4K等高清画质的视频源越来越多,但是网络带宽的发展远远跟不上实际应用的要求,导致整个压缩传输的效果不好。在视频压缩传输过程中,编码器产生的码流长度直接影响解码恢复的图像质量。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。码率控制技术是影响视频编码效果的重要因素之一,其主要任务是有效的控制视频编码器,使其满足输出码流的大小满足传输信道实际带宽的限制。
目前主流的视频编解码协议中都有自己的码率控制算法,比如MPEG-2中的TM5算法和H.263中的TMN8算法。H.264由于在编码算法中引入了以往标准没有的率失真优化编码(Rate-Distortion Optimization,RDO)技术,其码率控制技术变得更为复杂。因此目前基于H264的码率控制方案,存在的问题是计算复杂过高,导致计算最优量化参数的时间过长,因此很难嵌入到实时系统中。
发明内容
本公开实施例提供一种码率控制方法及装置,能够解决现有码率控制中计算复杂度过高的问题。所述技术方案如下:
根据本公开实施例的第一方面,提供一种码率控制方法,该方法包括:将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,宏块特征包括基本像素数nbc和高梯度像素数nhg;根据得到的宏块特征,确定对应的宏块类型;其中宏块类型包括文字宏块和图片宏块;根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q并将Δ1和Q做为该帧编码的量化参数。
在一个实施例中,提取每一个宏块的宏块特征之前,该方法还包括:确定所述每一个宏块中的基本像素和高梯度像素。
在一个实施例中,确定所述每一个宏块中的基本像素包括:统计宏块内256个Y像素值统计得到像素值的分布直方图;根据统计结果选择频数最大的m个像素值作为基本色;将所述m个像素之外的其他像素与所述m个基本色做差并求差的绝对值;如果绝对值小于预设的基本像素阈值n,则标记所述像素为基本像素。
在一个实施例中,确定所述每一个宏块中的高梯度像素包括:当前像素与上下左右四个像素亮度值分别相减,到四个差值;若所述四个差值的绝对值中的任意一个大于预设的高梯度像素阈值T,确定所述当前像素为高梯度像素。
在一个实施例中,根据得到的宏块特征,确定对应的宏块类型包括:如果nbc>160且nhg<20,确定所述宏块是图片宏块;如果nbc>160且nhg>20,确定所述宏块是文字宏块;如果nbc<160且nhg<17,确定所述宏块是图片宏块;如果nbc<160且nhg>20,确定所述宏块是文字宏块。
在一个实施例中,根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q包括:
当文字宏块的数量Tcount小于1000时,预设公式为:
Figure BDA0002113971610000021
当文字宏块的数量Tcount不小于1000时,预设公式为:
Figure BDA0002113971610000022
其中,Rc是当前帧的码率,Tcount是当前帧中文字宏块的数量,Pcount是当前帧中图像宏块的数量,a、b、c、d、e、f为公式的预设参数,Ctext是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数nes(text),Cpicture为文字块复杂性度量,其值为图像宏块平均每宏块逃逸像素数nes(picture);
其中,Δ1取值范围(2~8),从2开始以步长为1递增取值,并计算Q的值,当Q的值在其范围(0.1~1.25)时,则选取当前的当前Δ1和Q的值做为该帧编码的量化参数。
在一个实施例中,该方法还包括对参数b和参数a的更新,其中参数b按照以下方式更新:
Figure BDA0002113971610000031
参数a按照以下方式更新:
Figure BDA0002113971610000032
其中,μ是线性组合的系数,Gtext,n是第n帧文字块实际编码产生的比特数,Rtext,n+1是第n+1帧分配的目标码率,Ctext,n是第n帧复杂性度量,bn是第n帧的参数b。
在一个实施例中,该方法还包括对参数β和参数
Figure BDA0002113971610000037
的更新,其中,参数β按照以下方式更新:
Figure BDA0002113971610000033
参数
Figure BDA0002113971610000039
按照以下方式更新:
Figure BDA0002113971610000034
其中,μ是线性组合的系数,Gpicture,n是第n帧文字块实际编码产生的比特数,Rpicture,n+1是第n+1帧分配的目标码率,Cpicture,n是第n帧复杂性度量,βn是第n帧的参数β。
在一个实施例中,该方法还包括,根据预先设定的当前缓冲区饱和度W计算当前码率Rc
Figure BDA0002113971610000035
其中,
Figure BDA0002113971610000036
Figure BDA0002113971610000041
W为当前的缓冲区饱和度,Wprev为之前的缓冲区饱和度,G为上一帧编码生成的比特数,R为当前帧编码信道可用带宽,F为帧率。
根据本公开实施例的第二方面,提供一种码率控制装置,该装置包括:
提取模块,被配置为将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,宏块特征包括基本像素数nbc和高梯度像素数nhg;第一确定模块,被配置为根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;选取模块,被配置为根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q并将Δ1和Q做为该帧编码的量化参数。
在一个实施例中,该装置还包括第二确定模块,被配置为:提取每一个宏块的宏块特征之前,确定所述每一个宏块中的基本像素和高梯度像素。
在一个实施例中,第二确定模块包括:
统计子模块,被配置为统计宏块内256个Y像素值统计得到像素值的分布直方图;选择子模块,被配置为根据统计结果选择频数最大的m个像素值作为基本色;绝对值子模块,被配置为将所述m个像素之外的其他像素与所述m个基本色做差并求差的绝对值;第一标记子模块,被配置为如果绝对值小于预设的基本像素阈值n,则标记所述像素为基本像素。
根据经验,一般的,m一般取4。
不属于基本像素的像素被称作逃逸像素。
在一个实施例中,第二确定模块包括:差值子模块,被配置为当前像素与上下左右四个像素亮度值分别相减,到四个差值;第二标记子模块,被配置为若所述四个差值的绝对值中的任意一个大于预设的高梯度像素阈值T,标记所述当前像素为高梯度像素。
在一个实施例中,第一确定模块具体被配置为:如果nbc>160且nhg<20,确定所述宏块是图片宏块;如果nbc>160且nhg>20,确定所述宏块是文字宏块;如果nbc<160且nhg<17,确定所述宏块是图片宏块;如果nbc<160且nhg>20,确定所述宏块是文字宏块。
在一个实施例中,所述选取模块具体被配置为:当所述文字宏块的数量Tcount小于1000时,所述预设公式为:
Figure BDA0002113971610000051
当所述文字宏块的数量Tcount不小于1000时,所述预设公式为:
Figure BDA0002113971610000052
其中,Rc是当前帧的码率,Tcount是当前帧中文字宏块的数量,Pcount是当前帧中图像宏块的数量,a、b、c、d、e、f为公式的预设参数,Ctext是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数nes(text),Cpicture为文字块复杂性度量,其值为图像宏块平均每宏块逃逸像素数nes(picture);其中,所述Δ1取值范围(2~8),从2开始以步长为1递增取值,并计算Q的值,当Q的值在其范围(0.1~1.25)时,则选取当前的当前Δ1和Q的值做为该帧编码的量化参数。
在一个实施例中,所述装置还包括第一更新模块,被配置为对参数b和参数a的更新,其中参数b按照以下方式更新:
Figure BDA0002113971610000053
参数a按照以下方式更新:
Figure BDA0002113971610000054
其中,μ是线性组合的系数,Gtext,n是第n帧文字块实际编码产生的比特数,Rtext,n+1是第n+1帧分配的目标码率,Ctext,n是第n帧复杂性度量,bn是第n帧的参数b。
在一个实施例中,所述装置还包括第二更新模块,被配置为对参数β和参数
Figure BDA0002113971610000055
的更新,其中,参数β按照以下方式更新:
Figure BDA0002113971610000061
参数
Figure BDA0002113971610000066
按照以下方式更新:
Figure BDA0002113971610000062
其中,μ是线性组合的系数,Gpicture,n是第n帧文字块实际编码产生的比特数,Rpicture,n+1是第n+1帧分配的目标码率,Cpicture,n是第n帧复杂性度量,βn是第n帧的参数β。
在一个实施例中,所述装置还包括码率计算模块,被配置为根据预先设定的当前缓冲区饱和度W计算当前码率Rc
Figure BDA0002113971610000063
其中,
Figure BDA0002113971610000064
Figure BDA0002113971610000065
W为当前的缓冲区饱和度,Wprev为之前的缓冲区饱和度,G为上一帧编码生成的比特数,R为当前帧编码信道可用带宽,F为帧率。
其中,设置
Figure BDA0002113971610000067
的目的是为了使码率在浮动较小,达到稳定码率的目的。Rc为分配给当前帧的码率,单位是比特。
本方案中的码率控制算法是基于图像内容进行量化参数的预测计算,根据图像内容和网络带宽,利用预测技术自适应调整量化参数,计算过程简单,计算复杂度低,便于实施,可以很好的嵌入到实时视频传输系统中。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开实施例提供的一种码率控制方法的流程图;
图2是本公开实施例提供的一种码率控制装置架构图;
图3是本公开实施例提供的一种码率控制装置架构图;
图4是本公开实施例提供的一种码率控制装置架构图;
图5是本公开实施例提供的一种码率控制装置架构图;
图6是本公开实施例提供的一种码率控制装置架构图;
图7是本公开实施例提供的一种码率控制装置架构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开实施例提供一种码率控制方法,如图1所示,该码率控制方法包括以下步骤:
步骤S10、将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,所述宏块特征包括基本像素数nbc和高梯度像素数nhg
YUV是编译颜色空间(color space)的种类,“Y”表示明亮度“U”和“V”则是色度、饱和度。一帧YUV图像分成16*16的像素宏块,对每一个宏块进行特征提取,如果不是YUV图像,则先转换成YUV格式。一共计算两个特征:基本像素数和高梯度像素数。由于人类视觉系统特性,对Y分量的敏感性远大于UV分量,因此在特征提取时我们也只考虑Y分量,而数字图像的Y分量像素值的取值区间是0~255。在一个实施例中,提取每一个宏块的宏块特征之前,所述方法还包括:确定所述每一个宏块中的基本像素和高梯度像素。
在一个实施例中,确定所述每一个宏块中的基本像素包括:
统计宏块内256个Y像素值统计得到像素值的分布直方图;
根据统计结果选择频数最大的m个像素值作为基本色;
将所述m个像素之外的其他像素与所述m个基本色做差并求差的绝对值;
如果绝对值小于预设的基本像素阈值n,则标记所述像素为基本像素。
根据经验,一般的,m一般取4。
不属于基本像素的像素被称作逃逸像素。
在一个实施例中,确定所述每一个宏块中的高梯度像素包括:
当前像素与上下左右四个像素亮度值分别相减,到四个差值;
若所述四个差值的绝对值中的任意一个大于预设的高梯度像素阈值T,确定所述当前像素为高梯度像素。
用公式表达为,
Figure BDA0002113971610000081
其中,Nhg表示为高梯度像素,T为经验阈值门限(如32),若pixel(i,j)像素点的亮度值与其相邻的四个像素中的任意一个之差的绝对值大于高梯度像素阈值T,那么我们就认为此像素为高梯度像素,同样计算每个宏块的高梯度像素数nhg
步骤S11、根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;
在一个实施例中,根据得到的宏块特征,确定对应的宏块类型包括:
如果nbc>160且nhg<20,确定所述宏块是图片宏块;
如果nbc>160且nhg>20,确定所述宏块是文字宏块;
如果nbc<160且nhg<17,确定所述宏块是图片宏块;
如果nbc<160且nhg>20,确定所述宏块是文字宏块。
不同类型块使用的编码器不同,对应的量化参数不同。对于图片宏块,我们使用经典的JPEG编码器对其进行编解码,图片宏块的量化参数就是JPEG中的图片宏块因子Q。而文字块则使用一种针对性的编码方式,对基本像素和逃逸像素分别进行量化编码,文字宏块的量化参数就是文字宏块因子Δ1,接下来的码率控制也主要是对Δ1和Q进行控制。Δ1和Q越小,文字和图片的量化越精细,码率越大啊,Δ1和Q越大,文字和图片的量化越粗糙,码率越小。
步骤S12、根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q并将Δ1和Q做为该帧编码的量化参数。
在一个实施例中,所述根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q包括:
当所述文字宏块的数量Tcount小于1000时,所述预设公式为:
Figure BDA0002113971610000091
当所述文字宏块的数量Tcount不小于1000时,所述预设公式为:
Figure BDA0002113971610000092
其中,Rc是当前帧的码率,Tcount是当前帧中文字宏块的数量,Pcount是当前帧中图像宏块的数量,a、b、c、d、e、f为公式的预设参数,Ctext是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数nes(text),Cpicture为文字块复杂性度量,其值为图像宏块平均每宏块逃逸像素数nes(picture);
其中,所述Δ1取值范围(2~8),从2开始以步长为1递增取值,并计算Q的值,当Q的值在其范围(0.1~1.25)时,则选取当前的当前Δ1和Q的值做为该帧编码的量化参数。
循环由小到大选取文字宏的量化参数Δ1,计算图片的量化参数Q,如果Q满足取值范围,则选取这组量化参数(Δ1、Q)做为该帧编码的量化参数。该码率控制算法针对文字宏块和图片宏块的编码效果更好些。
对不同序列的不同帧的对比发现,系数b可以近似满足关于nes(text)的分段函数:
Figure BDA0002113971610000101
系数c通常取4000,系数e通常取0.6,系数d取0.005,系数f取40。
系数a对不同帧变化较大,从理论上分析,a主要和图形中各宏块YUV三分量的分布有直接关系,各种统计量如均值、方差、逃逸像素数等都对a值有影响,而这些值与每帧图像内容紧密相关,所以无法给出a的一个普适值。在实际应用中,我们使用迭代更新的方法来求解系数a。在确定了目标码率Rtext、复杂性度量Ctext以及系数a之后,再根据逃逸像素数确定b的值,我们就可以通过模型公式计算出当前帧文字宏块因子Δ1。需要注意的是,在计算结束后,我们要对文字宏块因子Δ1修正为:
Δ1=min(max(Δ1,2),8)
这样做的目的是部分考虑失真的影响,如果直接使用计算结果进行编码,可能会造成量化参数过大的情况,导致图像失真过大。本方案虽然为严格考虑率失真优化,但是适当的范围限定也能起到一定的效果。
在一个实施例中,所述方法还包括对参数b和参数a的更新,其中参数b按照以下方式更新:
Figure BDA0002113971610000102
参数a按照以下方式更新:
Figure BDA0002113971610000103
其中,μ是线性组合的系数,Gtext,n是第n帧文字块实际编码产生的比特数,Rtext,n+1是第n+1帧分配的目标码率,Ctext,n是第n帧复杂性度量,bn是第n帧的参数b。
另外,β是关于nes(picture)的分段函数:
Figure BDA0002113971610000111
系数α通过迭代更新的方法求解。在确定了α、β、Cpicture和Rpicture之后,可以根据模型公式求出图片块编码量化参数Q。考虑率失真的影响,对Q进行修正限制,最终结果为:
Q=min(max(Q,0.1),1.25)。
在一个实施例中,所述方法还包括对参数β和参数
Figure BDA00021139716100001110
的更新,其中,参数β按照以下方式更新:
Figure BDA0002113971610000112
参数
Figure BDA00021139716100001111
按照以下方式更新:
Figure BDA0002113971610000113
其中,μ是线性组合的系数,Gpicture,n是第n帧文字块实际编码产生的比特数,Rpicture,n+1是第n+1帧分配的目标码率,Cpicture,n是第n帧复杂性度量,βn是第n帧的参数β。
具体的,上述预设公式通过以下步骤推导出来:
分别计算是文字宏块平均每宏块的目标码率Rtext和图像宏块平均每公开的目标码率Rpicture
Figure BDA0002113971610000114
Figure BDA0002113971610000115
目标码率
Figure BDA0002113971610000116
则可以通过以下公式算出:
Figure BDA0002113971610000117
如果让当前帧的码率Rc和目标码率
Figure BDA0002113971610000118
相等,即令
Figure BDA0002113971610000119
则可以得到:
当所述文字宏块的数量Tcount小于1000时,所述预设公式为:
Figure BDA0002113971610000121
当所述文字宏块的数量Tcount不小于1000时,所述预设公式为:
Figure BDA0002113971610000122
其中,根据信道带宽来分配给当前帧的码率Rc
Figure BDA0002113971610000123
其中,
Figure BDA0002113971610000124
Figure BDA0002113971610000125
其中,W为当前的缓冲区饱和度,其单位为比特,缓冲区的初始饱和度为0;Wprev为之前的缓冲区饱和度,G为上一帧编码生成的比特数,R为当前帧编码信道可用带宽,F为帧率。若当前缓冲区的饱和度W超过了信道分配的码率
Figure BDA0002113971610000126
时,将选择最大量化参数进行量化编码,直至缓冲区降低到一个较低的饱和度。
其中,设置
Figure BDA0002113971610000127
的目的是为了使码率在浮动较小,达到稳定码率的目的。Rc为分配给当前帧的码率,单位是比特。
本公开中的码率控制算法是基于图像内容进行量化参数的预测计算,便于实施,计算过程简单,可以很好的嵌入到实时视频传输系统中。
基于上述图1对应的实施例中所描述的码率控制方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。
本公开实施例提供一种码率控制装置,如图2所示,该码率控制装置20包括:提取模块201、第一确定模块202和选取模块203;其中,提取模块201被配置为将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,所述宏块特征包括基本像素数nbc和高梯度像素数nhg;第一确定模块202,被配置为根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;选取模块203,被配置为根据预设公式和预设规则选取文字宏块因子Δ1和图片宏块因子Q并将Δ1和Q做为该帧编码的量化参数。
在一个实施例中,如图3所示,该装置还包括第二确定模块204,被配置为:提取每一个宏块的宏块特征之前,确定所述每一个宏块中的基本像素和高梯度像素。
在一个实施例中,如图3所示,第二确定模块204包括统计子模块2041、选择子模块2042、绝对值子模块2043和第一标记子模块2044。其中,统计子模块2041被配置为统计宏块内256个Y像素值统计得到像素值的分布直方图;选择子模块2042被配置为根据统计结果选择频数最大的m个像素值作为基本色;绝对值子模块2043被配置为将所述m个像素之外的其他像素与所述m个基本色做差并求差的绝对值;第一标记子模块2044被配置为如果绝对值小于预设的基本像素阈值n,则标记所述像素为基本像素。根据经验,一般的,m一般取4。不属于基本像素的像素被称作逃逸像素。
在一个实施例中,如图4所示,第二确定模块204包括差值子模块2045和第二标记子模块2046,其中,差值子模块2045被配置为当前像素与上下左右四个像素亮度值分别相减,到四个差值;第二标记子模块2046被配置为若所述四个差值的绝对值中的任意一个大于预设的高梯度像素阈值T,标记所述当前像素为高梯度像素。
用公式表达为,
Figure BDA0002113971610000131
其中,nhg表示为高梯度像素,T为经验阈值门限(如32),若pixel(i,j)像素点的亮度值与其相邻的四个像素中的任意一个之差的绝对值大于高梯度像素阈值T,那么我们就认为此像素为高梯度像素,同样计算每个宏块的高梯度像素数nhg
在一个实施例中,第一确定模块21具体被配置为:如果nbc>160且nhg<20,确定所述宏块是图片宏块;如果nbc>160且nhg>20,确定所述宏块是文字宏块;如果nbc<160且nhg<17,确定所述宏块是图片宏块;如果nbc<160且nhg>20,确定所述宏块是文字宏块。
在一个实施例中,所述选取模块203具体被配置为:
当所述文字宏块的数量Tcount小于1000时,所述预设公式为:
Figure BDA0002113971610000141
当所述文字宏块的数量Tcount不小于1000时,所述预设公式为:
Figure BDA0002113971610000142
其中,Rc是当前帧的码率,Tcount是当前帧中文字宏块的数量,Pcount是当前帧中图像宏块的数量,a、b、c、d、e、f为公式的预设系数,Ctext是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数nes(text),Cpicture为文字块复杂性度量,其值为图像宏块平均每宏块逃逸像素数nes(picture);
其中,所述Δ1取值范围(2~8),从2开始以步长为1递增取值,并计算Q的值,当Q的值在其范围(0.1~1.25)时,则选择当前的当前Δ1和Q的值做为该帧编码的量化参数。
对不同序列的不同帧的对比发现,系数b可以近似满足关于nes(text)的分段函数:
Figure BDA0002113971610000143
系数c通常取4000,系数e通常取0.6,系数d取0.005,系数f取40。
系数a对不同帧变化较大,从理论上分析,a主要和图形中各宏块YUV三分量的分布有直接关系,各种统计量如均值、方差、逃逸像素数等都对a值有影响,而这些值与每帧图像内容紧密相关,所以无法给出a的一个普适值。在实际应用中,我们使用迭代更新的方法来求解系数a。在确定了目标码率Rtext、复杂性度量Ctext以及系数a之后,再根据逃逸像素数确定b的值,我们就可以通过模型公式计算出当前帧文字宏块因子Δ1。需要注意的是,在计算结束后,我们要对文字宏块因子Δ1修正为:
Δ1=min(max(Δ1,2),8)
这样做的目的是部分考虑失真的影响,如果直接使用计算结果进行编码,可能会造成量化参数过大的情况,导致图像失真过大。本方案虽然为严格考虑率失真优化,但是适当的范围限定也能起到一定的效果。
在一个实施例中,如图5所示,所述装置还包括第一更新模块205,被配置我参数b和a的更新,其中参数b按照以下方式更新:
Figure BDA0002113971610000151
参数a按照以下方式更新:
Figure BDA0002113971610000152
其中,μ是线性组合的系数,Gtext,n是第n帧文字块实际编码产生的比特数,Rtext,n+1是第n+1帧分配的目标码率,Ctext,n是第n帧复杂性度量,bn是第n帧的系数b。
其中,β是关于nes(picture)的分段函数:
Figure BDA0002113971610000153
系数α通过迭代更新的方法求解。在确定了α、β、Cpicture和Rpicture之后,可以根据模型公式求出图片块编码量化参数Q。
考虑率失真的影响,对Q进行修正限制,最终结果为:
Q=min(max(Q,0.1),1.25)。
在一个实施例中,如图6所示,所述装置还包括第二更新模块206,被配置为对系数β和系数
Figure BDA0002113971610000155
的更新,其中,系数β按照以下方式更新:
Figure BDA0002113971610000154
系数
Figure BDA0002113971610000165
按照以下方式更新:
Figure BDA0002113971610000161
其中,μ是线性组合的系数,Gpicture,n是第n帧文字块实际编码产生的比特数,Rpicture,n+1是第n+1帧分配的目标码率,Cpicture,n是第n帧复杂性度量,βn是第n帧的系数β。
在一个实施例中,如图7所示,所述装置还包括码率计算模块207,被配置为根据预先设定的当前缓冲区饱和度W计算当前码率Rc
Figure BDA0002113971610000162
其中,
Figure BDA0002113971610000163
Figure BDA0002113971610000164
W为当前的缓冲区饱和度,Wprev为之前的缓冲区饱和度,G为上一帧编码生成的比特数,R为当前帧编码信道可用带宽,F为帧率。
其中,设置
Figure BDA0002113971610000166
的目的是为了使码率在浮动较小,达到稳定码率的目的。Rc为分配给当前帧的码率,单位是比特。
基于上述图1对应的实施例中所描述的码率控制方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:ReadOnly Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有计算机指令,用于执行上述图1对应的实施例中所描述的码率控制方法,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

Claims (9)

1.一种码率控制方法,其特征在于,所述方法包括:
将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,所述宏块特征包括基本像素数
Figure DEST_PATH_IMAGE002
和高梯度像素数
Figure DEST_PATH_IMAGE004
根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;
根据预设公式和预设规则选取文字宏块因子
Figure DEST_PATH_IMAGE006
和图片宏块因子
Figure DEST_PATH_IMAGE008
并将
Figure 940746DEST_PATH_IMAGE006
Figure 389045DEST_PATH_IMAGE008
做为该帧编码的量化参数;
所述根据预设公式和预设规则选取文字宏块因子
Figure 699941DEST_PATH_IMAGE006
和图片宏块因子
Figure 360729DEST_PATH_IMAGE008
包括:
当所述文字宏块的数量
Figure DEST_PATH_IMAGE010
小于1000时,所述预设公式为:
Figure DEST_PATH_IMAGE012
当所述文字宏块的数量
Figure 565315DEST_PATH_IMAGE010
不小于1000时,所述预设公式为:
Figure DEST_PATH_IMAGE014
其中,
Figure DEST_PATH_IMAGE016
是当前帧的码率,
Figure DEST_PATH_IMAGE018
是当前帧中文字宏块的数量,
Figure DEST_PATH_IMAGE020
是当前帧中图像宏块的数量,
Figure DEST_PATH_IMAGE022
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE032
为公式的预设系数,
Figure DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE036
为公式的系数,
Figure DEST_PATH_IMAGE038
是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数
Figure DEST_PATH_IMAGE040
Figure DEST_PATH_IMAGE042
为图像块复杂性度量,其值为图像宏块平均每宏块逃逸像素数
Figure DEST_PATH_IMAGE044
其中,所述
Figure 84982DEST_PATH_IMAGE006
取值范围(2~8) ,从2开始以步长为1递增取值,并计算
Figure 617594DEST_PATH_IMAGE008
的值,当
Figure 347653DEST_PATH_IMAGE008
的值在其范围(0.1 ~ 1.25)时,则选取当前的当前
Figure 282111DEST_PATH_IMAGE006
Figure 72212DEST_PATH_IMAGE008
的值做为该帧编码的量化参数。
2.根据权利要求1所述的码率控制方法,其特征在于,提取每一个宏块的宏块特征之前,所述方法还包括:确定所述每一个宏块中的基本像素和高梯度像素。
3.根据权利要求2所述的码率控制方法,其特征在于,确定所述每一个宏块中的基本像素包括:
统计宏块内256个Y像素值统计得到像素值的分布直方图;
根据统计结果选择频数最大的m个像素值作为基本色;
将所述m个像素之外的其他像素与所述m个像素基本色做差并求差的绝对值;
如果绝对值小于预设的基本像素阈值n,则标记所述m个像素为基本像素。
4.根据权利要求2所述的码率控制方法,其特征在于,确定所述每一个宏块中的高梯度像素包括:
当前像素与上下左右四个像素亮度值分别相减,得到四个差值;
若所述四个差值的绝对值中的任意一个大于预设的高梯度像素阈值T,确定所述当前像素为高梯度像素。
5.根据权利要求1所述的码率控制方法,其特征在于,根据得到的宏块特征,确定对应的宏块类型包括:
如果
Figure DEST_PATH_IMAGE046
Figure DEST_PATH_IMAGE048
,确定所述宏块是图片宏块;
如果
Figure 685596DEST_PATH_IMAGE046
Figure DEST_PATH_IMAGE050
,确定所述宏块是文字宏块;
如果
Figure DEST_PATH_IMAGE052
Figure DEST_PATH_IMAGE054
,确定所述宏块是图片宏块;
如果
Figure 812821DEST_PATH_IMAGE052
Figure 867365DEST_PATH_IMAGE050
,确定所述宏块是文字宏块。
6.根据权利要求1所述的码率控制方法,其特征在于,所述方法还包括:对系数
Figure 828368DEST_PATH_IMAGE024
和系数
Figure 601152DEST_PATH_IMAGE022
的更新,其中系数
Figure DEST_PATH_IMAGE056
按照以下方式更新:
Figure DEST_PATH_IMAGE058
系数
Figure 266488DEST_PATH_IMAGE022
按照以下方式更新:
Figure DEST_PATH_IMAGE060
其中,
Figure DEST_PATH_IMAGE062
是线性组合的系数,
Figure DEST_PATH_IMAGE064
是第n帧文字块实际编码产生的比特数,
Figure DEST_PATH_IMAGE066
是第n+1帧分配的目标码率,
Figure DEST_PATH_IMAGE068
是第n帧复杂性度量,
Figure DEST_PATH_IMAGE070
是第n帧的系数
Figure 221543DEST_PATH_IMAGE056
7.根据权利要求1所述的码率控制方法,其特征在于,所述方法还包括对系数
Figure DEST_PATH_IMAGE072
和系数
Figure DEST_PATH_IMAGE074
的更新,其中,系数
Figure DEST_PATH_IMAGE076
按照以下方式更新:
Figure DEST_PATH_IMAGE078
系数
Figure 274819DEST_PATH_IMAGE074
按照以下方式更新:
Figure DEST_PATH_IMAGE080
其中,
Figure 597216DEST_PATH_IMAGE062
是线性组合的系数,
Figure DEST_PATH_IMAGE082
是第n帧图像块实际编码产生的比特数,
Figure DEST_PATH_IMAGE084
是第n+1帧分配的目标码率,
Figure DEST_PATH_IMAGE086
是第n帧复杂性度量,
Figure DEST_PATH_IMAGE088
是第n帧的系数
Figure 687200DEST_PATH_IMAGE072
8.根据权利要求1-7任一项所述的码率控制方法,其特征在于,所述方法还包括:
根据预先设定的当前缓冲区饱和度
Figure DEST_PATH_IMAGE090
计算当前码率
Figure DEST_PATH_IMAGE092
Figure DEST_PATH_IMAGE094
其中,
Figure DEST_PATH_IMAGE096
Figure DEST_PATH_IMAGE098
Figure DEST_PATH_IMAGE100
为之前的缓冲区饱和度,
Figure DEST_PATH_IMAGE102
为上一帧编码生成的比特数,
Figure DEST_PATH_IMAGE104
为当前帧编码信道可用带宽,
Figure DEST_PATH_IMAGE106
为帧率。
9.一种码率控制装置,其特征在于,所述装置包括:
提取模块,被配置为将一帧图像分成至少一个像素宏块,并提取每一个宏块的宏块特征;其中,所述宏块特征包括基本像素数
Figure 152554DEST_PATH_IMAGE002
和高梯度像素数
Figure 455359DEST_PATH_IMAGE004
第一确定模块,被配置为根据得到的宏块特征,确定对应的宏块类型;其中所述宏块类型包括文字宏块和图片宏块;
选取模块,被配置为根据预设公式和预设规则选取文字宏块因子
Figure 671577DEST_PATH_IMAGE006
和图片宏块因子
Figure 85241DEST_PATH_IMAGE008
并将
Figure 968883DEST_PATH_IMAGE006
Figure 177011DEST_PATH_IMAGE008
做为该帧编码的量化参数;
所述选取模块具体被配置为:当所述文字宏块的数量
Figure 146104DEST_PATH_IMAGE010
小于1000时,所述预设公式为:
Figure DEST_PATH_IMAGE108
当所述文字宏块的数量
Figure 894617DEST_PATH_IMAGE010
不小于1000时,所述预设公式为:
Figure DEST_PATH_IMAGE110
其中,
Figure 757399DEST_PATH_IMAGE016
是当前帧的码率,
Figure 136428DEST_PATH_IMAGE018
是当前帧中文字宏块的数量,
Figure 592817DEST_PATH_IMAGE020
是当前帧中图像宏块的数量,
Figure 348284DEST_PATH_IMAGE022
Figure 675360DEST_PATH_IMAGE024
Figure 490869DEST_PATH_IMAGE026
Figure 168975DEST_PATH_IMAGE028
Figure 728132DEST_PATH_IMAGE030
Figure 440874DEST_PATH_IMAGE032
为公式的预设参数,
Figure 896126DEST_PATH_IMAGE034
Figure 327107DEST_PATH_IMAGE036
为公式的系数,
Figure 158797DEST_PATH_IMAGE038
是文字块复杂性度量,其值为文字块平均每宏块逃逸像素数
Figure 991624DEST_PATH_IMAGE040
Figure 617777DEST_PATH_IMAGE042
为图像块复杂性度量,其值为图像宏块平均每宏块逃逸像素数
Figure 536054DEST_PATH_IMAGE044
;其中,所述
Figure 702594DEST_PATH_IMAGE006
取值范围(2~8) ,从2开始以步长为1递增取值,并计算
Figure 921085DEST_PATH_IMAGE008
的值,当
Figure 249298DEST_PATH_IMAGE008
的值在其范围(0.1 ~ 1.25)时,则选取当前的当前
Figure 123714DEST_PATH_IMAGE006
Figure 828364DEST_PATH_IMAGE008
的值做为该帧编码的量化参数。
CN201910584446.6A 2019-07-01 2019-07-01 码率控制方法及装置 Active CN110381315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910584446.6A CN110381315B (zh) 2019-07-01 2019-07-01 码率控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910584446.6A CN110381315B (zh) 2019-07-01 2019-07-01 码率控制方法及装置

Publications (2)

Publication Number Publication Date
CN110381315A CN110381315A (zh) 2019-10-25
CN110381315B true CN110381315B (zh) 2021-08-17

Family

ID=68251470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910584446.6A Active CN110381315B (zh) 2019-07-01 2019-07-01 码率控制方法及装置

Country Status (1)

Country Link
CN (1) CN110381315B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114786011B (zh) * 2022-06-22 2022-11-15 苏州浪潮智能科技有限公司 一种jpeg图像压缩的方法、系统、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534436A (zh) * 2008-03-11 2009-09-16 深圳市融合视讯科技有限公司 一种视频图像宏块级自适应码率分配方法
CN103533359A (zh) * 2013-10-16 2014-01-22 武汉大学 一种h.264码率控制方法
CN107222748A (zh) * 2017-06-12 2017-09-29 西安万像电子科技有限公司 图像数据码率的处理方法和装置
CN108810530A (zh) * 2018-07-12 2018-11-13 珠海亿智电子科技有限公司 一种基于人眼视觉系统的avc码率控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8542730B2 (en) * 2008-02-22 2013-09-24 Qualcomm, Incorporated Fast macroblock delta QP decision

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101534436A (zh) * 2008-03-11 2009-09-16 深圳市融合视讯科技有限公司 一种视频图像宏块级自适应码率分配方法
CN103533359A (zh) * 2013-10-16 2014-01-22 武汉大学 一种h.264码率控制方法
CN107222748A (zh) * 2017-06-12 2017-09-29 西安万像电子科技有限公司 图像数据码率的处理方法和装置
CN108810530A (zh) * 2018-07-12 2018-11-13 珠海亿智电子科技有限公司 一种基于人眼视觉系统的avc码率控制方法

Also Published As

Publication number Publication date
CN110381315A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN111713108B (zh) 在视频编码中利用率失真优化进行图像再成形
US9716891B2 (en) Quantization method and apparatus in encoding/decoding
CN108293124B (zh) 视频中画面的编码
CN111526367B (zh) 具有样本自适应偏移控制的解码方法、系统、介质和装置
JP5015967B2 (ja) 画像信号エンコードにおいて画像中のピクセル・ブロックの諸グループについてビット割り当てを決定するための方法および装置
CN113785577B (zh) 用于指示色度量化参数映射函数的方法和装置
US9131249B2 (en) Apparatus for encoding moving images to minimize an amount of generated code
WO2011080925A1 (ja) 画像符号化装置および方法
CN110401833B (zh) 图像传输方法及装置
CN110225343B (zh) 一种视频编码的码率控制方法及装置
KR20010043760A (ko) 내용-적응형 압축 엔코딩
US20150063461A1 (en) Methods and apparatuses for adjusting macroblock quantization parameters to improve visual quality for lossy video encoding
EP3545677A1 (en) Methods and apparatuses for encoding and decoding video based on perceptual metric classification
CN102106148A (zh) 通过选择性保留相关的视觉细节以高效视频压缩的系统和方法
CN110381315B (zh) 码率控制方法及装置
US9955160B1 (en) Video encoding using adaptive pre-filtering
Zhao et al. Fast CU partition decision strategy based on human visual system perceptual quality
CN114245114B (zh) 用于对图像帧进行帧内编码的方法和装置
Mir et al. Adaptive residual mapping for an efficient extension layer coding in two-layer HDR video coding
US7623720B2 (en) Image processing apparatus and method
RU2772104C2 (ru) Преобразование изображения в кодировании видео с использованием оптимизации зависимости искажения от скорости передачи
US10848772B2 (en) Histogram-based edge/text detection
CN114598866B (zh) 一种视频实时编码的vbr码率控制方法
CN116320446A (zh) 视频编码方法及装置、电子设备和计算机介质
Chang et al. Adaptive intra-frame rate control for H. 264/AVC

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