CN110007977A - 一种基于反馈丢帧算法改善spice视频播放方法 - Google Patents
一种基于反馈丢帧算法改善spice视频播放方法 Download PDFInfo
- Publication number
- CN110007977A CN110007977A CN201910313275.3A CN201910313275A CN110007977A CN 110007977 A CN110007977 A CN 110007977A CN 201910313275 A CN201910313275 A CN 201910313275A CN 110007977 A CN110007977 A CN 110007977A
- Authority
- CN
- China
- Prior art keywords
- qxl
- spice
- video
- frame losing
- red
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45554—Instruction set architectures of guest OS and hypervisor or native processor differ, e.g. Bochs or VirtualPC on PowerPC MacOS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种基于反馈丢帧算法改善SPICE视频播放方法,包括:SPICE程序通过QXL设备提供VDI接口,从QXL命令树获取图形更新指令,并将其加入到SPICE服务端构建的图形处理流中,同时SPICE服务端也用于视频流的侦测,其中,所述QXL设备是QEMU虚拟机的一个图形处理设备,兼容VGA。本发明与优化后丢帧算法结合,能够提升视频流在网络中传输的性能。本发明将更多的网络带宽分配给当前视频流,能有效降低视频的丢帧率。本发明能有效节约网络带宽。优化后的视频丢帧算法既减轻了网络带宽压力,也能降低视频丢帧率。
Description
技术领域
本发明涉及一种基于反馈丢帧算法改善SPICE视频播放方法,属于高质量视频播放的技术领域。
背景技术
针对SPICE远程桌面视频播放质量问题,本发明提出在原有架构基础上实现一种将视频流占用网络带宽的比例因子与反馈丢帧算法相结合的策略,该方案能够根据不同网络带宽选取不同丢帧算法,有效减轻网络带宽对SPICE桌面视频传输过程中的延迟和抖动问题,同时也可以减少视频流再网络传输过程中的丢帧。提高SPICE客户端上播放视频的流畅度。传统远程桌面传输协议工作在虚拟机中,其不能直接使用服务器硬件资源,其对应的网络传输数据量巨大。
发明内容
针对现有技术的不足,本发明提供一种基于反馈丢帧算法改善SPICE视频播放方法。
技术术语解释:
SPICE协议,SPICE是RedHat公司针对KVM虚拟化产品推出的一种桌面传输协议,用于在服务器与远程计算机上部署虚拟桌面的一种技术。
所述SPICE协议架构分为三部分:设备驱动器:存在于每个虚拟桌面内的组件,包含如QXL驱动器、VirtIO驱动;SPICE设备:存在于KVM虚拟化层的组件,如QXL设备;SPICE客户端:存在于终端设备上的组建,可以是瘦客户机或专用的PC,用于接入虚拟桌面。
本发明的技术方案如下:
一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,包括:
SPICE程序通过QXL设备提供VDI接口,从QXL命令树获取图形更新指令,并将其加入到SPICE服务端构建的图形处理流中,同时SPICE服务端也用于视频流的侦测,其中,所述QXL设备是QEMU虚拟机的一个图形处理设备,兼容VGA。
根据本发明优选的,当应用程序发生图形更新时,操作系统图形引擎会调用QXL设备驱动程序,将操作系统绘图指令转为QXL绘图指令,并放入QXL命令树中,命令树位于QXL设备的内存中,并被直接映射到物理内存区域。
根据本发明优选的,当QEMU虚拟机显示内容发生更新时,QXL驱动将系统绘图命令转换未QXL命令发送至QXL设备;
QEMU虚拟机在监听到QXL设备更新时,则Red调度向Red-Worker发送消息;
QXL设备通过QXL Worker发送同步命令;Red-Worker通过QXL接口获取异步QXL命令;Red-Worker调用QXL/VDI接口读取QXL命令,QXL命令经Red-Worker处理后转换为SPICE协议消息,通过对应的Channel发送到客户端,客户端调用平台相关RedDrawable做图形渲染。
根据本发明优选的,在所述Red-Worker中增加RED_STRAM_CHANNEL_CAPACITY和反馈丢帧算法,其中RED_STRAM_CHAN_NEL_CAPACITY表示当前视频流占用网络带宽的比例。
根据本发明优选的,视频流占用网络带宽比是当前正在传输的视频流占用总的网络带宽的比值,该值变化范围为[0,1]。
当正在传输的视频流没有丢帧,增加客户端帧数达到更好的视频效果,同时可以减少该值,降低带宽。
其中视频丢帧率:
drop_factor=(agent->frames-agent->drops)/agent->frames
因此,当客户端帧数一定的情况下,只有减少客户端丢帧数才能减少视频丢帧率。将视频流占用网络带宽的比例值与视频丢帧率相结合。
根据本发明优选的,当视频丢帧率增加时,动态增加网络带宽比例值。
根据本发明优选的,当前视频丢帧率减小到设定值,降低视频流占用网络带宽的比例值。
本发明的技术优势如下:
SPICE协议本身运行在服务器中可以直接使用服务器硬件资源,SPICE协议能够自动判断和调整图像处理位置,如果用户终端性能足够就尽可能传输图像处理命令而不是显示渲染后的画面,减少网络传输数据量。本发明与优化后丢帧算法结合,能够提升视频流在网络中传输的性能。本发明将更多的网络带宽分配给当前视频流,能有效降低视频的丢帧率。本发明能有效节约网络带宽。优化后的视频丢帧算法既减轻了网络带宽压力,也能降低视频丢帧率。
附图说明
图1是本发明中视频优化后处理框架图。
具体实施方式
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
实施例、
一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,包括:
SPICE程序通过QXL设备提供VDI接口,从QXL命令树获取图形更新指令,并将其加入到SPICE服务端构建的图形处理流中,同时SPICE服务端也用于视频流的侦测,其中,所述QXL设备是QEMU虚拟机的一个图形处理设备,兼容VGA。此方案可以提高远程桌面性能,增强图形处理能力。
当应用程序发生图形更新时,操作系统图形引擎会调用QXL设备驱动程序,将操作系统绘图指令转为QXL绘图指令,并放入QXL命令树中,命令树位于QXL设备的内存中,并被直接映射到物理内存区域。
当QEMU虚拟机显示内容发生更新时,QXL驱动将系统绘图命令转换未QXL命令发送至QXL设备;
QEMU虚拟机在监听到QXL设备更新时,则Red调度向Red-Worker发送消息;
QXL设备通过QXL Worker发送同步命令;Red-Worker通过QXL接口获取异步QXL命令;Red-Worker调用QXL/VDI接口读取QXL命令,QXL命令经Red-Worker处理后转换为SPICE协议消息,通过对应的Channel发送到客户端,客户端调用平台相关RedDrawable做图形渲染。
在所述Red-Worker中增加RED_STRAM_CHANNEL_CAPACITY和反馈丢帧算法,其中RED_STRAM_CHAN_NEL_CAPACITY表示当前视频流占用网络带宽的比例,将它与优化后丢帧算法结合,能够提升视频流在网络中传输的性能。
视频流占用网络带宽比是当前正在传输的视频流占用总的网络带宽的比值,该值变化范围为[0,1];在SPICE视频传输协议中是一个固定值,所以不能跟据网络带宽情况进行带宽的动态分配。
当正在传输的视频流没有丢帧,增加客户端帧数达到更好的视频效果,同时可以减少该值,降低带宽。
其中视频丢帧率:
drop_factor=(agent->frames-agent->drops)/agent->frames
因此,当客户端帧数一定的情况下,只有减少客户端丢帧数才能减少视频丢帧率。将视频流占用网络带宽的比例值与视频丢帧率相结合。
当视频丢帧率增加时,动态增加网络带宽比例值。此方案将更多的网络带宽分配给当前视频流,能有效降低视频的丢帧率。
当前视频丢帧率减小到设定值,降低视频流占用网络带宽的比例值。此方案能有效节约网络带宽。优化后的视频丢帧算法既减轻了网络带宽压力,也能降低视频丢帧率。
Claims (7)
1.一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,包括:
SPICE程序通过QXL设备提供VDI接口,从QXL命令树获取图形更新指令,并将其加入到SPICE服务端构建的图形处理流中,同时SPICE服务端也用于视频流的侦测,其中,所述QXL设备是QEMU虚拟机的一个图形处理设备,兼容VGA。
2.根据权利要求1所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,当应用程序发生图形更新时,操作系统图形引擎会调用QXL设备驱动程序,将操作系统绘图指令转为QXL绘图指令,并放入QXL命令树中,命令树位于QXL设备的内存中,并被直接映射到物理内存区域。
3.根据权利要求1所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,当QEMU虚拟机显示内容发生更新时,QXL驱动将系统绘图命令转换未QXL命令发送至QXL设备;
QEMU虚拟机在监听到QXL设备更新时,则Red调度向Red-Worker发送消息;
QXL设备通过QXL Worker发送同步命令;Red-Worker通过QXL接口获取异步QXL命令;Red-Worker调用QXL/VDI接口读取QXL命令,QXL命令经Red-Worker处理后转换为SPICE协议消息,通过对应的Channel发送到客户端,客户端调用平台相关RedDrawable做图形渲染。
4.根据权利要求3所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,在所述Red-Worker中增加RED_STRAM_CHANNEL_CAPACITY和反馈丢帧算法,其中RED_STRAM_CHAN_NEL_CAPACITY表示当前视频流占用网络带宽的比例。
5.根据权利要求4所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,视频流占用网络带宽比是当前正在传输的视频流占用总的网络带宽的比值,该值变化范围为[0,1]。
6.根据权利要求5所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,当视频丢帧率增加时,动态增加网络带宽比例值。
7.根据权利要求6所述的一种基于反馈丢帧算法改善SPICE视频播放方法,其特征在于,当前视频丢帧率减小到设定值,降低视频流占用网络带宽的比例值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910313275.3A CN110007977A (zh) | 2019-04-18 | 2019-04-18 | 一种基于反馈丢帧算法改善spice视频播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910313275.3A CN110007977A (zh) | 2019-04-18 | 2019-04-18 | 一种基于反馈丢帧算法改善spice视频播放方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110007977A true CN110007977A (zh) | 2019-07-12 |
Family
ID=67172830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910313275.3A Pending CN110007977A (zh) | 2019-04-18 | 2019-04-18 | 一种基于反馈丢帧算法改善spice视频播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007977A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835816A (zh) * | 2021-09-28 | 2021-12-24 | 深信服科技股份有限公司 | 一种虚拟机桌面显示方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262825A (zh) * | 2015-10-29 | 2016-01-20 | 曲阜师范大学 | 基于h.265的spice云桌面传输和展现方法及系统 |
CN108989845A (zh) * | 2018-07-03 | 2018-12-11 | 凯尔博特信息科技(昆山)有限公司 | 一种基于spice协议的视频传输方法 |
-
2019
- 2019-04-18 CN CN201910313275.3A patent/CN110007977A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105262825A (zh) * | 2015-10-29 | 2016-01-20 | 曲阜师范大学 | 基于h.265的spice云桌面传输和展现方法及系统 |
CN108989845A (zh) * | 2018-07-03 | 2018-12-11 | 凯尔博特信息科技(昆山)有限公司 | 一种基于spice协议的视频传输方法 |
Non-Patent Citations (1)
Title |
---|
杨飞等: "基于SPICE协议的视频性能优化与改进", 《计算机技术与发展》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113835816A (zh) * | 2021-09-28 | 2021-12-24 | 深信服科技股份有限公司 | 一种虚拟机桌面显示方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102883135B (zh) | 屏幕共享及控制方法 | |
US8234398B2 (en) | Method and system for low-latency transfer protocol | |
US8601097B2 (en) | Method and system for data communications in cloud computing architecture | |
CN104144351B (zh) | 应用虚拟化平台的视频播放方法和装置 | |
WO2017124860A1 (zh) | 分布式无线多屏虚拟机服务系统 | |
CN105072190A (zh) | 一种实时性桌面云的实现方法及系统 | |
CN104053019A (zh) | 基于虚拟桌面的视频播放、处理方法及装置 | |
US20220193540A1 (en) | Method and system for a cloud native 3d scene game | |
US20080267067A1 (en) | Controlling the flow of data updates between a receiving station and a sending station | |
CN106390449A (zh) | 一种基于图形虚拟化技术的云游戏框架 | |
CN103631634A (zh) | 实现图形处理器虚拟化的方法与装置 | |
CN105577819A (zh) | 一种虚拟化桌面的分享系统、分享方法以及分享装置 | |
CN108989845A (zh) | 一种基于spice协议的视频传输方法 | |
CN111147801A (zh) | 一种视联网终端的视频数据处理方法和装置 | |
CN114567784B (zh) | 一种用于飞腾显卡的vpu视频解码输出方法及系统 | |
US20220255981A1 (en) | Method and Apparatus for Adjusting Attribute of Video Stream | |
CN113082693A (zh) | 渲染方法、云游戏渲染方法、服务端及计算设备 | |
CN102546803B (zh) | 基于能力集的远端桌面通信方法 | |
US9118947B2 (en) | Multi-vision virtualization system and method | |
KR20170107667A (ko) | 원격화면 전송 방법 및 원격화면 전송 시스템 | |
CN112769788B (zh) | 计费业务数据处理方法、装置、电子设备及存储介质 | |
CN110007977A (zh) | 一种基于反馈丢帧算法改善spice视频播放方法 | |
CN106331764A (zh) | 一种全景视频分享方法及其分享装置 | |
CN110659080B (zh) | 页面显示方法、装置、电子设备及存储介质 | |
WO2013174337A2 (zh) | 字幕提取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190712 |