CN100464585C - 一种视频压缩方法 - Google Patents

一种视频压缩方法 Download PDF

Info

Publication number
CN100464585C
CN100464585C CNB2006100808288A CN200610080828A CN100464585C CN 100464585 C CN100464585 C CN 100464585C CN B2006100808288 A CNB2006100808288 A CN B2006100808288A CN 200610080828 A CN200610080828 A CN 200610080828A CN 100464585 C CN100464585 C CN 100464585C
Authority
CN
China
Prior art keywords
present frame
macro block
frame
quantizing factor
carried out
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
CNB2006100808288A
Other languages
English (en)
Other versions
CN1984327A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2006100808288A priority Critical patent/CN100464585C/zh
Publication of CN1984327A publication Critical patent/CN1984327A/zh
Application granted granted Critical
Publication of CN100464585C publication Critical patent/CN100464585C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种视频压缩方法,该方法包括:对于第一帧图像:以上限量化因子作为当前帧量化因子对当前帧进行帧内编码;对于第一帧之后的图像:判断当前帧是否发生画面切换,如果是则以上限量化因子作为当前帧量化因子对当前帧进行帧内编码,否则根据参考帧量化因子计算得到当前帧量化因子,并根据当前帧量化因子对当前帧进行编码。从上述方案中可以看出,由于本发明在活动视频处理的基础上进行简化,通过控制量化系数的变化来实现反应时间、流量分布的动态调整。本发明通过特色的速率控制方法,使得KVM视频压缩的编码输出平稳,平滑了突发数据量,提高了KVM显示界面的响应速度,从而满足了终端用户的操作习惯。

Description

一种视频压缩方法
技术领域
本发明涉及图像处理技术领域,特别是一种针对键盘、视频、鼠标管理(KVM)的视频压缩方法。
背景技术
目前键盘、视频、鼠标管理(Key Video Mouse,KVM)在远程管理中得到了广泛的应用,KVM主要针对计算机的主要输入、输出接口进行远程控制,一般包括键盘、鼠标、显示三种方式。键盘以及鼠标的信息数据量较少,比较容易实现,而输出显示的视频数据量很大,因此需要对视频数据进行有效的压缩,才能在带宽有限的情况下传输视频数据。
众所周知,标准视频压缩算法的应用前提是连续、活动、丰富的动态画面,在这些情况下它的压缩效率和适应性都很强。当一些特殊应用场合的画面变化有个性化特征时,标准视频压缩算法可能达不到令人满意的视觉效果或压缩效率。
KVM的显示输出是连续的并且屏幕内容是各式各样的,因此可以按照视频压缩进行处理。但是KVM屏幕显示又有其特殊性:屏幕内容信息丰富,所以要求画面细节很清晰,信息损失不能很多,这就需要较小的量化系数。
计算机显示内容部分或全部在较长时间内(例如,人手频繁操作键盘、鼠标的间隔)保持不变的特征,使得压缩码率降得很低成为可能,从这一点看静态图片压缩算法似乎更适合计算机显示内容的压缩。静态图片压缩要检测计算机显示的每一帧画面是否与前一幅画面相同,如果不同则将改变部分按静态图片进行压缩。但这种处理在计算机频繁切换画面时会有较大的突发流量,而在画面静止时则没有压缩数据,所以数据流量很不平衡,如果强制平滑数据流量,则在实时传输的接收端有较大的延时,可能长达几秒,从而影响实时传输的效果。由此看来两种处理算法用在计算机屏幕信息压缩时都有不尽人意的地方。
常规的运动图像专家组(MPEG)系列、H.26x系列、联合图像专家组(JPEG)系列的视频、图像压缩标准都是针对通用视频的压缩处理,复杂度高、速率高,不能满足KVM实用化要求。并且这几种方案没有充分考虑KVM应用的显示视频特点,不能满足用户的使用习惯。
发明内容
本发明提出了一种针对KVM的视频压缩方法,用以使得KVM视频压缩的编码输出平稳,从而提高KVM显示界面的响应速度,满足终端用户的操作习惯。
根据上述目的,本发明提供了一种视频压缩方法,该方法包括:对于第一帧图像:以上限量化因子作为当前帧量化因子对当前帧进行帧内编码;对于第一帧之后的图像:判断当前帧是否发生画面切换,如果是则以上限量化因子作为当前帧量化因子对当前帧进行帧内编码,否则根据参考帧量化因子计算得到当前帧量化因子,并根据当前帧量化因子对当前帧进行编码。
所述判断当前帧是否发生画面切换的步骤包括:统计当前帧与参考帧重建图像像素值不同的像素点占整帧图像的比例,当该比例大于预先设定的门限值时,得出发生画面切换的结果,否则得出未发生画面切换的结果。
所述对当前帧进行帧内编码的步骤包括:对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;对该宏块数据进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
所述对当前帧进行帧内编码的步骤包括:设置值128的灰色数据作为参考帧重建图像;对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;将参考帧重建图像中对应于该宏块的宏块与该宏块相减得到两者的差值;对所述差值进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
所述根据参考帧量化因子计算得到当前帧量化因子的步骤包括:将参考帧编码数据量与门限平均编码数据量的差值乘以预定系数作为量化因子变化量,由参考帧量化因子加上量化因子变化量得到当前帧的量化因子。
根据当前帧量化因子对当前帧进行编码的步骤包括:对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;将参考帧重建图像中与该宏块对应的宏块与该宏块相减得到两者的差值;对所述差值进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
对量化后的数据进行数据编码的方式为变长编码或游程编码。
通过将当前帧量化因子乘以
Figure C200610080828D00071
来调整得到所述宏块的量化因子,其中actj表示所述宏块内容变化剧烈程度,avg_act表示当前帧整体内容变化剧烈程度。
在对当前帧进行编码的步骤中进一步包括:对于图像帧内任意位置的宏块,如果在规定时间间隔内该位置的宏块没有进行块内编码,则在所述时间间隔后对该位置的宏块进行离散余弦变换,根据该位置宏块的量化因子对离散余弦变换的结果进行量化处理,对量化后的数据进行数据编码。
预先将帧内各宏块的位置信息随机排列;在对当前帧进行编码的步骤中进一步包括:在所述排列中顺序读取预定数目的位置信息,对与所读取的位置信息对应的宏块进行离散余弦变换,根据与所读取的位置信息对应的宏块的量化因子对离散余弦变换的结果进行量化处理,对量化后的数据进行数据编码。
从上述方案中可以看出,由于本发明在活动视频处理的基础上进行简化,通过控制量化系数的变化来实现反应时间、流量分布的动态调整。本发明将量化系数在画面切换时设为一个最大值,在后续一系列帧中按一定策略逐步减小,则切换帧编码的是框架部分,后续帧编码是细节,重放效果就是切换画面逐步清晰,数据流量分布在切换画面后的一系列帧中。因此,本发明通过特色的速率控制方法,使得KVM视频压缩的编码输出平稳,从而平滑了突发数据量以及提高了KVM显示界面的响应速度,满足了终端用户的操作习惯。
附图说明
图1为本发明实施例中输入的视频序列的示意图。
图2为本发明实施例中视频压缩的原理框图。
图3为本发明实施例中视频压缩方法的流程示意图。
图4为图像数据层次结构的示意图。
图5为编码码流的结构示意图。
图6为本发明实施例中确定切换屏幕以及确定块编码类型的示意图。
图7为本发明实施例中强制块内编码的时间间隔示意图。
图8为本发明实施例中帧间预测的示意图。
图9为本发明实施例中DCT变换的示意图。
图10为宏块的结构示意图。
图11为本发明实施例中量化的示意图。
图12为视频压缩编码的简单框图。
图13为“Z”字形编码顺序的示意图。
图14(A)为DC系数编码使用的映射表,图14(B)和图14(C)为AC系数编码使用的映射表。
图15为本发明实施例中重建参考图像的示意图。
图16为本发明实施例中速率控制的流程示意图。
图17为实际速率控制中主要参数变化的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下举实施例对本发明进一步详细说明。
本发明总的思想是在活动视频处理的基础上进行简化,通过控制量化系数的变化来实现反应时间、流量分布的动态调整。举例来说:如果量化系数设为1,则变化的画面内容马上全部被编码,后续不变化的画面编码数据除了帧头外为零,这样的效果相当于静态图片压缩,数据流量集中在变化画面;如果把量化系数在画面切换时设为一个最大值,在后续一系列画面中按一定策略逐步减小量化系数,则变化的画面中编码的是框架部分,后续画面中编码是细节,在接收端重放的效果就是切换画面逐步清晰,数据流量分布在切换画面后的一系列帧中。可以看出,这种实现方式下的JPEG与MPEG是相通的,控制量化因子的变化策略就可以实现从JPEG到MPEG的渐变。因此,本发明实施例主要在MPEG标准算法架构上进行了修改、调整,形成一种适合KVM应用的视频压缩方法。
相对于常规的MPEG等视频压缩方法,实施例中描述的方法具有如下特点:
1、压缩编码类型设置。第一帧按帧内编码处理,后续帧按帧间编码处理。
2、设定实际速率控制。比如400kbit/s,此速率是1024×768分辨率下的目标速率,如果用于其它尺寸大小的图像序列,则换算为相应的速率,例如对704×576分辨率图像的控制目标速率是200kbit/s。速率控制的目标是优先保证编码速率恒定为设定值。例如,可以实现从100kbit/s至400kbit/s之间任何目标速率的控制,具有较大的灵活性。
3、帧变化检测。对前后相邻两帧进行比较,即将对应位置像素值相减,统计出像素值不同的像素数,并计算出占整幅画面的比例。可以将变化比例与预先设定的门限值相比较,当该比例大于门限值时得出发生画面切换,否则得出未发生画面切换,从而判断出画面变化形式。例如,门限值为50%,如果只有小于50%的几十个变化样点且分布区域相对集中,则可能是鼠标移动;如果变化比例超过50%且分布区域为矩形,则可能是画面切换操作。也可以用其它方法判断是否发生画面切换操作。进一步,可以根据变化比例确定量化步长控制的调整程度。
4、量化步长控制。有画面切换时量化因子设为最大的上限值,后续帧的量化因子在满足速率控制的前提下逐渐变小;由于KVM显示的特征,大部分前后连续的画面是相同的,随着量化因子变小,画面也逐步清晰。由此可以实现高帧频率、快速切换、逐次清晰的KVM视频压缩、传输机制。另外,鼠标移动可以不影响量化步长的变化控制。
5、增加量化级数。在实际仿真验证过程中,发现31级量化有些少,因为要得到很清晰的画面效果,最小量化因子不宜太大,画面切换时编码帧的数据量又要控制在平均速率的4~5倍以下,最大量化因子要选得很大,所以31级量化就有些少,要适当增加。所以在本发明实施例中优选使用增加的量化级数,也就是加长量化因子指示位的长度。
6、关闭运动估计。优选地,所有运动估计的运动矢量都强制为零。计算机屏幕滚动的概率较低,不进行运动估计可以大幅度降低计算量。另外,预测补偿处理过程可以不作变化。
7、强制块内编码控制。第一帧之外的帧全部为P帧,对P帧的编码除了遵循标准的处理过程外,还可以增加一项附加控制,即在一规定的时间间隔内,图像中每个位置的宏块都应有一次块内编码,如果某位置的宏块在规定时间间隔内没有做块内编码,就在超出时间间隔的第一时间对其强制做块内编码,这些强制做块内编码宏块(不包括按编码控制策略做块内编码的宏块)的时间参考点在时间轴上的分布是均匀的。上述规定的时间间隔是预先设置的,并且可以调节,例如可以根据传输网络质量来调节该时间间隔,即在传输网络质量较好时降低时间间隔,在传输网络质量较差时提高时间间隔。
8、码流格式。可以保留标准码流格式的一些参数设置,但是还可以借鉴H.264码流的优点对码流格式进行必要精简。
上面提出的1~5点是实现计算机屏幕压缩实现逐次清晰、流量平滑必须实现的几处算法处理,6~8点则可以进一步提升其性能。
接着,参照图1描述输入的视频序列。通过交互式数字视频系统(DVI)接口以帧为单位输入计算机屏幕的视频数据,每帧的大小为计算机显示的分辨率,例如640×480、800×600、1024×768、1152×864、1280×1024或1600×1200。输入的视频数据可以使用符合CCIR601规定的YUV 4:2:0格式或者其它格式。
图2为本发明实施例的原理框图。在图2中最上面几个模块是压缩处理的主流程,其中离散余弦变换(Discrete Cosine Transform,DCT)模块用于进行离散余弦变换,量化(Quant,Q)模块用于对DCT变化的结果进行量化;逆量化(Inverse Quant,IQ)模块和DCT反变换(Inverse Discrete CosineTransform,IDCT)模块用于重建参考图像,其中IQ模块用于对量化的结果进行逆量化,IDCT模块用于对逆量化的结果进行DCT反变换。图2中的各功能模块完成视频压缩的整个处理流程,所有的控制方法或过程在框图中没有画出,将在后面详细描述。
下面参照图3描述本发明实施例的方法。参考图3,本实施例的视频压缩流程包括以下步骤:
步骤110,输入当前帧数据。
下面举例描述所输入数据的码流格式。KVM压缩编码码流格式可以采用与MPEG系列标准类似的序列格式,为了使得码流开销达到最小,可以对其中可选位域作尽可能的精简。
图4表示压缩编码算法处理的图像数据的层次结构,图5表示图像数据的编码码流,参考图示结构本领域技术人员可以很好地了解压缩码流的分层嵌套结构以及理解码流精简原则和实施措施。
编码码流分五个层次:系列层、图像组(Group of Picture,GOP)层、图像(picture)层、片(slice)层、宏块(Micro Block,MB)层。
其中系列层包括一个序列头和若干个图像组。序列头只在压缩码流中出现一次,它包含起始码、图像水平尺寸、图像垂直尺寸、像素长宽比、帧频率、码流速率、块内编码量化矩阵、非块编码量化矩阵等,这些信息对接收端解码处理是至关重要的,除了在码流开始时传送外,如果有多个终端用户后续加入对码流的接收时,也应把这些信息发送给后续加入用户。
图像组层包括一个图像组头和若干个图像。图像组头可能在压缩码流中出现多次,出现频率就是图像组重复频率,它包括一个起始码、一个时间码,其重要性一般,起始码在数据传输出现错误时能帮助尽快找到下一起始位置,时间码在对被监控设备进行录像时起很重要的作用。由于图像组头较短,重复频率很低(1~2次/秒)。
图像层是包括一个图像头和若干个片单元。图像是压缩最重要的层次结构,许多处理都是基于图像或图像内宏块的处理。
片层是在图像层和宏块层之间起承上启下作用的一个结构,它包括一个片头和若干个宏块。片层的头部包括一个起始码、量化扩展码,十分简单。
宏块层的结构比较复杂,内容也比较多,由于业务应用的特点,可以不支持一些宏块的编码模式,但块内编码、块间编码、块跳过、量化因子等模式都是必需的。
步骤120,宏块编码类型确定。
对KVM视频来说,显示内容的移动特征并不明显,做复杂的运动估计将是一个很大的浪费,所以KVM视频的运动估计是无运动检测的块编码类型估计。
KVM视频压缩方法中的估计处理完成三项处理:(1)如图6所示,将当前帧与参考帧重建图像逐点比较,统计像素值不同的像素点占整帧图像的比例,如果比例大于预先设定的门限值则认为发生画面切换,否则认为没有发生画面切换,例如所述门限值为50%;(2)如图6所示,按宏块计算参考帧重建图像与当前帧的对应两个宏块之间的均方差,并与当前帧的宏块方差进行比较,确定是块间编码还是块内编码,例如超过当前帧的宏块方差时则采用块内编码,否则采用块间编码;(3)为了增加抗网络传输错误的能力,增加了强制块内编码控制措施,此措施在确定宏块编码模式时实施。
参照图7,描述强制块内编码控制的具体实现。在某规定的时间间隔内,图像中每个位置的宏块都应有一次块内编码;如果某块在规定间隔内没有做块内编码,就在超出时间间隔的第一时间强制做块内编码,这些强制做块内编码的宏块(不包括按标准编码控制策略做块内编码的宏块)的时间参考点在时间轴上的分布是均匀的。规定的时间间隔(tn-t0)是可以调节的,它的调节与传输网络质量紧密相关,可以根据操作者的需求人为设定。例如,如图7所示,在某时刻t3图像块(i3,j3)被强迫块内编码。
例如,强制块内编码控制的一种实现方法是下标映射查表法。该方法的过程如下:首先把0到
Figure C200610080828D00131
的数做一个一维随机排列表,其中H和V分别表示长度和宽度,在整个编码过程都固定使用此表;根据预先计算出的每帧应当强迫块内编码的宏块数目,从与上一帧最后一个读取位置相连的下一个位置开始,连续从随机排列表中顺序读出数据,这些数据用作强迫块内编码块的位置下标。简言之,将帧内各宏块的位置信息随机排列,在对当前帧编码的过程中,顺序读取预定数目的位置信息,对与所读取的位置信息对应的宏块强迫进行块内编码。下标映射查表的设计可以做出多种特技效果。
另外,估计只对亮度分量Y数据进行处理,不涉及色度分量U和V,后继处理环节都处理YUV三个分量。
步骤130,帧间前向预测。
如图8所示,KVM视频压缩方法中的帧间预测处理是简单的数据复制过程,即:块间编码块宏块直接复制重建参考帧的数据;块内编码宏块不需要预测数据,但可以把块内编码宏块预测设为值128的灰色数据,以减少数据量。
步骤140,DCT变换。
宏块二维DCT变换的目的是使能量集中,便于变长编码(Vary lengthcode,VLC)。如图9所示,将参考帧的预测数据与当前帧相减,对差值进行二维DCT变换。
如图10所示,宏块中亮度块Y的尺寸是16×16,划分为4个8×8的块,色度块U和V各有一个8×8的块。在本步骤中,每个8×8的块单独作二维DCT变换。
步骤150,量化,其中至少包括速率控制。
如图11所示,对DCT变换后的系数进行量化处理,系数除以量化因子Q就是量化值。量化因子由两部分组成,一个是量化矩阵,另一个是可变量化因子mquant,即Q=default_intra(inter)_quantizer_matrix×mquant。不同编码模式的宏块量化使用不同的量化矩阵,量化矩阵可以自行定义,也可以使用缺省的量化矩阵,自定义量化矩阵需要写入码流中。mquant由速率控制模块根据速率控制目标和图像复杂程度确定,随着图像变换和时间推移而变化,同一帧图像某块的mquant与本块和所有块平均复杂度的比值密切相关。可变量化因子mquant的取值可以是2、4、6、8...62等31个偶数值。系数量化后的值如果超出范围,则进行削波处理。
步骤160,VLC编码,写入码流序列。
图像量化后的数据编码包括:把量化数据按宏块为单位进行编码并组成一个相对独立的码流片段,打成一个或多个数据包进行传输。图12是视频压缩处理的简单框图,图中标出各个处理环节需要编码的数据信息:块编码模式、块是否编码标志、可变量化因子、块量化数据等,这些数据采用可变长编码方式。也可以采用其它编码方式,如游程编码(RLC)等。
宏块编码有块内(Intra)编码和块间(Inter)编码两种模式,块内编码没有CBP指示,块间编码有CBP指示。表1表示一个简单的参数组合,其中MQUANT为量化因子,CBP指示未被跳过的宏块的那几块有编码数据,TCOEFF为变换系数(Transform coefficient)。当宏块类型为块内编码时,一个宏块内的6个块的TCOEFF都需要编码进行传送,当宏块类型为块间编码时,则由CBP决定哪些块有TCOEFF需要传送。可以理解为宏块层的数据。
 
MQUANT CBP TCOEFF
Intra y
Intra y y
Inter y y
Inter y y y
表1 简单参数组合
如果一个或多个邻接宏块不需编码,则宏块被跳过,后接宏块的地址增加指示域大于1,表示此块前面有数个宏块被跳过而没有编码数据,被跳过宏块在解码时使用参考块的数据作为解码数据。宏块的地址增加指示域是描述本宏块的位置比前一宏块的增加值,采用变长编码。
可变量化因子的编码是5位定长二进制编码,值从1到31,0值禁用,分别代表量化因子2、4、6、8...62。如果可变量化因子mquant值与前面一个宏块的可变量化因子不同,则该可变量化因子写入码流,否则没有可变量化因子域;解码时遇到无可变量化因子域,则延用前面一宏块的可变量化因子的值Mquant。
每个8×8的块再按如图13所示的“Z”字形顺序读出进行游程编码。其中,第一个数据是直流(DC)系数,单独编码处理,后面的交流(AC)系数使用VLC表进行编码。
DC系数编码使用如图14(A)所示的映射表;而AC系数编码使用如图14(B)和图14(C)所示映射表。
码流序列中的序列头和图像组头包含的数据大部分是参数,可以在初始化或参数配置修改时一次生成,以后每次用到时直接复制,个别随时间变化的域值在调用时单独生成。
步骤170和步骤180为重建新参考图像的主要过程。其中步骤170为逆量化,步骤180为DCT反变换。
如图15所示。图像重建包括两个环节,一个是逆量化,另一个是DCT反变换并与预测图像相加。
另外,二维DCT反变换后要对数据进行削波处理,使反变换结果不超出正负255的限定范围。
步骤190,处理指标计算。主要是经过逆量化以及DCT反变换后的图像数据与原始图像之间的信噪比。本步骤不是必须的。
下面参照图16着重描述速率控制的过程。
KVM视频压缩的目标是固定、平稳、低速率的码流传输,要求快速的画面切换反映、清晰的画面质量,这几方面本身就是互相矛盾的,唯一的处理办法在几方面寻求一个可调动态平衡。对高画质的大数据流量控制,只能是压缩突发流量,也就是用较长的时间传输大量的编码数据;画面切换前后帧差别极大,信息量很大,不可能在保证高画质的前提下压缩到一个很小数据量。大数据量必然意味着长的传输时间和很慢的反映速度,如果要保证画面切换的反映时间,只有减少编码数据量、降低图像质量,但降低图像质量是不为最终用户接受认可的。在保证较快的切换画面反映时间时,只能是压缩数据量和图像质量,但在切换后的一段后续时间里如果画面不变化,则传输信道是空闲的,那么应当用空闲带宽提升图像的质量,也就是用后续空余带宽补偿切换画面的质量。这种补偿也就是另外一种形式的压缩切换画面产生的突发数据量,即把大量数据平滑到较长的一段时间内传输的方法;它的优点是响应速度快,画面切换后马上给出较差质量的粗糙画面,让用户看到操作反应,然后画面逐渐清晰,让用户看清细节,这个过程在一定程度上符合用户通常的操作习惯;它另一优点是对带宽的自适应能力,当带宽加大时,可以马上提高每帧的编码数据量,缩短屏幕切换后画面清晰过程的持续时间,当传输带宽降低时,可以加长屏幕切换后画面清晰过程的持续时间,这种自适应能保证最大程度利用传输带宽,提高用户的视觉效果。自适应特征还体现在另一种可调模式上:通过控制画面切换后第一帧编码的大小,来调节第一帧的传输时间,也就调节了画面切换后的反应时间,也同时调整了切换第一帧的画面质量,这个自适应调节是第一帧画面质量与反应时间快慢之间的调节,它与带宽变化带来的自适应调节是相互独立的,可以分别控制。改变自适应平衡点的修改都会造成序列头的重传,也就是重新开始一个新的码流序列,其中所述自适应平衡点可以是传输速率、第一帧反应时间等。
压缩编码速率控制的原则是在设定最大传输速率下的平稳编码速率控制,控制目标是每帧图像的编码大小尽量接近每帧的平均大小,码率波动范围控制得尽可能小,但不包括无须达到平均数据量的情况,例如长时间画面静止时没有信息需要传送。
速率控制算法的核心是调整量化因子,决定量化因子的是编码波动累计参数d、图像活动度avg_act两个因素。其中,d表示在当前时刻之前已编码帧或宏块实际编码数据量与按固定帧大小计算出来的标准编码数据量之差,它决定要编码的当前帧整体量化水平的高低。avg_act是当前帧图像内容变化剧烈程度的反映,每个宏块的变化剧烈程度指示act都与这个平均值相比,决定在整幅图像量化因子的水平上是调高还是调低,使得整幅图像的信噪比保持在一个较为平均的水平,避免出现部分区域明显比其它区域粗糙的现象。其中,avg_act可以用当前帧与参照帧预测图像的方差来表示,act可以用当前宏块与参考帧重建图像中对应宏块的方差来表示。
速率控制的实际操作步骤如图16所示,包括以下步骤:
步骤210,参数初始化。用比特率(bit_rate)除以帧频率(frame_rate),从而计算出两个基本的门限平均编码数据量r和T。这里为了方便说明使用了r和T两个参数,在实际使用中可以只用一个。在本步骤中,还可以将avg_act赋以初始值,这里以0为例。
步骤220,计算初始量化因子的中间变量d0,这里可以取d0=2×r。
步骤230,计算当前帧图像的初始量化因子以及帧活动度avg_act和宏块活动度act。取参数d等于d0,计算可变量化因子mquant=d×31/r。
步骤240,计算每个宏块的量化因子。以第j个宏块为例,它由两个参数决定,一个是由dj求出的Qj,另一个反映宏块相对于整帧的变化剧烈程度的N_actj,可以取值Qj=dj×31/r,N_actj=(2×actj+avg_act)/(actg+2×avg_act),N_actj是根据宏块j的内容变化剧烈程度和当前帧整体内容变化剧烈程度来调节当前帧量化因子得到宏块j量化因子的参数。Qj和N_actj的乘积就是本宏块的可变量化因子。然后由可变量化因子与量化矩阵相乘就可以得到量化因子。
步骤250,判断当前宏块是否当前帧中最后一个宏块,如果是则执行步骤260,否则执行步骤230,继续处理下一个宏块。
步骤260,处理完一帧后,更新速率控制的相关参数,为下一帧的处理作准备。d的变化量取(S-T)×1.03,其中S为该帧的编码数据量,更新的d等于原来的d与其变化量之和,并取d0为更新后的d。需要说明的是,图中所乘的系数1.03仅仅是为了说明性的,并不用于限制本发明。
步骤270,判断下一帧是否发生画面切换,如果是则执行步骤220,强制修改量化控制变量d0的初始值,否则执行步骤230。本步骤也可以移到步骤210和步骤220之间,执行对当前帧是否切屏判断的相关处理。
从上面的流程可以看出,当前帧可变量化因子与参考帧可变量化因子相比,增加的是(S-T)乘以某一固定的系数。由于量化因子等于可变量化因子乘以量化矩阵,所以当前帧量化因子与参考帧量化因子相比,增加的部分相当于(S-T)乘以一预设的系数。而各宏块的量化因子相当于在当前帧量化因子上乘以N_actj,以实现根据该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整量化因子。
图17是一个实际GOP速率控制的主要参数变化过程图,在图17中T=200000BPS/25f=8000,S是每帧的编码数据量,d0是调整量化因子的主要参数,它与S的变化趋势刚好相反,所以速率控制是一个负反馈调节控制过程。GOP的第一帧因为前一帧假设为空白帧而被判断为画面切换,所以量化因子参数d0被强行设置为使得量化因子最大的值;第一帧是帧内编码,在使用最大量化因子的情况下仍然有较大的编码数据量,且量化时出现较多的削波现象,重建参考图像与第一帧仍存在较大差异;所以第二帧在使用第一帧重建参考图像作为预测、量化因子最大的情况下也还有较大的编码数据量,超出门限T;经过两帧编码后的重建图像才比较接近原图像,第三帧的编码速率控制算法才开始起作用,编码数据量降到门限以下;编码数据量控制在最低水平持续了若干帧之后,开始慢慢恢复到平均编码数据量的水平,以后的编码数据量都在平均水平线上下小范围波动,进入了反馈控制的稳定状态。当后续图像出现画面切换时,又会重复图中的过程。屏幕切换后第一帧有突发数据峰值,可以采取调整块内量化矩阵的方法减少第一帧的编码数据量,降低峰值的高度,这样一来就把峰值数据平滑到稍后的峰谷,达到了更进一步的速率平稳;调整后块内量化矩阵要写入码流中,也就开始一个新的码流序列。
整个平稳速率控制过程的大致如上所述,实际应用中的控制是以上几种控制参数调整的组合使用,按终端用户不同使用习惯可以采用合适的组合控制策略。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种视频压缩方法,其特征在于,该方法包括:
对于第一帧图像:以上限量化因子作为当前帧量化因子对当前帧进行帧内编码;
对于第一帧之后的图像:判断当前帧是否发生画面切换,如果是则以上限量化因子作为当前帧量化因子对当前帧进行帧内编码,否则根据参考帧量化因子计算得到当前帧量化因子,并根据当前帧量化因子对当前帧进行编码。
2.根据权利要求1所述的方法,其特征在于,
所述判断当前帧是否发生画面切换的步骤包括:统计当前帧与参考帧重建图像像素值不同的像素点占整帧图像的比例,当该比例大于预先设定的门限值时,得出发生画面切换的结果,否则得出未发生画面切换的结果。
3.根据权利要求1所述的方法,其特征在于,所述对当前帧进行帧内编码的步骤包括:
对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;对该宏块数据进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
4.根据权利要求1所述的方法,其特征在于,所述对当前帧进行帧内编码的步骤包括:
设置值128的灰色数据作为参考帧重建图像;
对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;将参考帧重建图像中对应于该宏块的宏块与该宏块相减得到两者的差值;对所述差值进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
5.根据权利要求1所述的方法,其特征在于,所述根据参考帧量化因子计算得到当前帧量化因子的步骤包括:
将参考帧编码数据量与门限平均编码数据量的差值乘以预定系数作为量化因子变化量,由参考帧量化因子加上量化因子变化量得到当前帧的量化因子。
6.根据权利要求1所述的方法,其特征在于,根据当前帧量化因子对当前帧进行编码的步骤包括:
对于当前帧中各宏块:根据当前帧中该宏块内容变化剧烈程度和当前帧整体内容变化剧烈程度调整当前帧量化因子得到该宏块的量化因子;将参考帧重建图像中与该宏块对应的宏块与该宏块相减得到两者的差值;对所述差值进行离散余弦变换;根据所述该宏块的量化因子对离散余弦变换的结果进行量化处理;对量化后的数据进行数据编码。
7.根据权利要求3、4或6所述的方法,其特征在于,对量化后的数据进行数据编码的方式为变长编码或游程编码。
8.根据权利要求3、4或6所述的方法,其特征在于,通过将当前帧量化因子乘以
Figure C200610080828C00031
来调整得到所述宏块的量化因子,
其中actj表示所述宏块内容变化剧烈程度,avg_act表示当前帧整体内容变化剧烈程度。
9.根据权利要求1所述的方法,其特征在于,在对当前帧进行编码的步骤中进一步包括:
对于图像帧内任意位置的宏块,如果在规定时间间隔内该位置的宏块没有进行块内编码,则在所述时间间隔后对该位置的宏块进行离散余弦变换,根据该位置的宏块的量化因子对离散余弦变换的结果进行量化处理,对量化后的数据进行数据编码。
10.根据权利要求1所述的方法,其特征在于,
预先将帧内各宏块的位置信息随机排列;
在对当前帧进行编码的步骤中进一步包括:在所述排列中顺序读取预定数目的位置信息,对与所读取的位置信息对应的宏块进行离散余弦变换,根据与所读取的位置信息对应的宏块的量化因子对离散余弦变换的结果进行量化处理,对量化后的数据进行数据编码。
CNB2006100808288A 2006-05-16 2006-05-16 一种视频压缩方法 Active CN100464585C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100808288A CN100464585C (zh) 2006-05-16 2006-05-16 一种视频压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100808288A CN100464585C (zh) 2006-05-16 2006-05-16 一种视频压缩方法

Publications (2)

Publication Number Publication Date
CN1984327A CN1984327A (zh) 2007-06-20
CN100464585C true CN100464585C (zh) 2009-02-25

Family

ID=38166482

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100808288A Active CN100464585C (zh) 2006-05-16 2006-05-16 一种视频压缩方法

Country Status (1)

Country Link
CN (1) CN100464585C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102172028A (zh) * 2009-07-31 2011-08-31 松下电器产业株式会社 影像数据处理装置及影像数据处理系统
CN102300085B (zh) * 2010-06-25 2013-07-03 华晶科技股份有限公司 具有可变量化参数与可变编码参数的图像压缩方法
CN102387361B (zh) * 2010-09-02 2016-06-01 乐金电子(中国)研究开发中心有限公司 视频编解码的参考帧处理方法及视频编解码器
CN102883157B (zh) * 2011-07-12 2015-09-09 浙江大学 视频编码方法和视频编码器
CN103167282B (zh) * 2011-12-16 2016-09-14 中国科学院沈阳自动化研究所 一种图像压缩动态调整的在线更新方法
CN104159107B (zh) * 2014-09-04 2017-09-29 上海航天电子通讯设备研究所 多通道视频信号的静态图像编码方法
CN104202425A (zh) * 2014-09-19 2014-12-10 武汉易象禅网络科技有限公司 一种实时在线数据传输系统及课程数据远程传输方法
CN106028029B (zh) * 2016-05-25 2018-11-06 杭州比特瑞旺电脑有限公司 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统
CN106101703B (zh) * 2016-06-20 2018-11-06 杭州比特瑞旺电脑有限公司 一种面向数字kvm切换器的屏幕视频压缩方法
CN109756733B (zh) * 2017-11-06 2022-04-12 华为技术有限公司 视频数据解码方法及装置
CN110012293B (zh) * 2019-02-19 2021-06-04 西安万像电子科技有限公司 视频数据处理方法及装置
CN111131831B (zh) * 2019-12-20 2022-11-15 西安万像电子科技有限公司 数据传输方法及装置
CN111385577B (zh) * 2020-04-07 2023-01-13 广州市百果园信息技术有限公司 视频转码方法、装置、计算机设备和计算机可读存储介质
CN113422983B (zh) * 2021-08-24 2021-11-23 腾讯科技(深圳)有限公司 数据处理方法、计算机设备和存储介质
CN117579819B (zh) * 2024-01-17 2024-03-29 哈尔滨学院 一种图像通信数字媒体方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339617B1 (en) * 1997-12-19 2002-01-15 Nec Corporation Moving picture compressing apparatus and moving picture compressing method
US20040042547A1 (en) * 2002-08-29 2004-03-04 Scott Coleman Method and apparatus for digitizing and compressing remote video signals
CN1637701A (zh) * 2004-01-09 2005-07-13 迪吉多多工公司 一种远端计算机对目标计算机进行控制的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339617B1 (en) * 1997-12-19 2002-01-15 Nec Corporation Moving picture compressing apparatus and moving picture compressing method
US20040042547A1 (en) * 2002-08-29 2004-03-04 Scott Coleman Method and apparatus for digitizing and compressing remote video signals
CN1637701A (zh) * 2004-01-09 2005-07-13 迪吉多多工公司 一种远端计算机对目标计算机进行控制的方法和系统

Also Published As

Publication number Publication date
CN1984327A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
CN100464585C (zh) 一种视频压缩方法
US8027384B2 (en) Scalable MPEG video/macro block rate control
KR100329892B1 (ko) 다수의 비디오 프레임 스트림 처리 방법 및 그 장치
JP5180294B2 (ja) ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御
CN101534436B (zh) 一种视频图像宏块级自适应码率分配方法
JPH05167998A (ja) 画像の符号化制御処理方法
KR20090108026A (ko) 비디오 코딩 표준에 대한 개선된 비디오율 제어
KR19990076563A (ko) 동화상 부호화 방식
CN101317458A (zh) 在编码过程中实现自适应量化的方法及装置
KR20050105271A (ko) 비디오 인코딩
CN102868883B (zh) 一种视频编码的码率控制方法
CN102356636A (zh) 编码装置和方法以及包括该编码装置的多媒体装置
CN106657998B (zh) 一种kvm视频编码量化参数范围控制方法
US20050169369A1 (en) Scalable MPEG video/macro block rate control
CN101047854B (zh) 在视频编码期间改变比特率控制设定的系统与方法
KR20090017724A (ko) 동영상 부호화에 있어서 비트 발생 가능성 예측을 이용한블록 모드 결정 방법 및 장치
CN101998117B (zh) 视频转码方法和装置
CN113286145A (zh) 视频编码方法、装置和电子设备
KR100522938B1 (ko) 블록화현상 제거장치 및 제거방법, 블록화현상 제거장치가 구비된 디스플레이장치
KR20110099554A (ko) 영상의 복잡도를 이용한 h.264/avc 부호화기의 양자화 파라미터 결정 방법 및 이를 구현하는 h.264/avc 부호화기
CN100425079C (zh) 基于低内存消耗查询表的视频压缩码率控制方法
JP4277530B2 (ja) 画像処理装置および符号化装置とそれらの方法
CN102811349B (zh) 调节冗余的无反馈多描述分布式视频编解码器及编码方法
JPH07203430A (ja) 画像符号化装置
KR100322475B1 (ko) 압축영역에서 엠펙-1 및 엠펙-2 동영상의 비트율 변환방법

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
ASS Succession or assignment of patent right

Owner name: TENCENT TECHNOLOGY (SHENZHEN) CO., LTD.

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO LTD

Effective date: 20111028

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518129 SHENZHEN, GUANGDONG PROVINCE TO: 518057 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20111028

Address after: 518057 Tencent Building, Nanshan District hi tech park, Shenzhen, Guangdong

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.