CN106028029B - 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统 - Google Patents

低延时低复杂度的数字kvm切换器视频无损压缩方法及系统 Download PDF

Info

Publication number
CN106028029B
CN106028029B CN201610353623.6A CN201610353623A CN106028029B CN 106028029 B CN106028029 B CN 106028029B CN 201610353623 A CN201610353623 A CN 201610353623A CN 106028029 B CN106028029 B CN 106028029B
Authority
CN
China
Prior art keywords
current pixel
written
code stream
pixel
prediction mode
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
CN201610353623.6A
Other languages
English (en)
Other versions
CN106028029A (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.)
HANGZHOU BTS COMPUTER CO Ltd
Original Assignee
HANGZHOU BTS COMPUTER 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 HANGZHOU BTS COMPUTER CO Ltd filed Critical HANGZHOU BTS COMPUTER CO Ltd
Priority to CN201610353623.6A priority Critical patent/CN106028029B/zh
Publication of CN106028029A publication Critical patent/CN106028029A/zh
Application granted granted Critical
Publication of CN106028029B publication Critical patent/CN106028029B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/507Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction using conditional replenishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Abstract

本发明公开了一种低延时低复杂度的数字KVM切换器视频无损压缩方法及系统,该视频无损压缩方法包括:(1)将屏幕视频图像的帧级编码信息写入码流;(2)依序输入一个屏幕视频图像中待压缩像素的RGB数据;(3)根据时空相关性计算当前像素的预测模式;(4)根据当前像素的预测模式计算其编码模式;(5)根据当前像素的编码模式将压缩比特写入码流;(6)重复步骤(2)到(5)完成当前帧屏幕视频图像中所有像素的编码;(7)对当前帧码流进行字节对齐填充,完成当前帧屏幕视频图像的编码。本发明方法适用于数字KVM切换器的屏幕视频图像压缩,在有限的计算复杂度下有效降低屏幕视频图像压缩的处理延时和码流数据量,同时保持无损的视频质量。

Description

低延时低复杂度的数字KVM切换器视频无损压缩方法及系统
技术领域
本发明涉及数字视频编码领域,具体涉及一种低延时低复杂度的数字KVM切换器视频无损压缩方法及系统。
背景技术
KVM是键盘(Keyboard)、显示器(Video)、鼠标(Mouse)的缩写组合,通常指数字KVM系统,包括主控计算机和远程的数字KVM切换器,它是近年来新兴的一种基于数字网络的远程计算机集中管理技术。数字KVM切换器提供了一种现代化的计算机设备管理模式,只需要主控计算机的一套键盘显示器和鼠标就能对分布在多个地点的远程计算机进行控制管理。KVM技术要求键盘、显示器和鼠标能达到高度的同步,具有较高的实时性和精确性,其中实时性是指远程计算机经过数字KVM切换器传送过来的视频显示相对于主控计算机的鼠标、键盘操作延迟较小(通常小于100ms),精确性是指主控计算机的鼠标和键盘操作数据能够准确地传送给远程的切换器,再由切换器传送给被控计算机。
随着计算机屏幕分辨率的不断提高,数字KVM切换器面临的一个主要问题是经采集编码得到的屏幕视频数据不仅要求很高的传输带宽,同时还要求保持较小的系统延迟。因此,数字KVM切换器需要先对屏幕视频数据进行压缩后再进行传输,以降低视频图像数据在传输时的带宽要求。此外,屏幕视频采用的压缩方法在压缩原理上需要具有延时小、复杂度低的特点,以满足KVM系统低延时和低硬件成本的需求。
目前应用比较广泛的视频压缩标准是由ITU-T视频编码专家组(Video CodingExperts Group,VCEG)和ISO/IEC运动图像专家组(Moving Picture Experts Group,MPEG)于2003年共同提出的数字视频压缩标准H.264/AVC(以下简称H.264)。H.264目前已经广泛应用在视频监控、视频会议和数字电视等领域,它采用预测编码、变换编码和熵编码相结合的混合编码框架,采用帧内预测、帧间预测、整数变换、量化反量化、自适应熵编码和去块滤波等关键技术实现了高压缩比和高视频质量。H.264主要是面向摄像头采集的视频场景进行编码压缩,而数字KVM切换器处理的计算机屏幕视频存在单像素线条、大量局部和全局场景切换等特征,不同于普通视频序列。因此,虽然H.264编码的压缩比很高,但其应用于数字KVM切换器存在以下三个方面问题:1)增加系统延时:在算法延时方面,H.264编解码的最小处理单元是16×16的宏块,理论上要求至少采集16行像素之后才可以进行视频压缩;在处理延时方面,常用H.264编码芯片都基于帧级的编码输入和输出,更加增大了系统延时。2)增加硬件成本:大部分H.264编码芯片为主频较高的SoC或DSP芯片,与之相关的高速电路设计增加了KVM切换器的硬件成本;由于H.264的解码计算复杂度大,对数字KVM客户端所在主控计算机的硬件性能要求较高,特别是在多路视频解码的情况。3)图像信息丢失:大部分H.264编码芯片只支持YUV420格式的编码,而该格式的色度分辨率为原始屏幕分辨率的四分之一,这直接影响到那些色彩信息显著的单像素纹理或字符的压缩视频质量;此外,H.264的DCT系数量化和反量化过程是有损的,容易使屏幕视频中的字符变模糊,影响视频质量。综上,H.264不能完全适用于数字KVM切换器的屏幕视频压缩。
目前已有一些研究人员面向数字KVM切换器的视频编码方法进行研究。申请专利号为200610080828.8的专利对视频编码的量化因子选择进行了研究:对于待编码的第一帧图像,以上限量化因子作为当前帧量化因子进行帧内编码;对于第一帧以后的图像,判断当前帧是否发生画面的切换,如果是则以上限量化因子作为当前帧量化因子对当前帧进行帧内编码,否则根据参考帧的量化因子计算得到当前帧的量化因子,并根据该量化因子对当前帧进行编码。专利号为200610027171.9的专利将采集到的屏幕图像均匀划分为多个图像块,并与上一帧图像进行比较,采用空间域上图像分辨率缩小、时间域上自适应关键帧间隔的方法,对屏幕视频图像采用无损编码和有损编码相结合的方式进行编码,以实现低码率下的屏幕视频编码。专利号为03816346.2的专利提出一种视频压缩系统,利用计算机屏幕上的冗余和计算机用户可接受的视频损失类型来提高压缩率和减少延时。该专利中计算机视频帧被编码为(1)从前一帧复制旧像素,(2)从左侧复制像素,(3)从上方复制像素,(4)利用2-色集制作一系列像素,(5)利用指定色制作一个或多个像素。以上五个不同的、唯一选取的“命令”的组合,把源视频压缩为8位或更多位的固定长度的一系列数据包,每个数据包字节对齐。该专利由于只采用字节对齐的数据包格式,码流组织不灵活,对具有渐变纹理和复杂纹理的屏幕视频图像整体压缩效率较低;由于数据包字节对齐的限制,该专利仅支持5种色彩模式,其支持的5比特、7比特和12比特色彩模式视频主观质量较差,无法满足人们对高分辨率视频的图像质量要求,其支持的15比特和23比特色彩模式也缺少对各色度分量比特数灵活的设置方式。此外,该专利虽然较H.264整体计算复杂度低,但其硬件实现的复杂度还是较高,特别是利用2-色集制作一系列像素需要先缓冲多个输入像素,这既增加了计算复杂度也增加了其理论处理延时,无法做到单像素级别和单周期级别的编码流水。
发明内容
为了克服现有视频压缩方法在数字KVM切换器应用过程中视频编码处理延时大、整体计算复杂度高的缺点,本发明提供了一种低延时低复杂度的数字KVM切换器视频无损压缩方法及系统,可以有效降低数字KVM切换器的视频编码处理延时和整体计算复杂度,并具有较高的压缩效率。
为了解决上述技术问题采用的技术方案为:
一种低延时低复杂度的数字KVM切换器视频无损压缩方法,所述压缩方法包括以下步骤:
(1)将待采集编码的当前帧屏幕视频图像的帧级编码信息写入码流:
所述帧级编码信息包括:
5个字节的帧同步头Sync,前4个字节值为0x00,第5个字节值为0xFF;
2个比特的帧类型FT,值为0b00表示当前帧将按帧内编码帧(I帧)的方式进行编码,值为0b01表示当前帧将按帧间编码帧(P帧)的方式进行编码,值为0b10和0b11预留;若当前帧为第一个编码帧、或当前帧的图像分辨率不同于前一编码帧、或当前帧的RGB分量比特数不同于前一编码帧,则帧类型FT的值必须为0b00,即当前帧必须按帧内编码帧的方式进行编码;
2个比特的红色分量R比特数标识BitsIDR,其值为0b00表示红色分量R的比特数BitsR值为5,其值为0b01表示BitsR值为6,其值为0b10表示BitsR值为7,其值为0b11表示BitsR值为8;
2个比特的绿色分量G比特数标识BitsIDG,其值为0b00表示绿色分量G的比特数BitsG值为5,其值为0b01表示BitsG值为6,其值为0b10表示BitsG值为7,其值为0b11表示BitsG值为8;
2个比特的蓝色分量B比特数标识BitsIDB,其值为0b00表示蓝色分量B的比特数BitsB值为5,其值为0b01表示BitsB值为6,其值为0b10表示BitsB值为7,其值为0b11表示BitsB值为8;
12个比特的当前帧图像水平像素分辨率HP减1;
12个比特的当前帧图像竖直像素分辨率VP减1;
3个比特的连续零值字节个数的编码比特数CZBBits1,其取值大于0且小于等于7,将CZBBits1个比特能表示的最大数值记为CZBMax1;CZBMax1就是采用CZBBits1个比特进行连续零值字节压缩的最大连续零值字节个数;CZBBits1用于对小于等于CZBMax1个的连续零值字节进行压缩,在编码过程中出现的连续零值字节个数越接近CZBMax1,其压缩效率越高,可根据应用场景的统计特征来灵活设置CZBBits1具体值;
以及5个比特的连续零值字节个数的编码比特数CZBBits2,其取值大于等于8且小于等于21,将CZBBits2个比特能表示的最大数值记为CZBMax2;CZBMax2就是采用CZBBits2个比特进行连续零值字节压缩的最大连续零值字节个数;CZBBits2用于大于CZBMax1且小于等于CZBMax2个的连续零值字节进行压缩,其值可以根据应用场景的统计特征、当前帧屏幕视频图像的分辨率和连续零值字节压缩的码流输出延时要求来选择;当CZBBits2取值越小,对应的CZBMax2越小,压缩过程中的连续零值字节个数更易达到CZBMax2,写入码流次数更多,码流输出延时也就越小,而当CZBBits2取值越大,码流输出延时越大;在编码过程中出现的连续零值字节个数越接近CZBMax2,其压缩效率越高;当CZBBits2取21时,对应的CZBMax2为2097152,能表示2097152个零值字节,而本发明中每个零值字节对应8个像素的数据压缩,因此可将16777216个像素进行压缩,满足本发明支持的一帧最大分辨率4096×4096的连续零值字节压缩。
为了便于数值描述,本发明采用了三种方式的数字格式,其中0x为十六进制表示的前缀,其后的数字为十六进制数值;0b为二进制方式表示的前缀,其后的数字为二进制数值;其它数值都采用常用的十进制方式表示;上述帧级编码信息的数值可以用多种进制方式表示,不能以仅采用其中一种方式表示来限定本发明的保护范围。
以上帧级编码信息写入压缩码流的具体步骤如下:
(1-1)从字节对齐处写入帧同步头Sync;
(1-2)写入帧类型FT;
(1-3)写入红色分量R比特数标识BitsIDR
(1-4)写入绿色分量G比特数标识BitsIDG
(1-5)写入蓝色分量B比特数标识BitsIDB
(1-6)写入当前帧图像水平像素分辨率HP减1;
(1-7)写入当前帧图像竖直像素分辨率VP减1;
(1-8)写入连续零值字节个数的编码比特数CZBBits1
(1-9)写入连续零值字节个数的编码比特数CZBBits2
在上述帧级编码信息的写入方法和步骤中,帧级编码信息写入码流总共十个字节,由于最后一个字节中的CZBBits1和CZBBits2都大于0,最后一个字节值非零,不会和后续码流组成帧同步头,保证帧同步头在码流中的唯一性;帧同步头Sync不同于H.264、MPEG4和MPEG2等视频编码标准的帧同步头,KVM解码端可以根据该帧同步头识别为本发明的压缩码流;与所写入的帧级编码信息对应的当前帧屏幕视频图像采用RGB色度空间,其水平像素分辨率HP和竖直像素分辨率VP都须大于0且小于等于4096,每个像素的色度分量R、G和B采用5到8个比特表示;图像像素分辨率范围满足用户对支持不同分辨率KVM屏幕视频的需求,RGB色度分量的比特数从5到8比特可灵活设置,满足用户对KVM屏幕视频质量从低到高的需求。
(2)依序输入一个从KVM切换器采集到的当前帧屏幕视频图像中待压缩像素的RGB数据:
按从上到下从左到右的顺序获取一个从KVM切换器采集到的当前帧屏幕视频图像待压缩像素的RGB数据作为当前像素数据,该像素数据包括一个R分量、一个G分量和一个B分量;其中R分量采用BitsR个比特表示,G分量采用BitsG个比特表示,B分量采用BitsB个比特表示,它们对应的比特数标识BitsIDR、BitsIDG和BitsIDB已在步骤(1)中写入码流。
(3)根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式:
所述的候选预测模式包括:
帧间预测模式PMINTER,该模式在编码端要求当前帧按帧间编码帧的方式进行编码并且当前像素的RGB分量分别等于时间相邻的前一编码帧中相同位置编码像素的RGB分量,在解码端要求当前解码像素的RGB分量分别为时间相邻的前一解码帧中相同位置解码像素的RGB分量;
左侧预测模式PMLEFT,该模式在编码端要求当前像素的RGB分量分别等于空间相邻左侧编码像素的RGB分量且前一编码像素的预测模式非PMINTER,在解码端要求当前解码像素的RGB分量分别为当前帧空间相邻左侧解码像素的RGB分量;
上方预测模式PMTOP,该模式在编码端要求当前像素的RGB分量分别等于空间相邻上方编码像素的RGB分量,在解码端要求当前解码像素的RGB分量分别为当前帧空间相邻上方解码像素的RGB分量;
原始像素模式PMORG,该模式在编码端不利用时空相邻像素进行预测,任何像素都可以将其作为有效的候选预测模式,在解码端要求当前解码像素的RGB分量分别为已编入码流的当前像素的RGB分量。
当前像素按如下步骤从其候选预测模式中选择其预测模式:
(3-1)若当前像素满足PMINTER的要求,则将当前像素的预测模式设为帧间预测模式PMINTER,并终止选择;
(3-2)若当前像素满足PMLEFT的要求,则将当前像素的预测模式设为左侧预测模式PMLEFT,并终止选择;
(3-3)若当前像素满足PMTOP的要求,则将当前像素的预测模式设为上方预测模式PMTOP,并终止选择;
(3-4)将当前像素的预测模式设为原始像素模式PMORG
本发明的视频压缩方法为无损压缩,在预测模式的选择过程中,使用的时空相邻像素均为原始输入像素,无需使用重建像素。此外,本发明在预测模式的选择过程中,除了使用时空相邻像素,还使用了前一编码像素的预测模式,保证PMINTER和PMLEFT不会相邻出现,以提高连续PMINTER和连续PMLEFT的压缩效率。在解码端,可根据码流解析得到的当前解码像素的预测模式重建其RGB分量:当预测模式为PMINTER,则前一解码帧相同位置解码像素的RGB分量即为当前解码像素的RGB分量;当预测模式为PMLEFT,则当前解码像素空间相邻左侧解码像素的RGB分量即为当前解码像素的RGB分量;当预测模式为PMTOP,则当前解码像素空间相邻上方像素的RGB分量即为当前解码像素的RGB分量;当预测模式为PMORG,则码流中保存的原始RGB分量即为当前解码像素的RGB分量。
(4)根据当前像素的预测模式计算其编码模式:
当前像素按如下步骤计算其编码模式:
(4-1)若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER,并终止计算;
(4-2)若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-3)若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-4)若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP,并终止计算;
(4-5)若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
上述(4-1)到(4-5)中的四种编码模式在解码端对应的预测模式为:
原始像素编码模式CMORG在解码端对应的预测模式为PMORG
上方编码模式CMTOP在解码端对应的预测模式为PMTOP
帧间编码模式CMINTER在解码端对应的预测模式为PMINTER
连续编码模式CMCONT在解码端通过结合前一解码像素的预测模式来获得当前解码像素的预测模式,若前一解码像素的预测模式为PMINTER,则当前解码像素的预测模式也为PMINTER,若前一解码像素的预测模式非PMINTER,则当前解码像素的预测模式为PMLEFT
本发明中PMORG直接映射得到CMORG、PMTOP直接映射得到CMTOP、PMLEFT直接映射得到CMCONT,而PMINTER需要结合前一编码像素的预测模式共同计算得到对应的编码模式。由于屏幕视频图像在水平方向的相关性较强,编码像素经常出现预测模式为PMLEFT的情况,本发明中将这些像素的编码模式映射为CMCONT;由于屏幕视频图像在时域上存在很多静止画面,编码像素经常出现预测模式连续为PMINTER的情况,本发明中将这些像素的编码模式映射为CMCONT。因此,本发明中虽然增加了编码模式CMCONT,但由于没有为PMLEFT设置直接映射的编码模式,总体编码模式个数与预测模式个数相同。由于提高了CMCONT的比例,为其压缩标识分配的比特数越少,则本发明的压缩效率就越高。
(5)根据当前像素的编码模式将压缩比特写入码流:
当前像素根据编码模式和字节对齐状态按以下步骤将压缩比特写入码流:
(5-1)若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流,并终止比特写入;
(5-2)若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩,具体包括:
首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;
接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
在连续零值字节压缩之后,终止比特写入;
(5-3)若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特采用与上述步骤(5-2)中相同的方法进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流,并终止比特写入;
(5-4)若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特采用与上述步骤(5-2)中相同的方法进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流,并终止比特写入;
(5-5)若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特采用与上述步骤(5-2)中相同的方法进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
由于当前帧码流是从字节对齐处开始写入,因此所述的当前帧已写入的码流尚未字节对齐就是当前帧已写入码流的总比特数不能被8整除,所述的当前帧已写入的码流能够字节对齐就是当前帧已写入码流的总比特数能被8整除。
为了提高压缩效率,本发明根据屏幕视频的像素编码模式统计比例,设计CMORG、CMTOP、CMINTER和CMCONT这四种编码模式的压缩标识比特数和数值:被编码像素选为最终编码模式次数最多的CMCONT只用最少的1个比特来表示,即连续编码模式CMCONT在编码码流中的压缩标识CMFCONT用1个比特表示,值为0b0;原始像素模式CMORG在编码码流中的压缩标识CMFORG用2个比特表示,值为0b10;上方编码模式CMTOP在编码码流中的压缩标识CMFTOP用3个比特表示,值为0b110;帧间编码模式CMINTER在编码码流中的压缩标识CMFINTER用4个比特表示,值为0b1110。为了进一步提高压缩效率,本发明在编码过程中对由从码流字节对齐处开始计数的编码模式连续为CMCONT的零比特数进行连续零值字节压缩:当连续零值字节个数大于0且小于等于CZBMax1时,则连续零值字节压缩标识CZF1用5个比特表示,值为0b11110;当连续零值字节个数大于CZBMax1且小于等于CZBMax2,则连续零值字节压缩标识CZF2同样用5个比特表示,值为0b11111,其它情况不进行连续零值字节压缩。
在上述四种编码模式的压缩标识和两个连续零值字节压缩标识CZF1、CZF2中,任何一个压缩标识都不是其它压缩标识的前缀,解码端可以根据码流比特值进行相应解析;此外,上述六个压缩标识中除了CMFCONT外值都非零,可以避免与相邻码流比特组成帧同步头,从而保证码流中帧同步头的唯一性。
在上述步骤中,由于采用连续CMCONT编码得到的连续零比特在步骤(5-2)至(5-5)中进行了连续零值字节压缩,不仅提高了压缩效率,同时在码流中也避免了出现连续4个字节都为零的情况,保证了码流中帧同步头的唯一性;在KVM系统解码端,当在码流字节对齐处解析到连续零值字节压缩标识CZF1或CZF2,则先相应读取CZBBits1个比特或CZBBits2个比特的CZBytes,再将CZBytes乘以8得到从当前像素开始的编码模式均为CMCONT的连续像素个数。
(6)重复步骤(2)到(5)完成当前帧屏幕视频图像中所有待压缩像素的编码:
如果当前像素为当前帧屏幕视频图像中最后一个像素,则执行下一步,否则执行步骤(2)。由于本发明是基于像素级的数据编码压缩,没有任何像素缓存,在采集一个像素之后即可立即编码,从而极大的减少编码的算法处理延时。
(7)对当前帧码流进行字节对齐填充,完成当前帧屏幕视频图像的编码:
当已写入码流的总比特数不是8的倍数,即码流未字节对齐,则在码流尾部写入若干个比特,其比特个数大于等于1且小于等于7,每个比特值均为0b0,使当前帧最终写入的码流字节对齐;当已写入码流的总比特数为8的倍数,即码流已经字节对齐,则不进行码流填充操作。
由于除帧同步头之外的帧级编码信息和像素级编码模式的压缩标识及相邻比特都不会组成五个字节的帧同步头,因此本发明在步骤(5)和步骤(7)中,在写入码流后即可输出码流,无需再对写入的码流进行帧同步头转义处理,有效减少了压缩码流的输出延时。
在上述低延时低复杂度的数字KVM切换器视频无损压缩方法的基础上,本发明还公开了一种低延时低复杂度的数字KVM切换器视频无损压缩系统,包括:
帧级编码信息写入单元,用于在KVM切换器开始对一帧屏幕视频图像进行采集前依序写入码流帧同步头Sync、帧类型FT、红色分量R比特数标识BitsIDR、绿色分量G比特数标识BitsIDG、蓝色分量B比特数标识BitsIDB、当前帧图像水平像素分辨率HP减1、当前帧图像竖直像素分辨率VP减1、连续零值字节个数的编码比特数CZBBits1、连续零值字节个数的编码比特数CZBBits2
像素数据输入单元,用于按从上到下从左到右的顺序输入一个从KVM切换器采集到的当前屏幕视频图像待压缩像素的RGB数据;
预测模式选择单元,用于根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式;
编码模式计算单元,用于根据当前像素的预测模式计算其编码模式;
压缩比特写入单元,用于根据当前像素的编码模式将对应压缩比特写入码流;
码流字节对齐单元,用于在所有像素编码写入码流后总比特数不是8的倍数的码流中写入若干个比特以实现码流字节对齐。
所述帧级编码信息写入单元和码流字节对齐单元为帧级处理单元,即每帧图像处理一次;像素数据输入单元、预测模式选择单元、编码模式计算单元和压缩比特写入单元为像素级处理单元,每个像素处理一次,每个单元的输出即为下一个单元的输入,四个单元进行数据流水处理,有效降低系统处理延时。
所述预测模式选择单元包括两个流水处理步骤:
1)分三种可并行处理的情况计算三个候选预测模式的有效标志:
若当前帧按帧间编码帧进行编码并且当前像素的RGB分量分别等于时间相邻的前一编码帧中相同位置编码像素的RGB分量,则将帧间预测模式PMINTER的1比特有效候选标志PMFINTER置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻左侧编码像素的RGB分量且前一编码像素的预测模式非PMINTER,则将左侧预测模式PMLEFT的1比特有效候选标志PMFLEFT置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻上方编码像素的RGB分量,则将上方预测模式PMTOP的1比特有效候选标志PMFTOP置为0b1,否则置为0b0。
2)根据PMFINTER、PMFLEFT和PMFTOP从高位到低位组成的3比特标识PMFILT分四种可并行处理的情况计算当前像素的预测模式:
若PMFILT值为0b100、0b101、0b110或0b111,则将当前像素的预测模式设为帧间预测模式PMINTER
若PMFILT值为0b010或0b011,则将当前像素的预测模式设为左侧预测模式PMLEFT
若PMFILT值为0b001,则将当前像素的预测模式设为上方预测模式PMTOP
若PMFILT值为0b000,则将当前像素的预测模式设为原始像素模式PMORG
所述编码模式计算单元的计算过程分以下五种可并行处理的情况计算当前像素的编码模式:
若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER
若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP
若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
所述压缩比特写入单元的分五种可并行处理的情况将压缩比特写入码流:
若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩:首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流;
若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流;
若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
所述的数字KVM切换器视频无损压缩系统,在压缩比特写入单元和码流字节对齐单元中,写入的码流即可输出,无需再对写入的码流进行帧同步头转义处理,有效减少了压缩码流的输出延时。
本发明的技术构思为:
根据数字KVM切换器屏幕视频图像的时空相关性,在RGB色度空间进行像素级的视频压缩,采用基于原始像素的空间无损预测代替传统视频压缩系统采用的基于重建像素和基于块的帧内预测方法;直接利用前一编码帧相同位置的原始像素值,计算是否选择采用帧间预测方式,代替传统压缩系统采用的基于解码重建帧运动估计的帧间预测编码方法。本发明首先通过比较上方位置、左方位置和前一帧对应位置的像素值,并结合前一编码像素的预测模式,获得当前像素的预测模式;然后根据该预测模式以及前一编码像素的预测模式计算当前像素的编码模式;最后根据该编码模式和字节对齐状态将压缩比特写入码流。
本发明适用于数字KVM切换器的屏幕视频图像压缩,与现有技术相比,具有以下特点和优点:采用像素级的视频压缩系统和方法,便于采用可编程硬件平台实现并行流水编码,具备采集编码整体最小的单像素级延时粒度;采用基本的时空预测方法,极大地降低了视频压缩的理论计算量和硬件实现的复杂度,具备最快的单周期级处理速度;在预测模式选择过程中,直接采用当前帧和前一编码帧的原始像素,编码端无需进行解码重建,不用存储解码重建帧,有效地减少了硬件内存资源消耗和硬件实现复杂度;使用编码模式变长比特标识和码流连续零值字节压缩相结合的码流压缩组织方式,既有效地提升了屏幕视频图像静止区域的压缩效率,又无需进行帧同步头转义处理,减少了码流的输出延时。本发明能在保持较好的压缩效率的前提下,有效地降低视频压缩系统的延时和计算复杂度。
附图说明
图1为本发明方法的基本流程图;
图2为帧级编码信息的码流结构图,该帧采用I帧编码,R、G和B分量都用8比特表示,图像水平分辨率为1920,图像竖直分辨率为1080;
图3为本发明系统的基本框图。
具体实施方式
下面结合实例和附图来说明本发明的具体实施方式,应当指出,以下针对分辨率为1920×1080的屏幕视频图像进行数据压缩,在码流的具体写入过程中,本实施例将待压缩比特中的高位比特数据优先写入码流字节中的高位比特,即按大端方式写入码流,描述的方式只是数字KVM切换器的典型应用方式之一。在本发明的范围内,本领域的技术人员还可以根据需求使用其它一些替代实施方式。
本实施例中的数字KVM切换器视频无损压缩方法如图1所示,包括以下步骤:
(1)将待采集编码的当前帧屏幕视频图像的帧级编码信息写入码流;
(2)依序输入一个从KVM切换器采集到的当前帧屏幕视频图像中待压缩像素的RGB数据;
(3)根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式;
(4)根据当前像素的预测模式计算其编码模式;
(5)根据当前像素的编码模式将压缩比特写入码流;
(6)重复步骤(2)到(5)完成当前帧屏幕视频图像中所有待压缩像素的编码;
(7)对当前帧码流进行字节对齐填充,完成当前帧屏幕视频图像的编码。
所述的当前帧屏幕视频图像由数字KVM切换器采集到并且采用RGB色度空间,本实施例中输入的屏幕视频图像的分辨率都为1080P(即1920×1080),水平像素分辨率HP值为1920,即水平方向有1920个像素,竖直像素分辨率VP值为1080,即竖直方向有1080个像素,每个像素的红色分量R、绿色分量G和蓝色分量B都是采用8比特表示。
步骤(1)具体包括:
(1-1)从字节对齐处写入5个字节表示的帧同步头Sync,前4个字节值为0x00,第5个字节值为0xFF;
(1-2)写入2个比特表示的帧类型FT:本实施例中的编码器从第一个编码帧开始每隔150帧编码一个帧内编码帧(I帧),将FT值设为0b00,以实现I帧码流的等间隔输出,其余帧都为帧间编码帧(P帧),将FT值设为0b01;
(1-3)写入2个比特的R分量比特数标识BitsIDR:本实施例中每个像素的R分量用8比特表示,即BitsR值为8、BitsIDR值为0b11;
(1-4)写入2个比特的G分量比特数标识BitsIDG:本实施例中每个像素的G分量用8比特表示,即BitsG值为8、BitsIDG值为0b11;
(1-5)写入2个比特的B分量比特数标识BitsIDB:本实施例中每个像素的B分量用8比特表示,即BitsB值为8、BitsIDB值为0b11;
(1-6)写入12个比特的当前帧图像水平像素个数HP减1:本实施例中输入视频图像分辨率为1080P,HP减1值为1919;
(1-7)写入12个比特的当前帧图像竖直像素个数VP减1:本实施例中输入视频图像分辨率为1080P,VP减1值为1079;
(1-8)写入3个比特的连续零值字节个数的编码比特数CZBBits1:本实施例中CZBBits1取值为3,即采用3个比特表示连续零字节个数,能够支持的最大连续零字节个数为7,即对应的CZBMax1值为7;
(1-9)写入5个比特的连续零值字节个数的编码比特数CZBBits2:本实施例中CZBBits2取值为11,即采用11个比特表示连续零字节个数,能够支持的最大连续零字节个数为2047,即对应的CZBMax2值为2047,当前帧写入码流的最大延时为2047乘8个像素,即最多在连续16376个像素内必有压缩比特写入码流。
本实施例中所有I帧的帧级编码信息码流结构图如图2所示。
步骤(2)具体包括:
按从上到下从左到右的顺序从输入的一帧屏幕视频图像中获取一个待压缩像素的RGB数据作为当前像素数据,该像素数据包括一个R分量、一个G分量和一个B分量。
步骤(3)通过比较上方位置、左方位置、前一帧对应位置的时空相邻像素值,以及结合前一编码像素的预测模式,选择当前像素的预测模式,具体包括:
(3-1)若当前帧按P帧进行编码并且当前像素的R、G、B分量分别等于时间相邻的前一编码帧中相同位置编码像素的R、G、B分量,则将当前像素的预测模式设为帧间预测模式PMINTER,并终止选择;
(3-2)若当前像素的R、G、B分量分别等于空间相邻左侧编码像素的R、G、B分量且前一编码像素的预测模式非PMINTER,则将当前像素的预测模式设为左侧预测模式PMLEFT,并终止选择;
(3-3)若当前像素的R、G、B分量分别等于空间相邻上方像素的R、G、B分量,则将当前像素的预测模式设为上方预测模式PMTOP,并终止选择;
(3-4)将当前像素的预测模式设为原始像素模式PMORG
步骤(4)具体包括:
(4-1)若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER,并终止计算;
(4-2)若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-3)若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-4)若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP,并终止计算;
(4-5)若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
步骤(5)具体包括:
(5-1)若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流,并终止比特写入;
(5-2)若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩:
首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;
接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
在连续零值字节压缩之后,终止比特写入;
(5-3)若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流,并终止比特写入;
(5-4)若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流,并终止比特写入;
(5-5)若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
步骤(6)具体包括:
如果当前像素为当前帧屏幕视频图像中最后一个像素,则执行下一步,否则执行步骤(2)。
步骤(7)具体包括:
当已写入码流的当前帧总比特数不是8的倍数,即当前帧码流未字节对齐,则在码流尾部写入若干个比特,其比特个数大于等于1且小于等于7,每个比特值均为0b0,使当前帧最终写入的码流字节对齐;当已写入码流的当前帧总比特数为8的倍数,即当前帧码流已经字节对齐,则不进行码流填充操作。
经本发明压缩得到的屏幕视频码流可根据本发明的压缩方法和步骤进行相应的解压,以在数字KVM系统的客户端播放显示数字KVM切换器端传送过来的屏幕视频图像。
本实施例采用擅长并行处理的FPGA处理器,基于上述数字KVM切换器视频无损压缩方法所实现的数字KVM切换器视频无损压缩系统如图3所示,包括以下单元:
帧级编码信息写入单元,用于在KVM切换器开始对一帧屏幕视频图像进行采集前依序写入码流帧同步头Sync、帧类型FT、红色分量R比特数标识BitsIDR、绿色分量G比特数标识BitsIDG、蓝色分量B比特数标识BitsIDB、当前帧图像水平像素分辨率HP减1、当前帧图像竖直像素分辨率VP减1、连续零值字节个数的编码比特数CZBBits1、连续零值字节个数的编码比特数CZBBits2
像素数据输入单元,用于按从上到下从左到右的顺序输入一个从KVM切换器采集到的当前屏幕视频图像待压缩像素的RGB数据;
预测模式选择单元,用于根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式;
编码模式计算单元,用于根据当前像素的预测模式计算其编码模式;
压缩比特写入单元,用于根据当前像素的编码模式将其压缩比特写入码流;
码流字节对齐单元,用于在所有像素编码写入码流后总比特数不是8的倍数的码流中写入若干个比特以实现码流字节对齐。
所述预测模式选择单元包括两个流水处理步骤:
1)分三种可并行处理的情况计算三个候选预测模式的有效标志:
若当前帧按帧间编码帧进行编码并且当前像素的RGB分量分别等于时间相邻的前一编码帧中相同位置编码像素的RGB分量,则将帧间预测模式PMINTER的1比特有效候选标志PMFINTER置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻左侧编码像素的RGB分量且前一编码像素的预测模式非PMINTER,则将左侧预测模式PMLEFT的1比特有效候选标志PMFLEFT置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻上方编码像素的RGB分量,则将上方预测模式PMTOP的1比特有效候选标志PMFTOP置为0b1,否则置为0b0。
2)根据PMFINTER、PMFLEFT和PMFTOP从高位到低位组成的3比特标识PMFILT分四种可并行处理的情况计算当前像素的预测模式:
若PMFILT值为0b100、0b101、0b110或0b111,则将当前像素的预测模式设为帧间预测模式PMINTER
若PMFILT值为0b010或0b011,则将当前像素的预测模式设为左侧预测模式PMLEFT
若PMFILT值为0b001,则将当前像素的预测模式设为上方预测模式PMTOP
若PMFILT值为0b000,则将当前像素的预测模式设为原始像素模式PMORG
所述编码模式计算单元的计算过程分以下五种可并行处理的情况计算当前像素的编码模式:
若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER
若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP
若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
所述压缩比特写入单元的包括五种可并行处理的情况将压缩比特写入码流:
若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩:首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流;
若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流;
若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
以上所述仅为本发明的较佳实施举例,并不用于限制本发明,凡在本发明精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种低延时低复杂度的数字KVM切换器视频无损压缩方法,其特征在于,包括以下步骤:
(1)将待采集编码的当前帧屏幕视频图像的帧级编码信息写入码流,所述的帧级编码信息包括:
5个字节的帧同步头Sync,前4个字节值为0x00,第5个字节值为0xFF;
2个比特的帧类型FT,值为0b00表示当前帧将按帧内编码帧的方式进行编码,值为0b01表示当前帧将按帧间编码帧的方式进行编码,值为0b10和0b11预留;
2个比特的红色分量R比特数标识BitsIDR,其值为0b00表示红色分量R的比特数BitsR值为5,其值为0b01表示BitsR值为6,其值为0b10表示BitsR值为7,其值为0b11表示BitsR值为8;
2个比特的绿色分量G比特数标识BitsIDG,其值为0b00表示绿色分量G的比特数BitsG值为5,其值为0b01表示BitsG值为6,其值为0b10表示BitsG值为7,其值为0b11表示BitsG值为8;
2个比特的蓝色分量B比特数标识BitsIDB,其值为0b00表示蓝色分量B的比特数BitsB值为5,其值为0b01表示BitsB值为6,其值为0b10表示BitsB值为7,其值为0b11表示BitsB值为8;
12个比特的当前帧图像水平像素分辨率HP减1;
12个比特的当前帧图像竖直像素分辨率VP减1;
3个比特的连续零值字节个数的编码比特数CZBBits1,其取值大于0且小于等于7,将CZBBits1个比特能表示的最大数值记为CZBMax1
以及5个比特的连续零值字节个数的编码比特数CZBBits2,其取值大于等于8且小于等于21,将CZBBits2个比特能表示的最大数值记为CZBMax2
(2)按从上到下从左到右的顺序输入一个从KVM切换器采集到的当前帧屏幕视频图像中待压缩像素的RGB数据;
(3)根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式;
(4)根据当前像素的预测模式计算其编码模式;
(5)根据当前像素的编码模式将压缩比特写入码流;
(6)重复步骤(2)至步骤(5),完成当前帧屏幕视频图像中所有待压缩像素的编码;
(7)对当前帧码流进行字节对齐填充,完成当前帧屏幕视频图像的编码。
2.如权利要求1所述的数字KVM切换器视频无损压缩方法,其特征在于,所述步骤(1)中帧级编码信息按如下步骤写入码流:
(1-1)从字节对齐处写入帧同步头Sync;
(1-2)写入帧类型FT;
(1-3)写入红色分量R比特数标识BitsIDR
(1-4)写入绿色分量G比特数标识BitsIDG
(1-5)写入蓝色分量B比特数标识BitsIDB
(1-6)写入当前帧图像水平像素分辨率HP减1;
(1-7)写入当前帧图像竖直像素分辨率VP减1;
(1-8)写入连续零值字节个数的编码比特数CZBBits1
(1-9)写入连续零值字节个数的编码比特数CZBBits2
3.如权利要求1所述的数字KVM切换器视频无损压缩方法,其特征在于,所述步骤(3)中的当前像素的预测模式是从以下候选预测模式中选择出来:
帧间预测模式PMINTER,该模式在编码端要求当前帧按帧间编码帧的方式进行编码并且当前像素的RGB分量分别等于时间相邻的前一编码帧中相同位置编码像素的RGB分量,在解码端要求当前解码像素的RGB分量分别为时间相邻的前一解码帧中相同位置解码像素的RGB分量;
左侧预测模式PMLEFT,该模式在编码端要求当前像素的RGB分量分别等于空间相邻左侧编码像素的RGB分量且前一编码像素的预测模式非PMINTER,在解码端要求当前解码像素的RGB分量分别为当前帧空间相邻左侧解码像素的RGB分量;
上方预测模式PMTOP,该模式在编码端要求当前像素的RGB分量分别等于空间相邻上方编码像素的RGB分量,在解码端要求当前解码像素的RGB分量分别为当前帧空间相邻上方解码像素的RGB分量;
原始像素模式PMORG,该模式在编码端作为任何像素的有效的候选预测模式,在解码端要求当前解码像素的RGB分量分别为已编入码流的当前像素的RGB分量。
4.如权利要求3所述的数字KVM切换器视频无损压缩方法,其特征在于,所述步骤(3)中,当前像素按如下步骤选择其预测模式:
(3-1)若当前像素满足PMINTER的要求,则将当前像素的预测模式设为帧间预测模式PMINTER,并终止选择;
(3-2)若当前像素满足PMLEFT的要求,则将当前像素的预测模式设为左侧预测模式PMLEFT,并终止选择;
(3-3)若当前像素满足PMTOP的要求,则将当前像素的预测模式设为上方预测模式PMTOP,并终止选择;
(3-4)将当前像素的预测模式设为原始像素模式PMORG
5.如权利要求3所述的数字KVM切换器视频无损压缩方法,其特征在于,所述的步骤(4)中,当前像素按如下步骤计算其编码模式:
(4-1)若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER,并终止计算;
(4-2)若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-3)若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT,并终止计算;
(4-4)若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP,并终止计算;
(4-5)若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
6.如权利要求5所述的数字KVM切换器视频无损压缩方法,其特征在于,步骤(4)中的四种编码模式在解码端对应的预测模式为:
原始像素编码模式CMORG在解码端对应的预测模式为PMORG
上方编码模式CMTOP在解码端对应的预测模式为PMTOP
帧间编码模式CMINTER在解码端对应的预测模式为PMINTER
连续编码模式CMCONT在解码端通过结合前一解码像素的预测模式来获得当前解码像素的预测模式:若前一解码像素的预测模式为PMINTER,则当前解码像素的预测模式也为PMINTER;若前一解码像素的预测模式非PMINTER,则当前解码像素的预测模式为PMLEFT
7.如权利要求6所述的数字KVM切换器视频无损压缩方法,其特征在于,所述步骤(5)中,当前像素按如下步骤将压缩比特写入码流:
(5-1)若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流,并终止比特写入;
(5-2)若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩,并终止比特写入;
(5-3)若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流,并终止比特写入;
(5-4)若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流,并终止比特写入;
(5-5)若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
8.如权利要求7所述的数字KVM切换器视频无损压缩方法,其特征在于,压缩标识的比特数和值如下:
连续编码模式CMCONT的压缩标识CMFCONT用1个比特表示,值为0b0;原始像素模式CMORG的压缩标识CMFORG用2个比特表示,值为0b10;上方编码模式CMTOP的压缩标识CMFTOP用3个比特表示,值为0b110;帧间编码模式CMINTER的压缩标识CMFINTER用4个比特表示,值为0b1110;连续零值字节压缩标识CZF1用5个比特表示,值为0b11110;连续零值字节压缩标识CZF2用5个比特表示,值为0b11111。
9.如权利要求7所述的数字KVM切换器视频无损压缩方法,其特征在于,在编码端的步骤(5-2)至(5-5)中对采用CMCONT连续编码得到的未写入码流的CZBits个零比特进行连续零值字节压缩:首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
在解码端的码流解析过程中,若在码流字节对齐处解析到连续零值字节压缩标识CZF1或CZF2,则先相应读取CZBBits1个比特或CZBBits2个比特表示的CZBytes,再将CZBytes乘以8得到从当前像素开始的编码模式均为CMCONT的连续像素个数。
10.如权利要求1或7或9所述的数字KVM切换器视频无损压缩方法,其特征在于,在所述的步骤(5)和步骤(7)中,在写入码流后即可输出码流。
11.一种基于权利要求1-10任一项所述数字KVM切换器视频无损压缩方法的数字KVM切换器视频无损压缩系统,其特征在于,包括:
帧级编码信息写入单元,用于在KVM切换器开始对一帧屏幕视频图像进行采集前依序写入码流帧同步头Sync、帧类型FT、红色分量R比特数标识BitsIDR、绿色分量G比特数标识BitsIDG、蓝色分量B比特数标识BitsIDB、当前帧图像水平像素分辨率HP减1、当前帧图像竖直像素分辨率VP减1、连续零值字节个数的编码比特数CZBBits1、连续零值字节个数的编码比特数CZBBits2
像素数据输入单元,用于按从上到下从左到右的顺序输入一个从KVM切换器采集到的当前屏幕视频图像待压缩像素的RGB数据;
预测模式选择单元,用于根据当前像素及其时空相邻像素的RGB数据从候选预测模式中选择当前像素的预测模式;
编码模式计算单元,用于根据当前像素的预测模式计算其编码模式;
压缩比特写入单元,用于根据当前像素的编码模式将对应压缩比特写入码流;
码流字节对齐单元,用于在所有像素编码写入码流后总比特数不是8的倍数的码流中写入若干个比特以实现码流字节对齐。
12.如权利要求11所述的数字KVM切换器视频无损压缩系统,其特征在于,所述帧级编码信息写入单元和码流字节对齐单元为帧级处理单元;
所述的像素数据输入单元、预测模式选择单元、编码模式计算单元和压缩比特写入单元为像素级处理单元,每个单元的输出即为下一个单元的输入,四个单元进行数据流水处理。
13.如权利要求11所述的数字KVM切换器视频无损压缩系统,其特征在于,所述预测模式选择单元包括两个流水处理步骤:
1)分三种可并行处理的情况计算三个候选预测模式的有效标志:
若当前帧按帧间编码帧进行编码并且当前像素的RGB分量分别等于时间相邻的前一编码帧中相同位置编码像素的RGB分量,则将帧间预测模式PMINTER的1比特有效候选标志PMFINTER置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻左侧编码像素的RGB分量且前一编码像素的预测模式非PMINTER,则将左侧预测模式PMLEFT的1比特有效候选标志PMFLEFT置为0b1,否则置为0b0;
若当前像素的RGB分量分别等于空间相邻上方编码像素的RGB分量,则将上方预测模式PMTOP的1比特有效候选标志PMFTOP置为0b1,否则置为0b0;
2)根据PMFINTER、PMFLEFT和PMFTOP从高位到低位组成的3比特标识PMFILT分四种可并行处理的情况计算当前像素的预测模式:
若PMFILT值为0b100、0b101、0b110或0b111,则将当前像素的预测模式设为帧间预测模式PMINTER
若PMFILT值为0b010或0b011,则将当前像素的预测模式设为左侧预测模式PMLEFT
若PMFILT值为0b001,则将当前像素的预测模式设为上方预测模式PMTOP
若PMFILT值为0b000,则将当前像素的预测模式设为原始像素模式PMORG
14.如权利要求13所述的数字KVM切换器视频无损压缩系统,其特征在于,所述编码模式计算单元的计算过程分以下五种可并行处理的情况计算当前像素的编码模式:
若当前像素的预测模式为PMINTER且前一编码像素的预测模式非PMINTER,则将当前像素的编码模式设为帧间编码模式CMINTER
若当前像素的预测模式为PMINTER且前一编码像素的预测模式为PMINTER,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMLEFT,则将当前像素的编码模式设为连续编码模式CMCONT
若当前像素的预测模式为PMTOP,则将当前像素的编码模式设为上方编码模式CMTOP
若当前像素的预测模式为PMORG,则将当前像素的编码模式设为原始像素编码模式CMORG
15.如权利要求14所述的数字KVM切换器视频无损压缩系统,其特征在于,所述压缩比特写入单元的包括五种可并行处理的情况将压缩比特写入码流:
若当前像素的编码模式为CMCONT且当前帧已写入的码流尚未字节对齐,则只将1个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMCONT且当前帧已写入的码流已经字节对齐,则先将从当前码流字节对齐处开始计数且采用CMCONT连续编码得到的连续零比特数CZBits加1,接着若CZBits等于CZBMax2乘8或者当前像素为当前屏幕视频图像的最后一个编码像素,则对未写入码流的CZBits个零比特进行连续零值字节压缩:首先将CZBits除8向下取整得到CZBytes,若CZBytes大于0且小于等于CZBMax1,则先将1个连续零值字节压缩标识CZF1写入码流,再将CZBBits1个比特表示的CZBytes写入码流;若CZBytes大于CZBMax1,则先将1个连续零值字节压缩标识CZF2写入码流,再将CZBBits2个比特表示的CZBytes写入码流;接着将CZBits除8取余得到ResBits,并将CZBits清零,若ResBits大于0,则将ResBits个压缩标识CMFCONT写入码流;
若当前像素的编码模式为CMINTER,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFINTER写入码流;
若当前像素的编码模式为CMTOP,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFTOP写入码流;
若当前像素的编码模式为CMORG,则先对未写入码流的CZBits个零比特进行连续零值字节压缩,再将1个压缩标识CMFORG写入码流,最后按顺序将当前像素BitsB个比特表示的B分量、BitsG个比特表示的G分量和BitsR个比特表示的R分量依次写入码流。
16.如权利要求11所述的数字KVM切换器视频无损压缩系统,其特征在于,在压缩比特写入单元和码流字节对齐单元中,写入的码流即可输出。
CN201610353623.6A 2016-05-25 2016-05-25 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统 Active CN106028029B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610353623.6A CN106028029B (zh) 2016-05-25 2016-05-25 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610353623.6A CN106028029B (zh) 2016-05-25 2016-05-25 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统

Publications (2)

Publication Number Publication Date
CN106028029A CN106028029A (zh) 2016-10-12
CN106028029B true CN106028029B (zh) 2018-11-06

Family

ID=57093481

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610353623.6A Active CN106028029B (zh) 2016-05-25 2016-05-25 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统

Country Status (1)

Country Link
CN (1) CN106028029B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989800B (zh) * 2017-06-03 2024-01-09 上海天荷电子信息有限公司 以字节为单元产生压缩数据字节流的数据压缩方法和装置
CN107393503B (zh) * 2017-07-28 2019-08-02 北京集创北方科技股份有限公司 编码装置、显示控制装置和编码方法
CN107257474B (zh) * 2017-08-16 2020-03-10 郑州云海信息技术有限公司 一种面向bmc芯片的视频信息压缩系统和方法
CN107801031B (zh) * 2017-11-09 2019-10-18 广州物启科技有限公司 一种对纯三原色图片数据的无损压缩编码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1984327A (zh) * 2006-05-16 2007-06-20 华为技术有限公司 一种视频压缩方法
CN101046735A (zh) * 2006-03-30 2007-10-03 华为技术有限公司 一种视频数据压缩方法
CN101976131A (zh) * 2010-10-26 2011-02-16 深圳市云舒网络技术有限公司 一种基于隔点采样算法的kvm系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321623B2 (en) * 2002-10-01 2008-01-22 Avocent Corporation Video compression system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101046735A (zh) * 2006-03-30 2007-10-03 华为技术有限公司 一种视频数据压缩方法
CN1984327A (zh) * 2006-05-16 2007-06-20 华为技术有限公司 一种视频压缩方法
CN101976131A (zh) * 2010-10-26 2011-02-16 深圳市云舒网络技术有限公司 一种基于隔点采样算法的kvm系统及方法

Also Published As

Publication number Publication date
CN106028029A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
JP7418459B2 (ja) 符号化器、復号器及び対応する方法
CN107690803B (zh) 用于高动态范围及广色域视频译码的自适应常量照度方法
JP6400691B2 (ja) ビデオコーディングにおけるサブ復号ピクチャバッファ(サブdpb)ベースのdpb動作のためのシグナリング
JP6800896B2 (ja) ビデオコーディングのためにハイダイナミックレンジおよび広色域ビデオデータを処理すること
JP6235040B2 (ja) ビット深度スケーラブルビデオコーディングのためのサンプル適応調整を使用するレイヤ間予測
JP6336058B2 (ja) ビデオ及び画像符号化及び復号のためのベースカラーインデックスマップモードの機能
EP2214415B1 (en) A dual prediction video encoding and decoding method and a device
JP6151434B2 (ja) 絶対値変換差分和に基づくビデオ符号化のためのイントラレート制御
JP6193365B2 (ja) パラメータセットにおけるスケーラビリティ情報のシグナリング
CN105379273A (zh) 信令指示和约束
JP7343669B2 (ja) Vvcにおける色変換のための方法及び機器
JP7125520B2 (ja) ピクチャ復号化方法およびピクチャ符号化方法
CN106028029B (zh) 低延时低复杂度的数字kvm切换器视频无损压缩方法及系统
KR20200077612A (ko) 비디오 신호의 처리 방법 및 장치
CN112235584B (zh) 一种用于图像划分的方法及装置、编码、解码视频序列图像的方法及装置
CN105103563A (zh) 在可伸缩视频编码中的量化矩阵信令和表示的方法和装置
WO2021004153A1 (zh) 图像预测方法、编码器、解码器以及存储介质
CN103442228B (zh) 从h.264/avc标准到hevc标准的快速帧内转码方法及其转码器
CN108174214A (zh) 一种基于屏幕内容视频编码的远程桌面共享方法
CN107409212B (zh) 使用变换系数的逐渐更新进行编码和解码的方法及设备
JP7201821B2 (ja) ビデオコーディング方法及び機器
KR102661416B1 (ko) 인코더, 디코더 및 대응하는 방법
KR20130112448A (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
GR01 Patent grant
GR01 Patent grant