CN101360229B - 一种图像码流的平滑方法和装置 - Google Patents
一种图像码流的平滑方法和装置 Download PDFInfo
- Publication number
- CN101360229B CN101360229B CN 200810119739 CN200810119739A CN101360229B CN 101360229 B CN101360229 B CN 101360229B CN 200810119739 CN200810119739 CN 200810119739 CN 200810119739 A CN200810119739 A CN 200810119739A CN 101360229 B CN101360229 B CN 101360229B
- Authority
- CN
- China
- Prior art keywords
- total
- buffering area
- mbs
- macro block
- clock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000009499 grossing Methods 0.000 title claims abstract description 13
- 230000000052 comparative effect Effects 0.000 claims abstract description 9
- 230000003139 buffering effect Effects 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 21
- 238000003780 insertion Methods 0.000 claims description 12
- 230000037431 insertion Effects 0.000 claims description 12
- 239000000872 buffer Substances 0.000 abstract description 14
- 230000000694 effects Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种图像码流的平滑方法和装置,方法包括:步骤一,确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T;步骤二,将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总数不大于所述空闲时钟周期的总数T。本发明能够即不损失图像内容,又使JPEG码率均匀平滑。
Description
技术领域
本发明涉及图像处理技术,特别是涉及一种图像码流的平滑方法和装置。
背景技术
摄像头中一般都带有JPEG(Joint Picture Experts Group,联合图像专家组)编码器,用来对图像或视频流进行压缩,压缩后的JPEG码流通过USB或宽带/局域网传送出去。在传输带宽大致恒定的条件下,就需要一种控制码率的方法,来使JPEG码率尽量平滑,避免忽快忽慢所导致的:网络拥塞、丢失数据包、或者USB FIFO(first in first out,先进先出)缓冲区溢出等问题。
现有的码率控制方案一般是在整帧图像的尺度上做调整,通过调整整帧的量化系数,从而可以改变一帧图像压缩之后的码流大小。这个方法无法及时对画面某个或某些特别复杂的局部做出灵活调整,仍有潜在的风险。
另一种码率控制方案是将图像分为几个小区域,对每个小区域之内,控制其最多可以允许的DCT(离散余弦变换)系数的个数。这样,相当于可以在小区域的尺度上对码流大小进行调整,从而使JPEG编码器应对风险的能力有了大大提升。但是这是以牺牲掉一些DCT系数为代价换来的,等于是牺牲部分图像细节内容的信息。
因此,现有技术没能提供一种即不损失图像内容,又使JPEG码率均匀平滑,以便适应恒定传输带宽的JPEG码流平滑方法。
发明内容
本发明实施例的目的是提供一种图像码流的平滑方法和装置,能够即不损失图像内容,又使JPEG码率均匀平滑。
为了实现上述目的,一方面,提供了一种图像码流的平滑方法,包括如下步骤:
步骤一,确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T;
步骤二,将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总数不大于所述空闲时钟周期的总数T。
优选地,所述的方法中,所述步骤一具体包括:
确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
用所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
优选地,所述的方法中,所述步骤二具体包括:
步骤a,初始化变量MBs、Total,MBs的初始值为所述缓冲区的宏块的总数,Total的初始值为T;
步骤b,对当前宏块进行编码,得到当前宏块码流的比特数n,将所述比特数n与第一预定门限thd进行比较,如果n<=thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=0;如果n>thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=Total/MBs;使MBs=MBs-1,Total=Total-k;
步骤c,重复步骤b,直到完成所述缓冲区中所有宏块的数据编码。
优选地,所述的方法中,所述步骤b中,还包括:设置第二预定门限f,f>thd;如果n>thd,将所述比特数n与f进行比较,如果n>f,则在当前宏块和下一个宏块之间插入的时钟周期数k=m×Total/MBs,然后使MBs=MBs-1,Total=Total-k;其中m为预设的大于1的系数。
优选地,所述的方法中,还包括:
步骤四,重复步骤一至步骤二,直到完成当前整个图像的数据编码。
本发明的另一个方面,提供一种图像码流的平滑装置,包括:
空闲时钟周期总数的确定模块,用于:确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T
时钟周期插入模块,用于:将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总和不大于所述空闲时钟周期的总数T。
优选地,所述的装置中,所述空闲时钟周期总数的确定模块还包括:
第一单元,用于确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
第二单元,用于确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
第三单元,用所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
本发明实施例至少存在以下技术效果:
1)将T个空闲时钟周期分散插入到宏块之间,并通过动态调整JPEG编码器中前一个宏块和后一个宏块之间的插入的时钟周期数,来调整编码器输出的码流的速度,从而使得编码器输出码流的瞬时速率上的波动幅度变小,起到了平滑JPEG码流的效果。
2)设置多个比较门限,可以更为精确的平滑JPEG码流。
附图说明
图1为本发明实施例提供的编码器中两个轮换缓冲区的示意图;
图2为本发明实施例提供的方法的步骤流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对具体实施例进行详细描述。
光学传感器件一般是按固定的时钟数来工作的,因此它连续输出两行的图像数据之间的间隔一经配好后,就是固定的和已知的。以YUV422编码格式(其它编码格式的处理过程相同)为例,JPEG编码器中设有两个轮换缓冲区,每个缓冲区有8行,如图1所示:
轮换缓冲区A从光学传感器接收其按行输出的数据,存满8行后,两个缓冲区A和B互相切换;这时,JPEG编码器从缓冲区A取数据来压缩,而光学传感器输出的数据则送到缓冲区B中;依此类推。
按上述分析可知,JPEG编码器需要在光学传感器填满8行缓冲区的时间段之内,完成另外8行缓冲区中所有的数据压缩过程。
以640x480(其它尺寸,例如800x600,处理方式类似,只需将以下处理步骤中的相应尺寸替换即可)大小的光学传感器为例,它在输出每一行的有效数据(640个值)之后,还要经过若干个水平空白(horizontal blank,HB)的时钟周期数(clock cycles)的时间间隔之后,才会开始输出下一行的第一个有效数据。而这个HB的值是事先根据光照条件、帧率要求等综合考虑之后设定好的一个固定值。因此,对8行缓冲区而言,就需要(640+HB)*8个时钟周期来填满,因此JPEG编码器处理8行数据的压缩任务必须在(640+HB)*8个时钟周期内完成。从另一个角度讲,JPEG编码器处理完8行数据的压缩任务,只需在(640+HB)*8个时钟周期内完成就可以满足要求。
一般而言,为了保证JPEG编码器在最差情况下的性能,它实际上并不需要(640+HB)*8个时钟周期即可完成这8行缓冲区数据的处理,因此会部分时间是处于空闲状态。假设处理每8行缓冲区时,JPEG编码器有T个时钟周期的空闲。
本发明实施例,将所述T个空闲时钟周期分散插入到宏块之间,并通过动态调整JPEG编码器中前一个宏块和后一个宏块之间的插入的时钟周期数,来调整编码器输出的码流的速度,从而使得编码器输出码流的瞬时速率上的波动幅度变小,起到了平滑JPEG码流的效果。
图2为本发明方法实施例的步骤流程图,如图所示,包括如下步骤:
步骤100,确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T
步骤200,将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总数不大于所述空闲时钟周期的总数T。
其中,所述步骤100具体包括:
确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
用所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
在所述步骤200中,本发明实施例通过一个变量n来记录和跟踪每个宏块编码后产生的码流大小(例如,字节数,或比特数),并与事先设定的第一阈值thd来比较,来动态调整连续两个宏块开始编码的空闲时钟间隔,从而以更小的尺度(即更高的精度)来对码流生成的速度进行干预,起到了较好的码流平滑效果。具体步骤如下(以VGA,640x480为例):
1)初始化。变量MBs代表还没有插入时钟周期的剩余宏块的数量,初始MBs=640/8=80;变量Total代表剩余的可用的空闲时钟周期,初始Total=T;
2)对当前宏块进行编码,得到码流的比特数n.如果n<=thd,则在当前宏块和下一个宏块之间不插入空闲时钟数(k=0);如果n>thd,则在当前宏块和下一个宏块之间插入k=Total/MBs个时钟数;
MBs=MBs-1;
Total=Total-k;
重复步骤2),直到完成当前8行缓冲区的数据编码。
之后,需要重复步骤100和步骤200,直到完成当前整个图像的数据编码。
在本实施例中,T=400个时钟周期,而每8行缓冲区共有640/8=80个宏块(每个宏块有8x8个像素)。事先设定的阈值thd=45比特,即每个宏块编码后平均应该在45比特大小。
对前40个宏块,假设每个宏块编码后产生的码流大小均不超过45比特,因此每两个宏块之间空闲间隔为0个时钟周期。对后40个宏块,假设每个宏块编码后产生的码流大小均为50比特,因此在每两个宏块之间都会插入400/40=10个时钟周期的空闲间隔。
当然,本发明实施例是根据已编码的一个或若干个宏块的码流比特数,来动态调整前一个宏块和后一个宏块之间插入的空闲时钟数,并保证在一个宏块行(8行缓冲数据)的时间内,所有插入的累计空闲时钟数不超过T。本领域技术人员可以在不违背这个实质精神的前提下,采用其他动态插入空闲时钟数的方法来达到类似的效果。例如,可以引入第二预定门限f,f>thd;如果n>thd,将所述比特数n与f进行比较,如果n>f,说明当前宏块过大,需要多插入时钟周期才能平滑码流,因此在当前宏块和下一个宏块之间插入的时钟周期数k=m×Total/MBs,其中m为预设的大于1的系数,然后使MBs=MBs-1,Total=Total—k。
对应以上方法,本发明实施例还提供了一种图像码流的平滑装置,包括:
空闲时钟周期总数的确定模块,用于:确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T
时钟周期插入模块,用于:将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总和不大于所述空闲时钟周期的总数T。
其中,所述空闲时钟周期总数的确定模块还包括:
第一单元,用于确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
第二单元,用于确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
第三单元,用于将所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
由上可知,本发明实施例具有以下优势:
1)将T个空闲时钟周期分散插入到宏块之间,并通过动态调整JPEG编码器中前一个宏块和后一个宏块之间的插入的时钟周期数,来调整编码器输出的码流的速度,从而使得编码器输出码流的瞬时速率上的波动幅度变小,起到了平滑JPEG码流的效果。
2)设置多个比较门限,可以更为精确的平滑JPEG码流。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种图像码流的平滑方法,其特征在于,包括如下步骤:
步骤一,确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T;
步骤二,将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总数不大于所述空闲时钟周期的总数T;
所述步骤二具体包括:
步骤a,初始化变量MBs、Total,MBs的初始值为所述缓冲区的宏块的总数,Total的初始值为T;
步骤b,对当前宏块进行编码,得到当前宏块码流的比特数n,将所述比特数n与第一预定门限thd进行比较,如果n<=thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=0;如果n>thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=Total/MBs;使MBs=MBs-1,Total=Total-k;
步骤c,重复步骤b,直到完成所述缓冲区中所有宏块的数据编码。
2.根据权利要求1所述的方法,其特征在于,所述步骤一具体包括:
确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
用所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
3.根据权利要求1所述的方法,其特征在于,还包括:
步骤三,重复步骤一至步骤二,直到完成当前整个图像的数据编码。
4.一种图像码流的平滑装置,其特征在于,包括:
空闲时钟周期总数的确定模块,用于:确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T;
时钟周期插入模块,用于:将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总和不大于所述空闲时钟周期的总数T;
所述将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总和不大于所述空闲时钟周期的总数T具体包括:
步骤a,初始化变量MBs、Total,MBs的初始值为所述缓冲区的宏块的总数,Total的初始值为T;
步骤b,对当前宏块进行编码,得到当前宏块码流的比特数n,将所述比特数n与第一预定门限thd进行比较,如果n<=thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=0;如果n>thd,则在当前宏块和下一个宏块之间插入的时钟周期数k=Total/MBs;使MBs=MBs-1,Total=Total-k;
步骤c,重复步骤b,直到完成所述缓冲区中所有宏块的数据编码。
5.根据权利要求4所述的装置,其特征在于,所述空闲时钟周期总数的确定模块还包括:
第一单元,用于确定为编码器处理缓冲区的图像数据所分配的时钟周期数;
第二单元,用于确定编码器处理缓冲区的图像数据所实际需要的时钟周期数;
第三单元,用所述分配的时钟周期数减去所述实际需要的时钟周期数,获得所述空闲时钟周期的总数T。
6.一种图像码流的平滑方法,其特征在于,包括如下步骤:
步骤一,确定编码器在处理缓冲区的图像数据的过程中能够分配的空闲时钟周期的总数T;
步骤二,将所述缓冲区的宏块编码后的比特数与预定门限进行比较,根据比较结果动态调整宏块之间插入的时钟周期数,所述缓冲区的宏块之间所有插入的时钟周期的总数不大于所述空闲时钟周期的总数T;
所述步骤二具体包括:
步骤a,初始化变量MBs、Total,MBs的初始值为所述缓冲区的宏块的总数,Total的初始值为T;
步骤b,对当前宏块进行编码,得到当前宏块码流的比特数n,将所述比特数n与第一预定门限thd进行比较,如果n<=thd,则在当前宏块和下一个宏 块之间插入的时钟周期数k=0;如果n>第二预定门限f,则在当前宏块和下一个宏块之间插入的时钟周期数k=m×Total/MBs,其中f>thd,m为预设的大于1的系数;如果thd<n<=f,则在当前宏块和下一个宏块之间插入的时钟周期数k=Total/MBs;使MBs=MBs-1,Total=Total-k;
步骤c,重复步骤b,直到完成所述缓冲区中所有宏块的数据编码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810119739 CN101360229B (zh) | 2008-09-08 | 2008-09-08 | 一种图像码流的平滑方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810119739 CN101360229B (zh) | 2008-09-08 | 2008-09-08 | 一种图像码流的平滑方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101360229A CN101360229A (zh) | 2009-02-04 |
CN101360229B true CN101360229B (zh) | 2013-02-13 |
Family
ID=40332553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810119739 Active CN101360229B (zh) | 2008-09-08 | 2008-09-08 | 一种图像码流的平滑方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101360229B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355577B (zh) * | 2011-09-23 | 2013-09-25 | 上海交通大学 | 一种多视视频码流的网络传输码率平滑方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953551A (zh) * | 2006-11-24 | 2007-04-25 | 北京中星微电子有限公司 | 图像压缩装置及方法 |
-
2008
- 2008-09-08 CN CN 200810119739 patent/CN101360229B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953551A (zh) * | 2006-11-24 | 2007-04-25 | 北京中星微电子有限公司 | 图像压缩装置及方法 |
Non-Patent Citations (1)
Title |
---|
JP特开平8-18984A 1996.01.19 |
Also Published As
Publication number | Publication date |
---|---|
CN101360229A (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1115055C (zh) | 待传输编码字视频信号的压缩方法和视频信号编码装置 | |
US8891370B2 (en) | Method and apparatus for transmitting a coded video signal | |
EP1446952B1 (en) | Method and system for rate control during video transcoding | |
CN102761741B (zh) | 基于编解码端缓存的视频编码码率控制系统和方法 | |
WO1999003282A1 (en) | Video data encoder, video data encoding method, video data transmitter, and video data recording medium | |
CN101171844A (zh) | 视频速率控制中的上下文自适应带宽调整 | |
KR20050018047A (ko) | 실시간 가변 비트율 제어로 화질을 개선시키는 비디오인코더의 인코딩율 제어기, 이를 구비한 비디오 데이터전송 시스템 및 그 방법 | |
CN1365235A (zh) | 对无缝拼接、可变编码率、压缩数字视频信号的帧比特长度分配 | |
CN101795415A (zh) | 一种视频编码中的码率控制方法及其装置 | |
WO2009121234A1 (zh) | 一种视频压缩码率控制方法 | |
US6845129B2 (en) | Controlling a video-buffer-verifier buffer using an MPEG-like encoder | |
WO2008045630A4 (en) | Method and apparatus for providing rate control for panel-based real-time video encoder | |
CN1273746A (zh) | 数据流的代码转换 | |
CN101299808B (zh) | 一种实时图像数据传输方法及装置 | |
CA2345538A1 (en) | Method and apparatus for providing rate control in a video encoder | |
EP1157560B1 (en) | Bit rate control for video data compression | |
US20090213928A1 (en) | Transcoder | |
CN1332576A (zh) | 一种用于图像压缩传输的量化与码流控制方法 | |
CN1592417A (zh) | 编码设备和编码方法 | |
CN102695058B (zh) | 基于大尺度缓冲策略的音、视频编码流控方法 | |
CN101360229B (zh) | 一种图像码流的平滑方法和装置 | |
CN102724507B (zh) | 一种gpu加速编码器码率控制方法 | |
CN1153473C (zh) | 具有几个数据压缩信道的数据压缩组件 | |
US8780977B2 (en) | Transcoder | |
KR100498332B1 (ko) | 비디오 트랜스코더의 적응적 비트율 제어장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210223 Address after: No. 602, 6th floor, shining building, 35 Xueyuan Road, Haidian District, Beijing 100083 Patentee after: BEIJING ZHONGXINGTIANSHI TECHNOLOGY Co.,Ltd. Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor Patentee before: Vimicro Corp. |