CN116348184A - 游戏应用程序中利用基于深度学习的预测的延迟管理 - Google Patents
游戏应用程序中利用基于深度学习的预测的延迟管理 Download PDFInfo
- Publication number
- CN116348184A CN116348184A CN202180069046.7A CN202180069046A CN116348184A CN 116348184 A CN116348184 A CN 116348184A CN 202180069046 A CN202180069046 A CN 202180069046A CN 116348184 A CN116348184 A CN 116348184A
- Authority
- CN
- China
- Prior art keywords
- frame
- action
- predicted
- time
- actual
- 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
- 238000013135 deep learning Methods 0.000 title description 3
- 230000009471 action Effects 0.000 claims abstract description 247
- 238000000034 method Methods 0.000 claims abstract description 155
- 238000013528 artificial neural network Methods 0.000 claims abstract description 84
- 230000002123 temporal effect Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 37
- 238000012549 training Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 5
- 238000004378 air conditioning Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 73
- 239000010410 layer Substances 0.000 description 30
- 238000009877 rendering Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101000674728 Homo sapiens TGF-beta-activated kinase 1 and MAP3K7-binding protein 2 Proteins 0.000 description 2
- 101000674732 Homo sapiens TGF-beta-activated kinase 1 and MAP3K7-binding protein 3 Proteins 0.000 description 2
- 102100021227 TGF-beta-activated kinase 1 and MAP3K7-binding protein 2 Human genes 0.000 description 2
- 102100021229 TGF-beta-activated kinase 1 and MAP3K7-binding protein 3 Human genes 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- VBRBNWWNRIMAII-WYMLVPIESA-N 3-[(e)-5-(4-ethylphenoxy)-3-methylpent-3-enyl]-2,2-dimethyloxirane Chemical compound C1=CC(CC)=CC=C1OC\C=C(/C)CCC1C(C)(C)O1 VBRBNWWNRIMAII-WYMLVPIESA-N 0.000 description 1
- 101000674731 Homo sapiens TGF-beta-activated kinase 1 and MAP3K7-binding protein 1 Proteins 0.000 description 1
- 241001619823 Syzygium levinei Species 0.000 description 1
- 102100021228 TGF-beta-activated kinase 1 and MAP3K7-binding protein 1 Human genes 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008485 antagonism Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an MPEG-stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/358—Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/67—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Abstract
一种用于减少游戏应用程序中的延迟的方法,该方法包括:获得(305B)第一帧,所述第一帧表示在游戏应用程序中由用户执行的第一动作;获得(500)表示在该游戏应用程序中由该用户执行的第二动作的信息,所述第二动作在该第一动作之后;以及,使用神经网络从至少包括该第一帧和表示第二动作的该信息的数据预测(500)对应于该第二动作的第二帧。
Description
1.技术领域
本实施方案中的至少一个实施方案整体涉及一种用于减少游戏应用程序中的延迟的方法和装置。
2.背景技术
云游戏允许将游戏渲染过程部分地卸载到位于云中的一些远程游戏服务器。
图1示意性地表示云游戏基础结构。基本上,需要昂贵且耗电的设备的游戏引擎10和3D图形渲染11由云中的服务器1实现。然后用规则视频编码器12将生成的帧传统地编码在视频流中,并经由网络3将其发送到用户游戏系统2。然后,在用户游戏系统2侧上用规则/标准视频解码器20对视频流进行解码,用于在显示设备上渲染。附加的轻质模块21负责管理玩家交互命令(即,负责注册用户动作)。
游戏应用程序中用户舒适度的一个关键因素是被称为运动到光子(motion-to-photon)的延迟,即用户动作(运动)与该动作的结果在显示设备上的显示(光子)之间的延迟。
图2示意性地描述了在传统游戏应用程序中的典型运动到光子路径。
有关图2所描述的步骤全部由用户游戏系统(诸如PC或控制台)实现。这里我们假设用户游戏系统包括输入设备(诸如游戏手柄)和显示设备。
在步骤200中,由输入设备对用户动作进行注册并且将其发送到主处理模块。
在步骤202中,游戏引擎使用所注册的动作来计算下一个游戏状态(或下一些游戏状态)。游戏状态包括用户状态(位置等),以及所有其他实体状态,所有其他实体状态可以是由游戏引擎计算的或者可以是在多玩家游戏的情况下的外部状态。
在步骤203中,从游戏状态计算帧渲染。在步骤206中,首先将所得的帧放置于视频缓冲器中,然后在步骤207中,将视频缓冲器的内容显示在显示设备上。
上述步骤中的每个步骤都引入了处理延迟。在图2中,带有点背景的框表示由于硬件计算而引入延迟的步骤。一般来讲,该延迟是固定的、小的并且不会轻易改变。带有白色背景的框表示由于软件计算而引入延迟的步骤。一般来讲,该延迟是较长的并且能够被动态地调适。
总之,运动到光子的延迟通常低于“100”ms。通常,当延迟高于“200”ms时,用户不适开始。需注意,对于基于使用头戴式耳机可视化的虚拟现实的游戏而言,通常需要较低的延迟以获得良好的用户舒适度。
图3示意性地描述了云游戏应用程序中的典型运动到光子路径。
有关图3所描述的步骤不再由单个设备实现,而是如图1所示,需要服务器1与用户游戏系统2(即,客户端系统)之间的协作。
步骤200由用户游戏系统2执行。
在步骤301中,经由网络3将表示用户动作的信息传输到服务器1。
游戏引擎202步骤和渲染203步骤由服务器1实现。
渲染之后在步骤304中由视频编码器12进行视频编码。
然后在步骤305中,由视频编码器12生成的视频流经由网络3传输到用户游戏系统2,并且在步骤306中由视频解码器20解码。
与图2的过程相比,引入了附加的延迟:
·传输延迟。传输延迟取决于网络的连接质量。该延迟的范围可以从几ms到几“100”ms。
·编码器延迟:在此类框架中,编码器典型地用于低延迟配置中,即只要帧到达,就对其进行编码并且在视频流中进行发送。当实时视频编码器在硬件中实现时,该视频编码器通常在几ms内对帧进行编码。
·解码器延迟:典型的视频解码器可以在几ms内对帧进行解码。
可以看出,附加的延迟(特别是传输延迟)可能潜在地增加全局延迟,使得所述全局延迟对于用户而言变得无法接受。此外,由于网络状态改变,延迟方差也增加了。
希望提出允许克服上述问题的解决方案。特别地,希望提出一种允许减少游戏应用程序中的延迟的方法和装置。
3.发明内容
在第一方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的方法,该方法包括:获得第一帧,所述第一帧表示在游戏应用程序中由用户执行的第一动作;获得表示在游戏应用程序中由用户执行的第二动作的信息,所述第二动作在第一动作之后;并且,使用神经网络从至少包括第一帧和表示第二动作的信息的数据预测对应于第二动作的第二帧。
由于该方法,延迟减少了。
在一个实施方案中,该方法还包括显示第二帧。
在一个实施方案中,该方法还包括连同第一帧一起获得元数据,所述元数据至少表示在对应于第一动作的时间的游戏的状态和/或第一动作,使用神经网络从元数据进一步预测第二帧。
在一个实施方案中,表示游戏的状态的元数据包括表示用户的信息和/或表示动态对象和/或游戏中的其他用户的信息。
在一个实施方案中,神经网络使用以下参数:使用在游戏应用程序的离线执行期间收集的表示帧、用户动作和游戏的状态的数据进行离线训练的;或者,使用在游戏应用程序的当前执行期间收集的表示帧、用户动作和游戏的状态的数据进行联机训练的;或者,使用参数在游戏应用程序的执行开始时进行初始化的,该参数是使用在游戏应用程序的离线执行期间收集的表示帧、用户动作和游戏的状态的数据进行离线训练的,并且然后使用在游戏应用程序的当前执行期间收集的表示帧、用户动作和游戏的状态的数据进行联机训练的。
在一个实施方案中,神经网络的参数的训练考虑到第一动作的发生与第一帧的获得之间的时间差。
在一个实施方案中,当对神经网络的参数进行离线训练时,训练多个参数集,每个参数集针对被称为离线时间差的不同的时间差值进行训练,并且其中,在游戏应用程序的当前执行期间,该方法包括选择多个参数集中对应于最接近表示实际时间差的信息的离线时间差的参数集。
在一个实施方案中,神经网络的参数的训练使用损失函数,损失函数估计对应于由神经网络预测的第二动作的第二帧与由游戏应用程序生成的对应于相同的第二动作的实际帧之间的差,并且其中仅显示第二帧被称为显示的部分的子部分(),损失函数仅考虑该显示的部分。
在一个实施方案中,游戏应用程序是基于网络的游戏应用程序,其中游戏由经由网络与客户端系统通信的服务器管理,该方法由客户端系统执行,其中:
第一动作由用户在第一时间执行并且由客户端系统注册,并且将表示第一动作的信息传输到服务器;以及;通过对从服务器接收的视频流的一部分进行解码来获得第一帧和/或元数据。
在一个实施方案中,视频流的一部分包括表示与第一帧相关联的第一动作的元数据。
在一个实施方案中,表示第一动作的元数据表示第一动作被执行时的时间。
在一个实施方案中,元数据包括表示实际时间差的信息。
在一个实施方案中,元数据由SEI消息输送。
在一个实施方案中,第一帧对应于在第一时间之后的第二时间时用户的第二动作,该第二动作由服务器从表示第一动作的信息和表示在第一时间时的游戏应用程序的状态的信息来预测;并且该方法还包括:将第一帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从服务器接收对应于第二时间的帧,该帧被称为实际帧;并且,对实际帧进行解码并且用帧缓冲器中的实际帧的重建版本替换预测帧的重建版本。
在第二方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的方法,该方法包括:从客户端系统接收表示在游戏应用程序中由用户在第一时间执行的第一动作的信息;从表示第一动作的信息和表示在第一时间时游戏应用程序的状态的信息预测对应于第一时间之后的第二时间时的第二动作;生成对应于所述第二动作的帧,该帧被称为预测帧;对所述预测帧进行编码,并且将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;将所编码的预测帧传输到客户端系统;当接收到表示由用户在第二时间执行的动作的数据时,生成对应于第二时间的帧,该帧被称为实际帧;对实际帧进行编码并且用帧缓冲器中的实际帧的重建版本替换预测帧的重建版本。
在第三方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的设备,该设备包括电子电路,该电子电路适于:获得第一帧,所述第一帧表示在游戏应用程序中由用户执行的第一动作;获得表示在游戏应用程序中由用户执行的第二动作的信息,所述第二动作在第一动作之后;并且,使用神经网络从至少包括第一帧和表示第二动作的信息的数据预测对应于第二动作的第二帧。
在一个实施方案中,该电子电路还适于控制第二帧的显示。
在一个实施方案中,该电子电路还适于连同第一帧一起获得元数据,所述元数据至少表示在对应于第一动作的时间时游戏的状态和/或表示第一动作,使用神经网络从元数据进一步预测第二帧。
在一个实施方案中,表示游戏的状态的元数据包括表示用户的信息和/或表示动态对象和/或游戏中的其他用户的信息。
在一个实施方案中,神经网络使用以下参数:使用在游戏应用程序的离线执行期间收集的表示帧、用户动作和游戏的状态的数据进行离线训练的;或者,使用在游戏应用程序的当前执行期间收集的表示帧、用户动作和游戏的状态的数据进行联机训练的;或者,使用参数在游戏应用程序的执行开始时进行初始化的,该参数是使用在游戏应用程序的离线执行期间收集的表示帧、用户动作和游戏的状态的数据进行离线训练的,并且然后使用在游戏应用程序的当前执行期间收集的表示帧、用户动作和游戏的状态的数据进行联机训练的。
在一个实施方案中,神经网络的参数的训练考虑到第一动作的发生与第一帧的获得之间的时间差。
在一个实施方案中,当对神经网络的参数进行离线训练时,训练多个参数集,每个参数集针对被称为离线时间差的不同的时间差值进行训练,并且其中,在游戏应用程序的当前执行期间,该电子电路还适于选择多个参数集中对应于最接近表示实际时间差的信息的离线时间差的参数集。
在一个实施方案中,神经网络的参数的训练使用损失函数,损失函数估计对应于由神经网络预测的第二动作的第二帧与由游戏应用程序生成的对应于相同的第二动作的实际帧之间的差,并且其中仅显示第二帧被称为显示的部分的子部分(),损失函数仅考虑该显示的部分。
在一个实施方案中,游戏应用程序是基于网络的游戏应用程序,其中游戏由经由网络与设备通信的服务器管理,该电子电路还适于:注册第一动作,所述第一动作由用户在第一时间执行;将表示第一动作的信息传输到服务器;以及;通过对从服务器接收的视频流的一部分进行解码来获得第一帧和/或元数据。
在一个实施方案中,视频流的一部分包括表示与第一帧相关联的第一动作的元数据。
在一个实施方案中,表示第一动作的元数据表示第一动作被执行时的时间。
在一个实施方案中,元数据包括表示实际时间差的信息。
在一个实施方案中,元数据由SEI消息输送。
在一个实施方案中,第一帧对应于在第一时间之后的第二时间时用户的第二动作,该第二动作由服务器从表示第一动作的信息和表示在第一时间时的游戏应用程序的状态的信息来预测;并且该电子电路还适于:将第一帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从服务器接收对应于第二时间的帧,该帧被称为实际帧;并且,对实际帧进行解码并且用帧缓冲器中的实际帧的重建版本替换预测帧的重建版本。
在第四方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的设备,该设备包括电子电路,该电子电路适于:从客户端系统接收表示在游戏应用程序中由用户在第一时间执行的第一动作的信息;从表示第一动作的信息和表示在第一时间时游戏应用程序的状态的信息预测对应于第一时间之后的第二时间时的第二动作;生成对应于所述第二动作的帧,该帧被称为预测帧;对所述预测帧进行编码,并且将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;将所编码的预测帧传输到客户端系统;当接收到表示由用户在第二时间执行的动作的数据时,生成对应于第二时间的帧,该帧被称为实际帧;对实际帧进行编码并且用帧缓冲器中的实际帧的重建版本替换预测帧的重建版本。
在第五方面,本发明实施方案中的一个或多个实施方案提供了一种装置,该装置包括根据第三方面或第四方面所述的设备。
在第六方面,本发明实施方案中的一个或多个实施方案提供了一种系统,该系统包括客户端系统和服务器,该客户端系统包括根据第三方面所述的设备,该服务器包括根据第四方面所述的设备。
在第七方面,本发明实施方案中的一个或多个实施方案提供了一种信号,该信号由第二方面的方法或由第四方面的设备生成。
在第八方面,本发明实施方案中的一个或多个实施方案提供了一种计算机程序,该计算机程序包括用于实现根据第一方面或第二方面所述的方法的程序代码指令。
在第九方面,本发明实施方案中的一个或多个实施方案提供了一种非暂态信息存储介质,该非暂态信息存储介质存储用于实现根据第一方面或第二方面所述的方法的程序代码指令。
在第十方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的方法,该方法包括:
从客户端系统接收表示在游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的信息和表示在第一时间时游戏应用程序的状态的信息预测对应于第一时间之后的第二时间时的第二动作;
生成对应于所述第二动作的帧,该帧被称为预测帧;
对所述预测帧进行编码,并且如果所述预测帧可以用作参考帧,则将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输到客户端系统;
当接收到表示由用户在第二时间执行的动作的数据时,生成对应于第二时间的帧,该帧被称为实际帧;以及,
对实际帧进行编码并且将实际帧的重建版本存储在帧缓冲器中来取代预测帧的重建版本。
在一个实施方案中,与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
在一个实施方案中,将所编码的实际帧传输到客户端系统。
在一个实施方案中,与所编码的实际帧相关联的语法元素发信号通知不允许该实际帧的显示。
在一个实施方案中,该方法还包括在将所述实际帧存储在帧缓冲器中之后,使用用于时间预测的帧缓冲器对实际帧之后的至少一个预测帧进行重新编码。
在一个实施方案中,每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
在一个实施方案中,使用多层视频编码器对帧进行编码,在第一层中对实际帧进行编码,并且在至少一个第二层中对预测帧进行编码。
在一个实施方案中,每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示帧的解码次序的相同帧标识的语法元素相关联。
在第十一方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的方法,该方法包括:
将表示在游戏应用程序中由用户在第一时间执行的第一动作的信息传输到服务器;
从服务器接收对应于用户在第一时间之后的第二时间时的第二动作的帧,该帧被称为预测帧,所述第二动作已经由服务器从表示第一动作的信息和表示在第一时间时的游戏应用程序的状态的信息进行预测;
对所述预测帧进行解码,并且如果预测帧可以用于时间预测,则将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从服务器接收对应于第二时间的帧,该帧被称为实际帧;以及,
对实际帧进行解码并且将实际帧的重建版本存储在帧缓冲器中来取代预测帧的重建版本。
在一个实施方案中,与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
在一个实施方案中,与所编码的实际帧相关联的语法元素发信号通知不允许该实际帧的显示。
在一个实施方案中,该方法还包括:接收存储在帧缓冲器中的至少一个预测帧的新版本,所述新版本对应于使用帧缓冲器对所述预测帧的重新编码,在该帧缓冲器中,至少一个前述预测帧已经由对应的实际帧替换,并且由新版本替换存储在帧缓冲器中的预测帧的重建版本。
在一个实施方案中,每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
在一个实施方案中,实际帧形成多层视频编码的第一层,并且预测帧形成多层视频编码的至少一个第二层。
在一个实施方案中,每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示帧的解码次序的相同帧标识的语法元素相关联。
在一个实施方案中,该方法包括:
获得表示在游戏应用程序中由用户在第二时间实际执行的第三动作的信息;
使用神经网络从至少包括对应于第二动作的预测帧和表示第三动作的信息的数据预测对应于第三动作的帧,该帧被称为最终帧。
在一个实施方案中,显示预测帧或最终帧。
在第十二方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的设备,该设备包括电子电路,该电子电路适于:
从客户端系统接收表示在游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的信息和表示在第一时间时游戏应用程序的状态的信息预测对应于第一时间之后的第二时间时的第二动作;
生成对应于所述第二动作的帧,该帧被称为预测帧;
对所述预测帧进行编码,并且如果所述预测帧可以用作参考帧,则将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输到客户端系统;
当接收到表示由用户在第二时间执行的动作的数据时,生成对应于第二时间的帧,该帧被称为实际帧;以及,
对实际帧进行编码并且将实际帧的重建版本存储在帧缓冲器中来取代预测帧的重建版本。
在一个实施方案中,与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
在一个实施方案中,将所编码的实际帧传输到客户端系统。
在一个实施方案中,与所编码的实际帧相关联的语法元素发信号通知不允许该实际帧的显示。
在一个实施方案中,该电子电路还适于在将所述实际帧存储在帧缓冲器中之后,使用用于时间预测的帧缓冲器对实际帧之后的至少一个预测帧进行重新编码。
在一个实施方案中,每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
在一个实施方案中,使用多层视频编码器对帧进行编码,在第一层中对实际帧进行编码,并且在至少一个第二层中对预测帧进行编码。
在一个实施方案中,每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示帧的解码次序的相同帧标识的语法元素相关联。
在第十三方面,本发明实施方案中的一个或多个实施方案提供了一种用于减少游戏应用程序中的延迟的设备,该设备包括电子电路,该电子电路适于:
将表示在游戏应用程序中由用户在第一时间执行的第一动作的信息传输到服务器;
从服务器接收对应于用户在第一时间之后的第二时间时的第二动作的帧,该帧被称为预测帧,所述第二动作已经由服务器从表示第一动作的信息和表示在第一时间时的游戏应用程序的状态的信息进行预测;
对所述预测帧进行解码,并且如果预测帧可以用于时间预测,则将预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从服务器接收对应于第二时间的帧,该帧被称为实际帧;以及,
对实际帧进行解码并且将实际帧的重建版本存储在帧缓冲器中来取代预测帧的重建版本。
在一个实施方案中,与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
在一个实施方案中,与所编码的实际帧相关联的语法元素发信号通知不允许该实际帧的显示。
在一个实施方案中,该电子电路还适于接收存储在帧缓冲器中的至少一个预测帧的新版本,所述新版本对应于使用帧缓冲器对所述预测帧的重新编码,在该帧缓冲器中,至少一个前述预测帧已经由对应的实际帧替换,并且用于由新版本替换存储在帧缓冲器中的预测帧的重建版本。
在一个实施方案中,每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
在一个实施方案中,实际帧形成多层视频编码的第一层,并且预测帧形成多层视频编码的至少一个第二层。
在一个实施方案中,每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示帧的解码次序的相同帧标识的语法元素相关联。
在一个实施方案中,该电子电路还适于:
获得表示在游戏应用程序中由用户在第二时间实际执行的第三动作的信息;
使用神经网络从至少包括对应于第二动作的预测帧和表示第三动作的信息的数据预测对应于第三动作的帧,该帧被称为最终帧。
在一个实施方案中,该电子电路还适于控制预测帧或最终帧的显示。
在第十四方面,本发明实施方案中的一个或多个实施方案提供了一种装置,该装置包括根据第十二方面或第十三方面所述的设备。
在第十五方面,本发明实施方案中的一个或多个实施方案提供了一种系统,该系统包括服务器和客户端系统,该服务器包括根据第十二方面所述的设备,该客户端系统包括根据第十三方面所述的设备。
在第十六方面,本发明实施方案中的一个或多个实施方案提供了一种信号,该信号由第十方面的方法或由第十二方面的设备生成。
在第十七方面,本发明实施方案中的一个或多个实施方案提供了一种计算机程序,该计算机程序包括用于实现第十方面或第十一方面的方法的程序代码指令。
在第十八方面,本发明实施方案中的一个或多个实施方案提供了一种非暂态信息存储介质,该非暂态信息存储介质存储用于实现第十方面或第十一方面的方法的程序代码指令。
4.附图说明
图1A示意性地表示云游戏基础结构;
图1B示意性地示出了能够实现各种方面和实施方案的处理模块的硬件架构的示例;
图1C示出了在其中实现各种方面和实施方案的服务器的示例的框图;
图1D示出了在其中实现各种方面和实施方案的用户游戏系统的示例的框图;
图2示意性地描述了传统游戏应用程序中的典型运动到光子路径;
图3示意性地描述了云游戏应用程序中的典型运动到光子路径;
图4A和图4B分别表示在没有状态预测和有状态预测的情况下执行图2的方法的示例;
图5示意性地示出了用于减少云游戏应用程序中的延迟的方法的第一实施方案的示例;
图6示意性地示出了神经网络的简化视图;
图7示意性地示出了用于减少云游戏应用程序中的延迟的方法的第二实施方案的示例;
图8示意性地示出了用于减少云游戏应用程序中的延迟的方法的第三实施方案的示例;以及,
图9示意性地示出了用于减少独立游戏应用程序中的延迟的方法的实施方案的示例。
5.具体实施方式
各种方法解决了过去延迟减少的问题。这些方法可被分为两类:
·基于状态预测的方法;以及,
·基于近似渲染的方法。
基于状态预测的方法(诸如基于扩展卡尔曼滤波器(EKF)或基于粒子滤波器的方法)在于预测游戏的未来状态以便在游戏的当前实际状态之前计算渲染。在图2的过程中,引入了状态预测201的可选步骤。
图4A和图4B分别表示在没有状态预测步骤201和有状态预测步骤的情况下执行图2的方法的示例。
在图4A中,在时间t=0,用户例如按下输入设备上的向前按钮。该动作被解释为速度v为“1”。从速度v=1和先前位置x0=0计算新位置。现在新位置是x1=1。从该新位置,执行渲染并且将其发送到显示设备。在时间t=3,用户可以看到其动作的结果,其中延迟为“3”(从t=0到t=3)。最佳地,在没有任何延迟的情况下,用户会在t=0时看到带有位置“0”的帧,在t=1时看到带有位置“1”的帧,等等。
在图4B中,在时间t=0,用户按下输入设备上的向前按钮。该动作被解释为速度v为“1”。从速度v=1和先前位置x0=0计算新的“实际”位置。现在新的“实际”位置是x1=1。使用函数f(),从实际位置和其它当前状态信息(例如这里是速度)计算预测位置(步骤201)。预测位置旨在预测在时间“t”=3的位置,而不是仅使用当前状态。这里,预测位置是x1’=3。从预测位置,执行渲染并且将其发送到显示器。在时间t=3,用户可以看到其动作的结果,其中延迟为“3”(从t=0到t=3),但状态预测“擦除”该延迟并且用户在时间t=3看到其动作的结果(这里假设状态预测因子正确地预测了状态演化)。最佳地,如果状态预测因子是“完美的”,则用户将在t=0时看到带有位置“0”的帧,在t=1时看到带有位置“1”的帧,等等。在实施过程中,函数f()基于当前状态值和用户运动模型的组合。典型示例在于使用卡尔曼滤波来预测此类运动。在实施过程中,使用更复杂的预测因子(模型预测控制)或ad-hoc模型。近来,基于深度学习的方法允许在视频帧预测上的显著改进。例如,在文档“C.Finn,I.Goodfellow and S.Levine,unsupervised learning for physicalinteraction through video prediction,in Advances in Neural InformationProcessing Systems,2012”(在下文中被称为FINN)中,建立神经网络(NN)以使用过去帧和动作/状态作为输入来预测视频序列的未来帧。FINN引入了一类视频预测模型,该类视频预测模型直接使用来自先前帧的外观信息来构建像素预测。此类模型通过首先预测图像片段的运动并且然后经由掩蔽合并这些预测来计算下一帧。
在图2中通过插入步骤204和步骤205来表示基于近似渲染的方法的示例。此类方法被称为时间扭曲或异步时间扭曲(ATW)。
步骤204在于获得比在步骤200中获得的用户动作更新的新用户动作。
在步骤205中,在步骤203处生成的帧(基于在步骤200处获得的用户动作)和该新动作用于创建将由步骤202和步骤203使用新用户动作渲染的帧的近似版本。快速渲染过程用于生成所述近似版本。典型的快速渲染过程在于仅从用户旋转运动计算扭曲图像(即,扭曲变换可以被计算为单应性变换)。更先进的方法还使用其他信息(深度图、动态对象位置等)来改善近似渲染。
图1B示意性地示出了能够实现由服务器1实现的游戏应用程序的步骤或由用户游戏系统2实现的游戏应用程序的步骤的处理模块100的硬件架构的示例。因此,该处理模块被包括在服务器1中或用户游戏系统2中。作为非限制性示例,处理模块100包括由通信总线1005连接的以下项:包含一个或多个微处理器的处理器或CPU(中央处理单元)1000、通用计算机、专用计算机和基于多核心架构的处理器;随机存取存储器(RAM)1001;只读存储器(ROM)1002;存储单元1003,该存储单元可包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器和/或光盘驱动器,或者存储介质读取器,诸如SD(安全数字)卡读取器和/或硬盘驱动器(HDD)和/或网络可访问存储设备;至少一个通信接口1004,该至少一个通信接口用于与其他模块、设备或装备交换数据。通信接口1004可包括但不限于被配置为通过通信信道传输和接收数据的收发器。通信接口1004可包括但不限于调制解调器或网卡。
如果处理模块100实现由服务器1执行的游戏应用程序的步骤,则通信接口1004启用例如处理模块100以从用户游戏系统接收表示用户动作的信息并且将嵌入所编码的帧和元数据的视频流传输到所述用户游戏系统。如果处理模块100实现由用户游戏系统2执行的游戏应用程序的步骤,则通信接口1004启用例如处理模块100以将表示用户动作的信息发送到服务器1并且接收包括所编码的帧和元数据的视频流。
处理器100能够执行从ROM1002、从外部存储器(未示出)、从存储介质或从通信网络加载到RAM1001中的指令。当处理模块100上电时,处理器1000能够从RAM1001读取指令并执行这些指令。这些指令形成计算机程序,该计算机程序导致例如由处理器1000实现由服务器1执行的游戏应用程序的步骤(如下文在图5、图7或图8的左侧部分中所描述的)或者由用户游戏系统2执行的游戏应用程序的步骤(如下文在图5、图7或图8的右侧部分中所述)。
所述游戏应用程序的全部或一些算法和步骤可通过由诸如DSP(数字信号处理器)或微控制器的可编程机器执行一组指令而以软件形式实现,或者可通过诸如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的机器或专用部件而以硬件形式实现。
图1D示出了在其中实现各种方面和实施方案的用户游戏系统2的示例的框图。用户游戏系统2可实施为包括以下描述的各种部件的设备,并且被配置为执行本文档中所述的方面和实施方案中的一者或多者。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机、智能电话、平板电脑、游戏控制台和头戴式显示器。用户游戏系统2的元件可单独地或组合地具体体现在单个集成电路(IC)、多个IC和/或分立部件中。例如,在至少一个实施方案中,用户游戏系统2包括实现关于用户游戏系统的游戏应用程序的步骤的一个处理模块100。在各种实施方案中,用户游戏系统2经由例如通信总线或通过专用输入端口和/或输出端口通信地耦接到一个或多个其他系统或其他电子设备。在各种实施方案中,用户游戏系统2被配置为实现本文档中所述的方面中的一个或多个方面。
对处理模块100的输入可通过如框101中所示的各种输入模块提供。此类输入模块包括但不限于:(i)射频(RF)模块,其接收例如由广播器通过空中传输的RF信号;(ii)分量(COMP)输入模块(或一组COMP输入模块);(iii)通用串行总线(USB)输入模块;和/或(iv)高清晰度多媒体接口(HDMI)输入模块。图1D中未示出的其他示例包括复合视频。
在各种实施方案中,框101的输入模块具有如本领域中已知的相关联的相应输入处理元件。例如,RF模块可与适用于以下的元件相关联:(i)选择所需的频率(也称为选择信号,或将信号频带限制到一个频带),(ii)下变频选择的信号,(iii)再次频带限制到更窄频带以选择(例如)在某些实施方案中可称为信道的信号频带,(iv)解调下变频和频带限制的信号,(v)执行纠错,以及(vi)解复用以选择所需的数据包流。各种实施方案的RF模块包括用于执行这些功能的一个或多个元件,例如频率选择器、信号选择器、频带限制器、信道选择器、滤波器、下变频器、解调器、纠错器和解复用器。RF部分可包括执行这些功能中的各种功能的调谐器,这些功能包括例如下变频接收信号至更低频率(例如,中频或近基带频率)或至基带。在一个机顶盒实施方案中,RF模块及其相关联的输入处理元件接收通过有线(例如,电缆)介质发射的RF信号,并且通过滤波、下变频和再次滤波至所需的频带来执行频率选择。各种实施方案重新布置上述(和其他)元件的顺序,移除这些元件中的一些元件,和/或添加执行类似或不同功能的其他元件。添加元件可包括在现有元件之间插入元件,例如,插入放大器和模数变换器。在各种实施方案中,RF模块包括天线。
另外,USB和/或HDMI模块可包括用于跨USB和/或HDMI连接将用户游戏系统2连接到其他电子设备的相应接口处理器。应当理解,输入处理(例如,Reed-Solomon纠错)的各种方面可根据需要例如在独立的输入处理IC内或在处理模块100内实现。类似地,USB或HDMI接口处理的各方面可根据需要在独立的接口IC内或在处理模块100内实现。解调、纠错和解复用的流被提供给处理模块100。
用户游戏系统2的各种元件可设置在集成壳体内。在集成壳体内,各种元件可使用合适的连接布置(例如,本领域已知的内部总线,包括IC间(I2C)总线、布线和印刷电路板)互连并且在这些元件之间传输数据。例如,在用户游戏系统2中,处理模块100通过总线1005与所述用户游戏系统2的其他元件互连。
处理模块100的通信接口1004允许用户游戏系统2在通信信道3上通信。如上所述,通信信道3可以例如在有线介质和/或无线介质内实现。
在各种实施方案中,使用无线网络诸如Wi-Fi网络,例如IEEE802.11(IEEE是指电气和电子工程师协会)将数据流式传输或以其他方式提供给用户游戏系统2。这些实施方案中的Wi-Fi信号通过适于Wi-Fi通信的通信信道3和通信接口1004进行接收。这些实施方案的通信信道3通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以用于允许流传输应用程序和其他越过运营商的通信。其他实施方案使用输入框101的RF连接向用户游戏系统2提供流传输数据。如上所述,各种实施方案以非流式的方式提供数据。另外,各种实施方案使用除了Wi-Fi以外的无线网络,例如蜂窝网络或蓝牙网络。
用户游戏系统2可向各种输出设备(包括显示系统105、扬声器106和其他外围设备107)提供输出信号。各种实施方案的显示系统105包括例如触摸屏显示器、有机发光二极管(OLED)显示器、曲面显示器和/或可折叠显示器中的一者或多者。显示器105可用于电视机、平板电脑、膝上型计算机、蜂窝电话(移动电话)、头戴式显示器或其他设备。显示系统105还可与其他部件集成(例如,如在智能电话中),或可为独立的(例如,膝上型计算机的外部监视器)。在实施方案的各种示例中,其他外围设备107包括一个或多个输入设备,诸如独立数字视频光盘(或数字通用光盘)(DVR,可表示这两个术语)、光盘播放器,以及用户动作采集设备(诸如游戏手柄)和一个或多个输出设备(诸如立体声系统或照明系统)。
在各种实施方案中,使用诸如AV.Link、消费电子产品控制(CEC)或其他通信协议的信令在用户游戏系统2与显示系统105、扬声器106或其他外围设备107之间传送控制信号,该其他通信协议使得能够在有或没有用户干预的情况下进行设备到设备控制。输出设备/输入设备可通过相应的接口102、接口103和接口104经由专用连接通信地耦接到用户游戏系统2。另选地,输出设备/输入设备可使用通信信道3经由通信接口1004连接到用户游戏系统2,或者使用对应于该通信信道通信接口1004的专用通信信道连接到该系统。显示系统105和扬声器106可与电子设备(诸如例如电视机)中的用户游戏系统2的其他部件集成在单个单元中。在各种实施方案中,显示器接口102包括显示驱动器,诸如例如定时控制器(TCon)芯片。
显示系统105和扬声器106可另选地与其他部件中的一个或多个部件分离。在显示系统105和扬声器106为外部部件的各种实施方案中,可经由专用输出连接(包括例如HDMI端口、USB端口或COMP输出)提供输出信号。
图1C示出了在其中实现各种方面和实施方案的服务器1的示例的框图。服务器1非常类似于用户游戏系统2。服务器1可实施为包括以下描述的各种部件的设备,并且被配置为执行本文档中所述的方面和实施方案中的一者或多者。此类设备的示例包括但不限于各种电子设备,诸如个人计算机、膝上型计算机和服务器。服务器1的元件可单独地或组合地具体体现在单个集成电路(IC)、多个IC和/或分立部件中。例如,在至少一个实施方案中,服务器1包括一个处理模块100,该处理模块实现关于服务器1的游戏应用程序的步骤,如下由图5的左侧所表示的。在各种实施方案中,服务器1经由例如通信总线或通过专用输入端口和/或输出端口通信地耦接到一个或多个其他系统或其他电子设备。在各种实施方案中,服务器1被配置为实现本文档中所述的方面中的一个或多个方面。
对处理模块100的输入可通过如关于图1D已经描述的框101中所示的各种输入模块来提供。
服务器1的各种元件可设置在集成壳体内。在集成壳体内,各种元件可使用合适的连接布置(例如,本领域已知的内部总线,包括IC间(I2C)总线、布线和印刷电路板)互连并且在这些元件之间传输数据。例如,在服务器1中,处理模块100通过总线1005与所述服务器1的其他元件互连。
处理模块100的通信接口1004允许服务器1在通信信道3上通信。
在各种实施方案中,使用诸如Wi-Fi网络的无线网络,例如IEEE802.11(IEEE是指电气和电子工程师协会)将数据(例如表示用户动作的数据)提供给服务器1或(例如视频流)由服务器1传输(流式传输)。这些实施方案中的Wi-Fi信号通过适于Wi-Fi通信的通信信道3和通信接口1004进行接收。这些实施方案的通信信道3通常连接到接入点或路由器,该接入点或路由器提供对包括互联网的外部网络的访问,以用于允许流传输应用程序和其他越过运营商的通信。其他实施方案向服务器1提供数据或者允许服务器使用输入框101的RF连接来传输数据。
另外,各种实施方案使用除了Wi-Fi以外的无线网络,例如蜂窝网络或蓝牙网络。
提供给服务器1或由服务器传输的数据可以不同的格式来提供或传输。在各种实施方案中,在传输的情况下,这些数据被编码并符合已知的视频压缩格式,诸如MPEG-4/AVC(ISO/CEI14496-10)、HEVC(ISO/IEC23008-2-MPEG-H部分2,高效视频编码/ITU-T H.265))、EVC(基本视频编码/MPEG-5)、AV1、VP9或由ITU-T和ISO/IEC专家的联合合作小组(被称为联合视频专家组(JVET))正在开发的名称为通用视频编码(VVC)的国际标准。
服务器1可以向能够存储、解码和/或显示输出信号的各种输出设备(诸如用户游戏系统)提供输出信号。
各种具体实施参与解码。如本申请中所用,“解码”涵盖例如对所接收的编码视频流执行以便产生适于显示的最终输出的全部过程。在各种实施方案中,此类过程包括通常由解码器执行的过程,例如熵解码、逆量化、逆变换和预测。
各种具体实施参与编码。以与上文关于“解码”的讨论类似的方式,如在本申请中使用的“编码”涵盖例如对由渲染步骤203生成的帧执行以便产生编码视频流的全部过程。在各种实施方案中,此类过程包括通常由编码器执行的过程,例如,分区、预测、变换、量化和熵编码。
需注意,下文中所使用的语法元素名称是描述性术语。因此,它们不排除使用其他语法元素名称。
当附图呈现为流程图时,应当理解,其还提供了对应装置的框图。类似地,当附图呈现为框图时,应当理解,其还提供了对应的方法/过程的流程图。
本文所述的具体实施和方面可在例如方法或过程、装置、软件程序、数据流或信号中实现。即使仅在单个形式的具体实施的上下文中讨论(例如,仅作为方法讨论),讨论的特征的具体实施也可以其他形式(例如,装置或程序)实现。装置可在例如适当的硬件、软件和固件中实现。方法可在例如一般是指处理设备的处理器中实现,该处理设备包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如例如计算机、手机、便携式/个人数字助理(“PDA”)以及便于最终用户之间信息通信的其他设备。
提及“一个实施方案”或“实施方案”或“一个具体实施”或“具体实施”以及它们的其他变型,意味着结合实施方案描述的特定的特征、结构、特性等包括在至少一个实施方案中。因此,短语“在一个实施方案中”或“在实施方案中”或“在一个具体实施中”或“在具体实施中”的出现以及出现在本申请通篇的各个地方的任何其他变型不一定都是指相同的实施方案。
另外,本申请可涉及“确定”各种信息。确定信息可包括例如估计信息、计算信息、预测信息、从存储器检索信息或例如从另一设备、模块或从用户获得信息中的一者或多者。
此外,本申请可涉及“访问”各种信息。访问信息可包括例如接收信息、检索信息(例如,从存储器)、存储信息、移动信息、复制信息、计算信息、确定信息、预测信息或估计信息中的一者或多者。
另外,本申请可涉及“接收”各种信息。与“访问”一样,接收旨在为广义的术语。接收信息可包括例如访问信息或检索信息(例如,从存储器)中的一者或多者。此外,在诸如例如存储信息、处理信息、传输信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息的操作期间,“接收”通常以一种方式或另一种方式参与。
应当理解,例如,在“A/B”、“A和/或B”以及“A和B中的至少一者”、“A和B中的一者或多者”的情况下,使用以下“/”、“和/或”以及“至少一种”、“一者或多者”中的任一种旨在涵盖仅选择第一列出的选项(A),或仅选择第二列出的选项(B),或选择两个选项(A和B)。作为进一步的示例,在“A、B和/或C”和“A、B和C中的至少一者”、“A、B和C中的一者或多者”的情况下,此类短语旨在涵盖仅选择第一列出的选项(A),或仅选择第二列出的选项(B),或仅选择第三列出的选项(C),或仅选择第一列出的选项和第二列出的选项(A和B),或仅选择第一列出的选项和第三列出的选项(A和C),或仅选择第二列出的选项和第三列出的选项(B和C),或选择所有三个选项(A和B和C)。如对于本领域和相关领域的普通技术人员显而易见的是,这可扩展到所列出的尽可能多的项目。
而且,如本文所用,词语“发信号通知”是指(除了别的以外)向对应解码器指示某物。例如,在某些实施方案中,视频编码器发信号通知一些编码工具的使用。这样,在一个实施方案中,在编码器侧和解码器侧两者均可使用相同的参数。因此,例如,编码器可将特定参数传输(显式信令)到解码器,使得解码器可使用相同的特定参数。相反,如果解码器已具有特定参数以及其他,则可在不传输(隐式信令)的情况下使用信令,以简单允许解码器知道和选择特定参数。通过避免发射任何实际功能,在各种实施方案中实现了比特节省。应当理解,信令可以各种方式实现。例如,在各种实施方案中,使用一个或多个语法元素、标志等将信息发信号通知至对应解码器。虽然前面涉及词语“signal(发信号通知)”的动词形式,但是词语“signal(信号)”在本文也可用作名词。
对于本领域的普通技术人员将显而易见的是,具体实施可产生格式化为携带例如可存储或可传输的信息的各种信号。信息可包括例如用于执行方法的指令或由所述具体实施中的一个具体实施产生的数据。例如,可格式化信号以携带所述实施方案的编码视频流和SEI消息。可格式化此类信号例如为电磁波(例如,使用频谱的射频部分)或基带信号。格式化可包括例如对编码视频流进行编码以及使用编码视频流调制载波。信号携带的信息可以是例如模拟或数字信息。已知的是,信号可通过各种不同的有线或无线链路传输。信号可存储在处理器可读介质上。
图5示意性地示出了用于减少云游戏应用程序中的延迟的方法的第一实施方案的示例。
在图5中所示的第一实施方案中,用户游戏系统2完全知道在当前时间t的用户动作(被称为当前动作),但是该用户游戏系统以延迟Δt从服务器1接收帧。神经网络(NN)用于从接收自服务器1的帧和元数据以及当前(和过去)动作生成(预测)当前时间t的帧。
图5的方法来源于图3的方法。与图3相比,步骤被分成在左侧由服务器1执行的步骤和在右侧由用户游戏系统2执行的步骤。
在步骤200中,用户游戏系统2的处理模块100注册用户动作。该用户动作对应于时间t-Δt。
图3的步骤301被分成步骤301A和步骤301B。在步骤301A中,用户游戏系统2的处理模块100传输表示用户动作的信息。
在步骤301B中,服务器1的处理模块100接收表示用户动作的信息。
由服务器1的处理模块100在游戏引擎步骤202和渲染步骤203中使用该信息来产生帧。所述帧对应于在时间t-Δt的动作,并且因此被称为帧t-Δt。
在步骤304bis中,服务器1的处理模块100对视频流中的帧t-Δt进行编码。因此,服务器1的处理模块100实现了视频编码模块。在步骤304bis中,可以使用任何已知的编码方法,诸如AVC、HEVC、VVC、EVC、AV1或VP9。
因此,步骤202、步骤203和步骤304bis允许获得所编码的帧t-Δt。
图3的步骤305被分成图5中的步骤305A和步骤305B。
在步骤305A中,服务器1的处理模块100向用户游戏系统2传输对应于帧t-Δt的视频流的一部分。
在步骤305B中,用户游戏系统2的处理模块100接收对应于帧t-Δt的视频流的一部分。
在步骤306bis中,用户游戏系统2的处理模块100对比特流的所述部分进行解码来重建帧t-Δt。因此,用户游戏系统2的处理模块100实现了视频解码模块。在步骤306bis中使用对应于在步骤304bis中使用的编码方法的解码方法。
在步骤501中,用户游戏系统2的处理模块100使用NN来预测对应于在步骤500中在时间t由输入设备捕获的用户的动作的帧,时间t在时间t-Δt之后。所述帧在下文中被称为帧t。可以看出,在步骤500中,用户游戏系统2的处理模块100获得表示在时间t执行的第二动作的信息,该第二动作在在步骤200中注册的在时间t-Δt执行的第一动作之后。在步骤501中执行的帧t的预测至少使用帧t-Δt和表示在时间t用户的动作(即,第二动作)的信息作为输入。下文关于图6详述步骤501。
在步骤207中,在用户游戏系统2的处理模块100的控制下显示在步骤501中从NN的预测所得的帧t。
可以看出,用户仅看到预测帧。
在第一实施方案的变型中,在步骤304bis中,在视频流中对与帧t-Δt相关联的元数据进行编码。这些元数据表示例如对应于帧t-Δt的动作和/或对应于时间t-Δt的游戏的状态。在步骤306bis中,除了帧t-Δt之外,用户游戏系统2的处理模块100还对所述元数据进行解码。然后将包含在这些元数据中的信息连接到表示在步骤500中注册的用户的最后动作的信息,并且被输入到NN中。
在一个实施方案中,在SEI消息中输送表示游戏的状态的信息。例如在诸如AVC、HEVC或VVC的标准中定义的SEI(补充增强信息)消息是与视频流相关联并且包括提供与视频流相关的信息的元数据的数据容器。
表TAB1
在表TAB1中描述了旨在输送表示游戏的状态的信息的SEI消息game_state_sei()的语法的示例。SEI消息game_state_sei包括指示在SEI消息中描述的状态的数量的语法元素number_of_state和包括表示状态的信息的至少一个语法元素state[i]。表示状态的信息可包括:
·表示用户的信息:用户位置、用户速度、用户体位、表示在游戏中用户的头像的位置和/或速度;
·表示动态对象或游戏中的其他用户的信息,诸如所述对象或其他用户的存在或不存在、位置、速度、状态和类型。由于在game_state_sei()SEI消息中输送的状态的数量受number_of_state限制,因此在所述SEI消息中报告的动态对象的最大数量可能是有上限的。由于网络是基于帧的预测因子,因此根据动态对象在帧中的大小对动态对象进行排序可能是填充状态向量的良好的启发式方法,仅考虑最大的动态对象。
·其他信息:特效开/关、日/夜,等等,
由于由NN的帧预测是基于帧的,因此状态信息可以帧信息的形式表示,诸如像素坐标、运动矢量、像素值、表示对象的像素的量、表示对象的像素的方差,等等。
图6示意性地示出了用于步骤501中的帧预测的NN的简化视图。该NN对应于例如在FINN中详细描述的NN。该网络包括一组卷积内核60至69。适于图像的内核60至64至少接收帧t-Δt作为输入。适于非图像信息的内核65和66至少接收表示在时间t的动作的信息作为输入。内核60至64以及内核65和内核66的输出接着输入到输出帧t的内核67至69。
NN的训练以通用NN参数开始。然后迭代地细化这些通用NN参数,以便获得允许在游戏的上下文中获得精确帧预测的NN参数。为此,从游戏的实际执行获得数据(被称为实际数据)。实际数据包括例如由游戏产生的帧的组块和被称为上下文数据的数据,该数据包括表示游戏状态和对应于该组块的每个帧的用户输入的信息。可从实际的人类游戏模拟或记录用户输入。使用组块的帧和对应的上下文数据作为输入数据,使用NN来迭代地执行从过去帧和对应的上下文数据对当前帧的预测。对于每个帧预测,使用损失函数来比较预测的当前帧和对应于与当前帧相同的时间的实际帧。损失函数的示例包括基于帧差的L2或L1范数的函数,但是可以有利地使用更复杂的损失函数来改善预测质量,诸如基于惩罚的生成对抗网络(GAN)、正则化项等。在每次迭代时,NN参数被细化,目的是减少下一次迭代时的损失。当损失足够低或当达到迭代次数时,停止训练并且保留最终的NN参数。
在步骤501的第一变型中,针对特定游戏对图6的NN进行离线训练。在该第一变型中,在步骤501的每次执行中,用户游戏系统的处理模块100使用具有这些最终参数的受过训练的NN网络,而不进行任何修改。
在步骤501的第二变型中,在游戏的当前执行期间专门对图6的NN进行联机训练。在该第二变型中,用户游戏系统2的处理模块100以具有通用NN参数的NN开始,然后在步骤501期间使用其接收的实际数据(从视频流解码的帧和上下文数据),并且只要所述实际帧在用户游戏系统2侧上可用就通过将每个预测的当前帧和对应于与当前预测帧相同的时间的实际帧进行比较来细化NN参数。与步骤501的第一变型相比,第二变型允许收敛到更适于游戏的当前执行的NN。然而,只要NN参数未被充分细化,由NN的第一帧预测就不准确。
在步骤501的第三变型中,如果NN使用通用参数,则使用步骤501的第一变型的经离线训练的NN来适当地初始化步骤501的第二变型的NN。因此,在游戏的当前执行开始时,预测至少适于所述游戏,并且然后细化NN来更好地适于所述当前执行。
可以注意到,第二变型和第三变型接近于基于增强学习的学习方法。
在NN训练期间要考虑的一个特征是预测帧与由NN接收的最后实际帧之间的时间差。在图5的示例中,时间差对应于帧t-Δt与帧t之间的时间差Δt。该时间差Δt取决于在用户游戏系统2侧上的用户的动作与再次在用户游戏系统2侧上获得对应于该动作的帧之间的时间差。该时间主要取决于网络延迟。
在一个实施方案中,用户游戏系统2的处理模块100和服务器1的处理模块协作来估计该时间差。每次用户游戏系统2的处理模块100发送表示用户的动作的信息,所述信息与所述动作被执行时的时间的标识input_timing相关联。标识input_timing因此表示所述动作。当服务器1的处理模块100对对应于该动作的帧进行编码时,其将标识input_timing与对应于该帧的视频流相关联。因此,使用与其解码的每个帧相关联的标识,用户游戏系统2的处理模块100能够识别对应于所述帧的动作。
在一个实施方案中,在SEI消息中在服务器1和用户游戏系统2之间输送与帧相关联的标识input_timing。
表TAB2
表TAB2中描述了旨在输送标识input_timing的SEI消息frame_timing_sei()的语法的示例。然后,该时间差由用户游戏系统2的处理模块100计算例如作为SEI消息frame_timing_sei的接收的时间与由标识input_timing表示的时间之间的差。
直观地,预测比最后实际帧晚十个帧的帧与预测比所述最后实际帧晚一个帧或两个帧的帧不是一回事。
在步骤501的变型中可以容易地考虑这个方面,其中在游戏的执行期间对NN参数进行联机调适(第二和第三变型)。实际上,在这种情况下,例如,可以根据实际网络状态和测量的延迟来固定时间差Δt。
当对NN进行离线训练而不考虑观察到的网络延迟时,情况是不同的,这通常是步骤501的第一变型中的情况。在这种情况下,解决方案在于针对时间差Δt定义多个值,并且针对每个所定义的值,在于针对时间差Δt的所述值来训练NN。因此,针对时间差Δt的每个可能值来获得NN(即,获得NN参数)。用户游戏系统2的处理模块100知道这些NN中的每个NN。在一个实施方案中,用户游戏系统2的处理模块100选择对应于其在网络上测量的多个时间差最接近延迟的时间差Δt的值的NN。在另一个实施方案中,表示要选择的NN的信息由服务器1的处理模块100提供。该信息例如在由服务器1的处理模块100生成的SEI消息中输送。
表TAB3
表TAB3描述了输送语法元素predictor_id的SEI消息predictor_id_sei()的语法的示例。语法元素predictor_id表示要使用的NN。间接地,语法元素predictor_id表示时间差Δt。
在步骤501的第四变型中,由递归NN(RNN)替换FINN的NN。在这种情况下,也可以生成在帧t和帧t-Δt之间的中间帧,以便在时间t产生最终帧。
在图5的方法的变型中,为了改善预测,渲染步骤203渲染比实际显示的帧更大的帧。例如,对于以HD格式(1920x1080)显示的帧,所渲染的帧被设置为1984x1144(每个边上32像素的边界)。在视频流中,一致性窗口标记(在文档JVET-R2001-v8,多功能视频编码(草案9),ITU-T SG 16WP 3and ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第18次会议:电话会议,2020年4月15-24日(在下文中简称为JVET-R2001)中的sps_conformance_window_flag、sps_conf_win_left_offset、sps_conf_win_right_offset、sps_conf_win_top_offset、sps_conf_win_bottom_offset)用于发信号通知这些边界。通过这样做,NN可使用帧外样本以便预测未来帧。在NN的训练阶段期间,在损失函数中仅考虑图像的显示的部分。在用户游戏系统2侧处,解码模块使用解码的图像的一致性窗口值来从所生成的帧设置图像的显示的部分。
图7示意性地示出了用于减少云游戏应用程序中的延迟的方法的第二实施方案的示例。
在第二实施方案中,服务器1接收表示对应于时间t-Δt的用户的动作(被称为实际动作)的信息,并且使用该实际动作来预测对应于时间t的未来动作(被称为预测动作)。这样做,使用关于图2、图4A和图4B如上所述的基于状态预测的方法。从预测动作,生成对应于时间t的帧(被称为预测帧t),并且将其发送到用户游戏系统2。只要对应于时间t的实际动作由服务器1接收,就生成对应于所述实际动作的帧(被称为实际帧t)并且替换预测帧t来用于未来帧预测。
关于图7所述的方法以步骤200、步骤301A、步骤301B、步骤202、步骤203、步骤304bis步骤205A、步骤305B和步骤306bis开始,这些步骤与图5的方法的对应步骤相同。
在步骤304bis处已编码并且在步骤305A处传输到用户游戏系统2的帧t-Δt是实际帧。
无论用于在步骤304bis中对帧进行编码和在步骤306bis中对帧进行解码的视频压缩方法(AVC、HEVC、EVC、VVC、AV1、VP9等)如何,这些方法中的每个方法都使用时间预测。时间预测在于从在当前帧之前编码和重建的至少另一帧(称为参考帧)的至少一个像素块预测当前帧的像素块。因此,重建帧由编码器和解码器保留,只要它们可以被用作对当前帧的时间预测的参考帧。在AVC、HEVC、EVC和VVC中,重建帧通常被存储在重建帧的缓冲器(被称为解码图片缓冲器(DPB))中。因此,在步骤304bis中,实际帧t-Δt的重建版本被存储在编码模块的DPB(被称为编码器DPB)中。
对应于相同的时间的两种类型的帧(即,预测帧和实际帧)的生成诱导在编码模块侧和解码模块侧上的DPB的特定管理。
在步骤700中,服务器1的处理模块100在编码模块的编码器DPB中用实际帧t-Δt替换预测帧t-Δt。因此,在DPB中插入实际帧t-Δt之后时间预测的所有帧可以使用实际帧t-Δt作为参考帧。
在步骤706中,用户游戏系统2的处理模块100在解码模块的DPB(被称为解码器DPB)中用在步骤305B中接收到的实际帧t-Δt替换预测帧t-Δt。因此,类似于编码器侧,在DPB中插入实际帧t-Δt之后时间预测的所有帧可以使用实际帧t-Δt作为参考帧。
在步骤701中,服务器1的处理模块100使用基于状态预测的方法来预测对应于时间t的用户动作。
在步骤702中,服务器1的处理模块100使用游戏引擎来确定与对应于时间t的预测动作相对应的游戏的状态。
在步骤703中,服务器1的处理模块100从在步骤702中确定的游戏的状态来应用渲染步骤,以生成与对应于时间t的预测的用户动作相对应的预测帧t。
在步骤704中,服务器1的处理模块100对预测帧t进行编码。预测帧t的编码可以潜在地使用存储在编码器DPB中的实际帧t-Δt作为参考帧。所编码的预测帧t的重建版本被放置于编码器DPB中。
在步骤705中,服务器1的处理模块100将对应于预测帧t的视频流的一部分传输到用户游戏系统2。
在步骤707中,用户游戏系统2的处理模块100接收对应于预测帧t的视频流的一部分。
在步骤708中,用户游戏系统2的处理模块100对所述视频流进行解码以重建预测帧t。预测帧t被置于解码器DPB中。
在步骤709中,在用户游戏系统2的处理模块100的控制下显示预测帧t。
这里再次,仅在用户游戏系统2侧上显示从预测(这里是动作的预测)所得的帧。
第二实施方案在多个玩家参与相同的游戏的情况下特别有利。实际上,在这种情况下,在步骤301B中,服务器1的处理模块100接收源自多个用户的动作,基于这些动作生成实际帧,但是还针对多个用户中的每个用户的生成预测动作。然后这些预测动作用于生成更好地反映不同用户之间的最终交互的预测帧t。由所有用户在他们的用户游戏系统2上共享该预测帧t。
在图7中,预测帧t的生成步骤(步骤701至步骤704)沿循实际帧t-Δt的生成步骤(步骤202、步骤203和步骤304bis)。在一个变型中,这些步骤由服务器1的处理模块100同步地并行执行,以确保在需要时在编码器DPB中存在时间预测所需的帧。
在图7的方法的第一变型中,防止(即,不允许)从预测图片进行时间预测。在这种情况下,如在HEVC和VVC中所述的帧标头层语法元素ph_non_ref_pic_flag可由编码模块使用以向解码模块发信号通知帧不能用作参考帧。ph_non_ref_pic_flag等于“1”指定与帧标头相关联的图片从不用作参考图片。ph_non_ref_pic_flag等于“0”指定与帧标头相关联的图片可用作参考图片或可不用作参考图片。当ph_non_ref_pic_flag=1时,编码模块知道对应的帧不需要被存储在编码器DPB中,并且解码模块知道对应的帧不需要被存储在解码器DPB中。
在图7的方法的第二变型中,通过使用如在HEVC和VVC中所述的帧标头层语法元素ph_pic_output_flag来防止(即,不允许)实际帧的显示。当帧涉及包括等于“0”的标记ph_pic_output_flag的帧标头时,不显示该帧。因此,所有实际帧可与等于“0”的标记ph_pic_output_flag相关联以防止它们在用户游戏系统2侧上的显示。
在图7的方法的第三变型中,预测帧可以用作时间预测的参考帧。然而,只要实际帧由编码模块生成并存储在编码器DPB中,服务器1的处理模块100就开始对在该实际帧之后的所有预测帧进行重新编码。因此,使用包括所述实际帧而不是对应于与该实际帧相同的时间的预测帧的编码器DPB来对预测帧进行重新编码。将重新编码的预测帧传输到用户游戏系统2以替换在解码器DPB中的在实际帧之后的预测帧。因此,编码器DPB和解码器DPB是同步的。在子变型中,仅对在实际帧之后的预测帧的子集进行重新编码。例如,仅对在实际帧之后的最后预测帧进行重新编码。
在第二实施方案的第四变型中,预测帧可以用作时间预测的参考帧。然而,只要实际帧可用,就在编码器DPB和解码器DPB中用实际帧替换对应于相同的时间的预测帧。实际帧和对应于相同的时间的预测帧共享相同的时间戳,并且因此难以辨别。为了允许用户游戏系统2的处理模块100从预测帧辨别出实际帧,每个帧与SEI消息相关联。所述SEI来源于如关于上文已经描述的表TAB2所述的frame_timing_sei()。在第二实施方案的第四变型中,frame_timing_sei()SEI消息包括语法元素real_frame。
表TAB4
real_frame=1指定与所述SEI消息相关联的帧是预测帧。real_frame=0指定与所述SEI消息相关联的帧是实际帧。正如前面所解释的那样,语法元素input_timing允许识别哪个用户动作对应于与SEI消息相关联的帧。在子变型中,real_frame=0指定与所述SEI消息相关联的帧是实际帧,并且real_frame>0指定与所述SEI消息相关联的帧是预测帧。当real_frame=i(i为>0的整数)时,与SEI消息相关联的预测帧对应于预测帧的第i版本,前提条件是已经对预测帧进行重新编码。
在第二实施方案的第五变型中,将所有帧存储在编码器DPB和解码器DPB中,无论它们的类型如何。因此,编码器DPB和解码器DPB可包括实际帧和对应于相同的时间(即,相同的用户动作)的预测帧的至少一个版本。包含在编码器DPB或解码器DPB中的所有帧可以用作时间预测的参考帧。可使用在与这些帧相关联的frame_timing_sei()SEI消息中输送的语法元素input_timing和real_frame的值来识别这些帧。
到目前为止,对应于表示游戏的帧的视频序列是使用单层编解码器进行编码的。在第二实施方案的第六变型中,使用多层编解码器。可使用任何多层编解码器,诸如例如对应于AVC的可扩展延伸的SVC、对应于AVC的多视点延伸的MVC、对应于HEVC的可扩展延伸的SHVC或VVC的任何多层延伸。
在第六变型中,基底层用于对预测帧进行编码,第二层用于对实际帧进行编码。层的编码可以是独立的(没有层间预测),或者第二层的实际帧t的编码可以是可以是从第二层的可用实际帧进行的层内预测和从时间上对应于实际帧t的基底层的预测帧t进行的层间预测的组合。当生成相同的预测帧t的若干版本时,预测帧的每个第一版本在基底层中被编码,预测帧的第i版本在第i层中被编码,并且对应的实际帧在最后一层中被编码。
在最后的视频压缩标准(诸如AVC、HEVC和VVC)中,帧可以通过它们的时间戳和/或通过表示帧的编码/解码的次序(其可以不同于显示次序)的图片次序计数(POC)来识别。当存在相同的帧的若干版本时,POC管理可能成为问题,这是当预测帧和实际帧共存时的情况。
在第二实施方案的第七变型中,其中使用在标准VVC中所述的编解码器,提出了对DPB和POC处理的修改。这些修改主要旨在允许由重复对POC的特定值进行编码来“更新”帧。换句话讲,相同的POC值可由若干帧使用,例如由预测帧并且然后由对应的实际帧使用。为此,将新的语法元素ph_pic_order_update插入到语法picture_header_structure()图片标头中,例如在文档JVET-R2001中所述。
语义的以下示例与语法元素ph_pic_order_count相关联(粗体):
当VCL NAL单元是如JVET-R2001的条款7.4.2.4.4(NAL单元和编码的图片的次序以及他们与PU的关联)中指定而确定的图片的第一VCL NAL单元时,该VCL NAL单元是AU的第一VCL NAL单元(并且因此包含VCL NAL单元的PU是该AU的第一PU),并且以下条件中的一个或多个条件为真:
·VCL NAL单元的nuh_layer_id的值小于在解码次序中的先前图片的nuh_layer_id;
·VCL NAL单元的ph_pic_order_cnt_lsb的值不同于在解码次序中的先前图片的ph_pic_order_cnt_lsb,除非当标记ph_pic_order_update为真并且ph_pic_order_cnt_lsb等于先前传输的值时;
·针对VCL NAL单元导出的PicOrderCntVal不同于在解码次序中的先前图片的PicOrderCntVal,除非当标记ph_pic_order_update为真并且PicOrderCntVal等于先前的值时。
从该语义可以看出,语法元素ph_pic_order_count在等于“真”时允许两个连续帧使用相同的POC(这里由语法元素PicOrderCntVal表示)。
以下计算也在文档JVET-R2001的条款8.3.1(用于图片次序计数的解码过程)中改变(粗体):
另外地,导出PicOrderCntMsb如下:
在最后一行中,变量PicOrderCntMsb可以取与先前用于对相同的ph_pic_order_cnt_lsb进行解码时使用的值相同的值。
当标记ph_pic_order_update为真时,在解码结束时,新的解码帧替换在DPB中具有相同的POC值的先前解码的图像。
图8示意性地示出了用于减少云游戏应用程序中的延迟的方法的第三实施方案的示例。
第三实施方案是图5的第一实施方案(具有任何变型或其变型的任何组合)和图7的第二实施方案(具有任何变型或其变型的任何组合)的组合。
与图7相比,在图8中,在视频解码步骤708之后添加了步骤500和步骤501。
在步骤501中,用户游戏系统2的处理模块100使用NN预测对应于在步骤500中由输入设备在时间t捕获的用户的最后动作的帧t。
在步骤501中执行的预测使用在步骤707中接收的至少一个预测帧和表示在步骤500中注册的用户在时间t的最后动作的信息作为输入。
在第三实施方案的第一变型中,用于在步骤501中的预测的至少一个预测帧是预测帧t。
在第三实施方案的第二变型中,用于在步骤501中的预测的至少一个预测帧包括预测帧t以及另一个预测帧或包含在解码器DPB中的实际帧中的至少一个帧。
在第三实施方案的第三变型中,在步骤701中预测的的用户动作(被称为中间动作)对应于在时间t-Δt与时间t之间的时间t-x。因此,预测帧是对应于所述中间动作的帧t-x。在这种情况下,用于在步骤501中的预测的至少一个预测帧包括预测帧t-x。
到目前为止,在云游戏的上下文中描述了用于减少延迟的方法的第一实施方案、第二实施方案和第三实施方案。这三个实施方案可以容易地适于独立游戏解决方案的上下文。
图9示意性地示出了用于减少独立游戏应用程序中的延迟的方法的实施方案的示例。
图9的方法对应于图8的方法,但被映射在独立游戏上下文中。与图8的方法相比,去除了传输步骤、接收步骤、DPB管理步骤、视频编码步骤和视频解码步骤。所有步骤现在由用户游戏系统2的处理模块100执行。其他步骤保持相同。类似的映射可应用于图5和图7的方法。
这里,假设NN计算比渲染延迟更快,网络用于“擦除”渲染延迟。进行两种渲染:一种渲染用于生成实际帧t-Δt,在对NN进行联机训练时,该实际帧可以由损失函数使用该实际帧来比较预测帧和实际帧,或者如果NN使用若干输入帧,则该实际帧可以作为NN的输入帧;一种渲染用于生成对应于在步骤701中预测的动作的预测帧t,该预测帧是作为NN的输入所需的唯一帧。
以上描述了多个实施方案。这些实施方案的特征可以单独提供或以任何组合形式提供。此外,实施方案可包括以下特征、设备或方面中的一个或多个,单独地或以任何组合,跨各种权利要求类别和类型:
·包括所描述的语法元素中的一个或多个语法元素或其变型的比特流或信号。
·对包括所描述的语法元素中的一个或多个语法元素或其变型的比特流或信号进行创建和/或传输和/或接收和/或解码。
·执行所述的实施方案中的至少一个实施方案的移动电话、平板电脑、游戏控制台、服务器、个人计算机或其他电子设备。
·执行所述的实施方案中的至少一个实施方案并且显示(例如,使用监视器、屏幕或其他类型的显示器)得到的图像的移动电话、平板电脑、游戏控制台、服务器、个人计算机或其他电子设备。
·调谐(例如,使用调谐器)信道以接收包括编码视频流的信号并且执行所述的实施方案中的至少一个实施方案的移动电话、平板电脑、游戏控制台、个人计算机或其他电子设备。
·通过空中接收(例如,使用天线)包括编码视频流的信号并且执行所述的实施方案中的至少一个实施方案的移动电话、平板电脑、游戏控制台、个人计算机或其他电子设备。
·调谐(例如,使用调谐器)信道以传输包括编码视频流的信号并且执行所述的实施方案中的至少一个实施方案的服务器、个人计算机或其他电子设备。
·通过空中传输(例如,使用天线)包括编码视频流的信号并且执行所述的实施方案中的至少一个实施方案的服务器、个人计算机或其他电子设备。
Claims (74)
1.一种用于减少游戏应用程序中的延迟的方法,所述方法包括:
获得(305B)第一帧,所述第一帧表示在所述游戏应用程序中由用户执行的第一动作;
获得(500)表示在所述游戏应用程序中由所述用户执行的第二动作的信息,所述第二动作在所述第一动作之后;以及,
使用神经网络从至少包括所述第一帧和表示第二动作的所述信息的数据预测(500)对应于所述第二动作的第二帧。
2.根据权利要求1所述的方法,其中所述方法还包括显示所述第二帧。
3.根据权利要求1或2所述的方法,其中所述方法还包括连同所述第一帧一起获得元数据,所述元数据至少表示在对应于所述第一动作的时间时游戏的状态和/或表示所述第一动作,使用所述神经网络从所述元数据进一步预测所述第二帧。
4.根据权利要求3所述的方法,其中表示所述游戏的状态的所述元数据包括表示所述用户的信息和/或表示动态对象和/或表示所述游戏中的其他用户的信息。
5.根据任一前述权利要求所述的方法,其中所述神经网络使用以下参数:
使用在所述游戏应用程序的离线执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行离线训练的;或者,
使用在所述游戏应用程序的当前执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行联机训练的;或者,
使用参数在所述游戏应用程序的执行开始时进行初始化的,所述参数是使用在所述游戏应用程序的离线执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行离线训练的,并且然后使用在所述游戏应用程序的当前执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行联机训练的。
6.根据权利要求5所述的方法,其中所述神经网络的所述参数的训练考虑到所述第一动作的发生与所述第一帧的获得之间的时间差。
7.根据权利要求6所述的方法,其中,当对所述神经网络的所述参数进行离线训练时,训练多个参数集,每个参数集针对被称为离线时间差的不同的时间差值进行训练,并且其中,在所述游戏应用程序的当前执行期间,所述方法包括选择所述多个参数集中对应于最接近表示实际时间差的信息的离线时间差的参数集。
8.根据权利要求2至7中任一前述权利要求所述的方法,其中所述神经网络的所述参数的所述训练使用损失函数,所述损失函数估计由所述神经网络预测的对应于所述第二动作的所述第二帧与由所述游戏应用程序生成的对应于相同的第二动作的实际帧之间的差,并且其中仅显示所述第二帧的被称为显示的部分的子部分,所述损失函数仅考虑所述显示的部分。
9.根据任一前述权利要求所述的方法,其中所述游戏应用程序是基于网络的游戏应用程序,其中游戏由经由网络(3)与客户端系统(2)通信的服务器(1)管理,所述方法由所述客户端系统执行,其中:
所述第一动作由所述用户在第一时间执行并且由所述客户端系统注册(200),并且将表示所述第一动作的信息传输(301A)到所述服务器;以及;
通过对从所述服务器接收(305B)的视频流的一部分进行解码(306bis)来获得所述第一帧和/或所述元数据。
10.根据权利要求9所述的方法,其中,所述视频流的所述一部分包括表示与所述第一帧相关联的所述第一动作的元数据。
11.根据权利要求11所述的方法,其中表示所述第一动作的所述元数据表示所述第一动作被执行时的时间。
12.根据权利要求9、10或11所述的方法,其中所述元数据包括表示实际时间差的所述信息。
13.根据权利要求9、10、11或12所述的方法,其中所述元数据由SEI消息输送。
14.根据权利要求9至14中任一前述权利要求所述的方法,其中:
所述第一帧对应于在所述第一时间之后的第二时间时所述用户的第二动作,所述第二动作由所述服务器从表示所述第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息进行预测;
并且所述方法还包括:
将所述第一帧的重建版本存储(708)在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从所述服务器接收(305B)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行解码(306bis)并且由所述帧缓冲器中的所述实际帧的重建版本替换(706)所述预测帧的重建版本。
15.一种用于减少游戏应用程序中的延迟的方法,所述方法包括:
从客户端系统接收(301B)表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息预测(701)对应于在所述第一时间之后的第二时间时的第二动作;
生成(702、703)对应于所述第二动作的帧,所述帧被称为预测帧;
对所述预测帧进行编码(704),并且将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输(705)到所述客户端系统;
当接收到表示由所述用户在所述第二时间执行的动作的数据时,生成(301B、202、203)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行编码(304bis)并且由所述帧缓冲器中的所述实际帧的重建版本替换(700)所述预测帧的所述重建版本。
16.一种用于减少游戏应用程序中的延迟的设备,所述设备包括电子电路,所述电子电路适于:
获得(305B)第一帧,所述第一帧表示在所述游戏应用程序中由用户执行的第一动作;
获得(500)表示在所述游戏应用程序中由所述用户执行的第二动作的信息,所述第二动作在所述第一动作之后;以及,
使用神经网络从至少包括所述第一帧和表示第二动作的所述信息的数据预测(500)对应于所述第二动作的第二帧。
17.根据权利要求16所述的设备,其中所述电子电路还适于控制所述第二帧的显示。
18.根据权利要求16或17所述的设备,其中所述电子电路还适于连同所述第一帧一起获得元数据,所述元数据至少表示在对应于所述第一动作的时间时游戏的状态和/或表示所述第一动作,使用所述神经网络从所述元数据进一步预测所述第二帧。
19.根据权利要求18所述的设备,其中表示所述游戏的状态的所述元数据包括表示所述用户的信息和/或表示动态对象和/或表示所述游戏中的其他用户的信息。
20.根据权利要求16至19中任一前述权利要求所述的设备,其中所述神经网络使用以下参数:
使用在所述游戏应用程序的离线执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行离线训练的;或者,
使用在所述游戏应用程序的当前执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行联机训练的;或者,
使用参数在所述游戏应用程序的执行开始时进行初始化的,所述参数是使用在所述游戏应用程序的离线执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行离线训练的,并且然后使用在所述游戏应用程序的当前执行期间收集的表示帧、用户动作和所述游戏的状态的数据进行联机训练的。
21.根据权利要求20所述的设备,其中所述神经网络的所述参数的训练考虑到所述第一动作的发生与所述第一帧的获得之间的时间差。
22.根据权利要求21所述的设备,其中,当对所述神经网络的所述参数进行离线训练时,训练多个参数集,每个参数集针对被称为离线时间差的不同的时间差值进行训练,并且其中,在所述游戏应用程序的当前执行期间,所述电子电路还适于选择所述多个参数集中对应于最接近表示实际时间差的信息的离线时间差的参数集。
23.根据权利要求17至22中任一前述权利要求所述的设备,其中所述神经网络的所述参数的所述训练使用损失函数,所述损失函数估计由所述神经网络预测的对应于所述第二动作的所述第二帧与由所述游戏应用程序生成的对应于相同的第二动作的实际帧之间的差,并且其中仅显示所述第二帧被称为显示的部分的子部分,所述损失函数仅考虑所述显示的部分。
24.根据权利要求16至23中任一前述权利要求所述的设备,其中所述游戏应用程序是基于网络的游戏应用程序,其中游戏由经由网络(3)与设备(2)通信的服务器(1)管理,所述电子电路还适于:
注册(200)所述第一动作,所述第一动作由用户在第一时间执行;
将表示所述第一动作的信息传输到所述服务器;以及;
通过对从所述服务器接收(305B)的视频流的一部分进行解码(306bis)来获得所述第一帧和/或所述元数据。
25.根据权利要求24所述的设备,其中所述视频流的所述一部分包括表示与所述第一帧相关联的所述第一动作的元数据。
26.根据权利要求25所述的设备,其中表示所述第一动作的所述元数据表示所述第一动作被执行时的时间。
27.根据权利要求24、25或26所述的设备,其中所述元数据包括表示实际时间差的所述信息。
28.根据权利要求24、25、26或27所述的设备,其中所述元数据由SEI消息输送。
29.根据权利要求24至28中任一前述权利要求所述的设备,其中:
所述第一帧对应于在所述第一时间之后的第二时间时所述用户的第二动作,所述第二动作由所述服务器从表示所述第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息进行预测;并且所述电子电路还适于:
将所述第一帧的重建版本存储(708)在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从所述服务器接收(305B)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行解码(306bis)并且由所述帧缓冲器中的所述实际帧的重建版本替换(706)所述预测帧的重建版本。
30.一种用于减少游戏应用程序中的延迟的设备,所述设备包括电子电路,所述电子电路适于:
从客户端系统接收(301B)表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息预测(701)对应于在所述第一时间之后的第二时间时的第二动作;
生成(702、703)对应于所述第二动作的帧,所述帧被称为预测帧;
对所述预测帧进行编码(704),并且将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输(705)到所述客户端系统;
当接收到表示由所述用户在所述第二时间执行的动作的数据时,生成(301B、202、203)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行编码(304bis)并且由所述帧缓冲器中的所述实际帧的重建版本替换(700)所述预测帧的所述重建版本。
31.一种装置,所述装置包括根据权利要求16至30中任一前述权利要求所述的设备。
32.一种系统,所述系统包括客户端系统和服务器,所述客户端系统包括根据权利要求16至29中任一前述权利要求所述的设备,所述服务器包括根据权利要求30所述的设备。
33.一种信号,所述信号由权利要求15所述的方法或由权利要求30所述的设备生成。
34.一种计算机程序,所述计算机程序包括用于实现根据权利要求1至15中任一前述权利要求所述的方法的程序代码指令。
35.一种非暂态信息存储介质,所述非暂态信息存储介质存储用于实现根据权利要求1至15中任一前述权利要求所述的方法的程序代码指令。
36.一种用于减少游戏应用程序中的延迟的方法,所述方法包括:
从客户端系统接收(301B)表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息预测(701)对应于在所述第一时间之后的第二时间时的第二动作;
生成(702、703)对应于所述第二动作的帧,所述帧被称为预测帧;
对所述预测帧进行编码(704),并且如果所述预测帧可以用作参考帧,则将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输(705)到所述客户端系统;
当接收到表示由所述用户在所述第二时间执行的动作的数据时,生成(301B、202、203)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行编码(304bis)并且将所述实际帧的重建版本存储(700)在所述帧缓冲器中来取代所述预测帧的所述重建版本。
37.根据权利要求36所述的方法,其中与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
38.根据权利要求36或37所述的方法,其中将所编码的实际帧传输到所述客户端系统。
39.根据权利要求38所述的方法,其中与所编码的实际帧相关联的语法元素发信号通知不允许所述实际帧的显示。
40.根据权利要求36至39中任一前述权利要求所述的方法,所述方法还包括在将所述实际帧存储在所述帧缓冲器中之后,使用用于时间预测的所述帧缓冲器对在所述实际帧之后的至少一个预测帧进行重新编码。
41.根据权利要求36至40中任一前述权利要求所述的方法,其中每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
42.根据权利要求36至41中任一前述权利要求所述的方法,其中使用多层视频编码器对帧进行编码,在第一层中对实际帧进行编码,并且在至少一个第二层中对预测帧进行编码。
43.根据权利要求36至42中任一前述权利要求所述的方法,其中每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示所述帧的解码次序的相同帧标识的语法元素相关联。
44.一种用于减少游戏应用程序中的延迟的方法,所述方法包括:
将表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息传输(301A)到服务器;
从所述服务器接收(707)对应于所述用户在所述第一时间之后的第二时间时间的第二动作的帧,所述帧被称为预测帧,所述第二动作已经由所述服务器从表示所述第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息进行预测;
对所述预测帧进行解码(708),并且如果所述预测帧可以用于时间预测,则将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从所述服务器接收(305B)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行解码(306bis)并且将所述实际帧的重建版本存储(706)在所述帧缓冲器中来取代所述预测帧的所述重建版本。
45.根据权利要求44所述的方法,其中与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
46.根据权利要求44或45所述的方法,其中与所编码的实际帧相关联的语法元素发信号通知不允许所述实际帧的显示。
47.根据权利要求44至46中任一前述权利要求所述的方法,所述方法还包括接收存储在所述帧缓冲器中的至少一个预测帧的新版本,所述新版本对应于使用帧缓冲器对所述预测帧的重新编码,在所述帧缓冲器中,至少一个前述预测帧已经由对应的实际帧替换,并且由所述新版本替换存储在所述帧缓冲器中的所述预测帧的所述重建版本。
48.根据权利要求44至47中任一前述权利要求所述的方法,其中每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
49.根据权利要求44到48中任一前述权利要求所述的方法,其中实际帧形成多层视频编码的第一层,并且预测帧形成所述多层视频编码的至少一个第二层。
50.根据权利要求44至49中任一前述权利要求所述的方法,其中每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示所述帧的解码次序的相同帧标识的语法元素相关联。
51.根据权利要求44至50中任一前述权利要求所述的方法,其中所述方法包括:
获得(500)表示在所述游戏应用程序中由所述用户在所述第二时间实际执行的第三动作的信息;
使用神经网络从至少包括对应于所述第二动作的所述预测帧和表示所述第三动作的所述信息的数据预测(500)对应于所述第三动作的帧,所述帧被称为最终帧。
52.根据权利要求44至51中任一前述权利要求所述的方法,其中显示所述预测帧或所述最终帧。
53.一种用于减少游戏应用程序中的延迟的设备,所述设备包括电子电路,所述电子电路适于:
从客户端系统接收(301B)表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息;
从表示第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息预测(701)对应于在所述第一时间之后的第二时间时的第二动作;
生成(702、703)对应于所述第二动作的帧,所述帧被称为预测帧;
对所述预测帧进行编码(704),并且如果所述预测帧可以用作参考帧,则将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
将所编码的预测帧传输(705)到所述客户端系统;
当接收到表示由所述用户在所述第二时间执行的动作的数据时,生成(301B、202、203)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行编码(304bis)并且将所述实际帧的重建版本存储(700)在所述帧缓冲器中来取代所述预测帧的所述重建版本。
54.根据权利要求53所述的设备,其中与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
55.根据权利要求53或54所述的设备,其中将所编码的实际帧传输到所述客户端系统。
56.根据权利要求55所述的设备,其中与所编码的实际帧相关联的语法元素发信号通知不允许所述实际帧的显示。
57.根据权利要求53至56中任一前述权利要求所述的设备,其中所述电子电路还适于在将所述实际帧存储在所述帧缓冲器中之后,使用用于时间预测的所述帧缓冲器对在所述实际帧之后的至少一个预测帧进行重新编码。
58.根据权利要求53至57中任一前述权利要求所述的设备,其中每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
59.根据权利要求53至58中任一前述权利要求所述的设备,其中使用多层视频编码器对帧进行编码,在第一层中对实际帧进行编码,并且在至少一个第二层中对预测帧进行编码。
60.根据权利要求53至59中任一前述权利要求所述的设备,其中每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示所述帧的解码次序的相同帧标识的语法元素相关联。
61.一种用于减少游戏应用程序中的延迟的设备,所述设备包括电子电路,所述电子电路适于:
将表示在所述游戏应用程序中由用户在第一时间执行的第一动作的信息传输(301A)到服务器;
从所述服务器接收(707)对应于所述用户在所述第一时间之后的第二时间时间的第二动作的帧,所述帧被称为预测帧,所述第二动作已经由所述服务器从表示所述第一动作的所述信息和表示在所述第一时间时所述游戏应用程序的状态的信息进行预测;
对所述预测帧进行解码(708),并且如果所述预测帧可以用于时间预测,则将所述预测帧的重建版本存储在用于下一些帧的时间预测的帧缓冲器中;
在向所述服务器传输表示由所述用户在所述第二时间执行的动作的数据之后,从所述服务器接收(305B)对应于所述第二时间的帧,所述帧被称为实际帧;以及,
对所述实际帧进行解码(306bis)并且将所述实际帧的重建版本存储(706)在所述帧缓冲器中来取代所述预测帧的所述重建版本。
62.根据权利要求61所述的设备,其中与所编码的预测帧相关联的语法元素发信号通知不允许从所述预测帧进行时间预测。
63.根据权利要求61或62所述的设备,其中与所编码的实际帧相关联的语法元素发信号通知不允许所述实际帧的显示。
64.根据权利要求61至63中任一前述权利要求所述的设备,其中所述电子电路还适于接收存储在所述帧缓冲器中的至少一个预测帧的新版本,所述新版本对应于使用帧缓冲器对所述预测帧的重新编码,在所述帧缓冲器中,至少一个前述预测帧已经由对应的实际帧替换,并且由所述新版本替换存储在所述帧缓冲器中的所述预测帧的所述重建版本。
65.根据权利要求61至64中任一前述权利要求所述的设备,其中每个所编码的帧与指示所述帧是实际帧还是预测帧的语法元素相关联。
66.根据权利要求61至65中任一前述权利要求所述的设备,其中实际帧形成多层视频编码的第一层,并且预测帧形成所述多层视频编码的至少一个第二层。
67.根据权利要求61至66中任一前述权利要求所述的设备,其中每个所编码的帧与授权实际帧和对应于相同的时间的预测帧使用表示所述帧的解码次序的相同帧标识的语法元素相关联。
68.根据权利要求61至67中任一前述权利要求所述的设备,其中所述电子电路还适于:
获得(500)表示在所述游戏应用程序中由所述用户在所述第二时间实际执行的第三动作的信息;
使用神经网络从至少包括对应于所述第二动作的所述预测帧和表示所述第三动作的所述信息的数据预测(501)对应于所述第三动作的帧,所述帧被称为最终帧。
69.根据权利要求61至68中任一前述权利要求所述的设备,其中所述电子电路还适于控制所述预测帧或所述最终帧的显示。
70.一种装置,所述装置包括根据权利要求53至69中任一前述权利要求所述的设备。
71.一种系统,所述系统包括服务器和客户端系统,所述服务器包括根据权利要求53至60中任一前述权利要求所述的设备,所述客户端系统包括根据权利要求61至69中任一前述权利要求所述的设备。
72.一种信号,所述信号由根据权利要求36至43中任一前述权利要求所述的方法或由根据权利要求53至61中任一前述权利要求所述的设备生成。
73.一种计算机程序,所述计算机程序包括用于实现根据权利要求36至52中任一前述权利要求所述的方法的程序代码指令。
74.一种非暂态信息存储介质,所述非暂态信息存储介质存储用于实现根据权利要求36至52中任一前述权利要求所述的方法的程序代码指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20306183 | 2020-10-09 | ||
EP20306183.3 | 2020-10-09 | ||
EP20306182 | 2020-10-09 | ||
EP20306182.5 | 2020-10-09 | ||
PCT/EP2021/076914 WO2022073840A1 (en) | 2020-10-09 | 2021-09-30 | Latency management with deep learning based prediction in gaming applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116348184A true CN116348184A (zh) | 2023-06-27 |
Family
ID=78078224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180069046.7A Pending CN116348184A (zh) | 2020-10-09 | 2021-09-30 | 游戏应用程序中利用基于深度学习的预测的延迟管理 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230372814A1 (zh) |
EP (1) | EP4225457A1 (zh) |
KR (1) | KR20230079414A (zh) |
CN (1) | CN116348184A (zh) |
WO (1) | WO2022073840A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555815A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 参数预测方法、模型训练方法和相关装置 |
CN117555815B (zh) * | 2024-01-11 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 参数预测方法、模型训练方法和相关装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024047262A1 (es) * | 2022-08-30 | 2024-03-07 | Take Profit Gaming, S.L. | Método de interacción online eliminando el efecto de la latencia de red |
CN116664375B (zh) * | 2022-10-17 | 2024-04-12 | 荣耀终端有限公司 | 图像预测方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10306180B2 (en) * | 2016-10-21 | 2019-05-28 | Liquidsky Software, Inc. | Predictive virtual reality content streaming techniques |
US20200084255A1 (en) * | 2018-09-06 | 2020-03-12 | Liquidsky Software, Inc. | Dynamic Prediction Techniques for Interactive Content Streaming |
-
2021
- 2021-09-30 WO PCT/EP2021/076914 patent/WO2022073840A1/en unknown
- 2021-09-30 EP EP21786411.5A patent/EP4225457A1/en active Pending
- 2021-09-30 CN CN202180069046.7A patent/CN116348184A/zh active Pending
- 2021-09-30 KR KR1020237014626A patent/KR20230079414A/ko unknown
- 2021-09-30 US US18/030,860 patent/US20230372814A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555815A (zh) * | 2024-01-11 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 参数预测方法、模型训练方法和相关装置 |
CN117555815B (zh) * | 2024-01-11 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 参数预测方法、模型训练方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2022073840A1 (en) | 2022-04-14 |
US20230372814A1 (en) | 2023-11-23 |
KR20230079414A (ko) | 2023-06-07 |
EP4225457A1 (en) | 2023-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104350745B (zh) | 基于全景的3d视频译码 | |
KR101626683B1 (ko) | 멀티뷰 비디오 코딩 방안 | |
KR101618672B1 (ko) | 깊이 기반 변이 벡터 교정을 포함하는 3d 비디오 코딩 | |
KR101266667B1 (ko) | 장치 내 제어기에서 프로그래밍되는 압축 방법 및 시스템 | |
CN116348184A (zh) | 游戏应用程序中利用基于深度学习的预测的延迟管理 | |
JP2015521820A (ja) | 関心領域ベースの3dビデオコーディング | |
CN114339238A (zh) | 视频编码的方法、视频解码的方法及其装置 | |
WO2022069299A1 (en) | A method and an apparatus for encoding/decoding at least one attribute of an animated 3d object | |
CN103873872A (zh) | 参考图像管理方法及装置 | |
US10536726B2 (en) | Pixel patch collection for prediction in video coding system | |
US20220191498A1 (en) | Signalling Profile Level Exemptions For Immersive Video | |
US11833419B2 (en) | Method and apparatus for cloud gaming | |
CN109379630A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
KR20230169239A (ko) | 인공 신경망 기반 툴을 사용하여 이미지 및 비디오를 인코딩/디코딩하기 위한 방법 및 장치 | |
US20230415036A1 (en) | Display control in cloud gaming applications | |
CN116583332A (zh) | 云游戏应用程序中的显示控件 | |
US20230396801A1 (en) | Learned video compression framework for multiple machine tasks | |
US20220264150A1 (en) | Processing volumetric data | |
CN117716688A (zh) | 用于视频编码的外部增强预测 | |
WO2023198426A1 (en) | Dynamic block decimation in v-pcc decoder | |
WO2024083566A1 (en) | Encoding and decoding methods using directional intra prediction and corresponding apparatuses | |
CN114424535A (zh) | 使用外部参考对视频编码和解码进行预测 | |
WO2022197772A1 (en) | Temporal structure-based conditional convolutional neural networks for video compression |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231107 Address after: Paris France Applicant after: Interactive digital CE patent holding Co. Address before: French Sesong Sevigne Applicant before: Interactive digital VC holdings France Ltd. |
|
TA01 | Transfer of patent application right |