CN116405733B - 一种数据传输方法及电子设备 - Google Patents

一种数据传输方法及电子设备 Download PDF

Info

Publication number
CN116405733B
CN116405733B CN202310677352.XA CN202310677352A CN116405733B CN 116405733 B CN116405733 B CN 116405733B CN 202310677352 A CN202310677352 A CN 202310677352A CN 116405733 B CN116405733 B CN 116405733B
Authority
CN
China
Prior art keywords
image
urb
data
client
packet
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
CN202310677352.XA
Other languages
English (en)
Other versions
CN116405733A (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.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies 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 New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN202310677352.XA priority Critical patent/CN116405733B/zh
Publication of CN116405733A publication Critical patent/CN116405733A/zh
Application granted granted Critical
Publication of CN116405733B publication Critical patent/CN116405733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例提供了一种数据传输方法及电子设备,涉及数据处理技术领域,通过USB接口获取多个URB包;筛选包含物理摄像头采集的图像数据的多个客户端图像URB包与包含物理摄像头控制命令的多个控制URB包;解析多个控制URB包,得到编解码参数;向云桌面虚拟机发送编解码参数;将多个客户端图像URB包中包含的图像数据合成一个以上完整图像帧;基于编解码参数与预设图像压缩算法将一个以上完整图像帧压缩为一个以上压缩图像帧;向云桌面虚拟机发送一个以上压缩图像帧;以使得云桌面虚拟机基于编解码参数将压缩图像帧解压缩为上述完整图像帧。应用本发明实施例提供的方案可以降低客户端向云桌面虚拟机传输图像数据所占用的带宽。

Description

一种数据传输方法及电子设备
技术领域
本发明实施例涉及数据处理技术领域,特别是涉及一种数据传输方法及电子设备。
背景技术
随着桌面虚拟化技术的发展,基于USB(Universal Serial Bus,通用串行总线)接口的摄像头设备在办公、娱乐、教育等云桌面场景下被广泛使用,而通过网络在云桌面虚拟机中使用客户端上的USB设备的技术手段则被称为USB重定向。相关技术的USB重定向方案是在客户端和云桌面虚拟机中各自安装一个USB重定向服务程序,客户端上的USB重定向通过USB驱动和物理摄像头进行数据交互,对应于云桌面虚拟机的USB重定向通过虚拟USB驱动创建、管理和删除虚拟摄像头,并且和虚拟摄像头进行数据交互。用户可以操作云桌面虚拟机控制客户端的物理摄像头进行图像数据的采集,此过程中客户端需要将图像数据传输至云桌面虚拟机。
相关技术的USB重定向方案在客户端和云桌面虚拟机各自安装有一个USB重定向服务程序,如图1所示,为相关技术中一种USB重定向方案的流程示意图。从图1中可以看出,客户端与云桌面虚拟机通过网络连接,物理摄像头经USB驱动与客户端连接,相对应地,在云桌面虚拟机设置有虚拟摄像头与虚拟USB驱动。在客户端向云桌面虚拟机传输URB(USBRequest Block,通用串行总线请求块)包的过程中,客户端处的URB包经USB驱动传输至客户端的URB处理模块,该URB处理模块对URB包进行封装。在客户端USB重定向服务的URB处理模块与网络传输模块间存在数据压缩模块,该数据压缩模块会对经URB处理模块封装后的URB包进行压缩,再将压缩后的URB包发送至客户端USB重定向服务中的网络传输模块,该网络传输模块以网络报文的形式将压缩后的URB包发送至云桌面虚拟机的USB重定向服务中的网络传输模块,该网络传输模块将接收的压缩后的URB包发送至云桌面虚拟机的数据解压模块,该数据解压模块对压缩后的URB包进行解压得到解压后的URB包,再将解压后的URB包发送至云桌面虚拟机的URB处理模块,将处理后的URB包发送至虚拟USB驱动,之后云桌面虚拟机的操作系统会将URB包中的图像数据交给摄像头应用程序进行渲染。
然而,在客户端处对URB包进行压缩时,一方面并未区分URB包的类型,而是对包含图像数据的URB包、包含控制命令的URB包或包含其他数据的URB包进行了统一的压缩;另一方面,对于包含图像数据的URB包,图像数据在URB包中是分为各个数据片段分散存储的,同一帧图像的图像数据未必包含于同一URB包中。由于以上两方面的因素,在客户端处只能采用通用数据压缩方式对URB包进行压缩,这样处理的结果是对URB包的压缩率不高,客户端向云桌面虚拟机发送的数据仍然会占用较大的带宽。
发明内容
本发明实施例的目的在于提供一种数据传输方法及电子设备,以降低客户端向云桌面虚拟机传输图像数据所占用的带宽。
第一方面,本发明实施例提供了一种数据传输方法,方法包括:
通过通用串行总线USB接口获取多个通用串行总线请求块URB包;
从多个URB包中筛选包含物理摄像头采集的图像数据的多个客户端图像URB包与包含物理摄像头控制命令的多个控制URB包;
解析多个控制URB包,得到编解码参数;
向云桌面虚拟机发送编解码参数;
将多个客户端图像URB包中包含的图像数据合成一个以上完整图像帧;
基于编解码参数以及预设图像压缩算法将一个以上完整图像帧压缩为一个以上压缩图像帧;
向云桌面虚拟机发送一个以上的压缩图像帧;以使得云桌面虚拟机基于编解码参数将压缩图像帧解压缩为完整图像帧。
第二方面,本发明实施例提供了一种数据传输方法,方法包括:
接收压缩图像帧编解码参数;
接收多个压缩图像帧;
构建多个云桌面图像URB包;
基于编解码参数以及预设的图像解压缩算法将每个压缩图像帧解压缩为一个解压图像帧;
将每个解压图像帧填充到一个或多个云桌面图像URB包;
将每个填充完整的云桌面图像URB包发送至虚拟USB驱动。
第三方面,本发明实施例提供了一种数据传输电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面的方法步骤。
第四方面,本发明实施例提供了一种数据传输电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第二方面的方法。
本发明有益效果在于,本发明降低USB重定向数据传输占用的带宽,无需对压缩图像帧以外的其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量以及减少了占用的CPU资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为相关技术中一种USB重定向方案的流程示意图;
图2为本发明实施例提供的第一种数据传输方法的流程示意图;
图3为本发明实施例提供的第二种数据传输方法的流程示意图;
图4为本发明实施例提供的第三种数据传输方法的流程示意图;
图5为本发明实施例提供的一种筛选URB包的方法的流程示意图;
图6A为本发明实施例提供的第四种数据传输方法的流程示意图;
图6B为本发明实施例提供的第五种数据传输方法的流程示意图;
图7为本发明实施例提供的第一种客户端图像URB包的结构示意图;
图8为本发明实施例提供的第二种客户端图像URB包的结构示意图;
图9为本发明实施例提供的第六种数据传输方法的流程示意图;
图10为本发明实施例提供的第三种客户端图像URB包的结构示意图;
图11为本发明实施例提供的一种将图像数据合成完整图像帧的方法的流程示意图;
图12为本发明实施例提供的第七种数据传输方法的流程示意图;
图13为本发明实施例提供的一种将完整图像帧的图像数据填充至云桌面图像URB包的方法的流程示意图;
图14为本发明实施例提供的一种数据传输电子设备的结构示意图;
图15为本发明实施例提供的另一种数据传输电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,为本发明实施例提供的第一种数据传输方法的流程示意图。
在图2中,客户端201包含URB处理模块2011、图像合成模块2012、图像压缩模块2013与网络传输模块2014。物理摄像头采集的图像数据被发送至USB驱动,USB驱动会将包含各类数据的不同种类的URB包发送至URB处理模块2011。
URB处理模块2011会对接收的URB包进行分类筛选,筛选出包含物理摄像头采集的图像数据的客户端图像URB包、包含摄像头控制命令的控制URB包,以及包含其他数据的其他数据URB包,上述其他数据URB包中可以包含音频数据、用于控制麦克风的麦克风控制命令等其他数据。
对于包含控制命令的控制URB包,URB处理模块2011解析出其中包含的与图像压缩、解压有关的编解码参数,将这些编解码参数发送至网络传输模块2014,网络传输模块2014再通过网络将这些编解码参数发送至云桌面虚拟机202的网络传输模块2021。
对于包含其他数据的其他数据URB包,URB处理模块2011将其发送至网络传输模块2014,网络传输模块2014通过网络将接收的其他数据URB包发送至网络传输模块2021。
对于包含物理摄像头采集的图像数据的客户端图像URB包,URB处理模块2011将其发送至图像合成模块2012,图像合成模块2012将接收的客户端图像URB包中的图像数据合成完整图像帧,并将完整图像帧发送至图像压缩模块2013,图像压缩模块2013基于编解码参数并使用预设图像压缩算法将接收的完整图像帧压缩为压缩图像帧,并将得到的压缩图像帧发送至网络传输模块2014,网络传输模块2014通过网络将接收的压缩图像帧发送至云桌面虚拟机202的网络传输模块2021。
云桌面虚拟机202包含网络传输模块2021、图像解压模块2022、图像分解模块2023与URB处理模块2024。
在云桌面虚拟机202处,网络传输模块2021接收到客户端201发送的与图像压缩、解压有关的编解码参数、其他数据URB包以及压缩图像帧后,会将编解码参数及其他数据URB包直接发送至URB处理模块2024,将压缩图像帧发送至图像解压模块2022。
与图像压缩、解压有关的编解码参数在URB处理模块2024中会生成控制URB包。图像解压模块2022使用与预设图像压缩算法对应的解压方式将接收的压缩图像帧解压为完整图像帧,再将该完整图像帧发送至图像分解模块2023。
图像分解模块2023将接收的完整图像帧中的图像数据填充至云桌面图像URB包,再将云桌面图像URB包发送至URB处理模块2024,该URB处理模块2024将云桌面图像URB包、控制URB包及其他数据URB包发送至虚拟USB驱动,最终在虚拟摄像头中会产生对应于云桌面图像URB包中图像数据的图像画面。
由以上可见,在本发明实施例提供的方案中,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
参见图3,为本发明实施例提供的第二种数据传输方法的流程示意图,该方法应用于客户端,上述方法包括以下步骤S301至步骤S307。
步骤S301:通过USB接口获取多个URB包。
在客户端上的USB设备与客户端进行数据传输的过程中,其相互传输的数据以URB包为基本载体,即传输的数据信息包含在URB包中。客户端通过USB接口获取客户端上的USB设备发送的多个URB包,也就是获得了客户端上的USB设备发送的数据信息。
步骤S302:从上述多个URB包中筛选包含物理摄像头采集的图像数据的多个客户端图像URB包与包含上述物理摄像头控制命令的多个控制URB包。
客户端通过USB接口连接的USB设备可以是如键盘、鼠标、扫描仪、物理摄像头等多种设备中的一种或几种,只要是客户端上的USB设备,均会向客户端发送URB包以进行数据信息的传输。因此,客户端获取的URB包可能是包含物理摄像头采集的图像数据的客户端图像URB包,也可能是不包含图像数据的URB包,具体的,可以将客户端接收的URB包分为三类:包含上述物理摄像头采集的图像数据的客户端图像URB包、包含摄像头控制命令的控制URB包以及包含其他数据的URB包。其中,上述摄像头控制命令指和物理摄像头有关的控制命令,如查询物理摄像头设备描述符的命令、设置物理摄像头图像格式的命令等,基于包含摄像头控制命令的控制URB包可以获取到物理摄像头所支持的图像格式、分辨率列表,以及开始采集图像与停止采集图像的时间;上述其他数据则指与图像传输、物理摄像头设备控制无关的数据,可以是除物理摄像头之外的其他USB设备采集的数据,例如扫描仪采集的数据、用户通过键盘输入的数据等。
本发明一个实施例中,客户端在接收到URB包后,读取并判断接收到的URB包中的数据的类型,若判断出URB包中的数据为上述物理摄像头采集的图像数据,则确定该URB包为上述图像URB包;若判断出URB包中的数据为与上述物理摄像头有关的控制命令,则确定该URB包为上述控制URB包。
步骤S303:解析上述多个控制URB包,得到编解码参数。
客户端对筛选出的控制URB包进行解析,得到与上述图像数据的压缩及解压有关的编解码参数。
步骤S304:向云桌面虚拟机发送上述编解码参数。
具体的,在得到上述编解码参数后,客户端将上述编解码参数放进URB包中,该URB包中只包含上述编解码参数,将该URB包发送给云桌面虚拟机。
步骤S305:将上述多个客户端图像URB包中包含的图像数据合成一个以上完整图像帧。
在一个客户端图像URB包中,包含URB头与数据负载段,其中,URB头中包含该客户端图像URB包中数据负载段总共的大小与数据负载段包含的数据片段数目的信息,数据负载段则由其包含的若干连续数据片段组成,每一数据片段除包含对应的片段头外,还包含了图像数据,每一数据片段中包含的图像数据为物理摄像头采集的一帧图像中的一部分数据。也就是说,对于上述物理摄像头采集的每一帧图像,该帧图像的图像数据是存储在客户端图像URB包的各数据片段中的,将上述客户端图像URB包中包含的图像数据合成完整图像帧,便是将存储在上述客户端图像URB包的各数据片段中的图像数据提取出来,合成一帧完整图像。按照以上描述的方式处理获取的客户端图像URB包,便可以基于客户端图像URB包中包含的图像数据得到若干帧完整图像。另外,上述完整图像帧可以是视频里的图像帧,也可以是非视频的图像帧。
具体的,数据片段的片段头记录有表示该数据片段是否是完整图像帧的起始片段的标识,从一个起始片段起到下一个起始片段前的数据片段止,其中包含的各个数据片段中包含的图像数据属于一个图像帧。
本发明的一个实施例中,可以按照客户端图像URB包中数据片段的顺序依次遍历各个数据片段,确定其中包含的起始片段,将所确定的两个起始片段之间的数据片段中包含的图像数据合并为一个图像帧。
步骤S306:基于上述编解码参数以及预设图像压缩算法将上述一个以上完整图像帧压缩为一个以上压缩图像帧。
由于得到的完整图像帧为一帧一帧完整的图像,在这种情况下,便可以基于上述编解码参数,采用预设图像压缩算法对上述完整图像帧进行压缩,得到压缩图像帧。由于经过了专门针对图像的预设图像压缩算法压缩,与上述完整图像帧相比,上述压缩图像帧的数据体积得到了大幅度减小。
本发明一个实施例中,上述预设图像压缩算法可以为MJPG(Motion JointPhotographic Experts Group,运动静止图像压缩技术)、H264压缩技术或其他任意针对图像的压缩方式。
步骤S307:向云桌面虚拟机发送上述一个以上的压缩图像帧,以使得上述云桌面虚拟机基于上述编解码参数将上述压缩图像帧解压缩为上述完整图像帧。
客户端通过网络将上述压缩图像帧发送至云桌面虚拟机,云桌面虚拟机在接收到上述压缩图像帧后,基于上述编解码参数,采用与上述预设图像压缩算法相对应的解压方式对上述压缩图像帧进行解压,得到解压图像帧,即上述完整图像帧,并将得到的解压图像帧填充至云桌面图像URB包中,在将包含有解压图像帧的云桌面图像URB包发送至虚拟USB驱动后,云桌面虚拟机的操作系统可以将云桌面图像URB包中的图像数据提交给摄像头应用程序进行渲染,进一步对渲染后的图像进行处理。
本发明一个实施例中,上述物理摄像头采集的是640*480分辨率、YUY2格式的图像数据,采用预设图像压缩算法对该图像数据中的每一完整图像帧进行压缩后,传输该图像数据所占用的带宽为1Mbps(megabits per second,兆比特每秒),而在未采用针对图像的压缩技术压缩该图像数据的情况下,传输该图像数据所占用的带宽为140Mbps。因此,采用本发明实施例提供的方案传输物理摄像头采集的图像数据减少了99.3%的带宽占用,可有效消除传输的图像数据出现画面撕裂、卡顿等现象。
由以上可见,在本发明实施例提供的方案中,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
对上述物理摄像头采集的图像数据采用预设图像压缩算法进行压缩的前提是获得完整图像帧与编解码参数,故客户端需要从接收的USB设备发送的URB包中筛选出客户端图像URB包与控制URB包。为此,本发明实施例提供了图4所示的实施例,以表明客户端如何筛选出客户端图像URB包与控制URB包。
参见图4,为本发明实施例提供的第三种数据传输方法的流程示意图,与图3所示的实施例相比,上述步骤S302可以由以下步骤S302A至步骤S302D实现。
步骤S302A:识别上述USB接口连接的设备为物理摄像头。
如步骤S302中描述的三类URB包,只有包含其他数据的URB包是与物理摄像头无关的URB包,因而可以首先通过判断上述USB接口连接的设备是否为物理摄像头,来确定客户端接收的URB包是否是与物理摄像头有关的URB包。具体的,可以根据USB协议规范,结合客户端的当前USB设备的设备类和接口设备类,判断上述USB接口连接的设备是否为物理摄像头。若判断出上述USB接口连接的设备不是物理摄像头,则认为客户端接收的URB包为上述包含其他数据的URB包,对于包含其他数据的URB包,客户端不对其进行其他处理而是直接将其发送至云桌面虚拟机。
若上述USB接口连接的设备不是物理摄像头,则确定多个URB包为其他数据URB包。
步骤S302B:判断上述多个URB包的每个URB包的传输类型。
若判断出上述USB接口连接的设备是物理摄像头,则认为客户端接收的URB包为上述客户端图像URB包或包含摄像头控制命令的控制URB包。对于上述客户端图像URB包和包含摄像头控制命令的控制URB包,两者的传输类型是不同的,具体的,上述客户端图像URB包的传输类型为同步传输类型,上述包含摄像头控制命令的控制URB包的传输类型为控制传输类型,故通过判断URB包的传输类型,可以对上述客户端图像URB包与包含摄像头控制命令的控制URB包进行区分。具体的,可以通过解析URB头的信息来判断URB包的传输类型。
若上述多个URB包的传输类型是同步传输类型,则执行步骤S302C,若上述多个URB包的传输类型是控制传输类型,则执行步骤S302D。
步骤S302C:确定该URB包为客户端图像URB包。
由步骤S302B中的描述可知,在判断出URB包的传输类型是同步传输类型的情况下,便可以确定该URB包为上述客户端图像URB包。
步骤S302D:确定该URB包为控制URB包。
若判断出URB包的传输类型是控制传输类型,则表明URB包为上述包含摄像头控制命令的控制URB包,对于上述包含摄像头控制命令的控制URB包,客户端会从该控制URB包中解析出与物理摄像头采集的图像的压缩、解压有关的编解码参数。
参见图5,为本发明实施例提供的一种筛选URB包的方法的流程示意图,该方法应用于客户端,上述方法包括以下步骤S501至步骤S508。
步骤S501:接收URB包。
步骤S502:判断是否为物理摄像头。
步骤S503:解析URB头信息。
步骤S504:判断是否为同步传输类型。
步骤S505:判断是否为控制传输类型。
步骤S506:确认为客户端图像URB包。
步骤S507:确认为包含摄像头控制命令的控制URB包。
步骤S508:确认为包含其他数据的URB包。
具体的,本发明实施例与图4描述的实施例内容相似,在此不再赘述。
由以上可见,在本发明实施例提供的方案中,首先通过USB设备的设备类和接口设备类,判断USB接口连接的设备是否为物理摄像头,若判断出不是物理摄像头,则确定URB包为其他数据URB包;若判断出是物理摄像头,则进一步判断URB包的传输类型,在判断出URB包的传输类型是同步传输类型的情况下,则确定URB包为客户端图像URB包;在判断出URB包的传输类型是控制传输类型的情况下,则确定URB包为控制URB包。
在对上述物理摄像头采集的图像数据进行压缩时,若图像数据包含在URB包中,则无法使用上述预设图像压缩算法对图像数据进行压缩,因而必须先从URB包中提取出图像数据,再将提取出的图像数据合成完整图像帧,这样便能够对完整图像帧采用上述预设图像压缩算法进行压缩,获得较高的压缩率。本发明实施例提供了图6A、图6B及图9所示的实施例,以示出如何将上述图像URB包中包含的图像数据合成完整图像帧。
参见图6A,为本发明实施例提供的第四种数据传输方法的流程示意图,与图3所示的实施例相比,上述步骤S305可以由以下步骤S305A至步骤S305C实现。
步骤S305A:基于当前处理的客户端图像URB包的URB头确定数据负载段的数据片段的数量。
具体的,客户端图像URB包的URB头中包含有该客户端图像URB包中含有的数据片段数量的信息。
步骤S305B:当上述当前处理的客户端图像URB包的首个数据片段的具有起始片段头标识,确定已缓存的所有数据片段属于上一帧图像。
在识别出当前处理的客户端图像URB包的首个数据片段为一帧图像的起始片段的情况下,说明上一帧图像的所有数据片段均已被缓存。
步骤S305C:将上述已缓存的所有数据片段合成上述上一帧图像的完整图像帧。
按照USB协议规范,上述客户端图像URB包含有URB头与数据负载段,其中,URB头指示了客户端图像URB包中含有的数据负载段的大小、数据负载段含有的数据片段数目;数据负载段是由若干连续的数据片段组成的,若干数据片段的排列顺序是按相关技术标准确定的。对于每一数据片段,该数据片段包含片段头与图像数据,其中,此处的图像数据即属于上述物理摄像头采集的图像数据,也就是上述物理摄像头采集的图像数据是存储在图像URB包中的各数据片段中的;上述片段头中含有的信息则标识了其对应的数据片段是否为一个完整图像帧的起始片段。因此,客户端通过读取数据片段的片段头信息,依次识别上述客户端图像URB包中的各个数据片段,便可识别出该数据片段是否是一个完整图像帧的起始片段。
具体的,由于上述客户端图像URB包中包含一个完整图像帧的所有图像数据,故在该客户端图像URB包中,包含有一个完整图像帧的起始片段,在这种情况下,该客户端图像URB包中可能还包含有下一完整图像帧的起始片段,也可能不包含下一完整图像帧的起始片段,也就是该客户端图像URB包中的最后一个数据片段便是上述一个完整图像帧的最后一个数据片段。若该客户端图像URB包含有下一完整图像帧的起始片段,则将从上述完整图像帧的起始片段起,至下一完整图像帧的起始片段间的所有数据片段进行缓存;若该客户端图像URB不包含下一完整图像帧的起始片段,则将从上述完整图像帧的起始片段起,至上述客户端图像URB包中的最后一个数据片段止的所有数据片段进行缓存。
具体的,已缓存的数据片段为一个完整图像帧中的所有图像数据,将已缓存的数据片段合成便可得到完整图像帧。
参见图6B,为本发明实施例提供的第五种数据传输方法的流程示意图,与图6A所示的实施例相比,上述方法还包括以下步骤S308至步骤S3010。
步骤S308:缓存具有起始片段头标识的上述首个数据片段。
步骤S309:逐个缓存上述首个数据片段的之后的多个数据段。
步骤S3010:当上述当前处理的客户端图像URB包的下一个待缓存数据片段具有上述起始片段头且上述当前处理的客户端图像URB包的已缓存的数据片段小于上述数量;将上述当前处理的客户端图像URB的已缓存的数据片段合成新的一帧图像的完整图像帧。
在上述当前处理的客户端图像URB包的下一个待缓存数据片段具有上述起始片段头且上述当前处理的客户端图像URB包的已缓存的数据片段小于上述数量的情况下,表明当前缓存中缓存有一个完整图像帧的所有数据,所以可将当前处理的客户端图像URB的已缓存的数据片段合成新的一帧图像的完整图像帧。
本发明一个实施例中,如图7所示,为第一种客户端图像URB包的结构示意图,在图7中,客户端图像URB1包含图像帧1的所有图像数据。客户端从客户端图像URB1中的第1个数据片段开始进行数据片段的识别,在客户端图像URB1中,客户端对第1个数据片段进行识别,识别到第1个数据片段的片段头为图像帧1起始片段头,表明第1个数据片段为图像帧1的起始片段,客户端将第1个数据片段缓存;之后,客户端对第2个数据片段进行识别,识别到第2个数据片段的片段头不是起始片段头,表明第2个数据片段属于图像帧1,客户端将第2个数据片段缓存在第1个数据片段后;之后,客户端对第3个数据片段进行识别,识别到第3个数据片段的片段头不是起始片段头,表明第3个数据片段属于图像帧1,客户端将第3个数据片段缓存在第2个数据片段后,依次类推,直至客户端识别到图像帧2起始片段头,表明图像帧1的所有数据片段已被识别并缓存,在这种情况下将缓存的数据片段进行合成便可得到图像帧1。
本发明另一个实施例中,如图8所示,为第二种客户端图像URB包的结构示意图,在图8中,图像帧1的所有图像数据填满客户端图像URB2,客户端从客户端图像URB2中的第1个数据片段开始进行数据片段的识别,在客户端图像URB2中,客户端对第1个数据片段进行识别,识别到第1个数据片段的片段头为图像帧1起始片段头,表明第1个数据片段为图像帧1的起始片段,客户端将第1个数据片段缓存;之后,客户端对第2个数据片段进行识别,识别到第2个数据片段的片段头不是起始片段头,表明第2个数据片段属于图像帧1,客户端将第2个数据片段缓存在第1个数据片段后;之后,客户端对第3个数据片段进行识别,识别到第3个数据片段的片段头不是起始片段头,表明第3个数据片段属于图像帧1,客户端将第3个数据片段缓存在第2个数据片段后,依次类推,直至客户端对客户端图像URB2的最后一个数据片段进行识别,识别到最后一个数据片段的片段头不是起始片段头,表明最后一个数据片段属于图像帧1,客户端将最后一个数据片段缓存在已缓存的数据片段后。之后,客户端对下一个客户端图像URB包的第1个数据片段进行识别,识别到该数据片段的片段头为起始片段头,表明图像帧1的所有数据片段已被识别并缓存,在这种情况下将缓存的数据片段进行合成便可得到图像帧1。
由以上可见,在本发明实施例提供的方案中,由于一个客户端图像URB包中包含一个完整图像帧的所有图像数据,则根据客户端图像URB包中每一数据片段的片段头对数据片段进行识别,根据片段头可以确定数据片段中包含的起始片段,从一个图像帧的起始片段起,将属于同一完整图像帧的数据片段依次存储至缓存空间中,直至识别到下一完整图像帧的起始片段或已缓存客户端图像URB包中的最后一个数据片段,,将当前缓存空间中存储的数据片段进行合并,能够合成完整图像帧。
参见图9,为本发明实施例提供的第六种数据传输方法的流程示意图,与图6A所示的实施例相比,上述方法还包括以下步骤S3011至步骤S3013。
步骤S3011:缓存具有起始片段头标识的上述首个数据片段。
步骤S3012:逐个缓存上述首个数据片段的之后的多个数据段。
步骤S3013:当上述当前处理的客户端图像URB包的下一个待缓存数据片段具有上述起始片段头且上述当前处理的客户端图像URB包的已缓存的数据片段等于上述数量;等待下一个客户端图像URB包。
在上述当前处理的客户端图像URB包的下一个待缓存数据片段具有上述起始片段头且上述当前处理的客户端图像URB包的已缓存的数据片段等于上述数量的情况下,表明当前处理的客户端图像URB包中的所有数据片段已被处理完,等待下一个客户端图像URB包以处理其中的数据片段。
本发明一个实施例中,如图10所示,为第三种客户端图像URB包的结构示意图,在图10中,客户端图像URB3与客户端图像URB4为连续的客户端图像URB包,客户端图像URB3包含图像帧1的部分图像数据,客户端图像URB4包含图像帧1的剩余部分图像数据,客户端图像URB4还包含有图像帧2的部分图像数据,图像帧1的所有图像数据包含于客户端图像URB3与客户端图像URB4中。客户端从客户端图像URB3中的第1个数据片段开始进行数据片段的识别,在客户端图像URB3中,客户端对第1个数据片段进行识别,识别到第1个数据片段的片段头为图像帧1起始片段头,表明第1个数据片段为图像帧1的起始片段,客户端将第1个数据片段缓存;之后,客户端对第2个数据片段进行识别,识别到第2个数据片段的片段头不是起始片段头,表明第2个数据片段属于图像帧1,客户端将第2个数据片段缓存在第1个数据片段后;之后,客户端对第3个数据片段进行识别,识别到第3个数据片段的片段头不是起始片段头,表明第3个数据片段属于图像帧1,客户端将第3个数据片段缓存在第2个数据片段后,依次类推,客户端对客户端图像URB3的各个数据片段识别完后,客户端对客户端图像URB4的第1个数据片段进行识别,直至客户端识别到图像帧2起始片段头,表明图像帧1的所有数据片段已被识别并缓存,在这种情况下将缓存的数据片段进行合成便可得到图像帧1。
具体的,一个完整图像帧的所有图像数据包含于2个连续客户端图像URB包中的情况只是一种示例,一个完整图像帧的所有图像数据还可能包含于3个、4个或5个等等连续客户端图像URB包中。
由以上可见,在本发明实施例提供的方案中,由于一个完整图像帧的所有图像数据包含于多个连续客户端图像URB包中,则将从完整图像帧的起始片段开始,至下一完整图像帧起始片段间的所有数据片段进行缓存,将缓存的数据片段合成,便可得到完整图像帧。
参见图11,为本发明实施例提供的一种将图像数据合成完整图像帧的方法的流程示意图,该方法应用于客户端,上述方法包括以下步骤S1101至步骤S1105。
步骤S1101:解析片段头。
步骤S1102:判断当前数据片段是否为完整图像帧的起始片段。
若当前数据片段是完整图像帧的起始片段,执行步骤S1104;若当前数据片段不是完整图像帧的起始片段,执行步骤S1103。
步骤S1103:将该数据片段拼接在当前图像缓存数据后。
步骤S1104:将缓存的数据片段合成完整图像帧并发送。
步骤S1105:缓存当前数据片段作为新的当前图像缓存数据。
在执行完步骤S1103或步骤S1105后,会等待下一个客户端图像URB包,在等待到下一个客户端图像URB包、并收入客户端图像URB包的情况下,继续执行图11中的各步骤,以此类推。
具体的,本发明实施例与前文描述的实施例内容相似,在此不再赘述。
与前述应用于客户端的数据传输方法相对应,本发明实施例还提供了一种应用于云桌面虚拟机的数据传输方法。
参见图12,为本发明实施例提供的第七种数据传输方法的流程示意图,该方法应用于云桌面虚拟机,上述方法包括以下步骤S1201至步骤S1206。
步骤S1201:接收压缩图像帧编解码参数。
具体的,云桌面虚拟机接收客户端发送的压缩图像帧编解码参数,用于之后对压缩图像帧进行解压缩。
步骤S1202:接收多个压缩图像帧。
具体的,客户端会将得到的压缩图像帧通过网络发送至云桌面虚拟机,云桌面虚拟机接收上述压缩图像帧。
步骤S1203:构建多个云桌面图像URB包。
云桌面虚拟机会预先构建多个云桌面图像URB包存储于缓存中,等待填充图像数据。
步骤S1204:基于上述编解码参数以及预设的图像解压缩算法将每个上述压缩图像帧解压缩为一个解压图像帧。
对于接收到的上述压缩图像帧,云桌面虚拟机需要对上述压缩图像帧进行解压缩,才能够获取上述物理摄像头采集的图像数据并进行后续处理。本发明一个实施例中,上述预设图像压缩算法为MJPG压缩技术,则上述图像解压缩算法为与MJPG压缩技术对应的解压技术;上述预设图像压缩算法为H264压缩技术,则上述图像解压缩算法为与H264压缩技术对应的解压技术。
步骤S1205:将每个上述解压图像帧填充到一个或多个云桌面图像URB包。
在对上述压缩图像帧进行解压缩后,得到的解压图像帧便是完整图像帧。由于虚拟USB驱动无法直接完整图像帧,因此,云桌面虚拟机需将完整图像帧填充至一个或多个的云桌面图像URB包中,再按填充顺序将云桌面图像URB包发送至虚拟USB驱动,以进行后续处理。
具体的,向云桌面图像URB包中填充上述解压图像帧,便是将解压后获得的每一帧图像数据按顺序分割成一小块一小块的图像片段,再依次填充至数据负载段中。对于填充的一帧图像的第一个小块的图像片段,在该图像片段所在的数据片段对应的片段头中,会进行图像帧起始片段头的标注,以表明该数据片段为一帧图像数据的开始。
步骤S1206:将每个填充完整的云桌面图像URB包发送至虚拟USB驱动。
在将上述解压图像帧填充至上述云桌面图像URB包中后,将填充完整的、包含有解压图像帧数据的云桌面图像URB包发送至虚拟USB驱动,之后云桌面虚拟机的操作系统会将云桌面图像URB包中的图像数据提交给摄像头应用程序进行渲染,最终显示出上述物理摄像头采集的图像数据对应的图像画面。
由以上可见,在本发明实施例提供的方案中,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
在对压缩图像帧进行解压缩后,得到的解压图像帧为完整图像帧,即一帧一帧完整的图像。由于虚拟USB驱动无法直接处理完整图像帧,因此需要将完整图像帧中的图像数据填充至云桌面图像URB包中,再将包含有图像数据的云桌面图像URB包发送至虚拟USB驱动进行处理。本发明一个实施例中,上述步骤S1205可以通过以下步骤A至步骤E实现。
步骤A:将当前待填充的解压图像帧分割为多个图像片段。
具体的,上述多个图像片段中的每一个图像片段可填充至云桌面图像URB包的一个数据片段中。
步骤B:确定未缓存部分填充的云桌面URB包。
具体的,缓存部分填充指的是云桌面URB包中已经填充了部分图像片段,则未缓存部分填充的云桌面URB包指的是未填充有图像片段的URB包,也就是当前数据负载段为空的云桌面URB包。
步骤C:确定上述当前待填充的解压图像帧的分割后的图像片段数量小于或等于一个上述云桌面图像URB包的数据负载段的数据片段数量。
上述当前待填充的解压图像帧的分割后的图像片段数量小于或等于一个上述云桌面图像URB包的数据负载段的数据片段数量,表明当前待填充的解压图像帧可完全填充进上述云桌面图像URB包中。
步骤D:为当前被填充的上述云桌面图像URB包的首个数据片段,设置起始片段头。
具体的,将片段头设置为起始片段头,表明该片段头对应的数据片段中存储了一帧图像的起始图像片段。
步骤E:将上述当前待填充的解压图像帧的分割后的每个图像片段依次填充到上述当前被填充的上述云桌面图像URB包的每个数据片段。
在一种示例中,向一个云桌面图像URB包填充上述解压图像帧的全部图像数据后,该云桌面图像URB包恰好被填满;在另一种示例中,向一个云桌面图像URB包填充上述解压图像帧的全部图像数据后,该云桌面图像URB包还存在空闲空间。
另外,在执行完步骤A至步骤E之后,会继续执行步骤S1206,在将填充完整的云桌面图像URB包发送至虚拟USB驱动后,便构建一个新的云桌面图像URB包,等待填充后续的图像数据。
本发明另一个实施例中,上述步骤S1205可以通过以下步骤F至步骤J实现。
步骤F:将当前待填充的解压图像帧分割为多个图像片段。
步骤G:确定缓存了部分填充的云桌面URB包。
具体的,缓存了部分填充的云桌面URB包,指的是云桌面URB包中已经填充了部分图像片段,也就是当前数据负载段含有部分图像数据的云桌面URB包。
步骤H:确定上述当前待填充的解压图像帧的分割后的图像片段数量小于或等于上述部分填充的云桌面URB包的未填充的数据片段数量。
步骤I:为上述部分填充的云桌面图像URB包的首个未填充数据片段,设置起始片段头。
步骤J:将上述当前待填充的解压图像帧的分割后的每个图像片段依次填充到上述部分填充的云桌面图像的未填充的数据片段。
在一种示例中,依次向多个云桌面图像URB包中填充上述解压图像帧中的图像数据,除去最后一个填充上述解压图像帧中的图像数据的云桌面图像URB包,对于其他填充有上述解压图像帧中的图像数据的云桌面图像URB包,均是在将一个云桌面图像URB包填满的情况下,再填充下一个云桌面图像URB包,也就是上述其他填充有上述解压图像帧中的图像数据的云桌面图像URB包均被填满,而对于最后一个填充上述解压图像帧中的图像数据的云桌面图像URB包,该云桌面图像URB包可能被填满,也可能未被填满。
在另一种示例中,依次向多个云桌面图像URB包中填充上述解压图像帧中的图像数据,对于其中任一云桌面图像URB包,不管该云桌面图像URB包是否被填满,只要最终上述解压图像帧中的全部图像数据均填充至云桌面URB包中即可。
另外,可以在填充完毕一个云桌面图像URB包后,便将该云桌面图像URB包发送至虚拟USB驱动,在发送一个云桌面图像URB包后便构建一个新的云桌面图像URB包,等待填充后续的图像数据;也可以在上述解压图像帧中的全部图像数据均填充至云桌面图像URB包中的情况下,将所有填充完整的云桌面图像URB包发送至虚拟USB驱动。
此外,上述多个云桌面图像URB包的数目可以是2、3或4等等。
本发明又一个实施例中,上述步骤S1205可以通过以下步骤K至步骤P实现。
步骤K:将当前待填充的解压图像帧分割为多个图像片段。
步骤L:确定未缓存部分填充的云桌面URB包。
具体的,缓存部分填充指的是云桌面URB包中已经填充了部分图像片段,则未缓存部分填充的云桌面URB包指的是未填充有图像片段的URB包,也就是当前数据负载段为空的云桌面URB包。
步骤M:确定上述当前待填充的解压图像帧的分割后的图像片段数量大于一个上述云桌面图像URB包的数据负载段的数据片段数量。
上述当前待填充的解压图像帧的分割后的图像片段数量大于一个上述云桌面图像URB包的数据负载段的数据片段数量,表明当前待填充的解压图像帧需要一个以上云桌面图像URB包以进行图像数据的填充。
步骤N:为当前被填充的上述云桌面图像URB包的首个数据片段,设置起始片段头。
步骤O:将上述当前待填充的解压图像帧的分割后的每个图像片段依次填充到上述当前被填充的上述云桌面图像URB包的每个数据片段。
步骤P:将剩余的上述当前待填充的解压图像帧的图像片段依次填充到一个上述云桌面图像URB包的每个数据片段,直到所有上述当前待填充的解压图像帧的图像片段被填充。
具体的,在填满一个云桌面图像URB包后,将剩余的上述当前待填充的解压图像帧的图像片段依次填充到下一个云桌面图像URB包中,直至所有上述当前待填充的解压图像帧的图像片段被填充。
在一种示例中,在一个云桌面图像URB包中填充一个解压图像帧的全部图像数据后,该云桌面图像URB包中还存在空闲空间,向该云桌面图像URB包的空间空闲中填充下一个解压图像帧中的图像数据,在将下一个解压图像帧中的图像数据填入该云桌面图像URB包的过程中,该云桌面图像URB包被填满,在这种情况下便将该填充完整的云桌面图像URB包发送至虚拟USB驱动。
在另一种示例中,在一个云桌面图像URB包中填充一个解压图像帧的全部图像数据后,该云桌面图像URB包中还存在空闲空间,向该云桌面图像URB包的空间空闲中填充下一个解压图像帧中的图像数据,下一个解压图像帧中的图像数据全部填入该云桌面图像URB包中后,该云桌面图像URB包中还存在空闲空间,则继续向该云桌面图像URB包的空间空闲中填充再下一个解压图像帧中的图像数据,直至该云桌面图像URB包中不存在空闲空间,在这种情况下便将该填充完整的云桌面图像URB包发送至虚拟USB驱动。
另外,在发送一个云桌面图像URB包后便构建一个新的云桌面图像URB包,等待填充后续的图像数据。
本发明又一个实施例中,上述步骤S1205可以通过以下步骤Q至步骤V实现。
步骤Q:将当前待填充的解压图像帧分割为多个图像片段。
步骤R:确定已缓存部分填充的云桌面URB包。
具体的,已缓存部分填充的云桌面URB包,指的是云桌面URB包中已经填充了部分图像片段,也就是当前数据负载段含有部分图像数据的云桌面URB包。
步骤S:确定上述当前待填充的解压图像帧的分割后的图像片段数量大于上述已缓存部分填充的云桌面URB包的剩余数据片段数量。
步骤T:为上述部分填充的云桌面图像URB包的首个未填充数据片段,设置起始片段头。
步骤U:将上述当前待填充的解压图像帧的分割后的每个图像片段依次填充到上述部分填充的云桌面图像URB包的每个未填充的数据片段。
步骤V:将剩余的上述当前待填充的解压图像帧的图像片段依次填充到一个上述云桌面图像URB包的每个数据片段,直到所有上述当前待填充的解压图像帧的图像片段被填充。
在一种示例中,依次向多个云桌面图像URB包中填充上述解压图像帧中的图像数据,除去最后一个填充上述解压图像帧中的图像数据的云桌面图像URB包,对于其他填充有上述解压图像帧中的图像数据的云桌面图像URB包,均是在将一个云桌面图像URB包填满的情况下,再填充下一个云桌面图像URB包,也就是上述其他填充有上述解压图像帧中的图像数据的云桌面图像URB包均被填满。对于最后一个填充上述解压图像帧中的图像数据的云桌面图像URB包,由于该云桌面图像URB包在填充完上述解压图像帧中的图像数据的情况下还存在空闲空间,向该云桌面图像URB包的空间空闲中填充下一个解压图像帧中的图像数据,在将下一个解压图像帧中的图像数据填入该云桌面图像URB包的过程中,直至该云桌面图像URB包被填满。
在另一种示例中,可以在填满一个云桌面图像URB包后,便将该填充完整的云桌面图像URB包发送至虚拟USB驱动;也可以在上述云桌面图像URB包均填满的情况下,将所有填充完整的云桌面图像URB包发送至虚拟USB驱动。上述多个云桌面图像URB包的数目可以是2、3或4等等。
另外,在发送一个云桌面图像URB包后便构建一个新的云桌面图像URB包,等待填充后续的图像数据。
参见图13,为本发明实施例提供的一种将完整图像帧的图像数据填充至云桌面图像URB包的方法的流程示意图,该方法应用于云桌面虚拟机,上述方法包括以下步骤S1301至步骤S1305。
步骤S1301:构建云桌面图像URB包。
步骤S1302:向云桌面图像URB包数据负载段填充图像数据。
步骤S1303:判断云桌面图像URB包是否存在空闲数据负载段。
步骤S1304:判断上述图像帧的图像数据是否填充完。
步骤S1305:将云桌面图像URB包发送至虚拟USB驱动。
在执行完步骤S1305后,会等待下一解压后完整图像帧,在等待到下一解压后完整图像帧、并收入解压后完整图像帧的情况下,继续执行步骤S1301至步骤S1305,以此类推。
具体的,本发明实施例与前文描述的实施例内容相似,在此不再赘述。
参见图14,为本发明实施例提供的一种数据传输电子设备的结构示意图,包括处理器1401、通信接口1402、存储器1403和通信总线1404,其中,处理器1401,通信接口1402,存储器1403通过通信总线1404完成相互间的通信;
存储器1403,用于存放计算机程序;
处理器1401,用于执行存储器1403上所存放的程序时,实现前述应用于客户端的数据传输方法中任一项的步骤。
由以上可见,在本发明实施例提供的方案中,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
参见图15,为本发明实施例提供的另一种数据传输电子设备的结构示意图,包括处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信;
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的程序时,实现前述应用于云桌面虚拟机的数据传输方法中任一项的步骤。
由以上可见,在本发明实施例提供的方案中,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一应用于客户端的数据传输方法的步骤。
应用本发明实施例提供的计算机可读存储介质中存储的计算机程序进行数据传输时,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
在本发明提供的又一实施例中,还提供了另一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一应用于云桌面虚拟机的数据传输方法的步骤。
应用本发明实施例提供的计算机可读存储介质中存储的计算机程序进行数据传输时,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于客户端的数据传输方法。
应用本发明实施例提供的计算机程序产品进行数据传输时,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
在本发明提供的又一实施例中,还提供了另一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一应用于云桌面虚拟机的数据传输方法。
应用本发明实施例提供的计算机程序产品进行数据传输时,客户端从获取的URB包中筛选出客户端图像URB包后,将客户端图像URB包中包含的物理摄像头采集的图像数据合成为完整图像帧,之后便可以使用预设图像压缩算法对完整图像帧进行压缩。相关技术未筛选出包含图像数据的客户端图像URB包,也未得到完整图像帧,而是对接收的URB包不进行类型区分,统一进行压缩,因此只能使用通用的数据压缩方式,其压缩率较低,压缩后的数据文件的数据量较大。本发明实施例使用预设图像压缩算法对得到的完整图像帧进行压缩,其压缩率较高,压缩后得到的压缩图像帧的数据量小,从而通过网络传输压缩图像帧所占用的带宽较小。另外,在对完整图像帧进行压缩的过程中可以使用硬件加速压缩,从而不会消耗大量的CPU资源用于压缩。并且,由于除客户端图像URB包外的其他URB包,包括上述控制URB包,其数据量比较小,本发明实施例直接通过网络传输上述其他URB包,并未对上述其他URB包进行压缩,占用的网络带宽也比较小,同时无需对上述其他URB包进行压缩、解压,减少了客户端及云桌面虚拟机的运算量。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种数据传输方法,其特征在于,所述方法包括:
通过通用串行总线USB接口获取多个通用串行总线请求块URB包;
从所述多个URB包中筛选包含物理摄像头采集的图像数据的多个客户端图像URB包与包含所述物理摄像头控制命令的多个控制URB包;
解析所述多个控制URB包,得到编解码参数;
向云桌面虚拟机发送所述编解码参数;
基于当前处理的客户端图像URB包的URB头确定数据负载段的数据片段的数量;
当所述当前处理的客户端图像URB包的首个数据片段具有起始片段头标识且所述当前处理的客户端图像URB包的已缓存的数据片段小于所述数量,确定已缓存的所有数据片段属于上一帧图像;
当所述当前处理的客户端图像URB包的首个数据片段具有起始片段头标识,且所述当前处理的客户端图像URB包的已缓存的数据片段等于所述数量,则确定已缓存的所有数据片段属于上一帧图像,且等待下一个客户端图像URB包;
将所述已缓存的所有数据片段合成所述上一帧图像的完整图像帧;
基于所述编解码参数以及预设图像压缩算法将所述一个以上完整图像帧压缩为一个以上压缩图像帧;
向云桌面虚拟机发送所述一个以上的压缩图像帧;以使得所述云桌面虚拟机基于所述编解码参数将所述压缩图像帧解压缩为所述完整图像帧。
2.根据权利要求1所述的方法,其特征在于,所述从所述多个URB包中筛选包含物理摄像头采集的图像数据的多个客户端图像URB包与包含所述物理摄像头控制命令的多个控制URB包,包括:
识别所述USB接口连接的设备为物理摄像头;
判断所述多个URB包的每个URB包的传输类型;
将传输类型是同步传输类型的每个URB包识别为一个所述客户端图像URB包;
将传输类型是控制传输类型的每个URB包识别为一个所述控制URB包。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
缓存具有起始片段头标识的所述首个数据片段;
逐个缓存所述首个数据片段的之后的多个数据段;
当所述当前处理的客户端图像URB包的下一个待缓存数据片段具有所述起始片段头且所述当前处理的客户端图像URB包的已缓存的数据片段小于所述数量;将所述当前处理的客户端图像URB的已缓存的数据片段合成新的一帧图像的完整图像帧。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
缓存具有起始片段头标识的所述首个数据片段;
逐个缓存所述首个数据片段的之后的多个数据段;
当所述当前处理的客户端图像URB包的下一个待缓存数据片段具有所述起始片段头且所述当前处理的客户端图像URB包的已缓存的数据片段等于所述数量;等待下一个客户端图像URB包。
5.一种数据传输方法,其特征在于,所述方法包括:
接收压缩图像帧编解码参数;所述编解码参数是客户端从控制通用串行总线请求块URB包中解析得到的;控制URB包是客户端从通过通用串行总线USB接口获取的URB包中筛选得到的,包含物理摄像头控制命令的URB包;
接收多个压缩图像帧;所述压缩图像帧是所述客户端基于所述编解码参数对完整图像帧进行压缩后得到的;所述完整图像帧是所述客户端对客户端图像URB包中包含的图像数据合成得到的;所述客户端图像URB包是所述客户端从通过USB接口获取的URB包中筛选得到的,包含物理摄像头采集的图像数据的URB包;
所述客户端通过以下方式将图像数据合成完整图像帧:基于当前处理的客户端图像URB包的URB头确定数据负载段的数据片段的数量;当所述当前处理的客户端图像URB包的首个数据片段具有起始片段头标识且所述当前处理的客户端图像URB包的已缓存的数据片段小于所述数量,确定已缓存的所有数据片段属于上一帧图像;当所述当前处理的客户端图像URB包的首个数据片段具有起始片段头标识,且所述当前处理的客户端图像URB包的已缓存的数据片段等于所述数量,则确定已缓存的所有数据片段属于上一帧图像,且等待下一个客户端图像URB包;将所述已缓存的所有数据片段合成所述上一帧图像的完整图像帧;
构建多个云桌面图像URB包;
基于所述编解码参数以及预设的图像解压缩算法将每个所述压缩图像帧解压缩为一个解压图像帧;
将每个所述解压图像帧填充到一个或多个云桌面图像URB包;
将每个填充完整的云桌面图像URB包发送至虚拟USB驱动。
6.根据权利要求5所述的方法,其特征在于,所述将每个所述解压图像帧填充到一个或多个云桌面图像URB包,包括:
将当前待填充的解压图像帧分割为多个图像片段;
确定未缓存部分填充的云桌面URB包;
确定所述当前待填充的解压图像帧的分割后的图像片段数量小于或等于一个所述云桌面图像URB包的数据负载段的数据片段数量;
为当前被填充的所述云桌面图像URB包的首个数据片段,设置起始片段头;
将所述当前待填充的解压图像帧的分割后的每个图像片段依次填充到所述当前被填充的所述云桌面图像URB包的每个数据片段。
7.根据权利要求5所述的方法,其特征在于,所述将每个所述解压图像帧填充到一个或多个云桌面图像URB,包括:
将当前待填充的解压图像帧分割为多个图像片段;
确定缓存了部分填充的云桌面URB包;
确定所述当前待填充的解压图像帧的分割后的图像片段数量小于或等于所述部分填充的云桌面URB包的未填充的数据片段数量;
为所述部分填充的云桌面图像URB包的首个未填充数据片段,设置起始片段头;
将所述当前待填充的解压图像帧的分割后的每个图像片段依次填充到所述部分填充的云桌面图像的未填充的数据片段。
8.根据权利要求5所述的方法,其特征在于,所述将每个所述解压图像帧填充到一个或多个云桌面图像URB包,包括:
将当前待填充的解压图像帧分割为多个图像片段;
确定未缓存部分填充的云桌面URB包;
确定所述当前待填充的解压图像帧的分割后的图像片段数量大于一个所述云桌面图像URB包的数据负载段的数据片段数量;
为当前被填充的所述云桌面图像URB包的首个数据片段,设置起始片段头;
将所述当前待填充的解压图像帧的分割后的每个图像片段依次填充到所述当前被填充的所述云桌面图像URB包的每个数据片段;
将剩余的所述当前待填充的解压图像帧的图像片段依次填充到一个所述云桌面图像URB包的每个数据片段,直到所有所述当前待填充的解压图像帧的图像片段被填充。
9.根据权利要求5所述的方法,其特征在于,所述将每个所述解压图像帧填充到一个或多个云桌面图像URB包,包括:
将当前待填充的解压图像帧分割为多个图像片段;
确定已缓存部分填充的云桌面URB包;
确定所述当前待填充的解压图像帧的分割后的图像片段数量大于所述已缓存部分填充的云桌面URB包的剩余数据片段数量;
为所述部分填充的云桌面图像URB包的首个未填充数据片段,设置起始片段头;
将所述当前待填充的解压图像帧的分割后的每个图像片段依次填充到所述部分填充的云桌面图像URB包的每个未填充的数据片段;
将剩余的所述当前待填充的解压图像帧的图像片段依次填充到一个所述云桌面图像URB包的每个数据片段,直到所有所述当前待填充的解压图像帧的图像片段被填充。
10.一种数据传输电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一项所述的方法。
11.一种数据传输电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求5-9任一项所述的方法。
CN202310677352.XA 2023-06-08 2023-06-08 一种数据传输方法及电子设备 Active CN116405733B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310677352.XA CN116405733B (zh) 2023-06-08 2023-06-08 一种数据传输方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310677352.XA CN116405733B (zh) 2023-06-08 2023-06-08 一种数据传输方法及电子设备

Publications (2)

Publication Number Publication Date
CN116405733A CN116405733A (zh) 2023-07-07
CN116405733B true CN116405733B (zh) 2023-09-19

Family

ID=87020220

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310677352.XA Active CN116405733B (zh) 2023-06-08 2023-06-08 一种数据传输方法及电子设备

Country Status (1)

Country Link
CN (1) CN116405733B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404565A (zh) * 2007-10-02 2009-04-08 英飞凌科技股份公司 数据通信系统中的重新传输
WO2015144381A1 (de) * 2014-03-25 2015-10-01 Siemens Aktiengesellschaft Verfahren zur übertragung digitaler bilder aus einer bilderfolge
CN105357148A (zh) * 2015-10-15 2016-02-24 盛科网络(苏州)有限公司 避免网络交换芯片输出报文乱序的方法及系统
WO2017193821A1 (zh) * 2016-05-09 2017-11-16 中兴通讯股份有限公司 云桌面图像处理方法、服务器、客户端及计算机存储介质
CN108614792A (zh) * 2016-12-12 2018-10-02 中国航空工业集团公司西安航空计算技术研究所 1394事务层数据包存储管理方法及电路
CN109040786A (zh) * 2018-09-03 2018-12-18 锐捷网络股份有限公司 摄像头数据的传输方法、装置、系统及存储介质
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
CN111949344A (zh) * 2019-05-14 2020-11-17 华为技术有限公司 一种虚拟机远程访问usb外设的数据的方法
CN112804579A (zh) * 2019-11-14 2021-05-14 上海哔哩哔哩科技有限公司 视频播放方法、装置、计算机设备和可读存储介质
CN113961499A (zh) * 2020-12-18 2022-01-21 深圳市度申科技有限公司 一种GIGE vision数据传输方法、采集卡及系统
CN116193160A (zh) * 2023-02-23 2023-05-30 北京永新视博数字电视技术有限公司 一种数字水印嵌入方法、装置、设备和介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7831661B2 (en) * 2008-12-18 2010-11-09 Vmware, Inc. Measuring client interactive performance using a display channel
US9237387B2 (en) * 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
US10635816B2 (en) * 2016-04-04 2020-04-28 Wyse Technology L.L.C. Restricting reprogramming of a redirected USB device

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404565A (zh) * 2007-10-02 2009-04-08 英飞凌科技股份公司 数据通信系统中的重新传输
WO2015144381A1 (de) * 2014-03-25 2015-10-01 Siemens Aktiengesellschaft Verfahren zur übertragung digitaler bilder aus einer bilderfolge
CN105357148A (zh) * 2015-10-15 2016-02-24 盛科网络(苏州)有限公司 避免网络交换芯片输出报文乱序的方法及系统
WO2017193821A1 (zh) * 2016-05-09 2017-11-16 中兴通讯股份有限公司 云桌面图像处理方法、服务器、客户端及计算机存储介质
CN108614792A (zh) * 2016-12-12 2018-10-02 中国航空工业集团公司西安航空计算技术研究所 1394事务层数据包存储管理方法及电路
CN109040786A (zh) * 2018-09-03 2018-12-18 锐捷网络股份有限公司 摄像头数据的传输方法、装置、系统及存储介质
CN111949344A (zh) * 2019-05-14 2020-11-17 华为技术有限公司 一种虚拟机远程访问usb外设的数据的方法
CN110647375A (zh) * 2019-09-23 2020-01-03 天津卓朗科技发展有限公司 云桌面的图像渲染方法、装置和云服务器
CN112804579A (zh) * 2019-11-14 2021-05-14 上海哔哩哔哩科技有限公司 视频播放方法、装置、计算机设备和可读存储介质
CN113961499A (zh) * 2020-12-18 2022-01-21 深圳市度申科技有限公司 一种GIGE vision数据传输方法、采集卡及系统
CN116193160A (zh) * 2023-02-23 2023-05-30 北京永新视博数字电视技术有限公司 一种数字水印嵌入方法、装置、设备和介质

Also Published As

Publication number Publication date
CN116405733A (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
JP4165668B2 (ja) 連続的で分離されていないデータ・ストリームを圧縮する方法および装置
JP4538430B2 (ja) サーバクライアント環境におけるシステム及び方法
EP3416396B1 (en) Information processing device and information processing method
CN109246435B (zh) Usb设备重定向数据传输方法及装置、本地装置和远程服务器
JP5512657B2 (ja) リッチメディアサービスのための端末のユーザインターフェース装置及び方法
US9426476B2 (en) Video stream
US10476928B2 (en) Network video playback method and apparatus
JP2007043673A (ja) アプリケーション・メタデータを用いるグラフィカル・ユーザ・インターフェースの適応ビデオ圧縮法
US7260614B2 (en) Methods and systems for scalable streaming of images with client-side control
CN109040786B (zh) 摄像头数据的传输方法、装置、系统及存储介质
KR20080049710A (ko) 임의 포맷의 대형 객체의 통신을 지원하기 위한 원격프로토콜
CN111726657A (zh) 直播视频的播放处理方法、装置及服务器
CN110996160A (zh) 视频处理方法、装置、电子设备及计算机可读取存储介质
CN108696505A (zh) 视频分发设备、视频接收设备、视频分发方法和记录介质
CN116405733B (zh) 一种数据传输方法及电子设备
US20230082784A1 (en) Point cloud encoding and decoding method and apparatus, computer-readable medium, and electronic device
CN111093091A (zh) 视频处理方法、服务器及系统
CN115379235A (zh) 基于缓冲池的图像解码方法、装置、可读介质及电子设备
CN114268830A (zh) 云导播同步方法、装置、设备及存储介质
CN114503569A (zh) 用于实时视频通信的av1编解码器
CN110213583B (zh) 视频编码方法、系统、装置及计算机程序介质
CN111447490A (zh) 流媒体文件处理方法及装置
CN106657339B (zh) 一种数据传输的方法及服务器及客户端
Calibo et al. Metadata Extraction Analysis: A Review of Video Data in Effect to Social Media Compression
CN111147928A (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
GR01 Patent grant
GR01 Patent grant