CN1642274A - 一种带场景变换检测的码率控制方法 - Google Patents
一种带场景变换检测的码率控制方法 Download PDFInfo
- Publication number
- CN1642274A CN1642274A CN 200410000299 CN200410000299A CN1642274A CN 1642274 A CN1642274 A CN 1642274A CN 200410000299 CN200410000299 CN 200410000299 CN 200410000299 A CN200410000299 A CN 200410000299A CN 1642274 A CN1642274 A CN 1642274A
- Authority
- CN
- China
- Prior art keywords
- group
- picture
- bit
- average
- image sequence
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
在视频编码压缩的码率控制技术领域,申请人提供了一种带场景变换检测的码率控制方法,其以图象序列组为单位适当的调整图象的量化系数,由此控制码率的相对稳定,并保证图象质量的稳定性,保持变码率的优点。在图象序列组划分时,还考虑场景变换的特点,给出一种场景变换检测的方法,使图象序列组的划分更加合理。该项码率控制方法通过two-pass图象编码的码率控制方法可以弥补传统码率控制方法存在的相应缺陷。
Description
技术领域
本发明的技术领域为视频编码压缩的码率控制技术领域。
背景技术
在该技术领域,一般有两种码率控制方法:恒定码率的控制方法、变码率的控制方法。
前者的特点为首先固定一个图象序列组GOP(Group of Pictures)可以占用的总位数,然后在压缩图象序列中的各帧图象时,根据前面已经压缩过的图象所分配的位数来不断调整当前图象量化系数来控制分配给当前图象的位数,从而保证码率的相对恒定。在这种码率控制的策略中,图象序列组的划分是预先设定好每个图象序列组中包含多少帧图象,没有考虑实际的图象序列中的场景变换问题,由此带来的问题就是图象序列变化复杂程度不同时,图象质量会有很大的变化,也就是图象质量不稳定,而且压缩效率比较低。后者较前者来说可以提供稳定的图象质量和较高的压缩效率。在变码率中,一般量化系数的选取变化较少,量化系数的相对稳定保证了图象质量的稳定。但是其存在的一个问题,码率的变化就变得不稳定,整个图象序列的平均码率与预期值可能会有很大差距,而且码率的变化幅度很可能超出带宽的限制。
为此,申请人提供了一种新的码率控制策略,以图象序列组为单位适当的调整图象的量化系数,使量化系数调整的频率不是很高,不像恒定码率中每一帧都要计算当前的量化系数,由此可以控制码率的相对稳定。同时,量化系数的相对稳定也保证了图象质量的稳定性,保持了变码率的优点。而且,在图象序列组划分时,考虑到了场景变换的特点,给出一种场景变换检测的方法,使图象序列组的划分更加合理。
发明内容
two-pass图象编码的码率控制方法
采用两遍编码(two-pass encoding)的策略。在第一遍编码中,把图象序列分成一个个图象序列组(GOP)。分组的原则是尽量以场景变换为分组界限,当判断为有场景变换时,我们把当前帧定义为I帧,按I帧的方法编码,它后面帧则按P帧编码处理,直到出现下一个场景变换时,再从新定义I帧。这样就以I帧为界限把图象序列分成一个个图象序列组。然后再根据第一遍编码的统计结果对各个图象序列组进行量化参数的调整。
具体实施方式
1.为整个图象序列选取了一个量化系数
(1)计算当前帧图象与前一帧图象亮度信号的统计差值。
lu是亮度信号的取值范围中的最大值。fn(i)按下式计算:
For i=0;i<M;i++
For j=0;j<N;j++
fn(imagen(i,j))++;
M,N是图象的宽度和高度;imagen(i,j)是第n帧图象中位置为(i,j)的象素的亮度值。fn(i)的初值为零。
(2)以当前图象序列组(GOP)中前面计算的各帧图象的统计差值的平均值作为判断场景变换的门限值。
N-1是当前图象序列组中前面以编码过的图象帧数。
If Diffn>Diffaverage×weight
return true
Else return false
weight是一个权重系数;true表示有场景变换,false表示没有场景变换。
(3)进行两次编码。第一遍编码时,选取一个固定的量化系数QP,对所有的图象进行编码,同时记录下每帧图象编码后所分配的位数以及各个图象序列组中所包含图象的帧数,输出到文件中保存以备第二遍编码时使用。
第二遍编码,首先根据图象序列的目标码率及帧速率计算每帧图象所能分配到的目标平均位数,称为目标帧位率:
根据第一遍编码后所产生的文件统计出图象序列中所有图象的总帧数total_picture_no,再根据下式算出总的目标位数:
tar_total_bit=tar_picture_bit×total_picture_no
以及第一遍编码后所产生的总的位数total_bit,然后计算一个比例因子:
下面,以ratio>1为例进行说明,这是第一遍编码产生的总位数超过目标位数的情况,也就是平均码率高于目标的平均码率,需要把码率向低调整的情况。当ratio<1时,处理方法类似。
While(ratio>a)
{
QPaverage++;
a=a×qp_weight;
}
qp_weight是一个常数,表明当量化系数增加时对编码位数的影响;a为常数,取初值1.06;QPaverage是整个图象序列的量化系数的平均值,初值为第一遍编码时所选取的固定量化系数QP。
2.对各个图象序列组的不同情况进一步选取图象序列组的量化系数
(1)计算第一遍编码后分配给每帧图象平均位数,称为帧位率:
取门限值:
threshold=picture_bit
根据这一门限值,把图象序列组分为组平均帧位率高于门限值的一类higher_group和组平均帧位率低于门限值的lower_group。组平均帧位率计算公式如下:
group_sizen是第n个图象序列组中各帧图象在第一遍编码后所分配的位数的总和,group_picture_non是第n个图象序列组中图象的总帧数。这两个数据是第一遍编码后的统计数据。
请注意,在这里取的门限值是以第一遍编码后计算的实际帧位率为依据,而没有用目标帧位率作为门限值,这是因为这个门限值是用来划分哪些图象序列组变化剧烈,哪些图象序列组变化平缓,所以应该以实际编码后的帧位率做为门限值。
(2)把图象序列组分成hjgher_group和lower_group后,下一步开始调整量化系数,量化系数的调整是以图象序列组为单位进行的。
首先从lower_group开始调整量化系数,为各个lower_group选取新的量化系数值,并估计选用新的量化系数后所分配的位数。我们以目标帧位率tar_picture_bit作为门限值,对于各个lower_group根据与目标帧位率的比较决定是增加量化系数还是减少量化系数。量化系数的增加或减少决定了图象质量的变化,所以在这里,我们以目标帧位率作为门限值来控制增加还是减小量化系数,也就是以预期的图象质量来决定是增强还是降低当前图象序列组图象质量。这样我们在调整码率变化,使其相对稳定的同时也保证了图象质量的相对稳定。下面的公式给出lower_group量化系数调整的具体方法:
If group_picture_bitlower_n>tar_picture_bit
while(group_sizelower_n>tar_picture_bit×group_picture_nolower_n)
QPlower_n++;
Else
while(group_sizelower_n<tar_picture_bit×group_picture_nolower_n)
QPlower_n--;
group_sizelower_n=group__sizelower_n×qp_weight;
QPlower_n是各个lower_group图象序列组的量化系数,初值为QPaverage;group_picture_nolower_n是各个lower_group图象序列组中图象的帧数。在调整量化系数QPlower_n的同时,我们还估计了各个图象序列组在采用新量化系数后所分配位数的大小group_sizelower_n,group_sizelower_n的初值是第一遍压缩后的实际分配位数。group_picture_bit表示图像序列组中每帧图像的比特数,下同。
(3)根据上一步的计算,估计了所有lower_group所分配的位数,现在要把lower_group所“节省”下来的位数分配给higher_group。下式用来估计higher_group中每帧图象所分配的位数:
lower_group_no是所有lower_group的个数。
(4)采用前面计算QPaverage算法,先为所有的higher_group图象序列组选取一个平均的量化系数QPhigher:
While(ratio>a)
{
QPhigher++;
a=a×qp_weight;
}
QPhigher的初值为QPaverage。
(5)以第4步计算的group_picture_bithigher_average作为门限值,把higher_group的图象序列组分为两类:组平均帧位率高于group_picture_bithigher_average的一类和组平均帧位率低于group_picture_bithigher_average的一类。以QPhigher为基准决定各个higher_group图象序列组的量化系数:
If group_picture_bithigher_n>group_picture_bithigher_average
while(group_sizehigher_n>group_picture_bithigher_average×group_picture_nohigher_n)
QPhigher_n++;
Else
while(group_sizehigher_n<group_picture_bithigher_average×group_picture_nohigher_n)
QPhigher_n--;
group_sizehigher_n=group_sizehigher_n×qp_weight;
QPhigher_n初值为QPhigher。
(6)通过以上几步,为所有的图象序列组选取了新的量化系数,按新的量化系数编码,第二遍编码后的比特流作为最后的编码结果。
Claims (7)
1.申请专利保护的发明为一种带场景变换检测的码率控制方法,其技术特征如下:
(1)图像序列按照场景切换进行分组。
(2)对分组图像进行第二遍编码时,根据第一遍编码的结果对图像序列组进行分类。
(3)对分类后的图像序列组按不同的方法分别调整量化参数。
2.根据权力要求1所述码率控制方法,其技术特征在于,步骤(1)中的场景切换门限值的选取采用下面的方法:
以当前图象序列组(GOP)中前面计算的各帧图象的统计差值的平均值作为判断场景变换的门限值。
N-1是当前图象序列组中前面以编码过的图象帧数。当前帧图象与前一帧图象亮度信号的统计差值计算方法如下:
lu是亮度信号的取值范围中的最大值。fn(i)按下式计算:
Fori=0;i<M;i++
Forj=0;j<N;j++
fn(imagen(i,j))++;
M,N是图象的宽度和高度;imagen(i,j)是第n帧图象中位置为(i,j)的象素的亮度值。fn(i)的初值为零。
3.根据权力要求1所述码率控制方法,其技术特征在于,步骤(2)对图像序列组分类按以下方法:把图象序列组分为组平均帧位率高于门限值的一类higher_group和组平均帧位率低于门限值的lower_group,分类的门限值按下面的公式计算:
total_bit为图像序列第一遍编码后所产生的总的位数,total_picture_no为图象序列中所有图象的总帧数。
4.根据权力要求1所述码率控制方法,其技术特征在于,步骤(3)的调整量化参数步骤如下:
1)首先计算比例因子ratio,然后调整图像序列的平均量化参数。
2)调整lower_group的量化参数(当ratio>1);或调整higher_group的量化参数(当ratio<1)。
3)调整higher_group的量化参数(当ratio>1);或调整lower_group的量化参数(当ratio<1)。
5.根据权力要求4所述码率控制方法,其技术特征在于,步骤1)方法如下:
tar_total_bit为目标总位数,就是按照我们所设定的码率,图像序列应该产生的总位数。total_bit同3中的说明。以下以ratio>1为例说明,当ratio<1时,方法类似。
While(ratio>a){QPaverage++;a=a×qp_weight;}qp_weight是一个常数,表明当量化系数增加时对编码位数的影响;a为常数,取初值1.06;QPaverage是整个图象序列的量化系数的平均值,初值为第一遍编码时所选取的固定量化系数QP。
6.根据权力要求4所述码率控制方法,其技术特征在于,步骤2)方法如下:以ratio>1为例说明,当ratio<1时,方法类似。If group_picture_bitlower_n>tar_picture_bitwhile(group_sizelower_n>tar_picture_bit×group_picture_nolower_n)
QPlower_n++;
Elsewhile(group_sizelower_n<tar_picture_bit×group_picture_nolower_n)
QPlower_n--;
group_sizelower_n=group_sizelower_n×qp_weight;QPlower_n是各个lower_group图象序列组的量化系数,初值为QPaverage;group_picture_nolower_n是各个lower_group图象序列组中图象的帧数。在调整量化系数QPlower_n的同时,我们还估计了各个图象序列组在采用新量化系数后所分配位数的大小group_sizelower_n,group_sizelower_n的初值是第一遍压缩后的实际分配位数。group_picture_bit表示图像序列组中每帧图像的比特数,下同。tar_picture_bit为目标的帧位数,就是按照我们所设定的码率,每帧图像应该产生的位数。
7.根据权力要求4所述码率控制方法,其技术特征在于,步骤3)方法如下:首先按下式来估计higher_group中每帧图象所分配的位数:
lower_group_no是所有lower_group的个数。采用前面计算QPaverage算法,先为所有的higher_group图象序列组选取一个平均的量化系数QPhigher:
While(ratio>a){QPhigher++;a=a×qp_weight;}QPhigher的初值为QPaverage。
然后按下面的公式调整量化参数:If group_picture_bithigher_n>group_picture_bithigher_averagewhile(group_sizehigher_n>group_picture_bithigher_average×group_picture_nohigher_n)
QPhigher_n++;
Elsewhile(group_sizehigher_n<group_picture_bithigher_average×group_picture_nohigher_n)
QPhigher_n--;
group_sizehigher_n=group_sizehigher_n×qp_weight;QPhigher_n初值为QPhigher。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410000299 CN1642274A (zh) | 2004-01-15 | 2004-01-15 | 一种带场景变换检测的码率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410000299 CN1642274A (zh) | 2004-01-15 | 2004-01-15 | 一种带场景变换检测的码率控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1642274A true CN1642274A (zh) | 2005-07-20 |
Family
ID=34866704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410000299 Pending CN1642274A (zh) | 2004-01-15 | 2004-01-15 | 一种带场景变换检测的码率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1642274A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677398A (zh) * | 2008-09-19 | 2010-03-24 | 三星电子株式会社 | 场景切换码率控制方法 |
CN101534442B (zh) * | 2009-04-13 | 2011-01-12 | 腾讯科技(深圳)有限公司 | 视频编码系统及方法 |
CN101511026B (zh) * | 2009-02-23 | 2011-01-19 | 四川长虹电器股份有限公司 | 一种基于场景的avs二次编码码率控制方法 |
CN101632308B (zh) * | 2007-03-14 | 2011-08-03 | 日本电信电话株式会社 | 编码比特率控制方法和装置 |
CN102625106A (zh) * | 2012-03-28 | 2012-08-01 | 上海交通大学 | 场景自适应的屏幕编码码率控制方法及其系统 |
CN104104951A (zh) * | 2014-07-30 | 2014-10-15 | 北京邮电大学 | Hevc中屏幕内容编码的码率控制方法 |
CN104509118A (zh) * | 2012-08-13 | 2015-04-08 | 迪士尼企业公司 | 对数字媒体内容的基于内容的分割 |
CN105744270A (zh) * | 2014-12-10 | 2016-07-06 | 中国移动通信集团公司 | 一种带云台的视频编码方法及装置 |
CN103826121B (zh) * | 2013-12-20 | 2017-05-10 | 电子科技大学 | 低延迟视频编码基于场景切换检测的码率控制方法 |
-
2004
- 2004-01-15 CN CN 200410000299 patent/CN1642274A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101632308B (zh) * | 2007-03-14 | 2011-08-03 | 日本电信电话株式会社 | 编码比特率控制方法和装置 |
CN101677398A (zh) * | 2008-09-19 | 2010-03-24 | 三星电子株式会社 | 场景切换码率控制方法 |
CN101511026B (zh) * | 2009-02-23 | 2011-01-19 | 四川长虹电器股份有限公司 | 一种基于场景的avs二次编码码率控制方法 |
CN101534442B (zh) * | 2009-04-13 | 2011-01-12 | 腾讯科技(深圳)有限公司 | 视频编码系统及方法 |
CN102625106A (zh) * | 2012-03-28 | 2012-08-01 | 上海交通大学 | 场景自适应的屏幕编码码率控制方法及其系统 |
CN102625106B (zh) * | 2012-03-28 | 2014-08-27 | 上海交通大学 | 场景自适应的屏幕编码码率控制方法及其系统 |
CN104509118A (zh) * | 2012-08-13 | 2015-04-08 | 迪士尼企业公司 | 对数字媒体内容的基于内容的分割 |
CN104509118B (zh) * | 2012-08-13 | 2017-11-17 | 迪士尼企业公司 | 对数字媒体内容的基于内容的分割 |
CN103826121B (zh) * | 2013-12-20 | 2017-05-10 | 电子科技大学 | 低延迟视频编码基于场景切换检测的码率控制方法 |
CN104104951A (zh) * | 2014-07-30 | 2014-10-15 | 北京邮电大学 | Hevc中屏幕内容编码的码率控制方法 |
CN104104951B (zh) * | 2014-07-30 | 2017-05-03 | 北京邮电大学 | Hevc中屏幕内容编码的码率控制方法 |
CN105744270A (zh) * | 2014-12-10 | 2016-07-06 | 中国移动通信集团公司 | 一种带云台的视频编码方法及装置 |
CN105744270B (zh) * | 2014-12-10 | 2019-01-01 | 中国移动通信集团公司 | 一种带云台的视频编码方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1164123C (zh) | 视频编码的量化方法和装置 | |
CN1909662A (zh) | 采用帧目标比特数不平均分配的视频压缩码率控制方法 | |
CN1222110C (zh) | 图象数据的自适应可变长度译码方法 | |
CN1209929C (zh) | 视频压缩的量化处理方法和装置 | |
CN1196339C (zh) | 流式传输可缩放视频的方法和设备 | |
CN1283105C (zh) | 基于对象的比特率控制方法和系统 | |
CN1288910C (zh) | 基于对象的比特率控制方法和系统 | |
CN1110962C (zh) | 用于视频信号编码系统的自适应量化器 | |
CN1726709A (zh) | 利用基于图像的超前查看窗口进行速率控制 | |
CN100338957C (zh) | 一种复杂度可分级的模式选择方法 | |
CN1668107A (zh) | 控制图象比特率的方法及其装置 | |
CN1642274A (zh) | 一种带场景变换检测的码率控制方法 | |
CN1910934A (zh) | 自适应速率控制编码器 | |
CN1274446A (zh) | 编码系统中基于宏块的速率控制装置和方法 | |
CN1839629A (zh) | 用于在双通道编码中选择扫描模式的方法与设备 | |
CN1738424A (zh) | 基于h.264的精细颗粒可伸缩编码的码率控制方法 | |
CN101075348A (zh) | 一种图像压缩方法和装置 | |
CN101056408A (zh) | 用于确定视频编码中跳跃模式的阈值的方法和装置 | |
CN1871858A (zh) | 规格化视觉品质的比特率控制方法与装置 | |
CN1870753A (zh) | 一种低复杂度的积分码率控制方法 | |
CN1267858C (zh) | 实时截断的jpeg2000速率控制方法 | |
CN1946184A (zh) | 编码设备、编码方法、编码程序以及记录介质 | |
CN1852438A (zh) | 一种自动比特率控制方法及图像压缩装置 | |
CN102769744B (zh) | 一种卫星图像的编码方法 | |
CN1581970A (zh) | 码流的带宽均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C57 | Notification of unclear or unknown address | ||
DD01 | Delivery of document by public notice |
Addressee: Wang Ruoyu Document name: Notification before expiration of term |
|
C57 | Notification of unclear or unknown address | ||
DD01 | Delivery of document by public notice |
Addressee: Wang Ruoyu Document name: Deemed as a notice of withdrawal |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |