Miracast/鼠标显示的那些事

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wirelessdisplay/article/details/55004008

· Miracast:

     关于Miracast的基础知识,大家可以baidu,google自行搜索,作为入门进行学习。如果进入开发阶段,则需要学习三篇白皮书:Wi-Fi_Display_Specification_v1.1、WiFi_P2P_Technical_Specification_v1.2及HDCP Interface Independent Adaptation Specification Rev2_2_FINAL。

     我们的产品需求是在SOC芯片上(Linux)实现同时支持多路的Miracast Sink功能。

     整个Miracast的过程包括无线链路的建立、呼叫建立、媒体接受、解码、呈现等。本篇只针对Miracasr相关的音视频处理做一些介绍。

     由于在一些无线投屏应用场景中,特别是对延时很敏感的场景下,用户对鼠标移动,操作的流畅性特别敏感。所以本篇专门针对鼠标显示做一些介绍。比如办公的场景是比较典型的场景,用户针对鼠标可能有以下不好的体验:

    1 感觉鼠标移动不流畅,特别是帧率比较低时,能比较明显感觉到鼠标不够流畅

    2 鼠标移动的忽快忽慢,不平滑,有时数据抖动时会出现

    3 当画面延时较大时,大屏是显示的鼠标移动和操作有明显的延时感,容易产生误操作。

     在WIDI协议中,针对此类问题

· WIDI中针对鼠标显示的扩展协议:

     那么针对上述现象,WIDI协议有Wi-Fi Display Protocol: Hardware Cursor Extension来改善该问题。各位同学请参考https://msdn.microsoft.com/zh-cn/library/mt242291,仔细阅读spec。

     

     在此我不详细深入说这个spec了,其实这个协议是很简单的。

     其基本的思想总结来说就是

     1 将鼠标和屏幕图像分为两个通道进行传输

     2 相比屏幕图像数据通道,鼠标通道可以有更高的帧率,比如鼠标帧率是100(10ms更新一次鼠标位置,如果鼠标样式变化还需要更新新的鼠标图像,鼠标图像不变则只需要更新鼠标位置即可)。

     由于鼠标的显示频率大大超过屏幕图像,这样用户感觉到鼠标操作的流畅性将大大得到提高。

    

    那么对于WIDI的sink端,需要支持这个协议,在播放器端需要针对该协议进行一些处理。鼠标图像的显示建议和屏幕图像的显示放到不同的图形层去处理,这样可以避免图像的叠加操作。通用的Android,以及诸如海思等方案中都有图层的支持。

 

· 其它

    SINK端支持WIDI中鼠标扩展协议后,屏幕图像的显示与鼠标之间的同步会是一个新的问题。所以要求屏幕图像的延迟不能太大,这也是特别需要注意的一个地方,否则两者不同步也会带来很多不好的体验。

    另外用户在实现私有的投屏协议时亦可参照该思路来提高鼠标的显示体验,我司的私有投屏协议就实现了这一点。在办公等应用场景,能显著提高用户的操作体验。

     技术交流有兴趣请加:

     音视频技术交流群:308601278

     无线投屏技术交流群:582349005

     

     我司有成熟的无线投屏盒子销售,也可做音视频及无线投屏相关产品和技术的定制化开发

     可访问我司官网了解详细情况 必捷网络无线投屏SDK

     商务合作可发邮件[email protected]

猜你喜欢

转载自blog.csdn.net/wirelessdisplay/article/details/55004008
今日推荐