CN102547259A - 一种基于码率控制的视频编码方法和装置 - Google Patents

一种基于码率控制的视频编码方法和装置 Download PDF

Info

Publication number
CN102547259A
CN102547259A CN2010105981655A CN201010598165A CN102547259A CN 102547259 A CN102547259 A CN 102547259A CN 2010105981655 A CN2010105981655 A CN 2010105981655A CN 201010598165 A CN201010598165 A CN 201010598165A CN 102547259 A CN102547259 A CN 102547259A
Authority
CN
China
Prior art keywords
quantization parameter
current
encoded
macroblock
limit section
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.)
Granted
Application number
CN2010105981655A
Other languages
English (en)
Other versions
CN102547259B (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.)
Lusheng Technology Co.,Ltd.
Original Assignee
Leadcore 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 Leadcore Technology Co Ltd filed Critical Leadcore Technology Co Ltd
Priority to CN201010598165.5A priority Critical patent/CN102547259B/zh
Publication of CN102547259A publication Critical patent/CN102547259A/zh
Application granted granted Critical
Publication of CN102547259B publication Critical patent/CN102547259B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本申请实施例公开了一种基于码率控制的视频编码方法和装置。其中,方法包括:在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。根据本申请实施例,可以避免出现网络阻塞、丢包现象。

Description

一种基于码率控制的视频编码方法和装置
技术领域
本申请涉及视频压缩技术领域,特别是涉及一种基于码率控制的视频编码方法和装置。
背景技术
视频数据经过视频编码后,输出视频的视频质量是由编码码率决定的。编码码率越高,输出视频的码流越高,则视频质量越好,反之,编码码率越低,输出视频的码流越低,则视频质量越差。但是,另一方面,由于受到网络带宽或视频数据缓冲区容量的限制,需要将输出视频的码流控制在一定的范围,以满足网络带宽或视频缓冲区容量限制的同时,尽可能获得最好的视频质量。
现有的码率控制算法主要是通过调整量化系数大小来调整编码码率的。通常来说,当减小量化系数时,编码码率增大,经过编码后输出的视频的码流增大,视频质量随之提高;当增大量化系数时,编码码率减小,经过编码后输出的视频的码流减小,视频质量随之降低。当利用现有的码率控制算法具体对每个宏块(Macroblock)进行编码时,初始情况下,根据网络带宽设置一个量化系数的初始值,按照量化系数初始值对第一个宏块进行编码,根据已编码宏块计算编码比特数和失真率,并更新缓冲区的长度,进而更新量化系数,该更新过程包括:判断目标码率是否符合当前网络带宽的需求,如果不符合,根据当前网络带宽、已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值,如果符合,由当前的码率控制模型更新量化系数值。之后,当对第二个宏块进行编码时,按照更新后的量化系数值对第二宏块进行编码,以此类推,直至完成对视频图像的最后一个宏块的编码为止。上述的宏块,是视频编码技术中的一个基本概念,视频编码中,一个编码图像通常划分成若干宏块,一个宏块由一个亮度像素和附加的两个色度像素块组成。
但是,发明人在研究中发现,在实际应用中,视频序列是不断变化的,每一帧图像运动的剧烈程度、图像本身的复杂程度都不尽相同。例如,在某个时间段内,图像相对静止,编码时的编码比特数较小,实际占用的网络带宽较小;而后,如果发生场景变换,图像突然运动剧烈,编码比特数会突然增大,实际占用的网络带宽突然变大。对于固定的网络带宽而言,在编码后对量化系数的更新没有办法解决由于编码比特数的突然增大而带来的网络阻塞,甚至是丢包现象。
发明内容
为了解决上述技术问题,本申请实施例提供了一种基于码率控制的视频编码方法和装置,以避免出现网络阻塞、丢包现象。
本申请实施例公开了如下技术方案:
一种基于码率控制的视频编码方法,包括:在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
优选的,所述按照量化系数限制区间的区间值对待编码宏块进行编码包括:如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大预置对待编码宏块进行编码。
优选的,所述根据当前网络带宽、已编码宏块的编码比特数和失真率更新当前量化系数包括:判断目标码率是否符合当前网络带宽的需求;如果是,由当前的码率控制模型更新量化系数值,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值。
优选的,所述方法还包括:在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;如果所有已编码宏块的码流超过所述单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数。
优选的,所述方法还包括:如果对当前帧内的所有宏块完成编码,输出当前帧。
一种基于码率控制的视频编码装置,包括:量化系数预判单元,用于在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;宏块编码单元,用于如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;量化系数更新单元,用于计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
优选的,所述宏块编码单元包括:第一编码子单元,用于如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;第二编码子单元,用于如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大阈值对待编码宏块进行编码。
优选的,所述量化系数更新单元包括:带宽判断子单元,用于判断目标码率是否符合当前网络带宽的需求;更新子单元,用于如果是,由当前的码率控制模型更新量化系数值,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值。
优选的,所述装置还包括:最大码流判断单元,用于在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;最大码流控制单元,用于如果所有已编码宏块的码流超过所述单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数。
优选的,所述装置还包括:输出单元,用于如果对当前帧内的所有宏块完成编码,输出当前帧。
由上述实施例可以看出,与现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种基于码率控制的视频编码方法的一个实施例的流程图;
图2为本申请一种基于码率控制的视频编码方法的另一个实施例的流程图;
图3为本申请一种基于码率控制的视频编码方法的具体实施流程图;
图4为本申请一种基于码率控制的视频编码装置的一个实施例的结构图;
图5为本申请中宏块编码单元的一个结构示意图;
图6为本申请中量化系数更新单元的一个结构示意图;
图7为本申请一种基于码率控制的视频编码装置的另一个实施例的结构图。
具体实施方式
下面结合附图及实施例,对本申请实施例进行详细描述。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
实施例一
请参阅图1,其为本申请一种基于码率控制的视频编码方法的一个实施例的流程图,包括以下步骤:
步骤101:在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
需要说明的是,本申请实施例对量化系数限制区间的具体数值不进行限定。当获取到当前网络带宽后,对于一个确定分辨率的待编码序列而言,可以根据当前网络带宽和待编码图像确定一个量化系数限制区间。
步骤102:如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
例如,当预置的量化系数限制区间为6-20时,如果当前量化系数为10,即当前量化系数位于量化系数限制区间,则按照当前量化系数10对待编码宏块进行编码,如果当前量化系数为3或者25,即当前量化系数不在量化系数限制区间内,按照量化系数限制区间的区间值对待编码宏块进行编码。
其中,所述按照量化系数限制区间的区间值对待编码宏块进行编码包括:如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大预置对待编码宏块进行编码。
例如,当预置的量化系数限制区间为6-20时,如果当前量化系数为3,即当前量化系数小于量化系数限制区间的最小阈值,则按照量化系数限制区间的最小阈值6对待编码宏块进行编码;如果当前量化系数为25,即当前量化系数大于量化系数限制区间的最大阈值,则按照量化系数限制区间的最大阈值20对待编码宏块进行编码。
需要说明的是,上述按照量化系数限制区间的区间值对待编码宏块进行编码的方式仅仅为一种优化方法。除此优化方法之外,还可以从量化系数限制区间6-20中任意选取一个与当前量化系数临近的量化系数值,按照选取的量化系数值对待编码宏块进行编码。如,对于当前量化系数为3的情况,也可以从量化系数限制区间6-20中选择7或者8等与3临近的数值,然后按照选择的量化系数值对当前待编码宏块进行编码。对于当前量化系数为25的情况,也可以从量化系数限制区间6-20中选择18或者19等与25临近的数值,然后按照选择的量化系数值对当前待编码宏块进行编码。
步骤103:计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
其中,所述根据当前网络带宽、已编码宏块的编码比特数和失真率更新当前量化系数包括:判断目标码率是否符合当前网络带宽的需求;如果是,由当前的码率控制模型更新量化系数,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数。
当利用上述方式更新当前量化系数后,在对下一个宏块进行编码时,则将更新后的量化系数设置为当前量化系数,重复步骤101-103,直到图像编码完成为止。
由上述实施例可以看出,与现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
实施例二
本实施例与实施例一的区别之处在于,编码器每完成一个宏块的编码后,将所有已编码宏块的码流与预置的单帧最大码流值进行比较,如果所有已编码宏块的码流超过单帧最大码流值,提前结束对当前帧的编码,否则,继续编码,直至当前帧内的所有宏块编码完成。请参阅图2,其为本申请一种基于码率控制的视频编码方法的另一个实施例的流程图,该方法包括以下步骤:
步骤201:在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
步骤202:如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
步骤203:在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;
例如,当前帧共由100个宏块组成,逐一地对100个宏块进行编码,每完成一个宏块的编码后,计算当前所有已编码宏块的码流,判断当前所有已编码宏块的码流是否超过预置的单帧最大码流值。
需要说明的是,本申请实施例对预置的单帧最大码流值不做具体的数值限定。可以根据上层预留的内存空间确定一个单帧最大码流值。
步骤204:如果所有已编码宏块的码流超过单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数;
例如,当对第90个宏块进行编码后,统计已编码的90个宏块的码流,如果已编码的90个宏块的码流超过了预置的单帧最大码流值,提前结束对当前帧的编码,如果已编码的90个宏块的码流没有超过预置的单帧最大码流值,则继续对第91个宏块进行编码。
步骤205:计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
由于步骤201、202和205已经在实施例一中进行了详细地说明,故此处不再赘述,相关过程可以参见实施例一部分。
优选的,所述方法还包括:如果对当前帧内的所有宏块完成编码,输出当前帧。
由上述实施例可以看出,现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
另外,在编码每帧图像之前,上层提前告知编码器当前帧允许的单帧最大码流值,编码器获知这个参数,每完成一个宏块的编码之后,判断当前帧所有已编码宏块的码流长度是否超出了设置的单帧最大码流值,如果已经超出该值设定的范围,直接提前结束当前帧编码,相当于直接在编码器内部丢弃当前帧,使当前帧中已编码的宏块并不占用网络带宽资源,防止上层传输时造成网络阻塞。此外,在整个编码序列中也丢弃了当前帧,相对于在传输中丢弃,解码端更能保持视频序列的连续性。
实施例三
下面说明一种基于码率控制的视频编码方法的具体实施流程。请参阅图3,其为本申请一种基于码率控制的视频编码方法的具体实施流程图。包括以下步骤:
步骤301:判断是否所有宏块编码完成,如果是,进入步骤314,否则,进入步骤302;
步骤302:判断当前宏块是否为第一个宏块,如果是,进入步骤303,否则,进入步骤304;
步骤303:根据网络带宽设置一个量化系数的初始值,将初始值作为当前的量化系数;
步骤304:判断当前量化系数是否位于预置的量化系数限制区间,如果是,进入步骤305,否则,进入步骤306;
步骤305:按照当前量化系数对当前待编码宏块进行编码,进入步骤307;
步骤306:按照量化系数限制区间的区间值对当前待编码宏块进行编码;
其中,如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大阈值对待编码宏块进行编码。
步骤307:计算得到所有已编码宏块的码流;
步骤308;判断所有已编码宏块的码流是否超出预置的单帧最大码流值,如果是,进入步骤309,否则,进入步骤310;
步骤309:结束对当前帧的编码,结束流程;
步骤310:更新缓冲区长度;
步骤311:判断目标码率是否符合当前网络带宽的需求,如果是,进入步骤313,否则,进入步骤312;
步骤312:根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型;
步骤313:由当前的码率控制模型更新量化系数值,返回步骤301。
其中,如果判定目标码流符合当前网络带宽的需求,则直接进入步骤313,由当前的码率控制模型更新量化系数值,如果不符合当前网络带宽的需求,进入步骤312,先根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,再进入步骤313,由更新后的当前的码率控制模型更新量化系数值。
随后,返回步骤301,继续判断是否所有宏块编码完成。
步骤314:当前帧编码完成,结束流程。
由上述实施例可以看出,与现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
同时,在编码每帧图像之前,上层提前告知编码器当前帧允许的单帧最大码流值,编码器获知这个参数,每完成一个宏块的编码之后,判断当前帧所有已编码宏块的码流长度是否超出了设置的单帧最大码流值,如果已经超出该值设定的范围,直接提前结束当前帧编码,相当于直接在编码器内部丢弃当前帧,使当前帧中已编码的宏块并不占用网络带宽资源,防止上层传输时造成网络阻塞。此外,在整个编码序列中也丢弃了当前帧,相对于在传输中丢弃,解码端更能保持视频序列的连续性。
实施例四
与上述一种基于码率控制的视频编码方法相对应,本申请实施例还提供了一种基于码率控制的视频编码装置。请参阅图4,其为本申请一种基于码率控制的视频编码装置的一个实施例的结构图。该装置包括:量化系数预判单元401、宏块编码单元402和量化系数更新单元403。
量化系数预判单元401,用于在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
宏块编码单元402,用于如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
量化系数更新单元403,用于计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
其中,请参阅图5,其为本申请中宏块编码单元的一个结构示意图。如图5所示,宏块编码单元402包括:第一编码子单元4021和第二编码子单元4022,
第一编码子单元4021,用于如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;
第二编码子单元4022,用于如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大阈值对待编码宏块进行编码。
请参阅图6,其为本申请中量化系数更新单元的一个结构示意图。如图6所示,量化系数更新单元403包括:带宽判断子单元4031和更新子单元4032,
带宽判断子单元4031,用于判断目标码率是否符合当前网络带宽的需求;
更新子单元4032,用于如果是,由当前的码率控制模型更新量化系数值,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值。
由上述实施例可以看出,与现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
实施例五
本实施例与实施例四的区别在于,还增加了最大码流判断单元和最大码流控制单元。请参阅图7,其为本申请一种基于码率控制的视频编码装置的另一个实施例的结构图。该装置包括:量化系数预判单元401、宏块编码单元402和量化系数更新单元403、最大码流判断单元404和最大码流控制单元405。
量化系数预判单元401,用于在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
宏块编码单元402,用于如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
量化系数更新单元403,用于计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数;
最大码流判断单元404,用于在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;
最大码流控制单元405,用于如果所有已编码宏块的码流超过所述单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数。
其中,上述量化系数预判单元401、宏块编码单元402和量化系数更新单元403已经在实施例四中进行了详细地描述,故此处不再赘述,相关内容可以参见实施例四中描述。
进一步优选的,该装置还包括输出单元,用于如果对当前帧内的所有宏块完成编码,输出当前帧。
由上述实施例可以看出,现有技术相比,本申请具有如下优点:
在编码器对当前待编码的图像进行编码之前,根据当前的网络带宽,确定一个量化系数限制区间,以保证编码过程中进行码率控制时能够按照确定的量化系数限制区间限制当前的量化系数值。当视频图像在一段时间之内运动相对静止时,量化系数值也会越来越小,而在视频图像的运动突然加剧之后,单帧编码的比特数也会突然增大,利用量化系数限制区间提前限制量化系数的最小值,可以在一定范围之内限制激增的编码比特数不会过大;而另一方面,当视频图像运动相对剧烈时,过大的量化系数值会导致编码之后的图像质量下降,尤其是I帧图像质量,而利用量化系数限制区间提前限制量化系数的最大值,可以保证图像质量不会变得更差,并且在运动平缓之后,迅速提升图像质量。最终避免了图像在剧烈变化后而出现的网络阻塞、丢包现象。
同时,在编码每帧图像之前,上层提前告知编码器当前帧允许的单帧最大码流值,编码器获知这个参数,每完成一个宏块的编码之后,判断当前帧所有已编码宏块的码流长度是否超出了设置的单帧最大码流值,如果已经超出该值设定的范围,直接提前结束当前帧编码,相当于直接在编码器内部丢弃当前帧,使当前帧中已编码的宏块并不占用网络带宽资源,防止上层传输时造成网络阻塞。此外,在整个编码序列中也丢弃了当前帧,相对于在传输中丢弃,解码端更能保持视频序列的连续性。
以上对本申请所提供的一种基于码率控制的视频编码方法和装置进行了详细介绍,本文中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,在不脱离本发明描述的原理前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于码率控制的视频编码方法,其特征在于,包括:
在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
2.根据权利要求1所述的方法,其特征在于,所述按照量化系数限制区间的区间值对待编码宏块进行编码包括:
如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;
如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大预置对待编码宏块进行编码。
3.根据权利要求1所述的方法,其特征在于,所述根据当前网络带宽、已编码宏块的编码比特数和失真率更新当前量化系数包括:
判断目标码率是否符合当前网络带宽的需求;
如果是,由当前的码率控制模型更新量化系数值,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值。
4.根据权利要求1-3中的任意一项所述的方法,其特征在于,所述方法还包括:
在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;
如果所有已编码宏块的码流超过所述单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数。
5.根据权利要求4所述的编码方法,其特征在于,所述方法还包括:
如果对当前帧内的所有宏块完成编码,输出当前帧。
6.一种基于码率控制的视频编码装置,其特征在于,包括:
量化系数预判单元,用于在对当前待编码宏块进行编码之前,判断当前量化系数是否位于预置的量化系数限制区间;
宏块编码单元,用于如果当前量化系数位于所述量化系数限制区间,按照所述当前量化系数对待编码宏块进行编码,否则,按照所述量化系数限制区间的区间值对待编码宏块进行编码;
量化系数更新单元,用于计算当前已编码宏块的编码比特数和失真率,并根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前量化系数。
7.根据权利要求6所述的装置,其特征在于,所述宏块编码单元包括:
第一编码子单元,用于如果当前量化系数小于所述量化系数限制区间的最小阈值,按照所述最小阈值对待编码宏块进行编码;
第二编码子单元,用于如果当前量化系数大于所述量化系数限制区间的最大阈值,按照所述最大阈值对待编码宏块进行编码。
8.根据权利要求6所述的装置,其特征在于,所述量化系数更新单元包括:
带宽判断子单元,用于判断目标码率是否符合当前网络带宽的需求;
更新子单元,用于如果是,由当前的码率控制模型更新量化系数值,否则,根据当前网络带宽、当前已编码宏块的编码比特数和失真率更新当前的码率控制模型,由更新后的码率控制模型更新量化系数值。
9.根据权利要求6-8中的任意一项所述的装置,其特征在于,所述装置还包括:
最大码流判断单元,用于在对当前待编码宏块进行编码,且计算得到所有已编码宏块的码流之后,判断所述所有已编码宏块的码流是否超过预置的单帧最大码流值;
最大码流控制单元,用于如果所有已编码宏块的码流超过所述单帧最大码流值,结束对当前帧的编码,否则,继续更新当前量化系数。
10.根据权利要求9所述的方法,其特征在于,所述装置还包括:
输出单元,用于如果对当前帧内的所有宏块完成编码,输出当前帧。
CN201010598165.5A 2010-12-21 2010-12-21 一种基于码率控制的视频编码方法和装置 Active CN102547259B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010598165.5A CN102547259B (zh) 2010-12-21 2010-12-21 一种基于码率控制的视频编码方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010598165.5A CN102547259B (zh) 2010-12-21 2010-12-21 一种基于码率控制的视频编码方法和装置

Publications (2)

Publication Number Publication Date
CN102547259A true CN102547259A (zh) 2012-07-04
CN102547259B CN102547259B (zh) 2015-04-29

Family

ID=46353066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010598165.5A Active CN102547259B (zh) 2010-12-21 2010-12-21 一种基于码率控制的视频编码方法和装置

Country Status (1)

Country Link
CN (1) CN102547259B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724513A (zh) * 2012-07-12 2012-10-10 杭州海康威视数字技术股份有限公司 有实时码率控制的媒体流编码方法及其系统
CN102752598A (zh) * 2012-07-09 2012-10-24 北京博雅华录视听技术研究院有限公司 快速自适应码率控制方法
CN105940608A (zh) * 2014-01-28 2016-09-14 胡夫·许尔斯贝克和福斯特有限及两合公司 用于传感器信号的评估方法
CN106559671A (zh) * 2015-09-30 2017-04-05 展讯通信(上海)有限公司 一种显示图像压缩方法及系统
CN110572424A (zh) * 2018-06-06 2019-12-13 杭州海康威视数字技术股份有限公司 设备控制方法、装置、电子设备及存储介质
CN111698505A (zh) * 2020-06-23 2020-09-22 湖南国科微电子股份有限公司 视频帧编码方法、装置、编码设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471319A (zh) * 2002-07-22 2004-01-28 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
CN101222296A (zh) * 2008-01-31 2008-07-16 上海交通大学 上行蜂窝视频通信中自适应的传输方法及系统
CN101409828A (zh) * 2008-10-30 2009-04-15 中兴通讯股份有限公司 视频监控数据传输方法和系统、及视频监控中心服务器
KR100961742B1 (ko) * 2008-12-15 2010-06-07 충북대학교 산학협력단 H.264/avc의 매크로블록 단위 비트율 제어 방법
CN101854534A (zh) * 2009-03-31 2010-10-06 郑州大学 一种h.264快速帧间模式选择方法
CN101895753A (zh) * 2010-07-07 2010-11-24 清华大学 基于网络拥塞程度的视频传输方法、系统及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1471319A (zh) * 2002-07-22 2004-01-28 中国科学院计算技术研究所 结合率失真优化的码率控制的方法及其装置
CN101222296A (zh) * 2008-01-31 2008-07-16 上海交通大学 上行蜂窝视频通信中自适应的传输方法及系统
CN101409828A (zh) * 2008-10-30 2009-04-15 中兴通讯股份有限公司 视频监控数据传输方法和系统、及视频监控中心服务器
KR100961742B1 (ko) * 2008-12-15 2010-06-07 충북대학교 산학협력단 H.264/avc의 매크로블록 단위 비트율 제어 방법
CN101854534A (zh) * 2009-03-31 2010-10-06 郑州大学 一种h.264快速帧间模式选择方法
CN101895753A (zh) * 2010-07-07 2010-11-24 清华大学 基于网络拥塞程度的视频传输方法、系统及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王磊: "MPEG-2到AVS视频转换编码码率控制策略研究", 《天津大学电子信息工程学院》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752598A (zh) * 2012-07-09 2012-10-24 北京博雅华录视听技术研究院有限公司 快速自适应码率控制方法
CN102724513A (zh) * 2012-07-12 2012-10-10 杭州海康威视数字技术股份有限公司 有实时码率控制的媒体流编码方法及其系统
CN102724513B (zh) * 2012-07-12 2015-08-19 杭州海康威视数字技术股份有限公司 有实时码率控制的媒体流编码方法及其系统
CN105940608A (zh) * 2014-01-28 2016-09-14 胡夫·许尔斯贝克和福斯特有限及两合公司 用于传感器信号的评估方法
CN105940608B (zh) * 2014-01-28 2019-05-03 胡夫·许尔斯贝克和福斯特有限及两合公司 用于传感器信号的评估方法
CN106559671A (zh) * 2015-09-30 2017-04-05 展讯通信(上海)有限公司 一种显示图像压缩方法及系统
CN106559671B (zh) * 2015-09-30 2019-08-23 展讯通信(上海)有限公司 一种显示图像压缩方法及系统
CN110572424A (zh) * 2018-06-06 2019-12-13 杭州海康威视数字技术股份有限公司 设备控制方法、装置、电子设备及存储介质
CN111698505A (zh) * 2020-06-23 2020-09-22 湖南国科微电子股份有限公司 视频帧编码方法、装置、编码设备及可读存储介质
CN111698505B (zh) * 2020-06-23 2022-03-25 湖南国科微电子股份有限公司 视频帧编码方法、装置、编码设备及可读存储介质

Also Published As

Publication number Publication date
CN102547259B (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN101031086B (zh) 视频信息编码方法及设备和视频信息解码方法及设备
CN101594525B (zh) 量化参数的获取方法、装置及转码器
CN102547259A (zh) 一种基于码率控制的视频编码方法和装置
CN101010964B (zh) 在可分级视频编码中的使用帧速率上变换技术的方法与设备
CN101098473B (zh) 一种图像编码方法及装置
CN102065302B (zh) 一种基于h.264的可伸缩视频编码方法
CN101171844A (zh) 视频速率控制中的上下文自适应带宽调整
US8165203B2 (en) Line-based video rate control
JP2013258754A (ja) 映像符号化規格に対応した映像レート制御の改善
RU2009116472A (ru) Динамическая модификация свойств видео
CN101790099A (zh) 视频编码
CN104394484A (zh) 一种无线实时流媒体传输方法
CN102833548B (zh) 经由视频信道传输多个视频流的方法和装置
US9172967B2 (en) Coding and decoding utilizing adaptive context model selection with zigzag scan
CN103200400A (zh) 一种图像层和分片层的编解码方法、编解码器和电子设备
CN110149515B (zh) 数据传输方法及装置
CN101931799A (zh) 一种视频码流的平滑方法及装置
CN112543328A (zh) 辅助编码方法、装置、计算机设备及存储介质
CN101448157A (zh) 一种视频编码方法和视频编码器
US20080144505A1 (en) Method and Apparatus for Bitrate Reduction
CN103843338A (zh) 帧内编码图像块的自适应量化
CN100442848C (zh) 一种h263编码中码率的控制方法
US20030007559A1 (en) Apparatus and method for image transmission
CN115701709A (zh) 视频编码方法、装置、计算机可读介质及电子设备
KR20050090841A (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: 20170418

Address after: 201206 China (Shanghai) free trade zone, the moon Road, No. 3, building fourth, room B412, level 1258

Patentee after: Shanghai Li Ke Semiconductor Technology Co., Ltd.

Address before: 201206 Pudong New Area Mingyue Road, Shanghai, No. 1258

Patentee before: Leadcore Technology Co., Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 201203 1st, 6th and 7th floors, building 2, No. 1761, Zhangdong Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Patentee after: Shanghai Li Ke Semiconductor Technology Co.,Ltd.

Address before: Room b412, 4th floor, building 3, 1258 Mingyue Road, China (Shanghai) pilot Free Trade Zone

Patentee before: Shanghai Li Ke Semiconductor Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200831

Address after: 610200 Sichuan Chengdu Shuangliu District Dongsheng Street Chengdu core industrial park concentration area

Patentee after: Lusheng Technology Co.,Ltd.

Address before: 201203 1st, 6th and 7th floors, building 2, No. 1761, Zhangdong Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Patentee before: Shanghai Li Ke Semiconductor Technology Co.,Ltd.