一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于云游戏的方法和装置与流程

2022-04-27 20:38:19 来源:中国专利 TAG:

用于云游戏的方法和装置
交叉引用
1.本技术要求于2021年2月24日提交的美国专利申请第17/184,082号“用于云游戏的方法和装置(method and apparatus for cloud gaming)”的优先权,该申请要求于2020年3月16日提交的美国临时申请第62/990,204号“在云游戏系统中用元数据进行视频编解码的方法(method of video coding with meta data in cloud gaming system)”的优先权。在先申请的全部公开内容通过引用全部结合在本技术中。
技术领域
2.本公开描述了通常涉及云游戏领域中的多媒体技术的实施例。


背景技术:

3.本文所提供的背景描述旨在整体呈现本技术的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本技术提交时作为现有技术,且从未明示或暗示其被承认为本技术的现有技术。
4.云游戏服务是可以从多个服务提供商处获得的趋势在线服务。云游戏也可以称为按需游戏(gaming on demand)。在云游戏系统中,游戏在远程服务器上运行,被称为基于云的游戏。用户可以通过用户设备来玩基于云的游戏。游戏内容可在移除服务器上生成,并且流式传输至用户设备并且在用户设备上显示。


技术实现要素:

5.本公开的各方面提供用于云游戏的方法和装置。在一些示例中,用于云游戏的装置包括处理电路。例如,该处理电路接收视频序列和与该视频序列相关联的元数据。该视频序列包括响应于游戏控制信息生成的图片帧序列,并且该元数据是基于该游戏控制信息确定的。该处理电路可以基于该元数据确定用于对该视频序列进行编码的编码配置。然后,处理电路根据编码配置将视频序列编码成已编码视频码流。
6.在一实施例中,元数据包括运动矢量,并且处理电路基于运动矢量确定用于对视频序列的图片帧内的块进行编码的运动搜索的起始点。
7.在另一实施例中,所述元数据至少指示所述视频序列的图片帧的一种图片特性,所述图片特性包括场景变化特性、照明变化特性、闪烁特性、平移特性、缩放特性、衰退特性和覆盖特性。处理电路可以基于图片特性确定对图片帧进行编码的编码配置。
8.在另一实施例中,元数据指示图片帧中的边界框。处理电路可以基于边界框,确定未覆盖区域的先前图片帧中的参考区域,所述未覆盖区域未被相对于当前图片帧的前一图片帧的当前图片帧中的边界框覆盖;以及基于先前图片帧中的参考区域,通过当前图片帧中的边界框对未覆盖区域进行编码。
9.在另一实施例中,元数据指示从第一图片帧到第二图片帧的模型变换。处理电路可以基于模型变换来确定编码配置,并且可以根据编码配置,基于第一图片帧中的参考块。
对第二图片帧中的块进行编码。
10.在另一实施例中,元数据指示当前图片帧的对象在后续图片帧中的存在。处理电路基于元数据确定缓冲器配置。
11.在另一实施例中,元数据指示图片帧的噪声水平。处理电路可以基于噪声水平对图片帧进行预处理/后处理。
12.在另一实施例中,元数据指示图片帧中的感兴趣区域。处理电路使用第一编码配置对感兴趣区域进行编码,该第一编码配置具有比用于对感兴趣区域之外的块进行编码的第二编码配置更高的质量。
13.在另一实施例中,元数据指示图片帧的区域中的图形覆盖。处理电路基于图形覆盖确定对区域进行编码的编码配置。
14.在另一实施例中,元数据指示覆盖消息的图片帧中的消息框。处理电路在已编码视频码流的特定网络抽象层单元nalu中包括覆盖消息的信息。
15.本公开的各方面还提供一种存储指令的非易失性计算机可读介质,该指令当由用于视频处理的计算机执行时,使得计算机执行用于云游戏的方法。
附图说明
16.根据以下详细描述和附图,所公开主题的其它特征、性质和各种优点将变得更加明显,在附图中:
17.图1示出了根据本公开实施例的云游戏系统的框图。
18.图2示出了根据本公开的一些实施例的云游戏场景的图。
19.图3示出了根据本公开的一些实施例的云游戏系统的框图。
20.图4示出了根据本公开实施例的视频编码器的框图。
21.图5示出了根据本公开的一些实施例的视频解码器的图。
22.图6示出了概述根据本公开实施例的过程示例的流程图。
23.图7示出了概述根据本公开实施例的另一过程示例的流程图。
24.图8是根据实施例的计算机系统的示意图。
具体实施方式
25.本公开的各方面提供用于云游戏领域中的元数据辅助视频编解码(编码/解码)设计的系统、设备和方法。
26.图1示出了根据本公开实施例的云游戏系统(100)的框图。云游戏系统(100)包括通过网络(150)连接的服务器系统(101)和客户端系统(102)。服务器系统(101)包括耦合在一起的一个或多个服务器(110)。例如,服务器系统(101)可以包括一个或多个数据中心、一个或多个服务器群等。服务器系统(101)可以渲染游戏内容并且将游戏内容压缩成码流。码流可以经由网络(150)被传送到客户端系统(102)。客户端系统(102)包括可以相应地与游戏用户(也称为玩家)交互的一个或多个客户端设备(160)。例如,客户端设备(160)可以从游戏用户接收用户控制信息,并且可以向游戏用户提供输出,诸如视频输出、音频输出。
27.服务器(110)可以相应地使用任何合适的技术来实现。在图1的示例中,服务器(110)包括耦合在一起的处理电路(120)、存储器(115)和接口电路(111)。存储器(115)被配
置为在处理之前、处理期间和处理之后存储软件指令和各种数据(诸如媒体数据、配置信息、控制信息等)。
28.处理电路(120)可以包括任何合适的处理电路,诸如一个或多个中央处理单元(cpu,central processing unit)、一个或多个图形处理单元(gpu,graphics processing unit)、专用集成电路等。在图1的示例中,处理电路(120)可以被配置为包括游戏引擎(125)。例如,一个或多个cpu和/或gpu可以执行存储在存储器(115)中的游戏软件,来用作游戏引擎(125)。此外,处理电路(120)可以被配置为包括编码器,诸如视频编码器、音频编码器等。在图1的示例中,处理电路(120)被配置为包括视频编码器(130)。例如,一个或多个cpu和/或gpu可以被配置为用作视频编码器(130)。在另一示例中,可以使用专用集成电路来实现视频编码器(130)。
29.接口电路(111)可以将服务器(110)与网络(150)连接。接口电路(111)可以包括从网络(150)接收信号的接收部分和向网络(150)传输信号的传输部分。例如,接口电路(111)可以通过网络(150)向诸如客户端设备(160)的其它设备传输携带编码媒体数据(诸如已编码视频码流、编码音频码流等)的信号。接口电路(111)可以通过网络(150)从客户端设备(160)接收携带诸如用户输入等用户信息的信号。
30.网络(150)通过有线和/或无线连接(诸如以太网连接、光纤连接、wifi连接、蜂窝网络连接等)适当地与服务器系统(101)和客户端系统(102)耦合。网络(150)可以包括网络服务器设备、存储设备、网络设备等。网络(150)的部件通过有线和/或无线连接适当地耦合在一起。
31.客户端设备(160)被配置为与用户进行交互。在图1的示例中,客户端设备(160)包括耦合在一起的各种部件,诸如接口电路(161)、处理电路(170)、显示器(165)和用户输入设备(169)。
32.接口电路(161)可以将客户端设备(160)与网络(150)连接。接口电路(161)可以包括从网络(150)接收信号的接收部分和向网络(150)传输信号的传输部分。例如,接口电路(161)可以从网络(150)接收由服务器(110)发送的携带数据的信号,诸如携带已编码视频码流的信号、携带音频码流的信号等,并且可以通过网络(150)向诸如服务器(110)的其它设备发送信号,诸如携带用户输入等的信号。
33.用户输入设备(169)可以接收用户输入,并且用户输入可以被适当地发送到服务器系统(101)。在示例中,可以将用户输入提供给处理电路(170),并且处理电路(170)可以将用户输入变换成合适的形式,诸如消息、数据包等,并且通过接口电路(161)发送用户输入。用户输入可以通过网络(150)发送到服务器系统(101)。用户输入设备(169)可以是任何合适的用户输入设备,诸如操纵杆、运动传感器、传声器、键盘、鼠标、触摸屏、触摸板等。
34.处理电路(170)可以包括合适的处理电路,诸如cpu、gpu、专用集成电路等。处理电路(170)可以被配置为包括一个或多个媒体解码器,例如视频解码器、音频解码器等。例如,处理电路(170)被配置为包括视频解码器(180)。在一示例中,gpu被配置为视频解码器(180)。在另一示例中,cpu可以执行软件指令来用作视频解码器(180)。视频解码器(180)可以对已编码视频码流中的信息进行解码,并且重建视频序列(例如,图片帧序列)。
35.此外,处理电路(170)可以被配置为包括游戏客户端(175)。例如,cpu可以执行云游戏客户端软件来作为游戏客户端(175)。游戏客户端(175)可以接收用户输入(171)并且
将表示用户输入(171)的数据发送到服务器(110)中的游戏引擎(125)。
36.显示器(165)可以是任何合适的显示设备,诸如电视、智能电话、可佩戴显示器、头戴式设备等。在示例中,显示器(165)可以接收视频序列并且适当地显示该视频序列。
37.在一些示例中,为了玩游戏,游戏引擎(125)可以为游戏生成游戏内容,例如描绘游戏的各种游戏环境的视频序列、音频等。在示例中,游戏引擎(125)可以生成视频内容(122)(例如,视频序列),并且将视频内容(122)提供给视频编码器(130)。视频编码器(130)可以将视频内容(122)压缩成已编码视频码流(123),并且已编码视频码流(123)可由接口电路(111)传输并且通过网络(150)流式传输到客户端设备(160)。在客户端设备(160)处,接口电路(161)可以接收携带已编码视频码流的信号,并且将已编码视频码流(172)提供给视频解码器(180)。视频解码器(180)可以从已编码视频码流(172)重建视频序列,并且可以将重建的视频序列(173)提供给显示器(165)以向游戏用户提供游戏环境。
38.游戏用户可以与游戏客户端(175)交互。例如,游戏客户端(175)可以接收用户控制信息(在一些示例中也称为交互数据),例如图1中示出的用户输入(171)。诸如命令、位置信息、深度信息、移动信息等用户控制信息可以通过接口电路(161)、网络(150)和接口电路(111)从游戏客户端(175)传输到游戏引擎(125)(用户控制信息由服务器(110)处的(121)示出)。然后,响应于接收到的用户控制信息(121),游戏引擎(130)可以执行操作并且生成更新的游戏内容。更新的游戏内容可以被压缩并且由服务器(110)提供给客户端设备(160)。随着游戏的继续,游戏过程重复。
39.在一些实施例中,游戏引擎(125)可以以原始视频内容(122)的形式(例如yuv格式的图片帧序列)生成游戏视频内容。原始视频内容(122)可以提供给视频编码器(130)。视频编码器(130)压缩原始视频内容,并生成遵循特定视频编解码格式或标准(例如h.264、h.265、av1、avs2等)的已编码视频码流(123)。该已编码的视频码流(123)被发送到客户端设备(160),并且可以由客户端上的视频解码器通过使用与视频编码器(130)一致的格式或标准进行解码以进行显示。
40.云游戏系统(100)提供一种通过在远程服务器上运行游戏软件来玩视频游戏的方式,而不是在相关示例中的游戏控制台或其它本地设备上来运行游戏软件。例如,游戏公司拥有作为游戏流式传输专用服务器的服务器(110),并且服务器(110)可以比消费者端硬件(例如,客户端设备)强大得多。此外,在一些示例中,流式传输服务可以向多个客户端设备(160)发送类似的数据,所述多个客户端设备由多个玩家(用户)玩同一游戏。因此,多个玩家可以以比相关示例中所期望的更少的总运营成本(对游戏公司而言)玩同一游戏,其中成本与玩家数量成比例。
41.图2示出了根据本公开的一些实施例的云游戏场景的图(200)。在图2的示例中,服务器(210)是为游戏提供游戏服务的云游戏服务器,并且客户端设备260a-260c是分别与游戏的玩家a-c进行交互的客户端设备。服务器(210)可以与图1中的服务器(110)类似地进行配置。客户端设备260a-260c可以分别类似于图1中的客户端设备(160)来配置。
42.在图2的示例中,服务器(210)中的游戏引擎(未示出)渲染游戏环境的游戏内容,并且通过网络(未示出)将游戏内容提供给客户端设备(260a)-(260c)。此时,如图2中的(201)所示,客户端设备(260b)接收用户控制信息,例如来自玩家b的用户输入。如图2中的(202)所示,客户端设备260b通过网络向服务器(210)发送表示用户输入的数据。响应于表
示用户输入的数据,如图2中的(203)中所示,服务器(210)中的游戏引擎操作并且更新游戏环境。然后,如图2中的(204)所示,服务器(210)向客户端设备(260a)-(260c)发送更新的游戏内容。在客户端,如图2中的(205)所示,客户端设备(260a)-(260c)中的每一个可以响应于更新的游戏内容来刷新游戏环境,例如刷新显示。
43.在相关示例中,客户端设备可以是玩大多数游戏所需的游戏机或个人电脑(pc),并且构成游戏的大量前期成本。游戏机或pc的价格可能从数百美元到数千美元不等。本地机器(游戏机或pc)也会超时磨损并且具有降低的性能。随着技术的发展,云游戏服务器不断升级,消费者无需支付额外费用。
44.根据本公开的一些方面,云游戏可能需要双向通信所需的高且可靠的带宽要求和低延迟,以便实现良好的用户体验。在一些示例中,云游戏可能需要快速且稳定的互联网连接以及紧邻游戏服务器,以便具有高且可靠的带宽。例如,云游戏的流式传输服务可能需要10mbps到35mbps之间的带宽。本公开提供提高编码速度和编解码效率的技术,以便降低带宽需求并且也提高视觉质量。
45.在一些示例中,高延迟可能不利于游戏体验。延迟可以是由许多因素造成的,而流式传输的视频编码是其中一个因素。本公开还提供在维持编解码效率的同时减少编码时间的技术,从而改善云游戏体验。
46.本公开的各方面提供用于云游戏系统中元数据辅助的视频编码设计的技术。在一些示例中,视频内容(例如,原始视频)的元数据是指提供关于视频内容的信息的数据,诸如相机信息、颜色信息、照明信息、运动信息、视图信息、用户控制等。元数据连同原始视频可由游戏引擎(例如,游戏(125))渲染,并且也可由游戏引擎来提供作为视频编码器(例如,视频编码器(130))的输入,以便辅助编码过程。在一些实施例中,视频编码器(例如,视频编码器(130))可在元数据的辅助下将原始视频编码成已编码视频码流。此外,在一些实施例中,元数据可以连同已编码视频码流一起提供给视频解码器(例如,视频解码器(180))。视频解码器(例如,视频解码器(180))可在元数据的辅助下对已编码视频码流进行解码。
47.图3示出了根据本公开的一些实施例的云游戏系统(300)的框图。云游戏系统(300)类似于上述云游戏系统(100)进行操作,并且利用与云游戏系统(100)中使用的部件相同或等效的某些部件。例如,服务器系统(301)被类似地配置为服务器系统(101);客户端系统(302)被类似地配置为客户端系统(102);网络(350)被类似地配置为网络(150);服务器(310)被类似地配置为服务器(110);处理电路(320)被类似地配置为处理电路(120);存储器(315)被类似地配置为存储器(115);接口电路(311)被类似地配置为接口电路(111);游戏引擎(325)被类似地配置为游戏引擎(125);视频编码器(330)被类似地配置为视频编码器(130);接口电路(361)被类似地配置为接口电路(161);处理电路(370)被类似地配置为处理电路(170);显示器365被类似地配置为显示器(165);用户输入设备369被类似地配置为用户输入设备(169);游戏客户端(375)被类似地配置为游戏客户端(175);视频解码器(380)被类似地配置为视频解码器(180)。上面已经提供对这些部件的描述,为了清楚起见,这里将省略这些描述。
48.此外,在图3的示例中,视频编码器(330)用于在元数据的辅助下将视频内容编码成视频码流。例如,视频编码器(330)包括控制器(331),该控制器是基于元数据的控制器。游戏引擎(325)向视频编码器(330)提供原始视频内容(322)以及元数据(326)。元数据
(326)包括与原始视频内容(322)相关联的信息,例如与原始视频内容(322)相关联的相机信息、颜色信息、照明信息、运动信息、视图信息、用户控制。控制器(331)接收元数据(326)并且基于元数据(326)控制视频编码器(330)的配置,以编码原始视频内容(322)并且生成已编码视频码流(323)。元数据的辅助提高了编码速度和效率,并且可以减少带宽需求并且减少延迟。
49.在一些实施例中,已编码视频码流(323)可以与元数据一起输出,诸如元数据输出(327)中所示出的。
50.此外,在图3的示例中,视频解码器(380)用于在元数据的辅助下解码视频码流。例如,视频解码器(380)包括控制器(381),该控制器是基于元数据的控制器。控制器(381)接收元数据(377)以及已编码视频码流(372)。在示例中,已编码视频码流(372)可以是由视频编码器(330)生成的已编码视频码流(323),并且元数据(377)可以是元数据输出(327)。控制器(381)可以基于元数据(377)控制视频解码器(380)的配置,以对已编码视频码流(372)进行解码,并且生成重建的视频序列(373)。
51.在一些实施例中,从游戏引擎(325)到视频编码器(330)的元数据(326)可以包含任何合适的游戏控制信息,例如游戏场景信息(例如,相机信息、颜色信息、照明信息、运动信息、视图信息)、用户控制信息等,其可以帮助提高编解码效率和/或降低编码过程的复杂性。
52.具体而言,在一些示例中,来自诸如操纵杆、小键盘、鼠标和/或键盘的用户输入设备(369)的用户输入(371)(也称为用户控制信息)可以从客户端设备(360)传输到服务器(310)。在示例中,游戏引擎(325)接收与客户端设备(360)处的用户输入(371)对应的用户控制信息(321)。游戏引擎(325)可以基于用户控制信息(321)生成游戏场景内容(诸如视频内容、音频内容等)。在一些实施例中,可以基于游戏场景信息和用户控制信息(321)来确定元数据(326)。例如,可以基于游戏场景信息和用户控制信息来识别游戏场景的全局运动和/或对象的局部运动(321)。在一示例中,用户控制信息(321)包括观看方向变化,因此可以基于观看方向变化来识别游戏场景的全局运动。在另一示例中,用户控制信息(321)包括对象的移动,因此可以识别对象的局部移动。在示例中,元数据(326)可以包括游戏场景的全局运动、对象的局部运动和对象的边界框。元数据(326)可以作为视频编码器(330)的附加的输入数据来帮助视频编码过程。元数据(326)可以连同游戏引擎(325)渲染的原始视频内容(322)一起被反馈到视频编码器(330)。视频编码器(330)可以利用元数据(326)中的信息来高效地对原始视频内容(322)执行运动估计/补偿过程。
53.在一些实施例中,元数据(326)可以作为可配置的编码器设置(诸如视频编码器(330)的参数等)被反馈到视频编码器(330)。在一示例中,元数据(326)可以用于生成图片或图片区域的全局运动模型(例如,仿射模型、透视模型、旋转模型、缩放模型等)。在另一示例中,元数据(326)可以用于选择视频编码器(330)中的编解码工具。然而,在示例中,当任一此类参数不可用时,视频编码器(330)可以假定一组默认值。
54.在一些实施例中,可以对被反馈到视频编码器(330)的元数据(326)进行处理,并且如元数据(327)示出的连同编码视频码流(323)一起发送。元数据(327)可以辅助视频解码器对已编码视频码流(323)进行解码。例如,可以辅助解码和显示已编码视频码流(323)的元数据(327)(诸如定时信息、覆盖消息、覆盖图形、边界框等)可以作为补充增强信息
(sei,supplemental enhancement information)消息发送。sei消息可在已编码视频码流内传送或单独传送。
55.在一些实施例中,客户端设备(360)接收已编码视频码流(372)以及元数据(377)。元数据(377)可以被客户端设备(360)用来辅助已编码视频码流(372)中携带的视频序列的解码或后处理。例如,元数据(377)可以包括定时信息、覆盖消息、覆盖图形、边界框信息,这些信息可以辅助已编码视频码流(372)的解码和显示。
56.在一些实施例中,可以使用另外的编解码器对元数据进行编解码(编码/解码)。在一些示例中,游戏引擎(325)可以输出分开的内容、视频、音频、覆盖消息、覆盖图形等。在示例中,覆盖消息(或覆盖图形)被认为是视频内容的元数据。可以使用来自视频编码器330的单独编码器将覆盖消息(或覆盖图形)压缩成单独的码流(第二码流)。然后,在示例中,用于视频内容的已编码视频码流和用于覆盖消息(或覆盖图形)的第二码流可以被复用成单个码流。
57.根据本公开的一些方面,辅助视频编码过程或视频解码过程的各种信息可以作为元数据连同游戏视频输入(例如,作为用于视频编码过程的游戏视频输入的视频序列、作为视频解码过程的游戏视频输入的已编码视频码流)一起来发送。
58.在一些示例中,元数据可以包括区域游戏内容的位置信息,例如游戏角色(例如,游戏的主角)的位置、游戏场景的感兴趣区域(roi,region of interest)。
59.在一些示例中,元数据可以包括相机信息,例如主相机的位置信息、相机的视角以及各种相机参数(例如,焦距、到主要角色的距离、视角、失真参数、渐晕参数等)。
60.在一些示例中,元数据可以包括游戏场景的系统信息,例如场景的主色、场景的亮度、当前图片的噪声水平、场景变化指示符、衰落指示符和/或衰落参数(例如用于加权预测的加权)。
61.在一些示例中,元数据可以包括区域和全局运动信息。在示例中,元数据包括相对于一个或多个先前图片的平移运动矢量,在每像素级别或在具有预定块大小的块级别。
62.在一些示例中,元数据可以包括全局运动模型或区域运动模型。在一示例中,元数据可以包括图片的全局运动模型,诸如平移模型、缩放模型、旋转模型、透视运动模型、仿射运动模型等。在另一示例中,元数据可以包括图片中某个区域中的区域模型,诸如平移模型、缩放模型、旋转模型、透视运动模型、仿射运动模型等。
63.在一些示例中,元数据可以包括用户输入信息,例如按键、鼠标移动、鼠标按钮点击、运动传感器输入等。
64.在各种实施例中,元数据可以例如从游戏引擎(325)提供给服务器端的视频编码器(330),以包括各种信息,这些信息可以辅助编码过程来降低编码过程的复杂性,或提高编解码效率,例如降低比特率和/或减少失真。
65.在一实施例中,游戏引擎(325)可以提供元数据,该元数据包括像素级或块级的一个或多个建议运动矢量。一个或多个建议运动矢量可以用于辅助视频编码器(330)进行运动估计,以减少运动矢量搜索操作并且提高运动估计准确度。在示例中,来自游戏引擎(325)的建议运动矢量可以用作视频编码器(330)的运动搜索算法的起点。在一些示例中,响应于游戏场景的运动信息和用户输入,游戏引擎(325)生成视频内容,游戏引擎(325)建议的运动矢量可以相当准确。因此,视频编码器(330)可以花费更少的时间用于运动矢量搜
索,并且可以实现准确的运动估计。
66.在另一实施例中,游戏引擎(325)可以提供元数据,该元数据包括可以识别视频内容中的图片特性的参数,诸如场景变化、照明变化、闪烁、平移、缩放、衰退、消息覆盖等。鉴于该参数,视频编码器(330)可以选择适当的配置设置、参数集、编解码工具等来进行编码处理,从而可以提高压缩效率。
67.在另一实施例中,游戏引擎(325)可以提供包括边界框信息的元数据,并且视频编码器(330)可以使用边界框信息来确定图片帧中的未覆盖区域与视频序列中的珍贵图片帧的关系,并且使用该关系来避免不必要的计算,并且提高处理速度。在一示例中,边界框中的角色可能具有不同于图片其余部分的运动。视频编码器(330)可以使用边界框信息对角色和图片的其余部分应用单独的运动模型。在另一示例中,视频编码器(330)可以使用边界框信息来识别例如来自先前图片的当前图片中的未被边界框覆盖的特定区域(也称为未覆盖区域)(例如,该特定区域被先前图片中的边界框覆盖),并且识别显示该特定区域的一个或多个先前图片(例如,在边界框覆盖该特定区域之前)。根据此类信息,视频编码器(330)可以避免对一些编码模式进行不必要的计算,所述编码模式不可能为那些区域选择。例如,基于此类信息,视频编码器(330)可以直接选择时间预测,以基于所识别的一个或多个先前图片来预测当前图片中的特定区域,而无需尝试其它预测工具。
68.在另一实施例中,游戏引擎(325)可以提供元数据,该元数据指示图片的区域中相对于一个或多个先前图片的模型变换(例如,具有不同成像特性的相同对象),例如运动模糊效果的改变、镜头模糊效果的改变、镜头失真的改变、镜头晕影的改变等。基于由元数据指示的模型变换信息,视频编码器(330)可以确定将在某些区域中使用的编解码工具、编码方法、编码参数等。例如,当元数据指示当前图片帧的区域相对于先前图片帧中的参考区域的镜头模糊时,视频编码器(330)可以基于先前图片帧中的参考区域和模糊滤波器来对当前图片帧的区域进行编码。
69.在另一实施例中,游戏引擎(325)提供指示图片(当前图片)或一个或多个后续图片中当前图片中的对象的存在的元数据。基于元数据,视频编码器(330)可以确定缓冲器配置,例如缓冲当前图片的某些内容/区域,以用作一个或多个后续图片的参考。在一示例中,元数据指示对象的运动,该对象的运动导致对象在后续图片中的移动。基于元数据,视频编码器(330)可以缓冲具有对象的当前图片中的区域(具有对象的区域)的内容,并且缓冲的内容可以用作运动补偿中一个或多个后续图片的参考。在另一示例中,元数据指示要在当前图片和后续图片中使用的映射图。基于元数据,视频编码器(330)可以缓冲当前图片中的映射图区域作为对后续图片进行编码的参考。在另一示例中,元数据指示当前图片(或当前图片的区域)是后续图片的背景。基于元数据,视频编码器(330)可以缓冲当前图片(或当前图片的区域)作为长期参考,并且相应地对后续图片进行编码。例如,跳过模式可以用于对后续图片中的块进行编码,所述后续图片可以参考该长期参考。
70.在另一实施例中,游戏引擎(325)提供指示噪声特性的元数据,诸如图片的噪声级别信息。基于元数据,可以执行图片的预处理和/或后处理。在示例中,游戏引擎(325)向视频编码器(330)提供噪声图片(在视频内容中)和指示噪声级别的元数据。基于指示噪声级别的元数据,视频编码器(330)可在预处理阶段对噪声图片进行去噪(例如,应用去除噪声的滤波器)以生成低噪声图片,然后对低噪声图片进行编码。去噪强度/阈值可由元数据中
的噪声级别信息来确定。在一示例中,已编码图片(低噪声图片)和指示噪声级别的元数据被发送到客户端设备(360)。然后,视频解码器(380)可以重建低噪声图片,然后在后处理阶段,基于元数据中的噪声级别信息将噪声添加到低噪声图片上。
71.在另一示例中,游戏引擎(325)向视频编码器(330)提供(在视频内容中的)低噪声(或无噪声)图片和指示噪声级别的元数据。视频编码器(330)然后对低噪声图片进行编码。在一示例中,已编码图片(低噪声图片)和指示噪声级别的元数据被发送到客户端设备(360)。然后,视频解码器(380)可以重建低噪声图片,然后在后处理阶段,基于元数据中的噪声水平信息将噪声添加到低噪声图片上。在一些示例中,视频编码器(330)包括本地解码器,该本地解码器可以基于元数据中的噪声级别信息在后处理阶段添加噪声。
72.注意,与高噪声图片相比,可以以更高的编解码效率对低噪声图片进行编解码。
73.在另一实施例中,游戏引擎(325)提供指示图片中一个或多个感兴趣区域的元数据。基于元数据,视频编码器(330)可以实现更好的质量控制或速率控制。在一示例中,与图片中的其它区域相比,可以分配更高的比特率来对一个或多个感兴趣区域进行编码。在另一示例中,当带宽不足以用较高比特率编码整个图片时,可以首先降低对一个或多个感兴趣区域之外的区域进行编码的比特率,以便维持一个或多个感兴趣区域的较高比特率。
74.在另一实施例中,游戏引擎(325)提供指示图片内一个或多个图形覆盖的区域的元数据,诸如徽标、横幅、雷达图像、映射图、消息框等。基于元数据,视频编码器(330)可以为一个或多个图形覆盖的区域采用适当的编解码工具,该适当的编解码工具可以不同于图片中其它区域的编解码工具。在示例中,可以使用跳过模式对徽标进行编解码,以提高编解码效率。对一个或多个图形覆盖的区域使用适当的编解码工具也可以避免错误的运动信息、伪像/失真等。
75.在一些实施例中,游戏引擎(325)提供用于指示覆盖消息的消息框的元数据。覆盖消息可以被压缩并且作为单独的网络抽象层单元(nalu)包括在视频码流中,所述网络抽象层单元专门用于覆盖消息。在一些示例中,nalu实际上是数据包。视频码流可由nalu(数据包)组织和传输,并且nalu的中一个可以是用于覆盖消息的特殊nalu。覆盖消息的nalu可以包括覆盖消息的边界框的区域、覆盖消息的位置、字体、大小、颜色、文本的样式、覆盖文本内容等。在示例中,覆盖文本内容可以用unicode进行编解码。在示例中,游戏引擎(325)将覆盖消息与视频内容分开提供给视频编码器(330)。视频编码器(330)可以分别对视频内容和覆盖消息进行编码。可以将覆盖消息压缩为视频码流中的单独的nalu。视频码流可以从服务器(310)传输到客户端设备(360)。处理电路(370)可以从视频码流中分别解码视频内容和覆盖消息,然后将覆盖消息添加到视频内容上,利如以添加隐藏字幕的方式。
76.图4示出了根据本公开实施例的视频编码器(430)的框图。视频编码器(430)包括在电子设备(410)中。在示例中,电子设备(410)是服务器设备,例如图3示例中的服务器(310)。电子设备(410)还包括发射器(411)(例如,发射电路等)。视频编码器(430)可以用来代替图3示例中的视频编码器(330)。
77.视频编码器(430)可以从视频源接收原始视频内容,例如图3示例中的游戏引擎(325)。此外,视频编码器(430)可以接收元数据,诸如相机信息、颜色信息、照明信息、运动信息、视图信息、覆盖信息(例如,覆盖消息、覆盖图形等)、用户控制等,其提供与原始视频内容相关联的信息。
78.在一些例子中,原始视频内容可以是数字视频样本流形式的,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位
……
)、任何色彩空间(例如bt.601y crcb、rgb
……
)和任何合适取样结构(例如y crcb 4:2:0、y crcb 4:4:4)。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。
79.根据实施例,视频编码器(430)可以将原始视频内容(也称为视频序列)的图片进行编码和压缩成已编码视频码流(443)。在图4的示例中,视频编码器(430)包括控制器(431),该控制器被配置为基于元数据来控制视频编码器(430)的编码配置,以便提高编码速度和效率。在一些实施例中,控制器(431)可以基于元数据来确定编码配置。此外,控制器(431)在功能上耦合到其它功能单元,并且控制用于编码处理的其它功能单元。为清楚起见,并没有对耦合进行描绘。注意,控制器(431)可以设置各种配置和参数,诸如图片跳过、量化器、率失真优化技术的λ值、图片大小、图片组(gop)布局、最大运动矢量搜索范围、运动模型等。
80.在一示例中,控制器(431)被配置为基于元数据确定图片的全局运动模型,例如仿射模型、透视模型、旋转模型、缩放模型等,并且可以相应地配置编码参数。在另一示例中,控制器(431)被配置为基于元数据确定图片内的边界框中的区域和该区域的局部运动模型。在一些实施例中,控制器(431)包括与视频编码器(430)的其它部分分开的编码器(未示出)。单独的编码器可以将元数据压缩成压缩的元数据。例如,元数据包括覆盖内容,例如覆盖消息和覆盖图形。覆盖内容可以被压缩成覆盖内容码流(444)。在一示例中,覆盖内容码流(444)可以例如通过多路复用器(412)与已编码视频码流(443)组合成单个码流。在另一示例中,控制器431可以将元数据包括到与已编码视频码流相关联的sei消息中(443)。控制器(431)可以被配置为具有与视频编码器(430)相关的其它合适的功能,所述视频编码器(430)针对特定系统设计进行优化。
81.在一些实施例中,视频编码器(430)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(432)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(430)中的(本地)解码器(434)。解码器(533)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据(因为在本技术所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(435)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(435)中的内容在本地解码器与远程解码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。
[0082]“本地”解码器(434)的操作可以与“远程”解码器的操作相同,这将结合图5进行详细描述。
[0083]
在操作期间,在一些示例中,源编码器(432)可以执行运动补偿预测性编解码,其可以参考一个或多个先前已编码图片对输入图片进行预测性编解码,所述一个或多个先前已编码图片来自被指定为“参考图片”的视频序列。以此方式,编解码引擎(433)对输入图片的像素块和一个或多个参考图片的像素块之间的差异进行编码,一个或多个参考图片可以被选择作为输入图片的一个或多个预测参考。在一些示例中,源编码器(432)可以从控制器
(431)接收控制信号。控制信号基于视频序列的元数据生成,并且可以控制源编码器(432)以快速执行运动补偿预测性编解码。
[0084]
本地视频解码器(434)可基于源编码器(432)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(433)的操作可为有损过程。当已编码视频数据可在视频解码器(例如图5中将要描述的视频解码器)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(434)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(435)中。以此方式,视频编码器(430)可在本地存储重建的参考图片的副本,所述副本与将由远端视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
[0085]
预测器(436)可以为编解码引擎(433)执行预测搜索。也就是说,对于要编解码的新图片,预测器(436)可在参考图片存储器(435)中搜索样本数据(作为候选参考像素块)。在一些示例中,预测器(436)从控制器(431)接收控制信号。可以基于元数据、相机信息、颜色信息、照明信息、运动信息、视图信息、用户控制、块形状等来生成控制信号。控制信号可以控制预测器(436)以减少为新图片进行适当预测参考的预测搜索的时间。在一示例中,控制信号可以指示参考(例如,参考图片、参考块等)。在另一示例中,控制信号可以指示搜索的起点。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(436)获得的搜索结果,可确定输入图片可具有从参考图片存储器(435)中存储的多个参考图片取得的预测参考。
[0086]
控制器(431)可管理源编码器(432)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
[0087]
可在熵编码器(437)中对所有上述功能单元的输出进行熵编码。熵编码器(437)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
[0088]
发射机(411)可以缓冲由熵编码器(437)创建的一个或多个已编码视频序列,以准备通过网络传输。发射机(411)可以将来自视频编码器(430)的已编码视频数据与其它要传输的数据进行合并,例如编码音频数据和/或辅助数据流(源未示出)。在一些示例中,已编码视频码流(443)和覆盖内容码流(444)被复用成单个码流。在另一示例中,元数据可以被包括在与已编码视频码流相关联的sei消息中(443)。
[0089]
控制器(431)可执行视频编码器(430)的各种管理操作。在编码期间,控制器(431)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型,例如i图片、p图片、b图片等。
[0090]
帧内图片(i图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independent decoder refresh,“idr”)图片。
[0091]
预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
[0092]
双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
[0093]
源图片通常可在空间上细分成多个样本块(例如,4
×
4、8
×
8、4
×
8或16
×
16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,i图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。p图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。b图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。
[0094]
视频编码器(430)可根据预定视频编码技术或标准执行编码操作。在操作中,视频编码器(430)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
[0095]
在实施例中,传输器(411)可在传输已编码的视频时传输附加数据。源编码器(432)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/snr增强层、冗余图片和切片等其它形式的冗余数据、sei消息、vui参数集片段等。
[0096]
采集到的视频(或者视频序列、原始视频内容)可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
[0097]
在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来预测所述块。
[0098]
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
[0099]
根据本技术公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,根据hevc标准,将视频图片序列中的图片分割成编码树单元(coding tree unit,ctu)以用于压缩,图片中的ctu具有相同大小,例如64
×
64像素、32
×
32像素或16
×
16像素。一般来说,ctu包括三个编码树块(coding tree block,ctb),所述三个编码树块是一个亮度ctb和两个色度ctb。更进一步的,还可将每个ctu以四叉树拆分为一个或多个编码单元(coding unit,cu)。举例来说,可将64
×
64像素的ctu拆分为一个64
×
64像素的cu,或4个32
×
32像素的cu,或16个16
×
16像素的cu。在实施例中,分析每个cu以确定用于cu的预测类型,例如帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将cu拆分为一个或多个预测单元(prediction unit,pu)。通常,每个pu包括亮度预测块(prediction block,pb)和两个色度pb。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块为例,预测块包括像素值(例如,亮度值)的矩阵,例如8
×
8像素、16
×
16像素、8
×
16像素、16
×
8像素等等。
[0100]
图5示出了根据本公开的一些实施例的视频解码器(580)的图。视频解码器(580)被配置为接收作为已编码视频序列的一部分的已编码图片,并且对已编码图片进行解码以
生成重建图片。在示例中,视频解码器(580)被用来代替图3示例中的视频解码器(380)。
[0101]
在图5的示例中,视频解码器(580)包括如图5中所示耦合在一起的熵解码器(582)、帧间解码器(585)、残差解码器(583)、重建模块(586)和帧内解码器(584)。
[0102]
熵解码器(582)可以用于从已编码图片中重建某些符号,所述某些符号表示组成已编码图片的语法元素。此类符号可以包括,例如,对块进行编码的模式(例如,帧内模式、帧间模式、双预测模式、后两者的合并子模式或另一子模式)、可以分别识别供帧内解码器(584)或帧间解码器(585)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。。在示例中,当预测模式是帧间或双预测模式时,将帧间预测信息提供给帧间解码器(585);并且当预测类型是帧内预测类型时,将帧内预测信息提供给帧内解码器(584)。残差信息可以经由逆量化并且被提供给残差解码器(583)。元数据可以被提供给控制器(581)。
[0103]
帧间解码器(585)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
[0104]
帧内解码器(584)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
[0105]
残差解码器(583)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(583)还可能需要某些控制信息(用以获得量化器参数qp),且所述信息可由熵解码器(582)提供(未标示数据路径,因为这仅仅是低量控制信息)。
[0106]
重建模块(586)用于在空间域中组合由残差解码器(583)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块可以是重建的图片的一部分,所述重建的图片继而可以是重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。重建的图片可以被缓冲在例如缓冲器(587)中,并且缓冲器(587)可以向帧间解码器(585)提供参考图片。
[0107]
在一些实施例中,控制器(581)接收元数据,并且可以基于元数据配置解码器(580)的解码参数。在一些示例中,控制器(581)可以向帧内解码器(584)和/或帧间解码器(585)提供控制信号,以基于元数据控制预测。在另一示例中,控制器(581)可以从元数据解码覆盖内容,并且将覆盖内容提供给重建模块(586)。因此,重建模块(586)可以重建具有覆盖内容的图片。
[0108]
图6示出了概述根据本公开实施例的过程(600)的流程图。过程(600)可以用于在云游戏系统(诸如云游戏系统(100)、云游戏系统(300)等)中对视频序列进行编码。在各种实施例中,过程(600)由处理电路执行,例如服务器(110)中的处理电路(120)、服务器(310)中的处理电路(320)、视频编码器(130)、视频编码器(330)、视频编码器(430)等。在一些实施例中,过程(600)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(600)。该过程开始于(s601)并且进行到(s610)。
[0109]
在(s610),接收视频序列和与该视频序列相关联的元数据。视频序列包括响应于游戏控制信息生成的图片帧序列。元数据是基于游戏控制信息确定的,并且指示游戏控制信息。在示例中,例如游戏引擎(325)的游戏引擎可以基于诸如游戏场景控制信息、用户信息等游戏控制信息来生成诸如视频内容、音频内容等游戏内容。可以将视频内容生成为包
括图片帧序列的视频序列。此外,可以基于游戏控制信息来识别与视频序列相关联的元数据。视频序列和元数据可以提供给视频编码器,诸如视频编码器(330)。视频编码器(330)接收视频序列和与视频序列相关联的元数据。
[0110]
在(s620)处,基于元数据确定编码配置。在一实施例中,元数据包括像素级或块级的运动矢量。基于运动矢量,可以确定对视频序列的图片帧内的块进行编码的运动搜索的起始点。
[0111]
在另一实施例中,元数据至少指示视频序列的图片帧的一种图片特性,所述图片特性包括场景变化特性、照明变化特性、闪烁特性、平移特性、缩放特性、衰落特性和覆盖特性。基于图片特性,可以确定对图片帧进行编码的编码配置(例如,编解码工具、参数集、配置设置等)。
[0112]
在另一实施例中,元数据指示图片帧中的边界框。基于边界框,可以确定未覆盖区域的一个或多个先前图片帧中的参考区域,所述未覆盖区域未被相对于当前图片帧的前一图片帧的当前图片帧中的边界框覆盖。当前图片帧中的边界框未覆盖的区域可以基于先前图片帧中的参考区域进行编码。
[0113]
在另一实施例中,元数据指示从第一图片帧到第二图片帧的模型变换(例如运动模糊效果的改变、镜头模糊效果的改变、镜头失真的改变、镜头晕影的改变等)。编码配置(例如,过滤工具、参数集、配置设置等)可以基于模型变换来确定。基于编码配置,可以基于第一图片帧中的参考块对第二图片帧中的块进行编码。
[0114]
在另一实施例中,元数据指示当前图片帧的对象在后续图片帧中的存在。然后,可以基于元数据确定缓冲器配置(例如,缓冲重建区域,所述重建区域包括用于对后续图片帧进行编码/解码的对象)。
[0115]
在另一实施例中,元数据指示图片帧的噪声水平。然后,可以基于噪声水平来确定图片帧的预处理配置或后处理配置。在一示例中,可以基于预处理配置在预处理中对图片帧进行去噪。在另一示例中,可以基于后处理中的后处理配置在重建的图片帧上添加噪声。
[0116]
在另一实施例中,元数据指示图片帧中的感兴趣区域。在一些示例中,可以确定具有更高质量(例如,更高分辨率、更高比特率)的第一编码配置用于对感兴趣区域进行编码,并且可以确定具有比第一编码配置更低质量的第二编码配置用于对感兴趣区域之外区域进行编码。
[0117]
在另一实施例中,元数据指示图片帧的区域中的图形覆盖。然后,可以确定编码配置,所述编码配置可以用于基于图形覆盖对所述区域进行编码。在示例中,跳过模式可以用于对某些图形覆盖(诸如徽标等)进行编码,以提高编解码效率。
[0118]
在(s630)处,基于编码配置将视频序列编码成已编码视频码流。已编码视频码流可以通过网络传输到目的地设备,诸如客户端设备(360)。在一些实施例中,元数据也被传输到目的地设备以辅助在目的地设备处对已编码视频码流进行解码。在一实施例中,元数据连同编码视频码流一起在sei消息中传输。在另一实施例中,元数据包括覆盖内容。可以将覆盖内容编码成覆盖内容码流。覆盖内容码流和已编码视频码流可以被复用成单个输出码流。单个输出码流可以通过网络传输到目的地设备。
[0119]
在另一实施例中,元数据指示用于覆盖消息的图片帧中的消息框。覆盖消息和覆盖消息的信息可以被压缩并且包括在已编码视频码流的特定nalu中。已编码视频码流可以
包括用于携载已编码视频数据的多个nalu(例如,数据包),并且包括用于携载覆盖消息的特定nalu。已编码视频码流可以通过网络传输到目的地设备。然后,过程进行到(s699)并且终止。
[0120]
图7示出了概述根据本公开实施例的过程(700)的流程图。过程(700)可以用于对云游戏系统(例如云游戏系统(100)、云游戏系统(300)等)中的视频序列进行解码。在各种实施例中,过程(700)由处理电路(诸如处理电路(170)、处理电路(370)、视频解码器(180)、视频解码器(380)、视频解码器(480)等)执行。在一些实施例中,过程(700)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(700)。该过程开始于(s701)并且进行到(s710)。
[0121]
在(s710)处,接收已编码视频码流以及与所述已编码视频码流相关联的元数据。元数据是基于游戏控制信息来确定的,该游戏控制信息也用于在游戏服务器(诸如服务器(310))上生成视频内容。
[0122]
在(s720)处,基于元数据确定解码配置和重建配置。
[0123]
在实施例中,元数据指示图片帧的噪声水平。然后,可以基于噪声水平来确定图片帧的后处理配置(所述重建配置中的配置)。在示例中,后处理配置可以导致噪声水平的噪声被添加到重建的图片帧。
[0124]
在(s730)处,基于所述解码配置对已编码视频码流进行解码,并且基于所述重建配置重建视频序列。然后,过程进行到(s799)并且终止。
[0125]
在一些实施例中,已编码视频码流包括用于携带视频内容的nalu和用于携带覆盖内容的特定nalu。可以对所述特定nalu进行识别并且对所述特定nalu进行单独解码(例如,由不同的解码器)以生成覆盖内容。然后,可以用覆盖内容重建视频序列。
[0126]
上述技术可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图8示出了适于实现所公开主题的某些实施例的计算机系统(800)。
[0127]
所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由一个或多个计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过译码、微代码等方式执行。
[0128]
所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。
[0129]
图8所示的用于计算机系统(800)的组件本质上是示例性的,并且不旨在对实现本发明的实施例的计算机软件的使用范围或功能提出任何限制。也不应将组件的配置解释为对计算机系统(800)的示范性实施例中所说明的组件中的任一者或组合具有任何依赖性或要求。
[0130]
计算机系统(800)可以包括某些人机界面输入设备。所述人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出)对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕捉不必直接与人类有意识输入相关的某些媒体,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
[0131]
人机界面输入设备可包括以下中的一个或多个(仅描绘其中一个):键盘(801)、鼠标(802)、触控板(803)、触摸屏(810)、数据手套(未示出)、操纵杆(805)、麦克风(806)、扫描仪(807)、照相机(808)。
[0132]
计算机系统(800)还可以包括某些人机界面输出设备。所述人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。所述人机界面输出设备可包括触觉输出设备(例如通过触摸屏(810)、数据手套(未示出)或操纵杆(805)的触觉反馈,但也可有不是输入设备的触觉反馈设备)、音频输出设备(例如,扬声器(809)、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕(810),其中每个都有或没有触摸屏输入功能、触觉反馈功能——其中一些可通过如立体画面输出等手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。
[0133]
计算机系统(800)还可以包括人类可访问的存储设备及其相关联介质,如包括具有cd/dvd的cd/dvd rom/rw(820)等介质(821)的光学介质、拇指驱动器(822)、可移动硬盘驱动器或固态驱动器(823),如磁带和软盘(未示出)的传统磁介质,如安全软件保护器(未示出)等的基于rom/asic/pld的专用设备,等等。
[0134]
本领域技术人员还应当理解,结合本发明的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它瞬时信号。
[0135]
计算机系统(800)还可以包括到一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(gsm、3g、4g、5g、lte等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括canbus)等等。某些网络通常需要连接到某些通用数据端口或外围总线(849)(例如,计算机系统(800)的usb端口)的外部网络接口适配器;其它系统通常通过连接到如下所述的系统总线集成到计算机系统(800)的核心(例如,以太网接口集成到pc计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统(800)可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如can总线到某些can总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。
[0136]
前述的人机界面设备、人类可访问存储设备和网络接口可以连接到计算机系统(800)的核心(840)。
[0137]
核心(840)可包括一个或多个中央处理单元(cpu)(841)、图形处理单元(gpu)(842)、以现场可编程门阵列(fpga)(843)形式存在的专用可编程处理单元、用于特定任务的硬件加速器(844)等。上述设备以及只读存储器(rom)(845)、随机存取存储器(846)、内部大容量存储器(例如内部非用户可存取硬盘驱动器、ssd等)(847)等可通过系统总线(848)进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(848),以便通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线(848),或通过外围总线(849)进行连接。外围总线的体系结构包括外部控制器接口pci、通用串行总线usb等。
[0138]
cpu(841)、gpu(842)、fpga(843)和加速器(844)可以执行某些指令,这些指令组合
起来可以构成上述计算机代码。该计算机代码可以存储在rom(845)或ram(846)中。过渡数据也可以存储在ram(846)中,而永久数据可以存储在例如内部大容量存储器(847)中。通过使用高速缓存可实现对任何存储器设备的快速存储和检索,高速缓存可与一个或多个cpu(841)、gpu(842)、大容量存储器(847)、rom(845)、ram(846)等紧密关联。
[0139]
所述计算机可读介质上可具有用于执行各种计算机实现操作的计算机代码。介质和计算机代码可以是为本发明的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。
[0140]
作为示例而非限制,具有体系结构(800)的计算机系统,特别是核心(840),可以作为处理器(包括cpu、gpu、fpga、加速器等)提供功能,执行包含在一个或多个有形的计算机可读介质中的软件。这种计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质,以及具有非瞬时性质的核心(840)的特定存储器,诸如核心内部大容量存储器(847)或rom(845)。实现本发明的各种实施例的软件可以存储在这种设备中并且由核心(840)执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心(840)特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在ram(846)中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其他方式包含在电路(例如,加速器(844))中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(ic)),包含执行逻辑的电路,或两者兼备。本发明包括任何合适的硬件和软件组合。
[0141]
虽然本发明已对多个示例性实施例进行了描述,但实施例的各种变更、置换和各种替代属于本发明的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本发明的原则,因此属于本发明的精神和范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献