【技术实现步骤摘要】
本专利技术涉及数字视频信号处理领域,具体涉及一种面向数字KVM切换器的屏幕视频压缩方法。
技术介绍
数字KVM系统是基于IP网络的多计算机切换管理系统,能够实现使用一套键盘(Keyboard)、显示器(Video)、鼠标(Mouse)来远程控制多台计算机,主要包括数字KVM切换器和主控平台。数字KVM切换器对计算机显示器的输出信号进行数字化和网络传输,以便在主控平台的客户端中显示屏幕视频。此外,数字KVM切换器还接收来自主控平台的键盘和鼠标信息,并将其转换为本地计算机的输入信号,以实现主控平台对本地计算机的远程控制。键盘和鼠标由于操作频率较低,其信号经数字化后的数据量也较小,可以无需压缩直接传送,占用的网络带宽较少。显示器由于输出的屏幕视频的分辨率和帧率都较高,导致经数字化后的视频数据量巨大,无法直接传送。因此,数字KVM切换器只有对显示器输出的屏幕视频进行高效的压缩,才能在有限的网络带宽下将屏幕视频数据通过网络实时传输到远程的主控平台。数字KVM切换器采集的屏幕视频场景主要包括操作系统场景、应用软件场景和网页场景等,屏幕视频的分辨率包括从640×350到1920×1200的典型分辨率。在计算机系统中,输出的显示视频采用RGB色度空间,即图像中的每个像素包含一个R分量、一个G分量和一个B分量,每个分量通常用8比特表示,取值范围为0~255。数字KVM系统输出的屏幕视频虽然内容丰富多样,但存在很强的时空相关性,可以采用视频压缩的方法对其进行压缩处理。同时KVM的屏幕视频与摄像机拍摄的普通自然视频又存在明显差异,它包含一些由计算机生成的图形图像,人们对这些画 ...
【技术保护点】
一种面向数字KVM切换器的屏幕视频压缩方法,其特征在于,包括以下步骤:(1)输入一帧屏幕视频数据:所述的一帧屏幕视频数据是指KVM切换器采集的一帧采用YUV色度空间的屏幕视频图像,该帧图像的像素分辨率为H0×V0,被分为三个色度分量子帧,所有Y分量数据组成H1×V1的Y分量子帧,所有U分量数据组成H2×V2的U分量子帧,所有V分量数据组成H3×V3的V分量子帧;(2)将当前视频帧的帧头信息写入码流,所述的帧头信息包括:4个字节表示的帧同步头标识SyncF,前三个字节值为0xFF,第四个字节值为0xFE;6个比特表示的当前帧屏幕视频图像的分辨率标识PicR,其取值范围为1到24,每个取值对应的数字KVM系统屏幕视频图像水平分辨率H0和竖直分辨率V0如下;3个比特表示的色度空间格式标识ColorF,表征当前视频帧具体采用的色度空间格式,值为0b000表示采用YUV420格式,值为0b001表示采用YUV422格式,值为0b010表示采用YUV444格式,预留0b011到0b111的5个数值;4个比特表示的数据块划分模式标识BPMODE,表征对每个色度分量子帧进行数据块划分的基本单位hp×v ...
【技术特征摘要】
1.一种面向数字KVM切换器的屏幕视频压缩方法,其特征在于,包括以下步骤:(1)输入一帧屏幕视频数据:所述的一帧屏幕视频数据是指KVM切换器采集的一帧采用YUV色度空间的屏幕视频图像,该帧图像的像素分辨率为H0×V0,被分为三个色度分量子帧,所有Y分量数据组成H1×V1的Y分量子帧,所有U分量数据组成H2×V2的U分量子帧,所有V分量数据组成H3×V3的V分量子帧;(2)将当前视频帧的帧头信息写入码流,所述的帧头信息包括:4个字节表示的帧同步头标识SyncF,前三个字节值为0xFF,第四个字节值为0xFE;6个比特表示的当前帧屏幕视频图像的分辨率标识PicR,其取值范围为1到24,每个取值对应的数字KVM系统屏幕视频图像水平分辨率H0和竖直分辨率V0如下;3个比特表示的色度空间格式标识ColorF,表征当前视频帧具体采用的色度空间格式,值为0b000表示采用YUV420格式,值为0b001表示采用YUV422格式,值为0b010表示采用YUV444格式,预留0b011到0b111的5个数值;4个比特表示的数据块划分模式标识BPMODE,表征对每个色度分量子帧进行数据块划分的基本单位hp×vp,值为0b0000表示采用4×4划分模式,值为0b0001表示采用8×4划分模式,值为0b0010表示采用4×8划分模式,值为0b0011表示采用8×8划分模式,预留从0b0100到0b1111的12个数值;1个比特表示的帧间预测使能标识TPEN,其值为0b0表示当前帧的编码不允许使用帧间预测,其值为0b1表示当前帧的编码允许使用帧间预测;2个比特表示的帧级图像质量模式PicQ,表征当前帧编码重建图像的主观质量等级,其值为0b00表示无损模式,值为0b01表示有损清晰模式,值为0b10表示有损均衡模式,预留0b11;若当前帧采用无损模式,则其帧级量化步长QStep值为1;若当前帧采用有损清晰模式,则其帧级量化步长QStep值为2;若当前帧采用有损均衡模式,则其帧级量化步长为QStep值为4;当前帧的帧级量化移位位数shift为QStep按2取对数得到的整数;16个比特表示的帧序号FrameN;(3)从当前视频帧中获取一个未编码色度分量子帧作为当前色度分量子帧,将当前色度分量子帧划分为多个h×v大小的待编码的二维矩形数据块,并计算其数据块的总个数Nblk;(4)按从光栅扫描的顺序从当前色度分量子帧中获取一个未编码的二维矩形数据块作为当前块;(5)计算当前块在各个候选编码模式下的编码信息和重建数据,并从有效候选编码模式中选取最终编码模式和最终重建数据;(6)根据当前块的最终编码模式将当前块的编码信息写入码流;(7)重复步骤(4)到(6)完成当前色度分量子帧中所有数据块的编码和重建;(8)对当前视频帧已写入的码流进行比特填充以实现字节对齐;(9)重复步骤(3)到(8)完成当前视频帧中所有色度分量子帧的编码和重建;(10)对当前视频帧产生的码流进行帧同步头转义处理,输出最终的压缩码流。2.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(2)中帧头信息按如下顺序写入码流:(2-1)从字节对齐处写入帧同步标识SyncF;(2-2)写入图像分辨率标识PicR;(2-3)写入色度空间格式标识ColorF;(2-4)写入数据块划分模式标识BPMODE;(2-5)写入帧间预测使能标识TPEN;(2-6)写入帧级图像质量模式PicQ;(2-7)写入帧序号FrameN。3.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(3)包含如下步骤:(3-1)首先按Y分量子帧、U分量子帧、V分量子帧的顺序获取一个未编码的色度分量子帧,Hk和Vk分别为当前色度分量子帧在水平方向和竖直方向上的数据个数,k为当前色度分量子帧的索引,k值为1表示Y分量子帧,k值为2表示U分量子帧,k值为3表示V分量子帧;(3-2)接着根据BPMODE获得数据块划分基本单位hP×vP,hP为水平方向划分的数据个数,vP为竖直方向划分的数据个数;(3-3)然后根据数据块划分基本单位hP×vP按光栅扫描的顺序将当前色度分量子帧划分为多个h×v大小的待编码的二维矩形数据块,h和v分别为经过划分的数据块在水平方向上和竖直方向上的数据个数;(3-4)最后按公式(1)计算得到当前色度分量子帧水平方向的数据块个数Hblk,按公式(2)计算得到当前色度分量子帧竖直方向的数据块个数Vblk,按公式(3)计算得到当前色度分量子帧的数据块总个数Nblk:Nblk=Hblk×Vblk (3)。4.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(5)中的候选编码模式包括帧间对应模式IC_MODE:采用该模式进行编码,对于当前块中的每个原始数据P,其预测值PredIC为前一编码帧中相同色度分量子帧且相同空间位置的重建数据,其预测残差DIC按公式(4)计算得到、预测残差符号SignIC按公式(5)计算得到、量化残差QDIC按公式(6)、公式(7)和公式(8)计算得到、重建数据RIC按公式(9)计算得到;在公式(5)中,SignIC值为0表示预测残差的符号为正,值为1表示预测残差的符号为负;在公式(6)中,QDICTmp为IC_MODE临时量化残差,其计算过程使用的减半量化步长QStep2按公式(8)计算得到,减半移位位数shift2由QStep2按2取对数计算得到;在公式(7)中,当QDIC值为1且QStep2值为2时,将QDIC强制置为0,其它情况下QDIC保持不变;在公式(8)中,QStep为帧级量化步长;DIC=P-PredIC (4) Sign I C = 0 , i f D I C ≥ 0 1 , i f D I C < 0 - - - ( 5 ) ]]> QD T m p I C = ( | D I C | + ( Q S t e p 2 > > 1 ) ) > > s h i f t 2 - - - ( 6 ) ]]> Q S t e p 2 = Q S t e p > > 1 , i f Q S t e p > 1 1 , o t h e r s - - - ( 8 ) ]]> R I C = min ( Pred I C + ( QD I C < < s h i f t 2 ) , 255 ) , i f Sign I C = 0 max ( Pred I C - ( QD I C < < s h i f t 2 ) , 0 ) , i f Sign I C = 1 - - - ( 9 ) ]]>采用该模式进行编码,进一步需要将以下编码信息编入码流:2个比特表示的IC_MODE编码模式标识ModeIDIC,其值为0b00;1个比特表示的全零块标识AZFlagIC,其值为0b0,表示当前块存在非零QDIC,其值为0b1,表示当前块的QDIC全为零;3个比特表示的当前块每个QDIC的编码比特数QDBitsIC,该编码信息仅需在AZFlagIC值为0b0时编入码流,其值按公式(10)计算得到,式中QDICmax为当前块所有QDIC中的最大值;1个比特表示的SignIC和QDBitsIC个比特表示的QDIC,当前块所有SignIC和QDIC仅需在QDBitsIC大于0时编入码流;1个比特表示的连续相同单值块标识ContiFlagIC,其值为0b0表示只对当前全零块进行编码,其值为0b1表示对从当前块开始的连续ContiCntIC个全零块进行编码,该编码信息仅需在AZFlagIC值为0b1时编入码流;ContiCntBitsIC个比特表示的ContiCntIC减1后的值,其中ContiCntBitsIC按公式(11)计算得到,该编码信息仅需在ContiFlagIC值为0b1时编入码流;2个比特表示的ContiCntBitsIC编码标识ContiCntBitsIdxIC,ContiCntBitsIdxIC按公式(12)计算得到,该编码信息仅需在ContiFlagIC值为0b1时编入码流;根据以上编码信息,采用IC_MODE对当前块或当前块开始的连续块进行编码消耗的编码比特数CBitsIC按公式(13)计算得到,并且当前块选择IC_MODE作为其有效候选编码模式需要满足两个条件,第一个条件为当前帧已写入码流的帧间预测使能标识TPEN值为0b1,第二个条件为QDBitsIC不大于7;5.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(5)中的候选编码模式包括单值原始模式SO_MODE:采用该模式进行编码,当前块不进行预测和量化,其所有原始数据和所有重建数据都相等,记为单值PS;采用该模式进行编码,进一步需要将以下编码信息编入码流:2个比特表示的SO_MODE编码模式标识ModeIDSO,值为0b01;1个比特表示的单值编码方式CodPsFlagSO,其值为0b0表示当前块空间相邻的上方块的编码模式为SO_MODE且上方块的单值PS与当前块的单值PS相等,当前块的单值PS不编入码流,解码端从上方块获得PS,其值为0b1表示当前块的单值PS将编入码流,解码端直接从码流获得PS;8个比特表示的单值PS,该编码信息仅在CodPsFlagSO值为0b1时编入码流;1个比特表示的连续相同单值块标识ContiFlagSO编入码流,其值为0b0表示只有当前块编入码流,当前块编码结束,其值为0b1表示以当前块为首的连续ContiCntSO个块采用SO_MODE进行编码且各个块之间的PS相等,当前块还要将以下编码信息编入码流;ContiCntBitsSO个比特表示的ContiCntSO减1后的值,ContiCntBitsSO按公式(14)计算得到,该编码信息仅在ContiFlagSO的值为0b1时编入码流;2个比特表示的ContiCntBitsSO编码标识ContiCntBitsIdxSO,ContiCntBitsIdxSO与ContiCntBitsSO的对应关系如公式(15)所示;根据以上编码信息,采用SO_MODE对当前块或当前块开始的连续块进行编码消耗的编码比特数CBitsSO按公式(16)计算得到,当前块选择SO_MODE作为其有效候选编码模式只有一个条件,即要求当前块为单值块,其所有原始数据均相等;CBitsSO=2+1+8×CodPsFlagSO+1+ContiFlagSO×(2+ContiCntBitsSO) (16)。6.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(5)中的候选编码模式包括水平逐点模式HP_MODE:采用该模式进行编码,对当前块中的每个原始数据P,当P处在当前色度分量子帧的左边界,则P的预测值PredHP为128,否则PredHP都为P空间相邻左侧位置的重建数据RL;P的预测残差DHP按公式(17)计算得到、预测残差符号SignHP按公式(18)计算得到、量化残差QDHP按公式(19)计算得到、重建数据RHP按公式(20)计算得到;DHP=P-PredHP (17) Sign H P = 0 , i f D H P ≥ 0 1 , i f D H P < 0 - - - ( 18 ) ]]>QDHP=(|DHP|+(QStep>>1))>>shift (19) R H P = min ( Pred H P + ( QD H P < < s h i f t ) , 255 ) , i f Sign H P = 0 max ( Pred H P - ( QD H P < < s h i f t ) , 0 ) , i f Sign H P = 1 - - - ( 20 ) ]]>采用该模式进行编码,进一步需要将以下编码信息编入码流:3个比特表示的HP_MODE的编码模式标识ModeIDHP,值为0b100;3个比特表示的当前块每个QDHP的编码比特数QDBitsHP,其值按公式(21)计算得到,QDHPmax为当前块所有QDHP中的最大值;1个比特表示的SignHP和QDBitsHP个比特表示的QDHP,当前块所有SignHP和QDHP仅需在QDBitsHP大于0时编入码流;根据以上编码信息,采用HP_MODE对当前块进行编码消耗的编码比特数CBitsHP按公式(22)计算得到,当前块选择HP_MODE作为其有效候选编码模式只有一个条件,即QDBitsHP不大于7;7.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(5)中的候选编码模式包括竖直逐点模式VP_MODE:采用该模式进行编码,对当前块中的每个原始数据P,当P处在当前色度分量子帧的上边界,则P的预测值PredVP设为128,否则PredVP都为P空间相邻上方位置的重建数据RU;P的预测残差DVP按公式(23)计算得到、预测残差符号SignVP按公式(24)计算得到、量化残差QDVP按公式(25)计算得到、重建数据RVP按公式(26)计算得到;DVP=P-PredVP (23) Sign V P = 0 , i f D V P ≥ 0 1 , i f D V P < 0 - - - ( 24 ) ]]>QDVP=(|DVP|+(QStep>>1))>>shift (25) R V P = min ( Pred V P + ( QD V P < < s h i f t ) , 255 ) , i f Sign V P = 0 max ( Pred V P - ( QD V P < < s h i f t ) , 0 ) , i f Sign V P = 1 - - - ( 26 ) ]]>采用该模式进行编码,进一步需要将以下编码信息编入码流:3比特表示的VP_MODE的编码模式标识ModeIDVP;3个比特表示的当前块每个QDVP的编码比特数QDBitsVP,其值按公式(27)计算得到,QDVPmax为当前块所有QDVP中的最大值;1个比特表示的SignVP和QDBitsVP个比特表示的QDVP,当前块所有SignVP和QDVP仅需在QDBitsVP大于0时编入码流;根据以上编码信息,采用VP_MODE对当前块进行编码消耗的编码比特数CBitsVP按公式(28)计算得到,当前块选择VP_MODE作为其有效候选编码模式只有一个条件,即QDBitsVP不大于7;8.如权利要求1所述的屏幕视频压缩方法,其特征在于,所述步骤(5)中的候选编码模式包括复杂水平模式CH_MODE:采用该模式进行编码,当前块的每行数据可以选择水平预测量化方式或直接量化方式进行编码:在采用水平预测量化方式的所有数据行中,对每个原始数据P,当P处在当前色度分量子帧的左边界,则P的预测值PredCH设为128,否则PredCH都为P空间相邻左侧位置的重建数据RL;P的预测残差DCH按公式(29)计算得到、预测残差符号SignCH按公式(30)计算得到、量化残差QDCH按公式(31)计算得到、重建数据RCH按公式(32)计算得到;在采用直接量化方式的所有数据行中,其每个原始数据P,直接按公式(33)计算量化数据QPCH,并按公式(34)计算P的重建数据RCH;DCH=P-PredCH (29) Sign C H = 0 , i f D C H ≥ 0 1 , i f D C H < 0 - - - ( 30 ) ]]>QDCH=(|DCH|+(QStep>>1))>>shift (31) R C H = min ( Pred C H + ( QD C H < < s h i f t ) , 255 ) , i f Sign C H = 0 max ( Pred C H - ( QD C H < < s h i f t ) , 0 ) , i f Sign C H = 1 - - - ( 32 ) ]]>QPCH=(P+(QStep>>1))>>shift (33)RCH=QPCH<<shift (34)采用该模式进行编码,进一步需要将以下编码信息编入码流:4个比特表示的CH_MODE编码模式标识ModeIDCH,值为0b1100;每行1个比特表示的行编码方式RowModeCH,值为0b0表示当前行采用水平预测量化方式进行编码,其值为0b1表示当前行采用直接量化方式进行编码;3个比特表示的当前块每个QDCH的编码比特数QDBitsCH,按公式(35)计算得到,QDCHmax为当前块所有QDCH中的最大值,QDBitsCH仅需在当前块存在采用水平预测量化方式的数据行的情况下编入码流;1个比特表示的SignCH和QDBitsCH个比特表示的QDCH,所有的S...
【专利技术属性】
技术研发人员:朱威,郑雅羽,郑阳,徐鑫涛,李伟超,吴斌,
申请(专利权)人:杭州比特瑞旺电脑有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。