CN103248890A - 一种用于无线投影的信源数据采集及压缩方法 - Google Patents
一种用于无线投影的信源数据采集及压缩方法 Download PDFInfo
- Publication number
- CN103248890A CN103248890A CN2013101013146A CN201310101314A CN103248890A CN 103248890 A CN103248890 A CN 103248890A CN 2013101013146 A CN2013101013146 A CN 2013101013146A CN 201310101314 A CN201310101314 A CN 201310101314A CN 103248890 A CN103248890 A CN 103248890A
- Authority
- CN
- China
- Prior art keywords
- image
- roi
- memory
- frame
- coding
- 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.)
- Pending
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种用于无线投影的信源数据采集及压缩方法,属于无线投影领域,能快速高质量地截取屏幕图像并压缩通过无线网络传输到服务端显示从而达到无线投影的功能。该方案采用的是基于镜像驱动的截屏和基于H.264的优化算法。相比较传统的GDI和DirectX截屏,该方法具有CPU占有率低、图像质量高、截屏效率高等优点。针对屏幕图像的帧间相关性大的特点,对基于H.264的视频压缩算法做出改进并在此基础上引入了基于ROI(感兴趣区域)分层编码,使得传输的数据量更低,质量更高。
Description
技术领域
本发明涉及一种无线投影技术的实现方法,更具体的说,本发明主要涉及一种用于无线投影的信源数据采集及压缩方法。
背景技术
在投影***中,信源就是屏幕图像。屏幕数据的采集技术主要有GDI截屏和DirectX截屏。GDI截屏机制是以“桌面也是一个窗口,桌面也有一个窗口句柄”这个简单的常识为基础的,如果我们得到了桌面的设备上下文(DC),就可以利用复制它的内容到我们创建的DC中。要得到窗口的句柄可以用函数GetDeskWindow()函数实现。同理DC也可以通过句柄HWnd获得。具体的实现方法为:1、通过GetDesktopWindow()函数获取桌面句柄;2、用GetDC()取得桌面DC;3、创建和屏幕DC兼容的位图和DC,并把这个位图选入到创建的DC中;4、当你准备好抓屏时,就复制窗口DC的内容到兼容DC,完成抓屏后兼容位图就是抓屏的屏幕内容;5、最后释放创建的对象。DirectX是通过访问前台缓冲捕捉当前屏幕的内容的。因为前台缓冲保存了当前屏幕的内容。每个DirectX程序都包含一个被称作缓冲的内存区域,其中保存了和该程序有关的显存内容。DirectX提供了一个接口函数GetFrontBuffer()方法,它接收IDirect3DSurface对象指针做参数,并复制前台缓冲内容到Surface。IDirect3DSurface用CreateImageSurface()得到。然后我们就可通过调用D3DXSaveSurfaceToFile()方法直接把图片保存成bmp格式的文件。
而上述的截屏方案的缺陷比较大。拿GDI截屏来说,该方法主要缺陷在于 截屏的效率不高,CPU占有率大,数据量大等。另外,由于利用这种方式截屏的话会捕捉不到视频画面的信息,这是由于视频播放时往往会调用DirectDraw来急速视频播放。而DirectX的截屏效率相比GDI截屏要高,这是由DirectX底层优化机制决定的。一般情况下,一张大小为600*400的位图文件,采用32位色,如果采用GDI截图的话大约需要110ms左右的时间,而采用DirectX截图则需要80-100ms左右,见表(1)。显然上面两种方法对于实时性要求很高的投影技术来说是不够的。
图像数据的压缩最常见的是jpeg2000算法。它是联合图像专家组(Joint Photographic Experts Group,JPEG)在1997年开始就致力于开发新的静态图像压缩标准,并于2000年成为了新的国际标准,即ISO/IEC15444-1。该算法没有采用基于DCT变换的压缩算法,而是采用基于离散小波变换的先进压缩技术。此外jpeg2000的熵编码的主要算法采用的是基于优化截断的嵌入式块编码
(EBCOT),相比较jpeg标准,图像压缩效率平均提高了30%。Jpeg2000的编码过程可以概括为:1、对图像进行色度空间变换;2、对图像切分成矩形接块,以每个分量中的拼接块为单位进行小波变换;3、对变换得到的小波系数进行量化和划分,划分的最终单位为码块;4、对码块中的系数进行位平面扫描,同时实施基于上下文的熵编码;5、进行支持可分级解码的码流组织和格式封装,***必要的纠错信息。但是j peg2000的缺陷在于该算法仅仅对一幅图片压缩,而在投影的过程中,需要不断截取客户端屏幕图像进行压缩,一帧图像的前一帧和后一帧很可能是相似的,这就是帧间相关性强。如果采用jpeg2000算法,对每一帧图像压缩显然效率不高。本方法利用屏幕图像帧间相关性强的特点,引入H.264优化算法,降低压缩后的数据量。
发明内容
本发明的目的之一在于针对上述不足,提供一种用于无线投影的信源数据采集及压缩方法,以期望解决现有技术中如何更高效实时的获取屏幕图像数据,以及如何在不影响图片质量的条件下对屏幕图像进行帧内和帧间压缩,使得数据传输量大大减小等技术问题。
为解决上述的技术问题,本发明采用以下技术方案:
本发明所提供的一种用于无线投影的信源数据采集及压缩方法,所述的方法包括如下步骤:
步骤A、客户端***发出绘图命令,显卡硬件驱动和镜像驱动同时接收到该命令;其中显卡硬件驱动将命令执行后做出绘图操作,并在显示器上显示;镜像驱动在单位内存区域中做出绘图操作,并修改该单位内存区域中的数据;
步骤B、客户端***按照单位时间间隔将步骤A中单位内存区域中缓存的图像数据保存为位图格式,即得到屏幕图像的连续图像帧数据;
步骤C、将步骤B中得到的连续图像帧数据传输至H.264编码器进行压缩编码,进而形成视频流,再通过TCP/IP协议以及服务端的无线AP传送到服务端进行解码操作,最后在服务端进行显示。
作为优选,进一步的技术方案是:所述镜像驱动以单位内存区域为操作对象,并同时在单位内存区域中绘制与显卡硬件驱动相同的图像。
更进一步的技术方案是:所述步骤C中H.264编码器对连续图像帧数据进行压缩编码的步骤包括
运动估计,利用参考帧估计当前编码帧的运动位移量;
运动补偿,计算出运动估计后的图像和原始图像的差值,然后将运动补偿值传送到解码端;
将运动估计和补偿结果编码,采用块匹配法,利用均方误差准则来衡量块匹配;其公式为
上式中,fk(m,n)为当前帧的亮度,fk-1(m+x,n+y)为参考帧的亮度,两个块的相关性函数为R(x,y)=1/MSE(x,y)。
再进一步的技术方案是:所述步骤C中压缩编码步骤中还包括ROI分层编码,所述ROI分层编码的步骤包括
计算ROI区域,并进行片组划分,从而得到ROI模型;
修改H.264编码器的变长编码部分,使其能基于灵活宏块排序特性编码特性上实现ROI优先增强编码,剩下的非感兴趣区域NROI则通过基本编码处理;
输出视频流,该视频流为感兴趣区域增强编码效果后的视频。
与现有技术相比,本发明的有益效果之一是:充分利用了屏幕图像帧间相关性的特点,主要优化了帧间压缩算法,对采集到的图像进行帧间和帧内压缩,以及引入基于H.264的感兴趣区域(ROI)分层编码,而不是像jpeg2000那样只对帧内做压缩。这样就大大减少了传输的数据量,且不会影响整体的视频质量,使得投影画面变得更加流畅。同时本发明所提供的一种用于无线投影的信源数据采集及压缩方法结构简单,可用作各类无线投影设备中做图像信源数据的采集、压缩及传输,应用范围广阔。
附图说明
图1为用于本发明一个实施例的镜像驱动的安装截图;
图2为用于说明本发明一个实施例的实现流程框图。
具体实施方式
下面结合附图对本发明作进一步阐述。
本发明的一个实施例是一种用于无线投影的信源数据采集及压缩方法,所述的方法包括如下步骤:
步骤A、客户端***发出绘图命令,显卡硬件驱动和镜像驱动同时接收到该命令;其中显卡硬件驱动将命令执行后做出绘图操作,并在显示器上显示;镜像驱动在单位内存区域中做出绘图操作,并修改该单位内存区域中的数据;
步骤B、客户端***按照单位时间间隔将步骤A中单位内存区域中缓存的图像数据保存为位图格式,即得到屏幕图像的连续图像帧数据;
步骤C、将步骤B中得到的连续图像帧数据传输至H.264编码器进行压缩编码,进而形成视频流,再通过TCP/IP协议以及服务端的无线AP传送到服务端进行解码操作,最后在服务端进行显示。
参考图1所示,根据本发明的另一实施例,此为安装镜像驱动后的截图。这里的镜像驱动名称叫做MirageDriver,可以在设备管理器中查看到。而Intel(R)HD Graphics则是CPU内部的核心显卡驱动,它负责显示输出,是具有硬件设备的。而镜像驱动是没有实际的物理设备的,它以一块内存为操作对象,将显卡驱动的所有操作都执行一遍。当用户在屏幕上画一条线时,镜像驱动也在那块内存中的对应位置画一条线,如果将这块内存中的数据保存为位图,就得到跟当前屏幕一样的图像。
参考图2所示,该图表示了本发明的实现框图。当客户端***发出绘图命令时,显卡硬件驱动和镜像驱动同时接收到命令,显卡硬件驱动则将命令执行后作出绘图操作,在显示器上显示,而镜像驱动接收命令后则是在一块内存区 中做绘图操作,修改该块内存中的数据,此时我们只需要设定一个定时器,每隔一段时间就将这块内存中的数据保存成位图格式,那么得到的图像就是屏幕图像。接着我们把这一连串的图像帧数据送到优化过的H.264编码器进行编码,编码后形成的视频流再通过TCP/IP协议以及服务端的无线AP传送到服务端进行解码操作,最后执行显示操作。
H.264是由ITU-T和ISO/IEC合作组建的联合视频小组(JoiniVideoTeam,JVT)共同推出的最新的国际视频编码标准。H.264的编解码器并不明确的规定一个编解码如何实现,而是规定了一个编码后的视频比特流的句法和该比特流的解码方法。各个编码器和解码器的实现在此框架下应能够互通,在实现上具有较大的灵活性,而且有利于相互竞争。本发明在原有的H.264编码算法基础上做优化,主要体现在帧间冗余优化处理上。
屏幕图像的帧间冗余度较强,其帧间压缩编码的步骤为:1、运动估计,所谓运动估计是指的是利用参考帧估计当前编码帧的运动位移量;2、运动补偿,是指计算出运动估计后的图像和原始图像的差值,然后将运动补偿值传送到解码端;3、将运动估计和补偿结果编码。实现运动估计和补偿通常采用块匹配法,可以利用均方误差准则来衡量块匹配。其公式为
其中fk(m,n)表示当前帧的亮度,fk-1(m+x,n+y)则表示参考帧的亮度。那么这两个块的相关性函数为R(x,y)=1/MSE(x,y)。如果R(x,y)越大,则表示这两个块匹配性越强。
H.264将需要编码的图像帧分为7种块,分别是16*16、16*8、8*16、8*8、8*4、 4*8、4*4七种。这样就可以用最多16个矢量来描述,这样能更精确的记录块的运动估计,但是用16个矢量描述的话数据量显得比较大。考虑到屏幕图像帧间相关性强,本发明采用16*16、16*8、8*16、8*8四种块方法,最多需要4个矢量描述,大大减少了数据量和计算时间。这样带来的后果是编码帧运动估计没有优化之前的精确,但是结合屏幕图像的特殊性,基本不会影响人的视觉感受。另外H.264支持多参考帧编码,例如B帧图像可以使用重建的前向帧和后向帧预测,这里我们减少多参考帧的数目,只使用前后共两帧图像,因为屏幕的图像帧相关性强,很容易匹配到合适的块。这样大大减小了编解码器的复杂性以及存储空间。
在分层编码上本发明引入了感兴趣区域编码(ROI)技术。感兴趣区域指的是人们对一幅图像感兴趣的部分。利用ROI压缩技术可以加强感兴趣区域的图像质量,降低非感兴趣区域的图像质量。这样可以使得图像数据量减少且不影响整体的观察质量。由于H.264支持灵活宏块排序特性,本发明利用一种算法计算出感兴趣区域然后将其分配到片组中进行编码。假设宏块i的运动信息为MVi=|xi|+|yi|,则其平均运动信息为
其中α1和α2分别代表了权重系数,且两者之和为1。这里定义了一个阈值β,当WT的值大于β时,则该宏块被判为感兴趣区域(ROI),否则判为非感兴趣区域。然后再将ROI和NROI分别分配到不同的Slice组中。组的模式选择前景和背景模式,这样就很容易将图像分为前景区域和背景区域,最后进行分层编码。其大致流程为:1、计算ROI区域,并进行片组划分,得到ROI模型;2、修改编码器的变长编码部分,使其能基于灵活宏块排序特性编码特性上实现ROI优先 增强编码,剩下的非感兴趣区域NROI则通过基本编码处理。3、输出视频,该视频流就是感兴趣区域增强编码效果后的视频。该方法使得图像的压缩率增大,同时也使得图像的主观质量得到提高了。
本发明从两个方向对信源数据的采集和压缩做优化。首先,在截屏技术上本发明采用了利用镜像驱动的截屏,使得截屏效率大大提高。一般1024*768的屏幕图像采用镜像驱动截屏的话只需要40-60ms左右,如下表1所示,相比较传统的GDI和DirectX截屏来说提高了效率。另外GDI截屏时不能够截取正在播放的视频图像的缺点也可以通过镜像驱动来得到解决。其次,在采集到信源数据后,本发明未使用传统的jpeg2000的图像压缩算法,而是采用优化过的基于H.264的视频压缩算法。该算法充分利用了屏幕图像帧间相关性的特点,主要优化了帧间压缩算法,对采集到的图像进行帧间和帧内压缩,以及引入基于H.264的感兴趣区域(ROI)分层编码,而不是像jpeg2000那样只对帧内做压缩。这样就大大减少了传输的数据量,且不会影响整体的视频质量,这将使得投影画面变得更加流畅。
表1
截屏效率 | GDI截屏 | DirectX截屏 | 镜像驱动截屏 |
时间(ms) | 110 | 80-100 | 40-60 |
除上述以外,还需要说明的是在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、 结构或者特点也落在本发明的范围内。
尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开、附图和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。
Claims (4)
1.一种用于无线投影的信源数据采集及压缩方法,其特征在于:所述的方法
包括如下步骤:
步骤A、客户端***发出绘图命令,显卡硬件驱动和镜像驱动同时接收到该命令;其中显卡硬件驱动将命令执行后做出绘图操作,并在显示器上显示;镜像驱动在单位内存区域中做出绘图操作,并修改该单位内存区域中的数据;
步骤B、客户端***按照单位时间间隔将步骤A中单位内存区域中缓存的图像数据保存为位图格式,即得到屏幕图像的连续图像帧数据;
步骤C、将步骤B中得到的连续图像帧数据传输至H.264编码器进行压缩编码,进而形成视频流,再通过TCP/IP协议以及服务端的无线AP传送到服务端进行解码操作,最后在服务端进行显示。
2.根据权利要求1所述的用于无线投影的信源数据采集及压缩方法,其特征在于:所述镜像驱动以单位内存区域为操作对象,并同时在单位内存区域中绘制与显卡硬件驱动相同的图像。
3.根据权利要求1所述的用于无线投影的信源数据采集及压缩方法,其特征在于:所述步骤C中H.264编码器对连续图像帧数据进行压缩编码的步骤包括
运动估计,利用参考帧估计当前编码帧的运动位移量;
运动补偿,计算出运动估计后的图像和原始图像的差值,然后将运动补偿值传送到解码端;
将运动估计和补偿结果编码,采用块匹配法,利用均方误差准则来衡量块匹配;其公式为
上式中,fk(m,n)为当前帧的亮度,fk-1(m+x,n+y)为参考帧的亮度,两个块的相关性函数为R(x,y)=1/MSE(x,y)。
4.根据权利要求1或3所述的用于无线投影的信源数据采集及压缩方法,其特征在于:所述步骤C中压缩编码步骤中还包括ROI分层编码,所述ROI分层编码的步骤包括
计算ROI区域,并进行片组划分,从而得到ROI模型;
修改H.264编码器的变长编码部分,使其能基于灵活宏块排序特性编码特性上实现ROI优先增强编码,剩下的非感兴趣区域NROI则通过基本编码处理;
输出视频流,该视频流为感兴趣区域增强编码效果后的视频。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101013146A CN103248890A (zh) | 2013-03-27 | 2013-03-27 | 一种用于无线投影的信源数据采集及压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101013146A CN103248890A (zh) | 2013-03-27 | 2013-03-27 | 一种用于无线投影的信源数据采集及压缩方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103248890A true CN103248890A (zh) | 2013-08-14 |
Family
ID=48928079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101013146A Pending CN103248890A (zh) | 2013-03-27 | 2013-03-27 | 一种用于无线投影的信源数据采集及压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103248890A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104427334A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 数据处理方法、图像演示方法、数据处理装置和演示设备 |
CN106528016A (zh) * | 2016-10-31 | 2017-03-22 | 努比亚技术有限公司 | 一种信息处理方法及终端 |
CN107147887A (zh) * | 2017-05-04 | 2017-09-08 | 大连理工大学 | 无线投影方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217671A (zh) * | 2008-01-09 | 2008-07-09 | 武汉大学 | 自适应选择h.264视频标准中灵活宏块排序模式的方法 |
CN101447998A (zh) * | 2008-12-25 | 2009-06-03 | 广东威创视讯科技股份有限公司 | 桌面共享方法及*** |
CN101520719A (zh) * | 2008-02-27 | 2009-09-02 | 英属开曼群岛商傲群视音股份有限公司 | 画面分享***以及画面分享方法 |
US20110273629A1 (en) * | 2007-08-30 | 2011-11-10 | Tomoki Kobori | Image displaying apparatus, and a method for adjusting vibrating condition of a reflection mirror in the image dislaying apparatus |
-
2013
- 2013-03-27 CN CN2013101013146A patent/CN103248890A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110273629A1 (en) * | 2007-08-30 | 2011-11-10 | Tomoki Kobori | Image displaying apparatus, and a method for adjusting vibrating condition of a reflection mirror in the image dislaying apparatus |
CN101217671A (zh) * | 2008-01-09 | 2008-07-09 | 武汉大学 | 自适应选择h.264视频标准中灵活宏块排序模式的方法 |
CN101520719A (zh) * | 2008-02-27 | 2009-09-02 | 英属开曼群岛商傲群视音股份有限公司 | 画面分享***以及画面分享方法 |
CN101447998A (zh) * | 2008-12-25 | 2009-06-03 | 广东威创视讯科技股份有限公司 | 桌面共享方法及*** |
Non-Patent Citations (2)
Title |
---|
张洁琼: "互动设计***关键技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
温兴宇: "H.264视频压缩算法应用研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104427334A (zh) * | 2013-09-02 | 2015-03-18 | 联想(北京)有限公司 | 数据处理方法、图像演示方法、数据处理装置和演示设备 |
CN106528016A (zh) * | 2016-10-31 | 2017-03-22 | 努比亚技术有限公司 | 一种信息处理方法及终端 |
CN107147887A (zh) * | 2017-05-04 | 2017-09-08 | 大连理工大学 | 无线投影方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10645382B2 (en) | Video processing method, encoding device, and decoding device | |
CN101189882B (zh) | 用于视频压缩的编码器辅助帧率上变换(ea-fruc)的方法和装置 | |
CN102026000B (zh) | 像素域-变换域联合的分布式视频编码*** | |
JP5400876B2 (ja) | ビデオ符号化のための、スライス依存性に基づくレート制御モデル適合化 | |
CN101742319B (zh) | 基于背景建模的静态摄像机视频压缩方法与*** | |
CN101188757B (zh) | 用于可伸缩视频编码和解码的方法和设备 | |
CN101335892B (zh) | 基于帧内模式决策的混合分布式视频编码方法 | |
CN100464585C (zh) | 一种视频压缩方法 | |
CN106210721B (zh) | 一种hevc快速码率转码方法 | |
US7936824B2 (en) | Method for coding and decoding moving picture | |
JP2007503776A (ja) | インター符号化に使われる参照画像数を最小化するための方法および装置 | |
CN103250182A (zh) | 高动态范围视频色调映射 | |
CN104704835A (zh) | 视频编码中运动信息管理的装置与方法 | |
CN108353177A (zh) | 在显示流压缩dsc中用于降低切片边界视觉假象的***及方法 | |
CN103442228B (zh) | 从h.264/avc标准到hevc标准的快速帧内转码方法及其转码器 | |
CN101984665A (zh) | 一种视频传输质量评测的方法与*** | |
CN106165418A (zh) | 用于在显示流压缩(dsc)中选择量化参数(qp)的***和方法 | |
CN106165420A (zh) | 用于显示流压缩(dsc)的平度检测的***及方法 | |
CN103688538A (zh) | 用于重新构造并且编码视频信号的方法和装置 | |
CN102572428B (zh) | 面向多媒体传感网分布式编解码的边信息估计方法 | |
CN100502507C (zh) | 视频数据压缩编码方法 | |
CN103916675A (zh) | 一种基于条带划分的低延迟帧内编码方法 | |
CN103248890A (zh) | 一种用于无线投影的信源数据采集及压缩方法 | |
CN106060567A (zh) | 一种基于分层wz帧的小波域分布式多视点视频编码 | |
CN101964910A (zh) | 基于码率型转码辅助的视频空间分辨率转换方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130814 |
|
WD01 | Invention patent application deemed withdrawn after publication |