CN104735462B - 视频延时减小 - Google Patents
视频延时减小 Download PDFInfo
- Publication number
- CN104735462B CN104735462B CN201410602456.5A CN201410602456A CN104735462B CN 104735462 B CN104735462 B CN 104735462B CN 201410602456 A CN201410602456 A CN 201410602456A CN 104735462 B CN104735462 B CN 104735462B
- Authority
- CN
- China
- Prior art keywords
- video frame
- frame
- video
- image
- pixel
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000000007 visual effect Effects 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 38
- 230000005540 biological transmission Effects 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 22
- 238000003780 insertion Methods 0.000 claims description 15
- 230000037431 insertion Effects 0.000 claims description 15
- 230000000694 effects Effects 0.000 claims description 10
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 239000007787 solid Substances 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 4
- 230000009467 reduction Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 239000004615 ingredient Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- GJWAPAVRQYYSTK-UHFFFAOYSA-N [(dimethyl-$l^{3}-silanyl)amino]-dimethylsilicon Chemical compound C[Si](C)N[Si](C)C GJWAPAVRQYYSTK-UHFFFAOYSA-N 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/04—Synchronising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N1/327—Initiating, continuing or ending a single-mode communication; Handshaking therefor
- H04N1/32765—Initiating a communication
- H04N1/32771—Initiating a communication in response to a request, e.g. for a particular document
- H04N1/32773—Initiating a communication in response to a request, e.g. for a particular document to capture an image, e.g. at a location or event remote from the requester
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/139—Format conversion, e.g. of frame-rate or size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/436—Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
- H04N21/4363—Adapting the video stream to a specific local network, e.g. a Bluetooth® network
- H04N21/43632—Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wired protocol, e.g. IEEE 1394
- H04N21/43635—HDMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/64—Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/04—Synchronising
- H04N5/05—Synchronising circuits with arrangements for extending range of synchronisation, e.g. by using switching between several time constants
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/04—Synchronising
- H04N5/06—Generation of synchronising signals
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Controls And Circuits For Display Device (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Television Systems (AREA)
Abstract
本公开内容的各个方面涉及视频采集。特定地说,本公开内容的各个方面涉及用于减小采集视频帧的延时的系统和方法。本公开内容的各个实施方式可以将额外像素添加到视频帧,使得可以通过视频接口更快速地传送每个帧内的可见像素。特定地说,将额外像素添加到帧可以造成增加基于每个帧内的像素总数产生的像素时钟。由于传送每个帧中的可见像素所需时间的对应降低,可以减小由于视频采集程序中的延迟而产生的延时。
Description
相关申请的交叉参考
本申请涉及由Roelof Roderick Colenbrander在2013年12月19日提交的名为“MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING”的共同指派同在申请中的美国申请第14/135,213号(代理人案号第SCEA13031US00号),所述申请的全部内容是以引用的方式引入本文。
技术领域
本公开内容的各个方面涉及视频采集。特定地说,本公开内容的各个方面涉及用于减小采集视频帧的延时的系统和方法。
背景技术
随着电信系统的带宽和数据传送速率的持续发展,如今的许多计算需求正朝基于网络的分布式计算系统(统称为“云端计算”)转变。一般来说,云端计算涉及离线下载某些计算任务给一个或多个远程计算资源和使用远程计算资源来给本地装置提供服务。云端计算通常被实施为客户端-服务器模型,其中远程服务器给本地客户端装置提供所需计算能力,从而避免本地客户端装置需要自身执行某些计算任务。在许多实例中,可将计算资源完整或几乎完整地离线下载到服务器,使得客户端提供较少或只提供用户接口用于云端计算任务,从而允许任何联网装置潜在地用作特定应用程序的客户端。
云端计算已采用于多种计算服务中,包括远程数据存储方案、音乐和视频数据流服务以及多种其它消费者和商业方案。一般来说,云端计算提供多种众所周知的好处,包括通过使用共享资源增加效率、增加访问内容的灵活性而不限于特定装置、降低硬件升级可用时的预付成本和其它优点。
其中云端计算尚未达到广泛采用的一个领域是逐渐流行的视频游戏领域。包括个人计算机(PC)游戏、家用单机游戏、手持式单机游戏等等的视频游戏仍然是消费者中流行的娱乐来源。随着可用视频游戏名称集合的逐渐增加,云端游戏给许多视频游戏需求提供了特别吸引人的方案。理想状况是,在云端游戏框架内,用户将能够从远程存储的名称的巨大集合中即刻访问任何视频游戏名称,且无需物理拷贝游戏、无需等待下载名称且无需局部处理运行游戏所需硬件系统或资源。然后可在“云端”中远程执行图形的呈现、响应于用户输入进行的改变游戏状态和其它游戏计算并将其发送到用户的本地装置。不幸的是,实施传统云端计算服务器设计内的这种类型的服务面临多个技术挑战:迄今为止许多视频游戏平台阻止广泛采用云端游戏。
一个挑战是:如今许多视频游戏的节奏极快且动作紧密,使得高级图形需要呈现大量的计算资源。尤其是在基于视频数据流的服务器设计(其中远程执行全部游戏计算和图形呈现计算)中,游戏需要能够执行全部这样的任务且响应于控制输入将压缩音频/视频数据流传递到客户端装置,使得可感知的延时最小甚至没有可感知的延时。否则,这可能中断玩家的时间且无法重复传统局部执行的游戏会话的响应。
另一挑战源于以下事实:传统上来说,(一方面)PC游戏(被设计来在个人计算机、膝上型计算机和通用本质的其它计算系统上运行)与(另一方面)单机游戏(被设计来在称作视频游戏机的专用系统上运行)之间存在不同。视频游戏机通常被设计为具有专门调整来用于视频游戏环境的独有计算架构的嵌入式平台。使用专用控制台硬件作为视频游戏平台提供了多种好处,尤其是呈优化硬件以满足生产如今许多视频游戏所需图形呈现和游戏计算的大量计算资源需求的形式。因此,虽然PC游戏已实现了一定的流行性,但是单机游戏在传统上仍然占据视频游戏市场且可能在未来继续占据视频游戏市场。
然而,使视频游戏机和其它嵌入式平台适应云端数据流服务面临多个挑战。专用平台的硬件或软件架构的大量修改可能面临与被设计用于专用平台的应用程序的兼容问题。因此,所需应用程序可能需要直接在服务器端处的单独“终端机系统”上的可兼容架构上运行以执行应用程序来通过网络进行串流。终端机系统可以是游戏机架构或被设计来运行专用应用程序的其它现有的嵌入式平台。
为了通过网络串流应用程序,从在终端机系统上运行的应用程序采集视频帧以在传输之前压缩输出视频信号需要多种技术。常规的视频采集卡能够采集通过视频接口链路(诸如HDMI、DVI、VGA等等)传送的视频帧,使得其可以被压缩且被发送到位于远处的显示器。然而,将每个帧传送到采集装置消耗的时间的延迟导致应用程序内容产生帧的时间与在客户端处的显示器上展示每个帧的时间之间产生延时。可感知的延时可能是由于视频采集延迟、压缩延迟、网络延迟和其它起因的组合所引起的。在云端游戏和其它云端计算环境中,最小化延时是一项重要的任务,且在客户端处为用户提供响应体验时计数每一毫秒。
本公开内容是在这种背景下产生的。
发明内容
本公开内容的实施方式可以包括一种用于具有第一显示分辨率的多个可见图像像素的第一视频帧图像的方法。所述方法可以包括将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中。插入所述第一视频帧图像可以包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中。
在一些实施方式中,所述方法还可以包括:通过将多个同步信号添加到所述源视频帧形成输出视频帧;将所述输出视频帧传送到视频采集装置;用所述视频采集装置采集所述输出视频帧中的所述可见图像像素,同时忽略来自所述采集的所述额外像素;和在采集所述可见图像像素之后且在传送所述输出视频帧的整个活动显示区域之前压缩所述第一视频帧图像。
在一些实施方式中,所述源视频帧可以呈所述活动显示区域中具有两个图像区域的立体3D格式,所述两个图像区域对应于左侧图像区域和右侧图像区域。插入所述第一视频帧图像可以包括将所述多个可见图像像素插入到所述两个图像区域之一中且用所述额外像素填充所述两个图像区域中的另一个。
在一些实施方式中,所述第一视频帧图像可以具有多个可见图像行,其中每个所述可见图像行具有多个所述可见图像像素。所述源视频帧可以呈所述活动显示区域界定单色图像区域的单色格式。所述单色图像区域可以具有多个活动行,每个所述活动行具有多个活动像素。所述单色图像区域中的活动行的数量可以大于所述第一视频帧图像中的可见图像行的数量,且每个所述活动行中的活动像素的数量可以大于每个所述可见图像行中的可见图像像素的数量。插入所述第一视频帧可以包括将每个所述可见图像行插入到所述活动行中的各自活动行中且用所述额外像素填充所述活动行中的每个所述各自活动行的剩余部分。在其它实施方式中,插入所述第一视频帧可以包括用所述可见图像像素填充所述活动行中的至少一些,使得所述活动行中的至少一些每个包括来自一个以上所述可见图像行的所述可见图像像素。
本公开内容的其它实施方式可以包括一种用于具有多个可见图像行的第一视频帧图像的方法,每个所述可见图像行具有多个可见图像像素。所述方法可以包括形成输出视频帧,所述输出视频帧具有所述第一视频帧图像和同步区域,其中所述同步区域在每个所述可见图像行之间具有指示每个所述可见图像行之间的转变的多个同步信号,且所述同步区域在指示所述帧的终点的所述多个可见图像行中的最后一个之后具有多个同步行。形成所述输出视频帧包括将额外像素的多个虚设行添加到所述同步行之后的所述同步区域。
本公开内容的其它实施方式可以包括一种系统,其具有第一处理单元和操作地连接到所述第一处理单元的第一存储器单元。所述系统可以被配置来执行一种用于具有第一显示分辨率中的多个可见图像像素的第一视频帧图像的方法。所述方法可以包括将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中。插入所述第一视频帧图像可以包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中。
本公开内容的其它实施方式可以包括一种系统,其具有第一处理单元和操作地连接到所述第一处理单元的第一存储器单元。所述系统可以被配置来执行一种用于具有多个可见图像行的第一视频帧图像的方法,每个所述可见图像行具有多个可见图像像素。所述方法可以包括形成输出视频帧,所述输出视频帧具有所述第一视频帧图像和同步区域。所述同步区域可以在每个所述可见图像行之间具有指示每个所述可见图像行之间的转变的多个同步信号,且所述同步区域可以在指示所述帧的终点的所述多个可见图像行中的最后一个之后具有多个同步行。形成所述输出视频帧包括将额外像素的多个虚设行添加到所述同步行之后的所述同步区域。
附图说明
通过结合附图考虑下列详述可轻易理解本公开内容的教学,其中:
图1是通过网络进行的示例性数据流技术的示意图。
图2是通过网络进行的另一示例性数据流技术的示意图。
图3A是具有用于从视频源采集视频数据并压缩所述视频数据的采集卡的示例性数据流系统的示意图。
图3B是示例性视频输出帧的示意说明。
图4A是用作视频源的示例性终端机系统架构的示意图。
图4B是示例性主机系统和可以从视频源采集视频帧并压缩所述视频帧的采集卡架构。
图5是具有专用处理单元的示例性视频采集卡设计的示意图。
图6是具有额外像素的示例性扩大视频帧的示意说明。
图7A至图7B是具有额外像素的扩大视频帧的额外实例的示意说明。
图8是具有额外像素的扩大视频帧的又另一实例的示意说明。
图9A至图9B是采集扩大视频输出帧的示例性方法的流程图。
具体实施方式
虽然下列详述为说明目的而包括许多具体细节,但是本领域一般技术人员将明白下列细节的许多变动和更改是在本发明的范围内。因此,提出下文描述的本发明的示例性实施方案且本发明没有任何一般性的损失且不强加限制本发明。
简介
本公开内容的各个方面涉及用于通过将额外像素添加到数据流中的每个视频帧来减小视频传送延迟的技术。一般来说,视频帧将由可见像素和不可见像素两者组成,其中可见像素界定用于显示的帧的图像,而不可见像素则可以用于(例如)同步。本公开内容的实施方式可以将额外像素添加到视频帧使得可以通过视频接口更加快速地传送每个帧内的可见像素。特定地说,将额外像素添加到帧可能造成视频传送硬件增加基于每个帧内的像素总数的像素时钟速率。由于传送每个帧中的可见像素所需时间的对应降低,可以减小由于视频采集程序的延迟而产生的延时。
实施方式细节
为了更好地说明本公开内容的各个方面,图1中描绘分布式计算系统100的第一说明实例。图1中描绘的分布式系统100涉及通过网络106(诸如互联网)连接的多个计算装置102、104。
在示例性分布式系统中,数据流服务器102执行程序108以通过网络106将程序输出的实时数据流提供给远程连接的客户端装置104。在图1的已说明示意图中,程序104可以是视频游戏程序,其根据程序108的执行处理接收自客户端装置104的控制输入且将压缩音频和视频数据流发送到客户端装置104。位于客户端处的用户可以通过客户端装置104的用户接口(例如,通过在连接到客户端装置104的显示器和/或扬声器处提供控制输入和接收音频和视频游戏输出)与程序交互。在图1的实例中,用于处理输入、呈现视频游戏图形等等的计算负载可以被完全离线下载到数据流服务器102以供远程执行。
为了使用图1中描绘的系统100实施云端游戏,数据流服务器102可以被配置来不但执行游戏程序108,而且数据流服务器102还可以实施具体实施在服务器102中的“数据流服务器程序”110,其可以执行各种功能以协调用于在客户端装置104与数据流服务器102之间通过网络106通信的程序输入/输出。例如,数据流服务器程序110可以具体实施于在与游戏软件108协作的数据流服务器102上运行的一个或多个程序中。游戏108连同数据流服务器程序110的远程执行可以被执行使得客户端装置104处的输入与输出之间的延时最小或没有延时,使得客户端处的用户感知到正在局部执行程序108。此外,可以访问远程存储的程序的广泛集合以供执行。例如,在云端游戏应用程序中,用户将有可能能够选择被设计用于相关视频游戏平台的任何游戏,且远程服务器将能够根据接收自用户的输入来加载游戏、执行游戏并将其输出串流到客户端装置且使得所接收的输入和音频/视频输出之间感知不到延时。
在图1中描绘的实例中,这可以通过在相同计算装置(例如,数据流服务器102)处执行数据流服务器程序110和游戏代码108两者来完成。数据流服务器可以使用在数据流服务器架构内实施的各种组件来处理应用程序的视频内容以通过网络进行采集、压缩和传输。对于云端游戏和其它云端计算实施方式,如果客户端104的在服务器102处执行的软件应用程序108被设计来运行个人计算机(PC)架构或类似于数据流线服务器102的其它计算机架构,那么这可以轻易实施。例如且无限制,对于PC云端游戏实施方式,可容易使用的基于x86的服务器不但可以用来实施数据流服务器程序110,而且一旦PC游戏程序108被服务器102访问,便立即执行PC游戏程序108。
然而,图1中描绘的示例性技术100无法适用于其中程序108被设计来在嵌入式平台和其它专用架构上执行的某些应用程序。例如,如果所需程序是被设计用于专用主控台平台的视频游戏,那么游戏软件在没有某种类型的仿真器的情况下可能无法够在服务器架构上运行。不幸的是,仿真器通常难以开发且其开发比较昂贵,且合适的仿真器可能不可用。此外,在许多情况下,为期望云端服务的每个独有架构建立专用服务器将是不切实际的,且嵌入式平台可能没有具有足够多的免费计算资源(例如,CPU、存储器)来用于支持视频压缩和其它服务器程序。同样地,使用具有不同于现有平台的性能特性的额外资源可能存在兼容问题。
为了解决这些挑战,可以希望在服务器端处使用额外计算装置来执行程序,因而额外计算装置执行所需程序,同时连接到这个额外计算装置的数据流服务器执行其常见功能以与客户端装置交互。图2中描绘使用这种技术的分布式系统200的说明实例,其中“终端机系统”212连接到数据流服务器202且终端机系统执行所需应用程序208。如果终端机系统无法以其它方式具有足够多的免费资源用于这些功能,那么数据流服务器可提供资源用于网络存储和视频压缩。
在某些实施方式中,终端机系统212可以是嵌入式系统或具有专用架构的其它计算系统,诸如视频游戏机,同时数据流服务器202可以基于任何计算架构,诸如x86指令集架构,其被调整来提供数据流服务且不一定需要具有与终端机系统212相同的架构。数据流服务器202可以被配置来执行数据流服务器程序202且给终端机系统程序208提供常见的云端服务,且服务器端处的计算装置(例如,数据流服务器202和终端机系统212)可以共同地操作来给客户端装置204提供视频游戏数据流服务。
图2中描绘的简易示意图中的配置可以提供实用又灵活的服务器方案,其可被轻易调整来用于被设计用于多种不同计算架构的多种不同软件平台。例如,潜在地任何数据流服务器202可被调整来通过局部连接运行软件的终端机系统来串流被设计用于多种不同计算架构的软件应用程序。
然而,在服务器端处的终端机系统212上执行所需软件在云端计算框架内可能面临某些挑战,且新的技术可能有用于从终端机系统212采集视频输出并压缩所述视频输出。常规的视频采集卡可用来通过终端机系统的视频I/O接口(诸如HDMI链路)采集应用程序的视频内容,但是当使用常规技术时采集通过接口发送的视频数据的程序可能会增加明显的延时。
图3A中描绘了使用视频采集装置320的视频采集技术的说明实例。在图3A的示例性采集技术中,可以使用连接到数据流服务器302的采集装置320来采集视频数据和视情况输出自在终端机系统312上运行的应用程序308的音频数据。采集卡320可以通过与终端机系统312连接的视频接口接收视频数据流,且可以连同由数据流服务器310实施的数据流服务器程序310一起来压缩视频数据且例如如图2中说明般通过网络串流所述视频数据。例如且无限制,采集装置320可以被实施为扩展卡,诸如快速PCI附加卡,其可以通过扩展接口连接到数据流服务器302。
根据本公开内容的各个方面,图3A中描绘的示例性视频采集系统可被优化来通过将额外像素添加到每个视频帧减小采集程序的延时,使得每个帧内的可见图像以较小的延迟到达视频采集装置320。
在一些实施方式中,采集卡320还可以给终端机系统312提供存储虚拟化功能以给涉及终端机系统312的云端计算应用程序提供集成方法。由Roelof RoderickColenbrander在与本申请同一天提交的名为“MASS STORAGE VIRTUALIZATION FOR CLOUDCOMPUTING”的共同指派同在申请中的美国申请第号(代理人案号第SCEA13031US00号)中描述了可以由采集卡320和数据流服务器302实施的存储虚拟化技术的其它细节,所述申请的全部内容是以引用的方式引入本文。
为了更好地明白本公开内容的各个方面,首先讨论如何通过诸如HDMI、DVI、VGA、DisplayPort等等的视频接口从视频源传送视频帧是有益的。转向图3B,描绘了视频输出帧300的说明实例。示例性输出帧300可以是共同构成视频数据流的类似格式帧的序列中的一个帧。视频帧序列可以输出自某个视频内容源,诸如视频游戏应用程序、视频文件、直播数据流等等。
如图3B中说明,输出帧300可以由像素阵列构成,像素阵列可由像素数据值的对应阵列表示。如下文描述,输出帧300还可以用像素数据值以外的额外信号来传输。
取决于所使用的特定彩色模型,阵列中的每个像素数据值可以包括多个彩色空间成分。例如,如果使用YCrCb(数字视频)或YPbPr(模拟视频),那么阵列中的每个像素数据值可以包括对应像素的两个色度(颜色)值和亮度(强度)值。替代地,RGB彩色空间或彩色空间成分的某个其它集合可以用于每个像素的像素数据。此外,可以由多个二进制位以数字形式表示每个像素的每个彩色空间成分的像素数据值。例如,24位颜色深度可以使每个像素的每个彩色空间成分使用8位。术语“像素”在指代对应于像素时钟的一次跳动的输出帧的所述部分时有时候在本文用作速记。
除了像素数据值以外,输出帧还可以包括除了像素数据值以外的外部信号。外部信号可以包括具有指示像素是否可见的信息的信号,例如指示是否将显示像素且因此是否具有包括在所述像素的像素数据值中的可见像素的数据启用信号。如图3的示例性输出帧300中可见,阵列中的全部数量的像素包括可见像素301(图示中说明为格子)和不可见像素303(图示中说明为消隐填充区域)两者。在图3B的示例性帧中,可见像素301构成输出帧的活动图像区域(其可以由高的数据启用值指示),且不可见像素303构成输出帧的同步区域(其可以由低的数据值指示)。活动图像区域中的可见像素301可以共同构成将要显示的帧的可见图像。应注意,在图3B的示例性输出帧300中,视频帧图像的可见像素与所述帧的格式的活动区域重合。
大部分装置(例如,主控台、PC、电话和其它视频源)通常以每个彩色成分至少8位/1字节向以RGB像素组织的‘帧缓冲器’呈现视频帧。由视频传输器(其可以是呈现视频帧的GPU的部分或其可以在GPU外部)产生的视频信号可以传输RGB中的像素,但是其也可以在其它彩色空间模型(诸如YCrCb(数字视频)或YPbPr(模拟视频))中传输RGB中的像素,以防某物(例如,传输器)必须从RGB转换成其它格式。
一旦GPU完成呈现,其可以立即‘扫描输出帧’,这是通过某个串行连接(例如,HDMI、DVI等等)逐个像素地发送帧的程序。扫描输出程序可能涉及输出帧(例如,输出帧300)的外部信号的产生,且扫描输出程序可以部分取决于视频连接的类型以及‘视频传输器’是在GPU内部还是外部。一般来说,GPU可以在扫描输出帧时产生多个信号,包括像素数据值以外的信号。当扫描输出帧时,信号可以包括:
●像素时钟信号
●数据启用信号
●水平同步(hsync)信号
●垂直同步(vsync)信号
●数据总线信号,其携带活动像素的彩色空间成分(例如,RGB、24位宽,每个彩色空间成分具有8位)
在已呈现的帧的扫描输出期间,GPU可以从保存完整的帧图像的缓冲器(例如,帧缓冲器)撷取像素。作为实例,即,GPU目前处于某行的第一像素处。对于给定行,在像素时钟信号的每次‘跳动’时,其将会将新的像素置于数据总线信号上。其还将在数据启用信号上输出对应于所述像素的‘高电平’。
在所述行的终点处,存在(持续时间HTOTAL–HDISPLAY像素或像素时钟脉冲的)水平消隐周期。在消隐周期期间,改变多个信号。首先,可以在hsync行上产生脉冲以通知转变到下一行。‘数据启用’信号为低,这意指目前在数据总线信号上的任何数据不应被解译为像素(‘所述行的终点处存在不可见像素’)。
可以逐行继续进行这个程序直到帧图像的终点为止。在帧的终点处,在vsync行上产生脉冲。对于帧的终点处的‘不可见行’中的任何一个,数据启用行也为低。
一般来说,无论数据启用信号何时为低,像素均‘不可见’,且像素数据值不包括对应于图像的显示区域的所需彩色空间值。因为总是存在活动像素时钟,所以数据总线上基本上会产生‘不可见像素’。应注意,水平和垂直同步信号存储在像素数据外部。
通过串行接口传输例如构成输出帧300的视频信号的程序可以取决于视频技术。对于典型的VGA,所描述的信号实际上直接由监视器消耗,信号包括像素数据信号和与帧相关的外部信号。外部信号可以包括直接用于VGA的时序信号。像素数据信号可以是模拟信号,其中每个彩色成分具有其自身的通道,例如红色信号通道、绿色信号通道和蓝色信号通道。数模转换器(DAC)可以由数字数据总线信号(所描述的24位,其中每个通道具有8位)产生模拟像素信号。对于如DVI、HDMI或DisplayPort的其它技术,传输器可以接受上述信号并将其转换成适用于所述技术的信号。在HDMI的情况下,HDMI传输器具有3个TMDS数据通道(TX0至TX2)和TMDS时钟,其中HDMI传输器嵌入全部信号(hsync信号、vsync信号、像素数据信号)且TMDS时钟以某种方式包括像素时钟信号。‘接收器’内部的电缆的另一端上的HDMI接收器具有这些信号作为输入,但是恢复hsync、vsync、数据和其它信号。对于如DVI或DisplayPort的其它视频标准,情况也是这样。
如果视频传输器是在GPU内部,那么扫描输出逻辑可以作用于所描述的信号,但是扫描输出逻辑也可以直接输出(例如)HDMI,从而省略用于这些其它信号的中间步骤。
像素数据值和与输出帧的每个像素相关的其它信号通常逐行输出,其中每行包括多个像素且每个帧包括多行。通常,这些行水平定向,且水平行中的像素可以通过视频通信接口按次序从视频源传送到显示装置或其它视频接收装置(例如,从左到右串行传送)。类似地,水平行可以按次序从顶部输出到底部直到到达帧的终点为止。因此,帧300中的全部像素(包括可见像素301和不可见像素303两者)可以具有定义的传送序列。
在图3B的示例性输出帧300中,帧的每行是具有总数为HTOTAL(其可以定义输出帧的总水平分辨率)的像素的水平行。类似地,示例性输出帧300具有总数为VTOTAL的行,其可以定义帧的总垂直分辨率。因此,总水平和垂直分辨率包括可见像素和不可见像素两者。
帧的活动显示区域301可以包括定义帧的垂直显示分辨率的多个活动行VDISPLAY,且每个活动行可以包括定义帧的水平显示分辨率的多个活动像素HDISPLAY。活动显示区域301可以对应于由GPU呈现且如上所述般输出到帧缓冲器的帧的所述图像。
如上所述,由于帧中存在同步区域303,输出帧300的总分辨率(例如,HTOTAL×VTOTAL)可以大于输出帧的显示分辨率(例如,HDISPLAY×VDISPLAY),同步区域303可以产生在帧的扫描输出期间(例如,向帧缓冲器呈现帧的活动显示区域之后)。具体来说,活动显示区域对应于撷取自帧缓冲器的像素,而同步区域则是指由于添加外部像素产生的像素(例如,如上所述扫描输出帧)。同步区域303可以包括每行的终点处对应于水平消隐区域的多个不可见像素和每个帧的终点处对应于垂直消隐区域的多个不可见行。一般来说,消隐区域的同步信号可以被提供来同步视频源与显示器之间的视频数据流传送,其中HSYNC信号一般指示帧中的每行之间的转变,且VSYNC信号一般指示构成视频数据流的帧序列中的每个帧之间的转变。虽然hsync和vsync信号是并非‘像素数据’的部分的外部信号,但是因为GPU总是在像素时钟上输出像素数据和同步信号,所以在hsync或vsync行上的脉冲活动时的周期期间,像素数据中产生‘不可见像素’。在HDMI的情况下,hsync和vsync实际上以像素数据传输。然后在通过HDMI电缆传输之后,HDMI接收器将再次分离信号。
如图3B的实例中可见,按次序(例如,逐个像素地)传送帧300的像素将造成在每行的终点处传送对应于HSYNC区域的像素305,且在帧300的终点处传送对应于VSYNC区域的像素307。水平同步信号可以包括HSYNC脉冲305,其具有对应的水平前沿和水平后沿(在图示中分别说明为HSYNC脉冲305之前和之后的消隐区域),且垂直同步信号可以包括VSYNC脉冲307,其具有对应的垂直前沿和垂直后沿(在图示中分别说明为HSYNC脉冲307之前和之后的消隐区域),且这些像素可以共同构成输出帧300的同步区域303。
参考图3B的实例,视频信号可以由类似于输出帧300的多个视频帧构成,且输出帧可以通过诸如HDMI、DVI、VGA等等的视频接口从视频源传送到显示装置、视频采集装置或其它视频接收装置。一般来说,显示硬件的刷新速率(例如,VRrefresh)应对应于视频数据流的输出的帧率(例如,每秒钟的帧数量)。因此,通过视频源与显示装置之间的接口传送像素的时序应被同步以保证视频数据流中的像素传送速率与显示器同步且与显示刷新速率保持一致。
通常,如上所述,可以是由电子器件或具体实施在视频传送硬件中的其它组件产生的外部信号且可以是所产生的与扫描输出帧相关的外部信号的像素时钟控制视频源与视频接收器之间的每个像素的传送的时序。一般来说,像素时钟将控制像素的传送时序使得每个帧内的全部数量的像素以与显示装置的刷新速率同步的速率从视频源传送。对于其中按次序一个接一个地传送像素的串行接口,像素时钟可以数学形式如下表达为每行内的像素总数、每个帧内的总行数和垂直刷新速率的乘积:
像素时钟=HTOTAL*VTOTAL*VRefresh
标准的视频接口通常支持不同的显示分辨率(例如HDISPLAY×VDISPLAY),诸如720p(1280×720)、1080p(1920×1080)等等,对于每个帧来说,分辨率每个具有不同像素总数。具体实施在视频传送硬件中的像素时钟产生器可以被配置来基于类似于上文说明的数学表达式的公式(例如,基于每个帧的刷新速率和分辨率)针对给定的视频分辨率和/或帧率产生像素时钟。
应特定注意,由于实际考虑和所涉及的电子器件和组件的技术要求以及可以精确地维持像素时钟的频率的实际限制,可以限制像素时钟的上界。例如,显示器制造商通常想要使像素时钟尽可能低,因为像素时钟越高,电子器件和组件的设计更加复杂且成本更贵。因此,参考图3B,帧中的活动行的数量(VDISPLAY)和总行数(VTOTAL)的值通常接近,因为垂直同步信号只需要少量的行,且常识一般规定使用的行不需要多于必需的行。
本公开内容的各个实施方式可以并有用于通过人工增加帧中的像素总数(即,像素时钟的跳动)使其超过包括每个输出帧内的可见像素数据和/或同步信号所需的像素总数来降低传送输出视频帧的时间的技术。因此,可以增加像素时钟速率以输出更大数量的总像素,从而造成在更少时间内传送具体实施在输出帧的活动区域内的可见视频帧图像的所需可见像素。在一些实施方式中,这可以通过增加每个帧的序列的终点处的行数或以其它方式按具有的总像素的数量大于源帧图像的某个帧格式放置输出帧来完成。
例如且无限制,对于图3B中描绘的示例性输出视频帧300,假设60Hz的刷新速率(VRefresh),将例如基于帧中的活动显示行与总行数的比例每隔VDISPLAY/VTOTAL*1/60Hz输出某个输出帧的全部可见图像行。如果VDISPLAY和VTOTAL的值接近,那么输出帧内的图像301的时间将大致上为~1/60Hz,其对应于16.7ms。根据本公开内容的各个方面,输出帧的可见图像行的这样的时间可以通过使得VTOTAL显著大于VDISPLAY来减小。因此,对于上文提及的相同60Hz垂直刷新速率,如果VTOTAL是VDISPLAY的大小的两倍(即,帧内的总行数是帧内的可见/活动行数量的两倍),那么传送时间减小到8.3ms,因为在VDISPLAY/VTOTAL=0.5*16.7之后,将传送帧内的所需图像。例如通过以某种方式将行添加到帧可使得VDISPLAY/VTOTAL更小。
图4A和图4B提供了用于产生并采集根据本公开内容的各个实施方式的视频帧的示例性硬件/软件架构的概述。特定地说,图4A和图4B的示例性系统可以是用于使用类似于图3A中描述的数据流服务器和终端机系统设置来串流视频游戏和其它应用程序的系统。图4A说明了根据本公开内容的各个方面的示例性视频源的架构,且图4B说明了用于从根据本公开内容的各个实施方式的视频源采集视频的示例性视频采集系统的架构。在一些实施方式中,视频源412可以是类似于图3A且被配置来运行用于云端数据流的应用程序的终端机系统,且可以是现有的嵌入式系统、视频游戏机或具有专用架构的其它计算装置。在一些实施方式中,视频采集系统402(视频接收器)可以是被配置来从终端机系统采集视频输出并将视频输出从终端机系统串流到客户端装置(例如,如图2中描绘)的数据流服务器。然而,重点是图4A和图4B的已说明架构只是通过实例的方式提供,且本公开内容的各个实施方式可能涉及使用其它架构且在云端游戏和云端计算应用程序以外的其它背景下减小视频传送时间。
转向图4A,示例性视频源可以是被配置来运行应用程序408的终端机系统412,应用程序408可能涉及由视频采集系统402采集视频输出。例如且无限制,应用程序可以是呈现图形作为视频输出的视频游戏,其可以被传送到数据流服务器402以通过网络来发送。特定地说,终端机系统可以包括图形处理单元(GPU)450,其可以连同图形存储器449一起被配置来将应用程序输出408呈现为视频帧的图像序列。图像可以输出作为具有包括显示在显示装置上的每个帧的图像的像素数据的可见像素的视频帧的序列,且视频帧图像可以通过诸如HDMI的视频接口发送到视频采集系统402作为具有可见像素和不可见像素两者的输出帧。然而,为了减小源于视频采集程序的延迟,视频源可以被配置来添加额外像素使得通过视频接口发送扩大的输出帧。下文描述可以如何将额外像素添加到输出帧的其它实例。
为了支持视频信号的输出,视频源412可以包括被配置来连接GPU 450以将应用程序视频信号呈现为视频帧图像的序列的图形驱动器452。特定地说,GPU 450可以根据应用程序408产生视频信号输出的视频帧图像,且图形驱动器452可以与GPU 450协作来将视频帧图像呈现为支持特定显示图像分辨率(例如,720p)的源视频帧格式。GPU 450可以连同图形驱动器452一起按具有多个可见图像行的格式呈现视频帧图像,其中每个可见图像行具有多个可见图像像素。在某些实施方式中,图形驱动器452可以被配置来除了由GPU(例如)通过呈现具有大于视频帧图像中的像素数量的分辨率的扩大帧中的帧呈现的帧图像像素以外还添加额外像素。下文描述通过以扩大帧格式呈现帧来扩大帧的其它实例。
更具体地说,视频源412可以包括帧缓冲器451和扫描输出单元453,其可以操作地连接到GPU 450,且在某些实施方式中,可以具体实施在GPU450中。GPU 450可以被配置来例如基于应用程序408的输出向帧缓冲器451呈现视频图像,且扫描输出单元453可以被配置来从帧缓冲器451撷取帧图像并产生用于通过例如如上所述的接口将图像发送作为输出帧的额外外部信号。
特定地说,扫描输出单元453可以包括用于在扫描输出帧的期间产生像素时钟信号的像素时钟产生器441和/或用于使用每个输出帧产生同步信号(例如,hsync和vsync信号)的sync信号产生器431。例如,sync信号产生器431可以添加在帧的每行的终点处具有水平消隐区域的hsync信号,且对应于帧的每行的终点处的多个不可见像素。信号产生器431还可以添加在帧的每行的终点处具有垂直消隐区域的vsync信号,且对应于帧的每行的终点处的多个不可见行。像素时钟产生器441可以产生具有与被产生来通过视频接口传送的输出帧中的每个像素相关的脉冲的时钟信号,像素包括从帧缓冲器451撷取的全部数量的活动像素和对应于同步区域的插入在活动像素之间的全部数量的像素。应注意,像素时钟产生器441和/或sync信号产生器431可以包括作为扫描输出单元453的部分,且扫描输出单元453可以包括作为GPU 450的部分。然而,重点是这只是说明性实例,且组件中的一个或多个可以被实施为单独组件。
视频源可以包括连接到视频通信接口的视频传输器456,且传输器可以通过串行通信接口(例如)按次序逐个像素地将视频信号传送到视频采集系统402,其中sync信号因此指示所述序列中的行与帧之间的转变。如上文讨论,像素时钟产生器441可以产生时钟信号以基于(例如)像素总数和视频内容的帧率同步每个像素的时序。在某些实施方式中,像素时钟产生器441可以基于包括在每个图像内的活动显示区域内的额外像素、包括在同步区域内的额外像素或所述两者来产生像素时钟使得增加每个像素中的传送频率。视情况,视频接口还可以支持音频传送(诸如使用HDMI接口),且输出自应用程序的音频信号还可以通过视频接口递送。在替代性实施方式中,可以使用单独的音频接口。
视频源可以被配置来将输出视频信号发送到连接到计算系统402的视频采集装置420。采集装置可以接收包括在所传送的视频信号中的视频像素数据使得其可以数字形式采集且由数据流服务器402压缩。数据流服务器402可以包括视频采集程序434和/或编码器,其可以被配置来压缩接收自视频采集装置的每个视频帧。数据流服务器程序446可以被配置来将所压缩的视频数据流传输到位于远处的装置,使得可以解压已压缩的视频数据流并在远程显示装置上显示已压缩的视频数据流。
在某些实施方式中,根据本公开内容的各个方面,视频采集装置可以包括视频采集逻辑428,其被具体配置来只采集包括在扩大帧内的视频帧图像的可见像素。例如,在某些实施方式中,视频源的图形呈现组件可以被配置来只将视频帧图像的可见图像像素插入到特定格式的活动显示区域的部分中,且视频采集装置420可以被配置来计数所接收的每个帧内的行和/或像素以已知何时完成显示图像的采集。这可以基于视频源如何呈现帧的预定配置。替代地,视频采集装置420可以基于同步信号(例如,其中通过添加同步行扩大帧的实施方式中的VSYNC信号)的存在来确定采集完成。数据流服务器402或其它计算装置可以被配置来开始压缩视频帧,前提是每个帧内的可见显示图像的采集完成。
采集装置可以通过可与输出自视频源412的视频信号兼容的通信接口接收视频信号,且视频接口可以连接到视频接收器430。例如且无限制,视频采集装置可以包括一个或多个端口(例如HDMI端口或如下文参考图5描述的其它端口)作为音频和/或视频通信接口的部分。
接口装置402可以包括专用处理单元,其包括操作地连接到视频信号接口的逻辑428,其中专用处理单元具有专用于执行与A/V采集相关的功能和视情况与云端数据流相关的其它功能的逻辑428以通过连接器从终端机系统402接收信号。逻辑428还可以支持通过额外的通信接口与主机系统402通信,所述通信接口可以与主机系统402的外围总线通信以连接具体实施在主机系统中的A/V程序。例如且无限制,接口装置420可以是附加卡,其通过扩展端口(诸如外围组件互连(PCI)、扩展PCI(PCI-X)、快速PCI(PCIe))或促进例如经由外围总线与主机系统402进行的通信的其它接口与主机系统402存储器/CPU通信。主机系统可以包括采集装置驱动器426以支持经由接口装置420交换信号。
在某些实施方式中,专用处理单元可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)或具有根据本文描述的原理配置的专用逻辑单元的另一专用处理单元。专用处理单元的逻辑单元428还可以包括专用逻辑以除了对来自在终端机系统402上运行的应用程序408的输出进行音频/视频采集以外还支持用于云端数据流的各种功能,诸如与存储程序432协作的存储虚拟化。
在图4A至图4B中描绘的实例中,具体实施在专用处理单元的逻辑428中的A/V采集单元可以与主机系统402中的采集装置驱动器426和具体实施在主机系统402中的存储程序432(例如,在中央处理单元404上运行的软件应用程序)通信。例如,如果终端机系统412将视频像素发送到视频采集装置,那么这样的视频数据可以使其经过图形驱动器452、包括在逻辑428中的视频采集单元、采集装置驱动器426而至具体实施在主机系统中的A/V程序432。然后A/V程序432可以压缩所采集的视频帧,且根据由额外像素造成的像素时钟的增加可以尽快开始压缩。在某些实施方式中,视频接收器402视情况可以是被调整来通过网络传输来自在终端机系统412上运行的应用程序408的视频输出的数据流的数据流服务器。例如,数据流服务器402可以包括以太网适配器或其它网络适配器436和对应的以太网驱动器或用于主机402的操作系统的其它网络驱动器438,其中可兼容网络程序库439提供用于网络通信的协议支持。主机系统还可以包括受控于对应的存储器驱动器442(例如,tmpfs)且由文件系统程序库444支持的系统存储器440。数据流服务器程序446可以在主机系统402上运行以执行与将实时数据流提供给通过网络(图4A至图4B中没有描述)连接的客户端装置相关的功能。
终端机系统412可以包括各种其它组件以支持应用程序408,其可以是(例如)被设计用于现有的嵌入式平台的视频游戏软件。终端机系统412可以包括用于访问存储装置的文件系统层427以及用于支持图形存储装置访问的各种组件。在一些实施方式中,系统和采集装置420可以被配置来实施存储虚拟化技术,由Roelof Roderick Colenbrander在与本申请同一天提交的名为“MASS STORAGE VIRTUALIZATION FOR CLOUD COMPUTING”的共同指派同在申请中的美国申请第号(代理人案号第SCEA13031US00号)中描述了存储虚拟化技术的其它细节,所述申请的全部内容是以引用的方式引入本文。
现在转向图5,根据本公开内容的各个实施方式描绘可以在接口卡420上实施的示例性采集装置520、采集装置520上的一些组件和示例性专用处理单元560的固有属性的示意图。例如且无限制,采集装置520可以被配置为具有附接到印刷电路板(PCB)的组件的附加卡,且采集卡520可以通过主机硬件接口562(诸如外围扩展端口或在连接时允许主机系统的外围总线进行通信的其它扩展通信接口)与主机系统的外围总线连接。应注意,图5的示例性采集装置520包括各种选用组件,其并非视频采集所必需,但是可以提供用于云端计算和其它实施方式的额外功能。
示例性专用处理单元560可以包括专用于根据本公开内容的各个方面的专用功能的各种逻辑块。例如,专用处理单元可以被实施为FPGA、ASIC或类似专用处理单元。专用处理单元560可以包括主机接口块564,其实施用于接口卡520与采集装置560的主机系统(图5中没有描述)的外围总线之间的通信接口的协议堆栈的部分。
如快速PCI的通信总线可被视为具有多层的协议堆栈。不同的通信协议具有不同层。通常顶部处存在‘应用程序层’,然后中间存在一些传输相关层且底部处存在某个物理层。主机接口块564无需实施这个协议堆栈的全部层。相反地,主机接口块可以维护物理层,其负责例如通过电或光学信号将数字信息置于通信链路上。主机接口块还可以负责协议堆栈的“传输层”的部分或可能全部,但是无需负责应用程序层。
例如且无限制,主机接口块564可以是用于通过快速PCI连接进行通信的硬PCIe块,且这嵌入使得PCIe接口或其它接口访问主机系统的本地总线的协议堆栈。主机接口块564可以集成到存储器访问接口单元566中,存储器访问接口单元566连同专用处理单元560的其它逻辑单元可以通过主机硬件接口562(例如使用请求主机系统中断)直接访问主机系统的系统存储器。
在一些实施方式中,存储器访问接口566可以包括提供存储器访问和中断功能的组件。特定地说,主机接口块564可以被配置来在芯片上互连件572与主机硬件接口562之间提供连接使得可使用存储器映射输入/输出(I/O)从主机系统访问任何芯片上装置。这种功能将允许主机系统编程连接到芯片上互连件572的任何装置,诸如大容量存储装置控制器570、存储器控制器576或GPIO 582。
存储器访问接口566还可以包括中断连接565,其允许任何连接的装置(例如,A/V采集单元578)对事件(例如,完成所采集的视频帧图像)产生中断。如果只存在一个装置与主机硬件接口硬件562连接,那么可期望存储器访问接口提供这种功能。
存储器访问接口566还可以(视情况)包括直接存储器访问(DMA)引擎567。如本文所使用且一般为本领域一般技术人员所了解,术语直接存储器访问(DMA)是指允许计算机内的某些硬件子系统访问独立于计算机的中央处理单元(CPU)的系统存储器的特征。DMA引擎567可以在主机接口块564与主机硬件接口562之间实施数据移动运算。在一些实施方式中,存储器访问接口单元566可以实施并非由主机接口块564提供的协议堆栈(例如,快速PCI)的部分,诸如将主机接口块564连接到芯片上互连件572。
为了用于视频采集的功能的目的,采集装置520可以包括一个或多个视频和视情况音频/视频通信接口580(其可以一个或多个HDMI端口571和/或连接器的形式实施)或其它视频信号通信接口,且其可以附接到采集装置520的电路板。例如且无限制,接口卡520可以包括两个HDMI端口以促进到两个不同视频源/终端机系统的连接,但是应注意采集装置可以替代地包括不同数量的视频连接器,使得单一采集装置520可以服务于不同数量的视频源或终端机系统。对于视频信号连接器580中的每个,可以在可与特定视频通信接口(例如,HDMI、DVI、VGA等等)兼容的专用处理单元560中具体实施对应的视频采集单元578。
专用处理单元的一个或多个视频采集单元578可以通过芯片上互连件572连接到专用处理单元560的其它逻辑单元,这可以使视频采集单元578中的每个访问主机接口组件(例如,快速PCI)。芯片上互连件可以被配置为标准的芯片上总线架构,其被配置来连接专用处理单元(例如,FPGA或ASIC)上的功能块。例如,如果专用处理单元560是FPGA,那么可以使用主-从架构(例如,高级微控制器总线架构(AMBA),诸如AXI4或AXI4-Lite)或另一合适的芯片上总线架构来互连专用处理单元的组件。AXI4可以用于大型数据传输且AXI-Lite可以用于低性能连接或配置目的。可以根据如图5中说明的主-从类型配置来配置专用处理单元逻辑块的芯片上互连件。在已说明的示意图中,“M”和对应的粗线表示主连接,“S”和对应的虚线表示从连接,且“Ctrl”表示控制。
接口装置520可以包括可以受控于以专用处理单元560的逻辑提供的存储器控制器576的一个或多个存储器单元574。存储器单元可以根据由通过大容量存储装置接口568连接的终端机系统发出的数据请求(例如,大容量存储装置虚拟化)支持终端机系统与通过主机硬件接口562连接的主机系统之间的数据传输。例如,存储器单元574可以是暂时RAM单元(诸如DDR3RAM)或被配置来根据本文描述的原理暂时存储由终端机系统发出的读取请求而请求的数据。存储器控制器576可以连接到芯片上总线架构572以根据接收自专用处理单元560的其它逻辑单元的信号执行存储器读取/写入操作。
在操作期间,通过视频接口580连接的视频源(图5中没有描述)的图形驱动器和/或扫描输出单元可以产生具有由采集卡520采集的额外像素的扩大输出视频帧。当接收到视频输出帧时,视频采集单元578可以被配置来确定何时采集每个帧的可见显示图像像素并忽略采集的每个帧中的额外像素,从而丢弃这些额外像素,因为其包括不想要的数据。每个帧的所采集的视频数据可以使用中断通过主机硬件接口562传输到主机系统中的视频采集程序以进一步通过网络来进行处理、压缩和/或传输。压缩可以给定的帧率尽快开始,因为每个帧内的较低比例的像素需要被传输以传送帧中的全部可见图像像素。
应注意,一个或多个A/V采集逻辑单元578中的每个可以操作地连接到对应的A/V接收器530,其中的每个又可以连接到合适的A/V硬件接口580,诸如HDMI端口571或如图5中说明的其它A/V连接端口。来自终端机系统的A/V输出可以通过A/V接口580使用可兼容的A/V连接器连接到A/V接收器530。A/V采集单元578可以通过主机硬件接口562与主机系统上的接口装置驱动器和A/V程序通信,主机硬件接口562可以连接到主机系统总线(例如,外围总线),且主机系统然后可以通过网络将A/V数据流传递到客户端装置。
接口装置视情况可以包括提供用于在终端机系统上运行的数据流应用程序的额外功能(诸如云端游戏数据流)的各种其它组件。例如,专用处理单元560还可以包括用于仿真一个或多个终端机系统的存储装置的一个或多个大容量存储装置控制器570。接口装置582还可以包括一个或多个通用输入/输出(GPIO)块以支持额外功能。例如且无限制,GPIO块中的每个可以连接到终端机系统中的一个对应终端机系统以提供额外功能,诸如终端机系统的功率控制和其它功能。
如上文提及,专用处理单元560可以根据本公开内容的各个方面被实施为(例如)FPGA、ASIC或具有专用于某些功能的块的其它集成电路,诸如A/V采集、大容量存储装置控制器、存储器控制器、DMA引擎等等。在本公开内容的某些实施方式中,这些单元中的一个或多个可以被提供作为可再用逻辑单元或本领域中统称为IP块或IP核心的其它芯片设计。
现在转向图6,描绘了根据第一说明性技术将额外像素添加到源帧的实例。图6描绘了以额外行611的形式在源帧的终点处添加额外像素的示例性扩大视频帧600。额外行611实际上可以是被添加到帧的终点以创建、扩大并修改输出帧600的虚设行。虚设行611可以被添加在指示帧的终点的一个或多个同步信号607的集合之后。在图6的实例中,所述行水平定向,且当帧被传输作为构成行序列的像素序列时,其的底部对应于帧的终点。
因此,在示例性修改的帧600中,被添加到帧的终点的额外像素611在帧的底部处被说明为一组水平行,其可以位于活动图像行601之后和通常指示帧的终点的VSYNC信号607的集合之后。应注意,额外像素611可以通过在已修改的帧600的终点处基本上延长垂直消隐区域使其超出垂直同步所需的区域而被添加到针对输出帧产生的同步区域。
图6中描绘的第一示例性技术的一个优点是:因为可见视频帧图像与帧的活动区域重合且垂直同步607的位置仍然指示帧中的图像的终点,所以垂直同步信号607仍然可以由接收扩大帧600的装置使用来已知包括在扩大帧600内的可见图像601的截止。因此,例如,如果使用视频采集装置来采集帧中的可见图像601,那么视频采集装置可以基于垂直同步信号607的存在而容易确定完成像素序列中的可见图像601的传送。例如,这可能是有利于促进显示图像601的压缩,前提是在传送期间到达垂直同步区域607,而在此之前没有传送帧中的整个像素集合。
图6的技术的另一优点是:其可以进行而无需大量的软件改变或改变为如何呈现原始视频源帧。例如,使用图4的已说明终端机系统作为实例,可以由通常具体实施为硬件组件的扫描输出单元和/或sync信号产生器而产生,扫描输出单元和/或sync信号产生器可以在从帧缓冲器撷取可见图像像素之后在同步区域中产生额外行。这可以完成而无需改变图像驱动器或更改其中由GPU在帧缓冲器中呈现像素数据的显示分辨率。
应注意,由于帧的终点处的额外行,与帧的未修改版本相比,较高的水平频率可以造成已修改的帧600。因此,为了促进已修改的帧600的同步传送,为考虑更大的水平频率和避免兼容问题可以作出某些调整。特定地说,与较高水平频率相关的一个挑战是:这样的频率信号可以获自软件。在游戏实施方式中,例如,某个游戏可以使得某个内部游戏时序基于这样的水平频率,且因而可能具有时序问题。在某些实施方式中,这样的游戏可以被修改来考虑这些问题或操作系统可以被修改来伪造时序。
在图6的示例性技术中,应注意,所添加的像素611可以是不包括需要被采集用于压缩活动图像的任何数据的不可见像素。根据图6的已修改的帧600与图3B的类似但未修改的源帧300之间的比较将明白,帧内的活动行与总行的比例(VDISPLAY/VTOTAL)通过添加虚设行611而显著减小,这可以造成像素时钟增加且传输帧内的可见像素601的时间对应降低。在一些实施方式中,输出帧中的可见图像行与输出帧中的总行数的比例介于0.25与0.75之间。在其它实施方式中,输出帧中的可见图像行与输出帧中的总行数的比例介于0.4与0.6之间。在其它实施方式中,输出帧中的可见图像行与输出帧中的总行数的比例大约是0.5。
特定地说,应注意720p(1280×720)分辨率通常在每行中使用总数大约为1650的像素(HTOTAL)和总数大约为750的垂直行(VTOTAL)。特定地说,在这个常规实例中,总垂直行与可见行的比例是720/750=0.96。常识规定与这个常规实例中一样,这个数字应接近1。通过对比,本公开内容的实施方式可以使用远低于1的比例来加速帧中的可见像素的传送。
这个比例的下限(即,在这个实例中可以被添加到帧的虚设行的最大数量)可能受限于硬件。例如,对于HDMI 1.0,界限是165MHz,但是对于HDMI 1.3,界限移动到340MHz。在撰写本文时,大部分消费者硬件使用165MHz界限。
因此,例如,对于具有165MHz的界限的硬件,用于呈现720p帧的总行的最大数量将是165MHz/(1650×60)=1666行,对应于720/1666=0.43的比例,注意,所使用的比例是720而并非750,因为在这个实例中720是720p帧的可见行的数量。
通过另一实例,对于具有340MHz的界限的硬件,输出帧中的可见行与总行的比例的下限可能是大约0.2。
现在转向图7A至图7B,描绘了将额外像素添加到视频输出帧的其它实例。在图7A至图7B的说明性实例中,扩大帧700b可以通过将视频帧图像呈现到具有大于所呈现的视频帧图像中的像素数量的显示分辨率的帧中、用额外像素(例如,不可见像素)填充在较大分辨率的剩余像素中而产生。应注意,只为了说明的目的,图7A至图7B中只描绘了帧700a、700b的活动图像区域。应注意,根据本公开内容的实施方式,在例如由GPU/图形驱动器将这些帧呈现到帧缓冲器之后,可以通过(例如,使用如图4A至图4B中说明的扫描输出单元)扫描输出来自帧缓冲器的帧、将同步信号、像素时钟信号和/或其它外部信号进一步添加到这些帧中形成输出帧。
特定地说,图7A至图7B描绘了具有额外像素713的扩大视频帧700b的实例,额外像素713是通过将原始视频帧图像700a重新充填到具有大于可见帧图像700a的显示分辨率的较大帧中而添加。因此,扩大帧700b中的像素总数超过可见视频帧图像中的可见图像像素701的总数。特定地说,帧700b可以包括来自原始帧图像700a的可见像素701以及填充较大帧的剩余部分的额外像素713。应注意,修改帧700b中的额外像素713基本上可以是较高显示分辨率帧的未使用像素。
应注意,图7A至图7B用于将额外像素添加到源视频帧的示例性帧重新充填技术可以多种方式实施。例如,帧700a和700b中的每个可以具有水平分辨率和垂直分辨率,其分别可以由每行内的活动像素的数量和每行内的活动行的数量来定义。根据本公开内容的各个方面,较大帧700b可以具有较大的水平分辨率、较大的垂直分辨率或所述两者。
在一些实施方式中,源帧700a的每个单行可以如图7A中说明般充填到较大帧700b的各自行中。如果较大的帧700b具有的每行内的活动像素的数量大于源图像700a的每个可见图像行内的可见图像像素701(例如,如果如图7A中说明,扩大帧具有较大水平分辨率),那么只以此方式将源帧的单行充填到较大帧700b的各自单行中可以造成如图7A中说明般在每行的终点处基本上会浪费像素。具体地说,浪费像素意指,当在传送帧中的整个可见图像701之前输出帧、按次序逐行传送像素时,将仍然需要在每行的终点处传送每行的终点处的额外像素713(并非视频帧的可见图像像素701)。然而,尽管每行的终点处潜在地浪费像素,但是仍然可以期望图7A的这样的示例性方法,因为所述方法可以提供实施这样的方案的实用又容易的方式。此外,仍然可以减小传送延迟,因为全部可见图像像素701可以位于较大帧中的额外添加的像素713(例如,活动行中位于帧700b中的最后的可见行之后的额外像素)中的至少一些之前。
作为图7A的实例的替代,如图7B中说明,取决于较高分辨率帧的每行可容纳的像素数量,每行较大的帧700b可以包括一行以上的源帧700a。例如且无限制,如果源视频帧700a是1280×720(720p),那么较大帧700b可能是(例如)1920×1080(1080p)。使用图7B的方法,一个1080p行可以容纳1.5个720p行(1080/720=1.5)。当将可见像素充填到行的终点时,容纳可见帧图像701将总共需要720/1.5=480行的1080p帧。换句话来说,参考示例性60Hz刷新速率,HDMI传送时间可以是480/1080*16.7ms=7.4ms。虽然在一些方面实施如图7B中说明的这种方法可能比实施图7A的方法(只将每行源帧700a充填到较高显示分辨率帧700b的起点处的对应行中)更加复杂,但是其增加了完全使用帧的起点处的行而不浪费像素的好处,因而更加有效率地在修改帧700b的起点处充填可见像素。因此,由于在修改帧700b中更加有效率地充填可见图像,可以更好地优化用于输出可见像素701的传送时间,因为将需要的扩大帧的活动区域的行更少。
应注意,不同于图6的示例性扩大帧600(其中虚设行添加在垂直同步区域之后),图7A至图7B的帧重新充填方法中的添加像素713具有额外但未使用的像素713(即,只要无需包括帧的任何可见图像数据,那么便是未使用的像素),其仍然可以位于根据这种较大帧格式的较高显示分辨率的帧700b的垂直同步区域(没有描述)之前。因此,将位于帧的活动区域的最后行之后的垂直同步信号由于帧的活动区域中存在额外像素行713而没有指示帧中的可见行701的终点。因此,视频采集装置可以被配置来由某种其它技术而不是VSYNC信号确定可见帧图像的截止。例如,视频采集装置可以被配置来基于原始视频帧图像的显示分辨率、扩大帧显示分辨率和用于输出帧的帧充填技术来计数行。基于由计数行确定的截止点,可见图像701的压缩然后可以尽快开始,而无需等待传送所修改的额外像素713。转向图4B和图5的系统,例如,包括在专用处理单元中的视频采集单元578可以被配置来计数通过视频接口接收自视频源412的每个输出帧中的像素或行,且一旦传送并采集预定数量的行便立即通知视频采集程序434(例如,使用中断)。例如,由编码器进行的压缩可以尽快开始,而无需等待传送视频输出帧的整个活动区域。
应注意,在实施示例性第二技术时,可有利于在视频源上包括额外视频存储器,诸如图4A的终端机系统412,以考虑每个帧中的较大量的像素数据(尽管存在不可见数据)。还应注意,可能需要修改终端机系统的图形驱动器以按不同于将额外像素添加到每个所呈现的视频帧图像的原始内容的格式来呈现帧。
现在转向图8,描绘了根据又另一说明性技术将额外像素添加到视频输出帧的又另一实例。应注意,在图7A至图7B的实例中,以具有高于视频帧图像的显示分辨率的单色帧呈现可见帧图像的可见像素(即,所述帧呈二维格式)。在其它实施方式中(例如如图8中说明),扩大帧格式可以是立体3D格式,其中输出视频帧的较高显示分辨率是由凭借对应于左侧图像和右侧图像的两个不同图像构成的活动显示区域来定义。
在图8的实例中,可以通过按立体3D帧格式将源帧的可见图像只充填到两个图像之一中来将额外像素815添加到源帧。两个图像中的另一个可用额外像素915填充,使得视频帧图像的可见像素完全呈现在3D帧的活动区域中的两个图像之一中。
应注意,可以存在许多常规的立体3D格式,其将两个图像(例如,左侧图像和右侧图像)充填到单一立体3D帧中。在图8的示例性修改帧800中,立体3D帧具有顶部和底部格式(有时候称作上方、下方格式),其中左侧图像和右侧图像布置在彼此上方。其它立体3D格式的实例包括并排格式、交错格式和其它格式。一般来说,可以根据本公开内容的各个方面使用除了图8的已说明实例中的顶部和底部格式以外的立体3D格式。
例如,立体3D帧可以具有定义的像素传输序列,包括帧中的两个图像(左侧图像和右侧图像)中的每个的像素。本公开内容的实施方式可以使用立体3D格式,其中两个图像之一的全部或大部分在次序上位于两个图像中的另一个后面(例如,左侧图像的像素在序列中位于右侧图像中的一些或全部像素之前)。在图8的示例性顶部和底部立体3D帧800中,顶部左侧图像801在帧800的序列中位于底部“右侧”图像815前面。因此,当按次序传送帧的像素时,顶部图像中的可见像素801被传送到底部图像中的像素815之前。因为源帧的可见像素可以完全地呈现在顶部图像中且右侧图像像素没有用于实际3D显示器且反而只用作用于人工地增加输出帧中的像素总数的额外虚设像素,所以可以根据像素时钟的增加来更早地传送帧的整个可见图像。特定地说,如图8中说明,与原始源帧的内容相比,总行数VTOTAL有所增加。
重点是,图6至图8的扩大帧被提供作为说明性实例以只用来说明本公开内容的各个方面。此外,应特别注意,图6至图8的技术没有相互排斥,且可以使用示例性技术的各种组合。例如,根据本公开内容的实施方式使用图7A/7B和图8的实例的组合,其中每个帧不但可以被充填到具有较高分辨率的较大帧中,而且可以充填到立体3D帧的单一图像中,其中3D帧的左侧图像和右侧图像中的每个具有高于源图像的显示分辨率。因此,例如,如果源图像是480p,那么其可以被充填到720p立体3D帧的左侧图像中。
转向图9A,描绘了使用具有额外像素的扩大帧来采集输出视频信号的示例性方法900a。特定地说,在示例性方法900a中,以被添加到输出帧的活动图像之后的同步行之后的额外虚设行的形式将额外像素添加到帧。方法900a可能涉及形成、采集和压缩类似于图7的示例性帧700的视频输出帧。
特定地说,方法900a涉及视频帧921的可见图像。例如且无限制,可见图像921可以由计算机应用程序基于程序状态而产生。计算机图形可以按由图像中的可见像素的数量定义的第一分辨率产生,且所述方法可能涉及将视频图像923呈现到与底层内容921的可见像素的数量一致的像素数量的帧中,因而产生界定最终输出帧的显示区域的源视频帧925。例如,源视频帧可以由GPU呈现到帧缓冲器中。
所述方法可能涉及通过将同步信号927添加到源帧925来形成输出帧。将sync区域添加到帧可能不但涉及将常见的sync信号添加到帧,而且涉及例如使用如图4A中说明的sync信号产生器将虚设行的扩展集合添加在序列中的同步行之后。与典型的帧相比,所得输出帧929可以具有增加数量的行。例如且无限制,可见图像行可以只占据输出帧中的总行的一半或更少,这可以造成像素时钟对应增加。特定地说,将虚设行添加到同步区域可以通过从帧缓冲器(例如,如上文所述)扫描输出源帧图像而执行。
由于输出帧929中存在虚设行,然后可以按较高像素频率将像素传送到视频采集装置933。因此,可以使用视频采集装置更加快速地采集(935)来自可见帧图像921的可见像素,因为可见像素可以在较短的时间量内到达采集装置。
采集装置可以被配置来(例如)通过基于同步行的检测(在这个实例中指示可见帧图像的终点)确定已传送全部可见像素来停止输出帧的采集935和/或(例如,使用编码器)起始帧图像的压缩937,前提是已采集到可见像素。然后可以通过网络906发送已压缩的视频帧使得可以解码(941)视频信号且将其作为可见图像展示在显示器943上(例如远离采集系统的远程装置处)。可以针对每个视频帧连续重复所述程序以传输视频内容的实时数据流。
现在转向图9B,描绘了采集、压缩和传输视频帧的类似示例性方法900b。然而,与图9A的实例相比,方法900b涉及将额外像素添加到帧的活动区域以(例如)如上文图7A至图8中说明般产生输出帧。
特定地说,如图9B中说明,可以较高显示分辨率和多个额外像素将可以用第一显示分辨率的多个可见像素产生的可见帧图像921呈现到较大帧923中。例如且无限制,这可能涉及将帧图像充填到较大单色图像或立体3D帧格式的单一活动图像区域(例如,左侧或右侧)中。在某些实施方式中,这可以通过用例如如上所述的额外像素将具有额外像素的较大图像呈现到帧缓冲器中来完成。然后可以扫描输出扩大的图像以产生具有例如如上所述的同步区域和/或其它外部信号的输出帧。
在这个实例中,同步行可能不再表示可见图像区域的终点,例如因为可见行由于活动图像区域中存在额外像素而只占据输出帧929的活动行的部分。为了开始压缩程序(前提是传送图像),视频采集装置可以被配置来通过计数传送到其像素或行来确定可见图像区域的终点。然后可以在传送输出帧的整个活动区域之前尽快压缩(937)视频信号,且如同之前一样可以通过网络906传输已编码的帧以用于解码(941)且进行远程显示(943)。
结论
应注意,已参考云端游戏作为其中可以期望需要更加快速地传送视频帧中的可见图像的特定实例描述了本公开内容的各个方面,但是本公开内容的实施方式并无如此限制。为了其它目的,本公开内容的实施方式可以提供从任何视频源到视频接收器的减小的传送延迟,这可能并未涉及云端计算或云端游戏。
应注意,本公开内容的实施方式可以使用多种音频和/或视频标准中的任何一个,包括HDMI、S-视频、分量视频、复合视频、显示器端口、VGA、DVI和其它视频或A/V通信接口标准。
虽然上文是本发明的优选实施方案的完整描述,但是也可使用各种替代、修改和等效物。因此,不应参考上述描述来确定本发明的范围,取而代之,应参考随附权利要求连同其全部等效范围来确定本发明的范围。本文描述的任何特征(无论是否优选)均可以与本文描述的任何其它特征(无论是否优选)组合。在下列权利要求中,除非另有明确说明,否则不定冠词“一个(a/an)”是指冠词后面的物品中的一个或多个的数量。随附权利要求不应被解译为包括方法加功能限制,除非这样的限制使用短语“用于…的方法”在给定的权利要求中加以明确引用。
Claims (17)
1.一种方法,其包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,
其中所述源视频帧呈所述活动显示区域中具有两个图像区域的立体3D格式,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素插入到所述两个图像区域之一中且用所述额外像素填充所述两个图像区域中的另一个。
2.根据权利要求1所述的方法,其还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧。
3.根据权利要求1所述的方法,其还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧;
将所述输出视频帧传送到视频采集装置;
用所述视频采集装置采集所述输出视频帧中的所述可见图像像素,同时忽略来自所述采集的所述额外像素。
4.根据权利要求1所述的方法,其还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧;
将所述输出视频帧传送到视频采集装置;
用所述视频采集装置采集所述输出视频帧中的所述可见图像像素,同时忽略来自所述采集的所述额外像素;
在已经采集所述可见图像像素之后压缩所述第一视频帧图像,在已经传送所述输出视频帧的整个活动显示区域之前开始所述压缩。
5.根据权利要求1所述的方法,
其中所述两个图像区域对应于左侧图像区域和右侧图像区域。
6.根据权利要求1所述的方法,
其中所述源视频帧呈所述活动显示区域中具有两个图像区域的顶部和底部立体3D格式,所述两个图像区域分别对应于布置在所述活动显示区域的顶部和所述活动显示区域的底部中的左侧图像区域和右侧图像区域;
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素插入到所述活动显示区域的所述顶部图像中且用所述额外像素填充所述活动显示区域的底部。
7.根据权利要求1所述的方法,
其中所述两个图像区域对应于左侧图像区域和右侧图像区域,所述两个图像区域中的每个具有大于所述第一视频帧图像的所述第一显示分辨率的显示分辨率。
8.一种方法,其包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,
其中所述第一视频帧图像具有多个可见图像行,每个所述可见图像行具有多个所述可见图像像素;
其中所述源视频帧是呈所述活动显示区域界定单色图像区域的单色格式;
其中所述单色图像区域具有多个活动行,每个所述活动行具有多个活动像素;
其中所述单色图像区域中的活动行的数量大于所述第一视频帧图像中的可见图像行的数量;
其中每个所述活动行中的活动像素的数量大于每个所述可见图像行中的可见图像像素的数量;
其中所述插入所述第一视频帧图像包括用所述可见图像像素填充所述活动行中的至少一些,使得所述活动行中的至少一些每个包括来自一个以上所述可见图像行的所述可见图像像素。
9.根据权利要求8所述的方法,
其中所述源视频帧具有定义的像素传送序列,
其中所述插入所述第一视频帧图像包括将所述多个额外像素中的至少一些插入在所述序列中的所述多个可见图像像素之后的位置处。
10.一种系统,其包括:
第一处理单元;和
第一存储器单元,其操作地连接到所述第一处理单元,
其中所述系统被配置来执行方法,所述方法包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,其中所述源视频帧呈所述活动显示区域中具有两个图像区域的立体3D格式,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素插入到所述两个图像区域之一中且用所述额外像素填充所述两个图像区域中的另一个。
11.根据权利要求10所述的系统,所述方法还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧。
12.根据权利要求10所述的系统,其还包括:
视频采集装置,其通过视频通信接口操作地连接到所述第一处理单元,所述方法还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧;
将所述输出视频帧传送到所述视频采集装置;
用所述视频采集装置采集所述输出视频帧中的所述可见图像像素,同时忽略来自所述采集的所述额外像素。
13.根据权利要求10所述的系统,其还包括:
视频采集装置,其通过视频通信接口操作地连接到所述第一处理单元;和
计算机系统,其具有操作地连接到所述视频采集装置的第二处理单元和第二存储器单元,所述方法还包括:
通过将多个同步信号添加到所述源视频帧形成输出视频帧;
将所述输出视频帧传送到所述视频采集装置;
用所述视频采集装置采集所述输出视频帧中的所述可见图像像素;
在采集所述可见图像像素之后用所述计算机系统压缩所述第一视频帧图像,在传送所述输出视频帧的整个活动显示区域之前开始所述压缩。
14.根据权利要求10所述的系统,
其中所述第一处理单元是被配置来以所述第二显示分辨率呈现所述视频帧图像的图形处理单元(GPU)。
15.一种在其中具体实施处理器可执行指令的非暂时计算机可读介质,其中由处理器执行所述指令造成所述处理器执行方法,所述方法包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,
其中所述源视频帧呈所述活动显示区域中具有两个图像区域的立体3D格式,
其中所述插入所述第一视频帧图像包括将所述多个可见图像像素插入到所述两个图像区域之一中且用所述额外像素填充所述两个图像区域中的另一个。
16.一种其中存储有处理器可执行指令的非暂时计算机可读介质,其中所述指令由处理器运行时使得所述处理器执行以下方法,所述方法包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,
其中所述第一视频帧图像具有多个可见图像行,每个所述可见图像行具有多个所述可见图像像素;
其中所述源视频帧是呈所述活动显示区域界定单色图像区域的单色格式;
其中所述单色图像区域具有多个活动行,每个所述活动行具有多个活动像素;
其中所述单色图像区域中的活动行的数量大于所述第一视频帧图像中的可见图像行的数量;
其中每个所述活动行中的活动像素的数量大于每个所述可见图像行中的可见图像像素的数量;
其中所述插入所述第一视频帧图像包括用所述可见图像像素填充所述活动行中的至少一些,使得所述活动行中的至少一些每个包括来自一个以上所述可见图像行的所述可见图像像素。
17.一种系统,包括:
第一处理单元;和
第一存储器单元,其操作地连接到所述第一处理单元,
其中所述系统被配置来执行方法,所述方法包括:
对于具有第一显示分辨率的多个可见图像像素的第一视频帧图像,将所述第一视频帧图像插入到具有大于所述第一显示分辨率的第二显示分辨率的源视频帧中,其中所述插入所述第一视频帧图像包括将所述多个可见图像像素和多个额外像素插入到所述源视频帧的活动显示区域中,其中所述额外像素是不可见像素,
其中所述第一视频帧图像具有多个可见图像行,每个所述可见图像行具有多个所述可见图像像素;
其中所述源视频帧是呈所述活动显示区域界定单色图像区域的单色格式;
其中所述单色图像区域具有多个活动行,每个所述活动行具有多个活动像素;
其中所述单色图像区域中的活动行的数量大于所述第一视频帧图像中的可见图像行的数量;
其中每个所述活动行中的活动像素的数量大于每个所述可见图像行中的可见图像像素的数量;
其中所述插入所述第一视频帧图像包括用所述可见图像像素填充所述活动行中的至少一些,使得所述活动行中的至少一些每个包括来自一个以上所述可见图像行的所述可见图像像素。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/135,374 US9497358B2 (en) | 2013-12-19 | 2013-12-19 | Video latency reduction |
US14/135,374 | 2013-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104735462A CN104735462A (zh) | 2015-06-24 |
CN104735462B true CN104735462B (zh) | 2019-07-12 |
Family
ID=53401491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602456.5A Active CN104735462B (zh) | 2013-12-19 | 2014-10-31 | 视频延时减小 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9497358B2 (zh) |
EP (1) | EP3085078B1 (zh) |
JP (1) | JP6230714B2 (zh) |
KR (1) | KR101764766B1 (zh) |
CN (1) | CN104735462B (zh) |
TW (1) | TWI571106B (zh) |
WO (1) | WO2015094475A1 (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990446B2 (en) | 2012-10-04 | 2015-03-24 | Sony Computer Entertainment America, LLC | Method and apparatus for decreasing presentation latency |
US10353633B2 (en) | 2013-12-19 | 2019-07-16 | Sony Interactive Entertainment LLC | Mass storage virtualization for cloud computing |
US9332216B2 (en) | 2014-03-12 | 2016-05-03 | Sony Computer Entertainment America, LLC | Video frame rate compensation through adjustment of vertical blanking |
US9728166B2 (en) * | 2015-08-20 | 2017-08-08 | Qualcomm Incorporated | Refresh rate matching with predictive time-shift compensation |
US10744407B2 (en) | 2015-09-08 | 2020-08-18 | Sony Interactive Entertainment LLC | Dynamic network storage for cloud console server |
US10652553B2 (en) * | 2016-12-07 | 2020-05-12 | Qualcomm Incorporated | Systems and methods of signaling of regions of interest |
US11020658B2 (en) | 2019-03-20 | 2021-06-01 | Electronic Arts Inc. | System for testing command execution latency within a video game |
US10963365B2 (en) * | 2019-03-20 | 2021-03-30 | Electronic Arts Inc. | System for testing command execution latency within an application |
US11057634B2 (en) * | 2019-05-15 | 2021-07-06 | Disney Enterprises, Inc. | Content adaptive optimization for neural data compression |
US10965841B2 (en) * | 2019-07-08 | 2021-03-30 | Novatek Microelectronics Corp. | Receiving device, video recording system and method for reducing video latency in video recording system |
US11344799B2 (en) | 2019-10-01 | 2022-05-31 | Sony Interactive Entertainment Inc. | Scene change hint and client bandwidth used at encoder for handling video frames after a scene change in cloud gaming applications |
US11539960B2 (en) | 2019-10-01 | 2022-12-27 | Sony Interactive Entertainment Inc. | Game application providing scene change hint for encoding at a cloud gaming server |
US11446572B2 (en) * | 2019-10-01 | 2022-09-20 | Sony Interactive Entertainment Inc. | Early scan-out of server display buffer at flip-time for cloud gaming applications |
US11110349B2 (en) | 2019-10-01 | 2021-09-07 | Sony Interactive Entertainment Inc. | Dynamic client buffering and usage of received video frames for cloud gaming |
US11865434B2 (en) | 2019-10-01 | 2024-01-09 | Sony Interactive Entertainment Inc. | Reducing latency in cloud gaming applications by overlapping receive and decode of video frames and their display at the client |
CN115151969A (zh) * | 2020-02-21 | 2022-10-04 | 高通股份有限公司 | 用以补偿被延迟的图形处理单元渲染时间的被减少的显示处理单元传送时间 |
CN115119049B (zh) * | 2022-06-22 | 2023-10-17 | 深圳市瑞云科技有限公司 | 一种支持云游戏一起玩的动态编码方法 |
US11776507B1 (en) | 2022-07-20 | 2023-10-03 | Ivan Svirid | Systems and methods for reducing display latency |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5034817A (en) * | 1990-02-28 | 1991-07-23 | The United States Of America As Represented By The Secretary Of The Navy | Reconfigurable video line digitizer and method for storing predetermined lines of a composite video signal |
CN101448108A (zh) * | 2007-11-26 | 2009-06-03 | 联发科技股份有限公司 | 图像处理装置与相关方法 |
CN101548277A (zh) * | 2006-09-18 | 2009-09-30 | 外星人实验室公司 | 多并行处理器的计算机图形系统 |
CN101946500A (zh) * | 2007-12-17 | 2011-01-12 | 斯坦·考塞瑞德 | 实时视频包含系统 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5502462A (en) | 1993-11-01 | 1996-03-26 | The 3Do Company | Display list management mechanism for real-time control of by-the-line modifiable video display system |
US5969828A (en) * | 1997-03-12 | 1999-10-19 | Minolta Co., Ltd. | Digital copying machine, image reading device used in said digital copying machine, and image processing method used in these devices |
US6874060B2 (en) | 2001-12-07 | 2005-03-29 | Dell Products L.P. | Distributed computer system including a virtual disk subsystem and method for providing a virtual local drive |
US7106352B2 (en) * | 2003-03-03 | 2006-09-12 | Sun Microsystems, Inc. | Automatic gain control, brightness compression, and super-intensity samples |
JP3799048B2 (ja) * | 2004-02-27 | 2006-07-19 | シャープ株式会社 | 映像表示装置及び映像表示方法 |
US20060061517A1 (en) * | 2004-09-23 | 2006-03-23 | Jolly Paul A | Delivering pixels received at a lower data transfer rate over an interface that operates at a higher data transfer rate |
JP4557739B2 (ja) * | 2005-02-04 | 2010-10-06 | シャープ株式会社 | 映像変換装置、及び映像表示装置 |
KR100813961B1 (ko) * | 2005-06-14 | 2008-03-14 | 삼성전자주식회사 | 영상 수신장치 |
WO2007119236A2 (en) | 2006-04-13 | 2007-10-25 | Yosef Mizrachi | Method and apparatus for providing gaming services and for handling video content |
JP5239136B2 (ja) * | 2006-08-22 | 2013-07-17 | セイコーエプソン株式会社 | データ伝送方法、データ伝送システム、情報処理装置、データ伝送プログラム、外部装置 |
US8179388B2 (en) | 2006-12-15 | 2012-05-15 | Nvidia Corporation | System, method and computer program product for adjusting a refresh rate of a display for power savings |
JP4581012B2 (ja) | 2008-12-15 | 2010-11-17 | 株式会社東芝 | 電子機器、及び表示制御方法 |
US20100280817A1 (en) | 2009-04-30 | 2010-11-04 | Spansion Llc | Direct pointer access and xip redirector for emulation of memory-mapped devices |
US20110149032A1 (en) * | 2009-12-17 | 2011-06-23 | Silicon Image, Inc. | Transmission and handling of three-dimensional video content |
DE102009058795A1 (de) | 2009-12-18 | 2011-06-22 | Epcos Ag, 81669 | Piezoelektrisches Keramikmaterial, Verfahren zur Herstellung des piezoelektrischen Keramikmaterials, piezoelektrisches Vielschichtbauelement und Verfahren zur Herstellung des piezoelektrischen Vielschichtbauelements |
US8669993B2 (en) | 2010-01-11 | 2014-03-11 | Apple Inc. | User interface unit for fetching only active regions of a frame |
US8341363B2 (en) | 2010-05-03 | 2012-12-25 | Panzura, Inc. | Efficient cloud network attached storage |
JP2012039476A (ja) | 2010-08-09 | 2012-02-23 | Sony Corp | 送受信装置および送受信方法 |
KR101312268B1 (ko) * | 2010-12-24 | 2013-09-25 | 주식회사 케이티 | 클라우드 컴퓨팅 환경에서 게임 서비스 제공 방법, 클라우드 컴퓨팅 서버, 및 클라우드 컴퓨팅 시스템 |
PL2472879T3 (pl) | 2010-12-31 | 2014-03-31 | Advanced Digital Broadcast Sa | Sposób i system do określania typu ramki wideo |
US20120306926A1 (en) | 2011-06-06 | 2012-12-06 | Apple Inc. | Inline scaling unit for mirror mode |
US9165537B2 (en) * | 2011-07-18 | 2015-10-20 | Nvidia Corporation | Method and apparatus for performing burst refresh of a self-refreshing display device |
US8281288B1 (en) | 2011-10-20 | 2012-10-02 | Google Inc. | Integrated development environment with network-based compilation and sandboxed native machine-language capabilities |
US10319333B2 (en) * | 2012-09-26 | 2019-06-11 | Apple Inc. | Refresh rate matching for displays |
US20140281023A1 (en) * | 2013-03-18 | 2014-09-18 | Nvidia Corporation | Quality of service management server and method of managing quality of service |
US10353633B2 (en) | 2013-12-19 | 2019-07-16 | Sony Interactive Entertainment LLC | Mass storage virtualization for cloud computing |
-
2013
- 2013-12-19 US US14/135,374 patent/US9497358B2/en active Active
-
2014
- 2014-10-21 WO PCT/US2014/061636 patent/WO2015094475A1/en active Application Filing
- 2014-10-21 KR KR1020167016463A patent/KR101764766B1/ko active IP Right Grant
- 2014-10-21 JP JP2016541614A patent/JP6230714B2/ja active Active
- 2014-10-21 EP EP14871630.1A patent/EP3085078B1/en active Active
- 2014-10-22 TW TW103136466A patent/TWI571106B/zh active
- 2014-10-31 CN CN201410602456.5A patent/CN104735462B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5034817A (en) * | 1990-02-28 | 1991-07-23 | The United States Of America As Represented By The Secretary Of The Navy | Reconfigurable video line digitizer and method for storing predetermined lines of a composite video signal |
CN101548277A (zh) * | 2006-09-18 | 2009-09-30 | 外星人实验室公司 | 多并行处理器的计算机图形系统 |
CN101448108A (zh) * | 2007-11-26 | 2009-06-03 | 联发科技股份有限公司 | 图像处理装置与相关方法 |
CN101946500A (zh) * | 2007-12-17 | 2011-01-12 | 斯坦·考塞瑞德 | 实时视频包含系统 |
Also Published As
Publication number | Publication date |
---|---|
KR20160088926A (ko) | 2016-07-26 |
EP3085078A1 (en) | 2016-10-26 |
TWI571106B (zh) | 2017-02-11 |
US9497358B2 (en) | 2016-11-15 |
TW201540050A (zh) | 2015-10-16 |
WO2015094475A1 (en) | 2015-06-25 |
CN104735462A (zh) | 2015-06-24 |
EP3085078A4 (en) | 2017-11-22 |
JP2017505035A (ja) | 2017-02-09 |
EP3085078B1 (en) | 2023-09-20 |
JP6230714B2 (ja) | 2017-11-15 |
US20150181084A1 (en) | 2015-06-25 |
KR101764766B1 (ko) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104735462B (zh) | 视频延时减小 | |
CN104917990B (zh) | 通过调整垂直消隐进行视频帧速率补偿 | |
US9940898B2 (en) | Variable refresh rate video capture and playback | |
US7450129B2 (en) | Compression of streams of rendering commands | |
GB2538797B (en) | Managing display data | |
WO2019196589A1 (zh) | 图像处理方法、设备、装置、图像贴合方法、设备、显示方法、装置及计算机可读介质 | |
US20240177354A1 (en) | 3d object streaming method, device, and non-transitory computer-readable recording medium | |
CN112565883A (zh) | 一种用于虚拟现实场景的视频渲染处理系统和计算机设备 | |
WO2009108353A1 (en) | 3d graphics acceleration in remote multi-user environment | |
CN109587118B (zh) | Android网游的分布式支持多终端和多网络的系统 | |
WO2023093792A1 (zh) | 一种图像帧的渲染方法及相关装置 | |
CN111683077A (zh) | 虚拟现实设备及数据的处理方法 | |
CN111064985A (zh) | 一种实现视频串流的系统、方法及装置 | |
CN113538694A (zh) | 一种平面重建方法及显示设备 | |
CN116939297A (zh) | 一种动捕设备数据统一驱动方法及系统 | |
TW202433242A (zh) | 用於虛擬表示呼叫的通信框架 | |
CN112752131A (zh) | 弹幕信息的显示方法和装置、存储介质及电子装置 | |
JP2011258153A (ja) | 立体視用画像生成装置および立体視用画像生成方法、制御プログラム、可読記憶媒体 |
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 |