CN110945849B - 基于编码器提示的渲染和预编码负载估计的系统和方法 - Google Patents

基于编码器提示的渲染和预编码负载估计的系统和方法 Download PDF

Info

Publication number
CN110945849B
CN110945849B CN201880041815.0A CN201880041815A CN110945849B CN 110945849 B CN110945849 B CN 110945849B CN 201880041815 A CN201880041815 A CN 201880041815A CN 110945849 B CN110945849 B CN 110945849B
Authority
CN
China
Prior art keywords
encoder
frames
frame
video
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880041815.0A
Other languages
English (en)
Other versions
CN110945849A (zh
Inventor
迈克尔·科皮茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zenimax Media Inc
Original Assignee
Zenimax Media Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zenimax Media Inc filed Critical Zenimax Media Inc
Priority to CN202010966091.XA priority Critical patent/CN112153029A/zh
Publication of CN110945849A publication Critical patent/CN110945849A/zh
Application granted granted Critical
Publication of CN110945849B publication Critical patent/CN110945849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/352Details of game servers involving special game server arrangements, e.g. regional servers connected to a national server or a plurality of servers managing partitions of the game world
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • H04N19/194Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive involving only two passes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Abstract

本申请公开了用于提示编码器的系统和方法,其中服务器监测与帧渲染中的变化有关的信息、计算公差边界、滚动平均帧时间和帧时间的短期趋势,使用那些计算来识别帧时间峰值。然后,服务器提示编解码器(编码器)以与帧时间峰值的大小成比例地调制帧输出的质量设置。在某些实施例中,渲染器在游戏环境中记录一个或更多个通关,将来自一个或更多个通关的多个帧排序到热图的多个单元格中并收集已排序帧的列表。然后,编码器可以对已排序帧的列表中的一个或更多个帧进行编码,以计算热图中每个单元格的平均编码帧大小,并将每个平均编码帧大小与每单元格归一化编码器质量设置相关联。

Description

基于编码器提示的渲染和预编码负载估计的系统和方法
相关申请
本申请要求以下美国临时申请的优先权:2017年4月21日提交的No.62/488,526、2018年3月23日提交的No.62/647,180和2018年4月11日提交的No.62/655,901。
背景技术
远程游戏应用程序(其中服务器端游戏由客户端玩家控制)已尝试使用现有或定制的编解码器(也称为编码器)对来自三维(3D)图形引擎的视频输出进行实时编码。然而,视频游戏的交互性质、特别是在视频输出与玩家输入之间的玩家反馈循环使得游戏视频流比传统视频流对延迟更加敏感。现有的视频编码方法可以为减少编码时间而牺牲计算能力,而别无其他。用于将编码过程集成到视频渲染过程中的新方法能够显著减少编码时间,同时还可以降低计算能力,改善编码视频的质量并保留原始比特流数据格式以保留现有硬件设备的互操作性。
在多遍编码过程的第一遍次,在有效地打包数据以适合连续遍次的比特率约束之前,计算编码成本或每个编码视频帧的大小。多遍编码的益处是可观的,可以为比特率约束提供最高的质量,但是传统的多遍编码需要访问完整的视频文件,使其不适合实时流应用。
实时流应用通常使用单遍编码,因为视频事先不可用。对实时流编码的时间约束阻碍了编码器以受限比特率打包视频信息的能力。因为不是在单遍编码中计算编码成本,所以在编码高熵帧时网络流量会激增。
实时渲染视频在诸如视频游戏流的实时流应用中越来越多地被使用,其中高质量和约束带宽都被高度重视。与录制的视频不同,渲染的视频可访问有关每个帧的附加信息,这些信息能够被重新用于估计对帧进行编码的成本。以这种方式,多遍编码方案中的第一遍次的结果能够被近似以在比特率约束内实现最高质量的编码的视频。许多渲染引擎具有关于将要渲染的图像的部分信息,并且可以预生成在运行时期间能够被使用的编码器质量设置。以这种方式,能够在实况流环境中实现多遍编码模式的益处。然而,如下所述,当前的计算机技术仍然不足以足够程度地估计编码质量以执行高质量的实时渲染视频的渲染,同时补偿由于熵增加而引起的流量尖峰。此外,目前还没有一种编码技术可以在保留实时环境的同时,在空间上而不是在时间上对多遍编码进行预编码。
美国专利第7,844,002 B2号(“'002专利”)公开了利用超前信息用于实现MPEG视频编码以便达到恒定比特率的系统和方法。该系统由两个视频编码器组成,其中一个编码器相对于另一个编码器的超前窗口将输入延迟了一段时间。在'002专利的系统中,视频编码器之一用作缓冲器(超前)设备,延迟输入视频帧,以使用作信息收集器/处理器的第二个视频编码器具有提取相关信息并确定视频帧的编码策略所需的时间。一旦确定了该策略,将编码参数传递到编码器设备以执行。与本发明相比,'002专利的技术是有缺陷,至少是因为其没有公开用于计算实时流应用中的渲染视频的帧编码成本的技术,提供用于游戏应用的实时流的足够低的等待时间,或提供使用视频数据在比特率限制内最大化编码视频的技术。本发明也是优越的,因为它收集和存储视频数据的编码器设置,其能够无限期地重复使用。
美国专利公开号US2016/0198166 A1(“'166公开”)公开了提供了用于实时编码的解决方案的伪多遍编码技术的系统和方法。所公开的系统是其中在第一遍中对输入视频帧进行下采样和编码以形成图片的子组的系统。然后,这些子组用于生成编码统计信息,该统计信息用于生成一组第二遍编码帧。由'166公开所描述的技术劣于本发明,至少因为本发明教导了用于计算用于在实时流应用中对渲染的视频的帧进行编码的特定成本,并且使用此类数据在比特率约束内最大化编码的视频而无需任何下采样的技术。
美国专利第9,697,280号(“'280专利”)公开了用于由归一化信息产生移动媒体数据记录、分析移动媒体数据记录以确定结算安排、并向移动媒体记录中所表示的参与者中的至少一些提供来自结算协议的相关信息的系统和方法。该系统和方法能够执行多遍编码,其中先前编码器的输出以菊花链方式链接到下一编码器的输入,从而导致在编码的文件可用于消费之前出现延迟。为了减少与顺序编码相关的延迟,同时获得同等的高质量,可以在流水线中配置连续编码阶段,使得第一编码器的输出被馈送到第二编码器的输入,以便每个编码器中的编码被偏移少量的时间,从而允许大部分编码并行运行。然后,总等待时间可以近似于每个编码器从读入的第一块到写出的第一块的等待时间之和。总等待时间可以容易地促进实时多遍编码。然而,与本节中所描述的其他技术类似,'280专利没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、以及使用此类数据在比特率约束内最大化编码视频的技术。
美国专利公开US 20170155910 A1(“'910公开”)公开了用于在不引入边界伪影的情况下将媒体内容的音频分割为单独的内容文件的系统和方法。'910公开了一种系统,其中编码器将原始内容文件分割为源数据流,并在每个对应的原始数据流上对多个副本(例如,流)执行两遍编码,而无需例如等待电视节目结束。这样,Web服务器能够在数据流生成系统开始捕获原始内容文件后不久,通过互联网流传输数据流。由发布方传输的实时广播与内容的可用性之间的延迟取决于主机的计算能力。然而,'910公开没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、为游戏应用的实时流提供足够低的延迟、以及使用视频数据在比特率约束内最大化编码视频的技术。
美国专利第9,774,848号(“'848专利”)公开了用于增强MPEG标准的视频编码器组件以提高显示设备处视频呈现的效率和质量两者的系统和方法。所公开的技术教导了通过借助于前瞻性处理来执行自适应比特分配以执行视频压缩。在MPEG视频压缩中,将给定数量的视频帧(15、30、60等)分组在一起以形成图片组(GoP)。GoP中的图片被编码为I、P或B图片(帧)。分配给每个GoP的比特数与其中包含的帧数成正比例。该系统执行实时前瞻以收集启用自适应比特分配的统计信息。该系统还公开了用于运动估计的方法,其中在域着色器或当原始对象实例数大于1时的多个图元的情况下、在几何着色器的情况下和多个三角形的情况下、在像素着色器情况下,修改的3D管线着色器有效载荷能够处理多个补丁。图形处理器组件使用运动估计引擎来协助视频解码和处理对视频数据内运动的方向或幅度敏感或适应的功能。然而,'848专利没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、为游戏应用的实时流提供足够低的延迟、以及使用视频数据在比特率约束内最大化编码视频的技术。此外,'848专利的技术最多作为辅助,并且不会如本发明中所公开的那样以空间方式执行预编码。这样,它不能以与本发明相同的实时方式复制有利的多遍编码。
美国专利第9,749,642号(“'642专利”)公开了其中视频编码器从多个MV精度中确定视频单元的[运动矢量]MV精度的系统和方法,其包括一个或更多个分数样本MV精度和整数样本MV精度。视频编码器能够识别具有分数样本MV精度的MV值集合,然后至少部分地基于分数部分为零的MV值(在该集合内)的普遍性来选择单元的MV精度。或者,视频编码器能够执行速率失真分析,其中速率失真分析偏向整数样本MV精度。然而,'642专利再次没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、为游戏应用的实时流提供足够低的延迟、以及使用视频数据在比特率约束内最大化编码视频的技术。
欧洲专利第EP1820281B1号(“'281专利”)公开了用于双遍编码的系统和方法。所公开的方法包括以下步骤:a)接收图片,(b)在第一时间计算编码图片缓冲器的第一填充度,(c)在第一填充度上操作以在第二时间处返回编码图片缓冲器的第二填充度(d)将图片存储一定时间,(e)在该时间段内,测量图片的第一复杂度,(f)操作图片的第一复杂度和第二填充度以返回图片的优选目标大小,以及(g)随后执行步骤d,将图片和优选目标大小提供给多处理器视频编码器,其中第一时间对应于最近时间,能够计算编码图片缓冲器的准确的填充度,并且第二时间出现在第一时间之后。然而,'281专利再次没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、为游戏应用的实时流提供足够低的延迟、以及使用视频数据在比特率约束内最大化编码视频的技术。
日本专利第JP06121518B2号(“'518专利”)公开了用于将原始视频流的选定空间部分编码为独立视频流的系统和方法,其中该方法包括获取与所选空间部分有关的图片元素信息;获得从所述原始视频流的与所选空间部分外围的互补空间部分派生的编码提示;并使用编码提示对选定的空间部分进行编码。然而,'518专利再次没有公开如本发明所公开的,用于计算实时流应用中的渲染视频的帧编码成本、为游戏应用的实时流提供足够低的延时、以及使用视频数据在比特率约束内最大化编码视频的技术。
美国专利公开号2006/0230428(“428公开”)公开了针对允许多个玩家同时参与的联网视频游戏系统的系统和方法。'428公开了具有存储可压缩的预编码块并且对应于游戏视频帧的子部分的能力的服务器。该系统还能够响应于游戏中的用户动作使用预编码的块来生成游戏内容。然后,该内容能够被传输给用户。再次,该技术不能如本发明中所公开的那样以空间方式执行预编码,并且不能实时复制有利的多遍编码。此外,与'428公开的技术不同,本发明允许系统在运行时期间以时间顺序(例如分辨率)在帧的所有部分上改变参数,并为游戏应用的实时流提供足够低的延时。
美国专利号8,154,553(“'553专利”)公开了针对具有用于渲染在预过滤模块和视觉编码器上的命令的拦截机制的流式服务器、以及基于渲染引擎的命令的处理的前馈控制机制的系统和方法。‘553专利技术使用图形API提取一组对象级数据,这涉及视觉复杂性和场景中对象的运动。该信息用于控制GPU级别的渲染细节、视频预处理器的过滤级别以及视频编码器的量化级别。该系统还计算视频编码器中目标编码帧中的每个宏块的运动补偿估计。与本文所讨论的其他技术类似,'553专利中所公开的系统不以本发明中所公开的时间或空间方式执行预编码,并且由于其实际上响应于比特率峰值而丢帧,因此无法实时复制有利的多遍编码。此外,与‘428公开的技术不同,本发明允许系统为应用实时游戏流提供足够低的延时。
如从对本技术的现有技术的以上讨论中显而易见的是,本领域中需要对与实时游戏环境的编码相关的对于本计算机技术的改善。
发明内容
因此本发明的目的是公开通过提示编码器来保持恒定比特率的系统和方法。在示例性实施例中,服务器监测与帧编码中的变化有关的信息、计算公差边界、滚动平均帧时间和帧时间的短期趋势,并且使用那些计算来识别帧时间峰值。然后,服务器提示编码器以与帧时间峰值的大小成比例地调制帧输出的质量设置。
本发明的另一目的是公开通过提示编码器来保持恒定比特率的系统和方法,其中,使用公差边界、滚动平均帧时间和帧时间的短期趋势的计算来识别高熵帧。
本发明的又一目的是公开通过提示编码器来保持恒定比特率的系统和方法,其中,服务器计算超出公差边界的帧时间的质量缩放值,并使用该计算识别帧时间峰值。
本发明的又一目的是公开用于编码的系统和方法,其中渲染器在游戏环境中记录一个或更多个通关,将来自一个或更多个通关的多个帧排序到热图的多个单元格中并收集已排序帧的列表。编码器可以随后对已排序帧的列表中的一个或更多个帧进行编码,以计算热图中每个单元格的平均编码帧大小,并将每个平均编码帧大小与每单元归一化编码器质量设置相关联。然后,编码器根据每个单元格的平均编码帧大小计算热图的平均帧大小,并在游戏过程期间将它们用作编码视频序列的提示。
本发明的另一目的是公开用于编码的系统和方法,其中渲染器记录由多个帧组成的视频序列,并且编码器以多遍模式对视频序列进行编码,该模式针对视频序列的第一帧优化编码器质量设置。然后编码器可以记录编码器质量设置。然后,渲染器可以将编码器质量设置归一化为视频序列的第一帧,并使用它们来提示编码器在播放期间对视频序列进行编码。
本发明的另一目的是公开用于编码的系统和方法,其中一个或更多个帧在单个遍次中被编码。
本发明的又一目的是公开用于编码的系统和方法,其中从一个或更多个通关中提取的数据包括多个帧和与帧中的每一个相关联的玩家位置。
附图说明
当结合附图考虑时,通过参考以下详细描述将会更好地理解并容易获得对本发明及其许多伴随优点的更完整的认识,其中:
图1是示例性环境的示图,其中将实时渲染视频实时流传输到远程观看者;
图2是概述基于编码器提示的负载估计的阶段的流程图;
图3是检测帧时间峰值和帧时间谷值且随后相应地改变编码器设置的示例性实施方式的图;
图4是概述在实时渲染器的运行时期间使用预生成的编码器质量设置的示例性流程图;
图5是根据本发明实施例的示例性流程图,其概述对于实时渲染的序列的预生成的编码器质量设置的阶段。
图6是根据本发明的实施例的对于确定长度的引擎内实时过场动画的编码器质量设置的示例性预生成期间所生成的数据的图;
图7是根据本发明的实施例的对于空间相关的序列的编码器质量设置的示例性预生成的图;以及
图8是根据本发明实施例的示例性热图,可以从其中提取归一化的编码器质量设置。
具体实施方式
在描述附图中所示的本发明的优选实施例时,为了清楚起见,将采用特定术语。然而,本发明不旨在限于如此选择的特定术语,并且应当理解,每个特定术语包括以相似方式操作以实现相似目的的所有技术等同物。为了说明的目的描述了本发明的多个优选实施例,应当理解,本发明可以以未在附图中具体示出的其他形式来实施。
在以每秒60帧的速度运行的实时流视频游戏的典型运行期间,编码器计算运动矢量和残差。当由于新的视频信息而导致视频帧与前一帧显著不同时,由编码器计算出的残差可能会比正常情况大,从而导致网络带宽使用出现峰值。编码器将在实时流期间响应于诸如这些比特率尖峰的因素来调整其编码设置,但仅能反应性地调整设置。
在实时渲染视频帧的情况下,能够预警编码器以抢先调整编码设置以针对比特率约束保持最高的可能质量。提供设置以覆盖编码器选择的设置的过程称为提示。由于渲染器在其被编码之前已具有关于帧的信息,因此渲染器偶尔更适合于选择适当的编码器设置,并应当相应地提示编码器。当传入帧是高熵图像,传入帧与前一帧无关时,或由于其它原因可能导致大量残差、质量下降或比特率尖峰,渲染器可以提示编码器。
图1是将实时渲染视频实时流传输到远程观看者的示例性环境的图。服务器100可以包括能够同时运行实时渲染过程102(在本文中也称为“渲染器”)和流编解码器104(在本文中也称为“编码器”)的任何硬件。服务器100可以包括一个或更多个硬件设备,如下所述包括了一个或更多个执行遥测测量的遥测服务器105。服务器100和遥测服务器105相对于渲染过程102和编解码器104可以为本地的或远程的。编解码器104还必须具有通过直接报告或本领域已知的其他监测过程将其编码器质量设置传回渲染过程102的能力。编码的视频流通过网络传输到客户端106设备。客户端106可包括能够解码和显示视频流的任何硬件。
图2是概述基于负载估计的编码器提示的阶段的流程图。在渲染器生成视频时,渲染过程或其他服务器端过程应监测将更改的信息,即,在“监测事件”的步骤200处如何对帧进行编码的信息。这可以包括诸如在此帧期间对渲染器进行的绘制调用的次数,基于帧中首次出现的像素数来计算编码残差的大小的尝试之类的信息,或尝试将渲染性能与编码器性能相关联的其他信息。所监测的信息可以包括在运行时渲染期间发生的任何消息、计算结果、输出结果或其他可离散测量的值。当读取的信息表明编码的帧大小将与前一帧的编码的帧大小显著不同时,此信息称为事件。
事件可以源自渲染器,如图3所述,其中在渲染过程监测中的峰值检测监测的示例性实施方式是对每个帧的渲染时间进行监测以检测异常长或异常短的帧时间。在这种情况下,异常帧渲染时间被认为是事件。
当渲染器接收到事件时,在渲染器处可能需要一些额外的计算以生成编码器质量设置,以提示编码器处于“针对当前帧准备编码器质量设置”的步骤202。这些计算可以包括修改在先前步骤的事件监测期间所测量的信息。这些计算还可以包括修改由编码器在每个帧上报告给渲染器的运行时编码器质量设置,并且应根据需要在“针对每个编码帧报告编码器设置”的步骤204处可用。生成的编码器质量设置从渲染器发送到“具有预编码器设置的提示编码器”206处的编码器。渲染器将继续监测未来帧上的事件。
在图3的示例中,当帧花费异常长的时间进行渲染时,渲染器将提示编码器按照该帧时间峰值的大小成比例地减小质量设置。为了准备编码器质量设置值,渲染器可以使用从当前帧开始的测量帧时间、从一定数量的先前帧开始的测量帧时间、以及编码器报告的运行时编码器质量设置。结合图3的讨论更详细地解释了这些计算。
服务器上运行的其他进程也可以访问能够用于提示编码器设置的帧信息。例如,包含渲染器的游戏引擎可以通过游戏触发的视觉效果来使用对编码视频带宽的测量影响来减少编码器质量设置。为了收集有关给定视觉效果的附加编码成本的信息,开发者可能需要应用效果并在各种编码器质量设置下进行编码时测量比特率的增加。该测量能够用于选择质量,其中对于包含了视觉效果的帧的编码的帧大小与不包含视觉效果的前一帧的编码的帧大小大致相同。对于视觉效果所选择的质量设置与默认质量设置之间的差异称为设置增量。可以提示编码器使用所选质量,或提示编码器通过测量的设置增量降低当前质量。结果应以能够容易将视觉效果事件转换为关联的编码器提示(例如查找表或其他类型的索引数组)的格式存储。
图3是示例性实施方式,其检测了帧时间峰值和帧时间谷值,然后相应地改变编码器设置。本示例使用渲染时间与图像熵之间的相关性来估计对视频流的比特率的影响。如果帧包含大量新的视觉信息(即第一次贡献到帧的附加元素),则与之前的帧相比时渲染该帧可能花费更多时间。例如,如果以与前一帧大致相同的帧时间来渲染帧,则环境可能没有显著变化。这种隐含的关联在第一人称游戏/引擎中尤其明显。如果渲染的帧时间突然变长,则意味着环境中新引入了某些东西。编码器还将处理任何新的视频信息,例如覆盖屏幕的突然爆炸效果或突然在屏幕上的新几何形状。类似地,帧中的许多新信息将增加由编码器计算出的残差的大小。因此,因此,监测渲染时间的峰值可能会在可能导致视频流的比特率出现尖峰之前识别出可能包含高熵图像的帧。
在考虑长期趋势的同时,在信号处理和统计分析中使用滚动平均值来识别短期异常值。通过找到一定数量的先前数据点的算术平均值来计算滚动平均值;用于计算滚动平均值的一组先前数据点被称为滚动窗口。在实时渲染的情况下,识别偏离滚动平均帧时间的帧时间可以识别高熵帧。在该示例中,滚动平均帧时间300是前一滚动窗口的平均帧时间。即,对于滚动窗口中的每个帧的帧时间求和,然后将总和除以滚动窗口中的帧数。可以基于在运行时剖绘(profiling)期间所测量的长期帧时趋势的典型频率来调整滚动窗口的大小,以检查典型数据趋势。对于十帧的滚动窗口大小的示例,将基于之前十个帧时间来计算平均帧时间。作为任何低通滤波器的副作用,如果滚动窗口太小,则峰值检测中可存在更多不必要的假阳性。真实上当更长的帧时间由渲染器中经常发生的某些长期行为模式来解释时,可以将帧归类为“异常繁忙”。滚动平均帧时间300伴随有上公差302和下公差304。可以调整公差以识别帧时间中的典型短期趋势。对于以每秒60帧的速度运行的实时渲染器,±1ms或大约6.25%的容差可能就足够了。帧时间能够在滚动平均帧时间的容差内变化而不触发任何编码器提示。找到合适的窗口大小和容差值可需要一些运行时剖绘以确定帧时间的典型趋势。例如,以每秒100帧的速度运行的游戏可每隔一帧仅更新一次阴影,导致了1ms的典型抖动、要求容差大于10%。相反,游戏可能以每秒30帧的速度舒适地运行,且帧时间非常稳定为33ms,其中最苛刻的视觉效果仅贡献了0.5ms,因此公差可以低至1.5%。
将当前帧的帧时间与滚动平均帧时间进行比较。如果当前帧时间在公差边界之外,则在编码器上调整质量。可以通过使用称为剖绘的过程对帧时间进行测量来计算公差边界,以检查相邻或接近相邻的帧(短期趋势)之间的帧时间中的典型变化、以及某些窗口上帧时间中的变化(例如周期性重复的模式或其他长期趋势)。然后能够调整滚动窗口的大小和容差,直到仅在高熵/繁忙时刻触发编码器提示,而不是在玩家四处移动并探索环境时才触发编码器提示。如果帧时间超过上限容差302,如“帧2”306的示例情况下,则编码器质量将降低。如果帧时间在更低的容差304以下,如“帧5”308的示例情况下,编码器质量将提高。在某些实施例中,每当帧时间降到容差以下时,编码质量就可以增加回到全容量。根据实现方式,系统还可以选择使用类似于降低质量的缩放方法来更慢地缩放质量。
示例性提示方法可以在上界310和下界312质量设置之间缩放质量。例如,上界可以是默认质量设置,并且下界可以是默认质量的某个百分比,例如50%。如果帧时间峰值落在容差之上,则可以基于容差之上的帧时间峰值的大小在上界和下界之间线性缩放质量设置。如果帧时间低于容差,则质量设置可能会返回到上限值。
为了计算在容差之外的帧时间的质量缩放值,应当首先根据以下等式(1)相对于滚动平均帧时间将帧时间示例性地归一化。
Figure BDA0002329429000000111
从归一化时间减去1导致帧与滚动平均帧时间发生偏差。将偏差除以容差然后减去1可得到缩放值。该缩放值应钳位在0到1之间;所有负缩放值应钳位为0并且所有大于1的值都应钳位为1,示例性地基于以下等式(2)。
Figure BDA0002329429000000112
钳位的缩放值能够用于在上界质量设置与下界质量设置之间进行内插。钳位的缩放值0代表上界质量,钳位的缩放值1代表下界质量,示例性地基于以下等式(3)。
(3)缩放的质量设置=最大值-(缩放值*(最大值-最小值))
在该示例中,如果当滚动平均值为15ms时,“帧2”306花费16ms,则所得到的钳位的缩放值为0.025或2.5%。如果上界质量值是默认质量设置,并且下界是默认质量的50%,则该帧的缩放质量设置将是默认质量的98.75%。
如果“帧5”308在滚动平均值为15.25ms时花费14.25ms,则帧时间低于容差,并且缩放值将被钳位为0。缩放的质量设置将被设置为上界质量设置。
在如图4中的步骤406处所示将聚合的编码器质量设置值发送到编码器以进行提示之前,可以如图4中的步骤400处所示通过组合来自准备步骤的准备的编码器质量设置值来分层多种编码器提示方法。在一个实施例中,可以找到准备的编码器质量设置的算术平均值以生成单个值,该值均等地合并了来自所有源的贡献。在另一个实施例中,可以通过向可为编码器提示贡献编码器质量设置值的每个源分配权重来计算加权算术平均值。分配的权重可以用来更强地权衡一个贡献源,相比另一贡献源而言。例如,与来自单个视觉效果事件的贡献相比,来自帧时间峰值事件的贡献可与编码比特率的变化具有更强的相关性,因此可能需要更高的权重地权衡来自帧时间峰值事件的贡献。加权算术平均值能够通过使用标准定义来示例性地根据下面的等式(4)来计算,其中i=1表示n个质量设置集合中的第一个数字。请注意数学集的索引从1开始,而编程索引从0开始。
Figure BDA0002329429000000121
图4是概述了在实时渲染器的运行时期间使用预生成的编码器质量设置的示例性流程图。渲染器应该在“监测游戏序列”步骤400处监测具有预生成的编码器质量设置集合的序列。这些序列可包括时间可预测的帧序列(例如引擎内实时过场动画),或能够在玩家位置已知的运行时期间被转换为时间序列的空间可预测的序列。时间可预测序列是其中每个帧与其相邻邻居具有某种已知关系的帧序列。即,如果帧序列具有一致的长度、一致的顺序,并且任何两个相邻帧在像素数据和运动数据中具有一致的关系,则该帧序列在时间上是可预测的。空间可预测序列提供了两个相邻虚拟位置之间的某种关系,该关系可用于推断时间序列,该时间序列是在渲染器的运行时期间遍历虚拟空间时所构建的。即,如果虚拟相机在虚拟空间中的两个虚拟位置之间移动时产生两个在时间上可预测的序列,则所述两个位置在空间上相关。例如,在视频游戏中,如果两个相邻位置之间的移动产生了像素数据和运动数据有某种一致性的视频,则两个相邻位置在时间上相关。对于视频游戏中的大多3D关卡这通常都是正确的,因为随着玩家穿越关卡,玩家周围的环境和背景通常在固定的位置被渲染。
结合图5更详细地描述了编码器质量设置的预生成。预生成的编码器质量设置以运行时可读的格式(例如查找表或热图)存储到服务器上的磁盘。当检测到序列的开始时,在“查找游戏序列的预生成的编码器设置”步骤602处读取并准备用于检测到的游戏序列的预生成的编码器质量设置。如果编码器质量设置在储存之前已被归一化,则可能需要对其进行准备。准备工作可以包括用归一化的编码器质量设置乘以运行时编码器质量设置、目标编码器质量设置或来自其他源的编码器质量设置。在某些实施例中,事件的检测可以针对预生成的序列编码器质量设置中的每一个。在其他实施例中,当每个场景开始确定其是否在存在有设置的序列列表中时,可以在运行时执行检查。如果在存储之前预生成的编码器质量设置被归一化,则将存在乘法步骤以准备编码器质量设置。在结合图6所描述的示例中,对于引擎内实时过场动画中的帧生成编码器质量设置,并将该编码器质量设置归一化为序列的第一帧。对于这样的归一化的时间序列,将需要通过使用归一化值乘以序列中第一帧的运行时编码器质量设置来准备编码器质量设置。在每个帧上由编码器报告编码器质量设置,并且该编码器质量设置应根据需要在“针对每个编码帧报告编码器设置”的步骤604处可用。在结合图7所描述的示例中,对于地图中的每个位置生成编码器质量设置,并将该编码器质量设置归一化为整个地图中的平均编码器质量设置。对于这样的归一化空间序列,需要通过使用归一化值乘以序列中第一帧的运行时编码器质量设置来准备编码器质量设置。
对于序列中的每一帧,在“利用预生成的编码器设置对编码器进行提示”的步骤606处,编码器质量设置将被发送到编码器。编码器将使用从渲染器发送的编码器质量设置来编码下一帧。渲染器将继续准备预生成的编码器质量设置,并在每个帧上提示编码器直到序列完成为止。当序列结束时,渲染器将继续监测下一个序列。对于结合图6所描述的引擎内实时过场动画示例,将为过场动画中的每个帧提示编码器,直到过场动画结束。。对于结合图5所描述的示例性热图方法,编码器将在玩家处于由热图所限定的区域的边界内的整个持续时间内被提示。
图5是概述了针对实时渲染的序列的预生成的编码器质量设置的阶段的流程图。可以为具有可预测和可测量的时间或空间分量的任何序列预生成编码器质量设置。序列可能具有不可预测的部分,例如将渲染玩家角色当前所穿的盔甲的引擎内实时过场动画或让玩家在比赛进行时可以移动或环顾四周的现场过场动画。通过在时序序列(例如引擎实时过场动画)中查找相邻帧关系、或在虚拟空间中查找相邻位置关系,来识别具有可预测部分的序列,这些关系将在运行时用于生成帧序列,例如视频游戏级别中的可遍历区域。将在“选择序列”的步骤500处识别一种这样的序列。
在编码器处,应针对序列生成编码器质量设置,目的为在“生成序列的编码器设置”步骤502处保持恒定的比特率。可以通过记录过场动画的视频并使用多遍编码模式对视频进行编码来计算引擎内实时过场动画的编码器质量设置。多遍编码将对第一帧进行编码,并使用编码的第一帧的大小来约束所有后续帧。在对每个帧进行编码时,将编码后的大小与第一帧的编码后的大小进行比较,并针对当前帧调整质量设置,直到编码后的帧大小在尺寸上接近为止。在某些实施例中,可以以多遍编码模式以固定的遍次数对帧序列进行编码。在其他实施例中,可以以多遍编码模式通过连续遍次来馈送序列,直到每个帧大小稳定在一个值并且在最终编码遍次与倒数第二编码遍次之间不改变。可以在生成编码器质量设置或从生成的编码视频中提取编码器质量设置时对其进行记录。生成的编码器质量设置将在运行时被使用,以平衡给定序列期间的带宽,从而避免比特率的峰值和谷值。与将预渲染的过场动画的视频进行预编码并将其存储以进行播放相比,通过这种方式生成编码器质量设置将允许引擎内实时过场动画包含基于上下文的内容,例如可定制的玩家装甲、武器或其他装饰物件,同时仍然受益于预生成的质量设置所提供的带宽均衡。
类似的过程能够多次重复以生成对于空间相关的序列的编码器设置。通过结合图7所描述的示例数据流更详细地对该过程进行描述。
对于引擎内实时过场动画,应通过将每个帧的编码器质量设置除以序列中第一帧的编码器质量设置值来对其进行归一化。这允许在运行时所准备的最终编码器质量设置中表示序列的动态元素,例如玩家装甲或装饰物件。对于将存储为热图的与空间相关的序列,通过将每个编码器质量设置除以地图范围内的平均编码器质量设置,可以将每个编码器质量设置归一化为热图限定的整个区域的平均编码器质量设置。图8示出了示例性热图。应将在渲染过程中所生成的归一化编码器值组织成适当的运行时可读格式,例如时间序列中每帧的编码器质量设置列表、或定义地图中的每个位置的编码器质量设置的热图,并且所述归一化编码器值应存储在“归一化和存储序列中每个帧的编码器质量设置”的步骤504处。
图6示出了对于确定长度的引擎内实时过场动画的编码器质量设置的示例性预生成期间数据如何生成。与预渲染的过场动画不同,引擎内实时过场动画是在运行时期间使用与用于生成其余的实时渲染的视频输出相同的渲染引擎生成的。引擎内实时过场动画还可以包含与游戏状态有关的情景信息(例如玩家组中的玩家、非玩家角色所穿的装饰物件)或其它受玩家选择控制的游戏状态。尽管引擎内实时过场动画在质量上比预渲染的过场动画要差,但是随着实时渲染的视觉保真度越来越接近预渲染的视觉保真度,它们变得越来越普遍。引擎内实时过场动画也在若干选项(例如语言选项、分辨率选项和字符自定义选项),可能会影响过场动画的视频输出,因此游戏磁盘不必包含多个版本的预渲染过场动画。
在该示例中,选择了480帧长的引擎内实时过场动画,对于以60帧/秒的速度运行的游戏来说,大约8秒长。此过场动画将为所有玩家播放相同系列的事件。过场动画视频在渲染器处被记录,从而在记录的序列600中产生一系列480帧。使用多遍编码模式对记录的序列600进行编码。在对记录的序列中的每个帧进行编码时,多遍编码过程将更改编码器质量设置,使得编码后的帧大小变得更接近于第一帧的编码的大小。序列中的第一帧用作帧大小参考以确保整个编码序列中的比特率保持一致。
多遍编码器质量设置602或者在编码过程期间被记录在编码器处,或者从由编码器所产生的编码结果中提取。编码器质量设置是浮点的有序列表。在每浮点4个字节的情况下,480个浮点的整个有序列表仅消耗1,920字节的数据。小文件大小允许实时渲染器在运行时将许多预生成的编码器设置存储在存储器中,并且可以导致针对每个游戏序列执行本文所述的过程而不会遇到存储器约束的有利结果。
在渲染器处,根据以下等式(5)示例性地将编码器质量设置归一化到第一帧。
Figure BDA0002329429000000151
归一化的编码器质量设置604被存储为浮点的有序列表,优选地在编码器处。
当过场动画在运行时期间开始播放时,读取归一化的质量设置604的有序列表。归一化的质量设置乘以序列中第一帧的运行时编码器质量设置,如由编码器报告给渲染引擎的,并且随后该归一化的质量设置用于提示过场动画中每个后续帧的编码器。在某些实施例中,以恒定速率因子(CRF)模式运行的H.264标准兼容库ffmpeg将使用-crf开关在命令行上接受覆盖量化参数值。
归一化编码器质量设置允许在多个不同情景的过场动画的运行时播放期间使用预生成的编码器质量设置。例如,将归一化的编码器设置604乘以由编码器针对序列中第一帧报告的运行时编码器质量设置,对于整个过场动画将产生一致的比特率,而与玩家选择穿着的任何可定制的玩家盔甲无关。类似地,该方法考虑了不同的渲染设置,例如屏幕分辨率,可以在其中播放引擎内实时过场动画。
图7是针对空间相关序列(例如,当玩家穿越视频游戏中的虚拟空间时在运行时所生成的序列)的编码器质量设置的示例性预生成的图。因为玩家的视野对编码的视频流的比特率具有不成比例的巨大影响,视频游戏中的玩家位置通常能够与输出视频的图像熵相关。当比较在开放区域所捕获的视频和在狭窄区域所捕获的视频之间的编码的视频比特率时,这种相关性最为明显。开放区域(例如室外区域)以更高的平均比特率产生视频,而狭窄区域(例如走廊)以更低的平均比特率产生视频。出现这种关系的原因是因为室外区域往往是不均匀的,具有大量竞争运动的广阔区域,例关于植被的环境动画,而室内区域则往往由产生内聚运动矢量和更小残差的静态建筑几何结构组成。
如图5所示,地图能够由网格分割并且对于地图中的每个单元格能够预生成编码器质量设置,以形成归一化的编码器质量设置的热图。给定玩家位置的典型编码的视频比特率可以使用多个真实通关或通过程序生成的通关来记录。由于真实玩家是无法预测的,因此通常无法在程序上生成准确地捕获玩家穿越虚拟空间的方式的通关。可以为任何预期的穿越路径生成程序式通关以快速生成整个地图的覆盖范围,但是可能会错过任何可能被真实玩家发现的意外穿越路径。每种方法将具有缺点:跟踪真实遥测花费更多时间,但是程序生成的数据可能无法准确反映真实的游戏体验。在某些实施例中,可以结合使用两种记录来提供更准确的热图。
如图6的记录的序列600所示,记录的视频不仅应包含视频帧,还将对于每个帧建立玩家位置。玩家位置可以在3D空间中或者可以被简化为水平2D平面,如自上而下的地图所示。在结合图7所描述的示例性方法中示出了两个示例记录的通关的部分,在步骤700处的示出为“第一通关记录”的第一通关记录,在步骤702处示出为“第二通关记录”的第二通关记录。视频帧与玩家位置一起被捕获。捕获的通关视频中的每个视频帧按位置分类到适当的单元格中。在该示例中,在步骤700中“第一通关记录”处示出了来自第一通关记录的帧4,并且在步骤702中“第二通关记录”处示出了来自第二通关记录的帧2。在步骤704“热图”处,上述两者在步骤706处被分类到“单元格B6”处的单元格B6中。图8中所示的示例性热图示出了具有较小单元格的热图以获得更高的分辨率。
程序上生成的通关和真实的通关二者都可在渲染器处被生成以及重新编码。可以将所产生的通关记录收集在集中的渲染器位置中。当收集了多个通关时,热图中的每个单元格可以具有记录在单元格内的某个位置的多个帧。可以在开发期间使用遥测服务器105来收集此数据。渲染/游戏引擎可以随后生成遥测并将其发送到集中位置。遥测服务器105能够相对于渲染器为本地的或远程的。也可以通过从本地渲染机器手动收集生成的遥测文件并将其发送到集中式存储。图7的例子在步骤708处“单元格B6帧”示出了属于单元格B6的帧的列表的开始。随着收集或生成更多的通关记录,该空间相关的帧的列表将增长。
在“目标质量编码”步骤710处所示,属于单元格的帧的集合可以使用在实时流传输期间所使用的单遍编码模式利用目标编码器质量设置进行编码。将对于属于单元格的每个帧生成编码的帧大小。图7的示例示出了属于单元格B6的编码的帧大小列表的开始,在步骤712的“单元格B6帧的编码的帧大小”处示出。这些编码的帧大小可以被平均以找到用于单元格的平均编码帧大小。图7的示例示出了在步骤714处示出的“单元格B6的平均编码帧大小”处的属于单元格B6的平均编码帧大小。应该对热图中的所有单元格重复该过程以找到每个单元格的平均编码帧大小。在“单元格B6的平均编码帧大小”的步骤714和B7处示出了单元格B6的平均编码帧大小,并且在“单元格B7的平均编码帧大小”的步骤716处示出了作为热图中所有单元格的平均帧大小的列表的表示。
应该对每个单元格的所有平均帧大小进行平均,以在步骤718处所示的“所有单元格的平均编码帧大小”处找到地图范围的平均帧大小。该地图范围的平均帧大小可以用作目标带宽。平均编码帧大小大于地图范围平均值的单元格将以较低的编码器质量设置被重新编码,直到平均单元格帧大小与地图范围平均值的大小几乎相同为止。类似地,平均编码帧大小小于地图范围平均值的单元格将以较高的编码器质量设置被重新编码,直到平均单元格帧大小与地图范围平均值的大小几乎相同为止。在某些实施例中,对于给定单元格的帧的序列可以在多遍编码模式中以固定的遍次数进行编码。在其他实施例中,可以通过多遍编码模式中的连续遍次来馈送序列,直到每帧大小在一个值处稳定并且在最终编码遍次与倒数第二编码遍次之间不改变。在图7的示例中,在步骤714处,单元格B6的平均编码帧大小高于步骤718处所示的“所有单元格的平均编码帧大小”处的所有单元格的平均编码帧大小。在步骤708“单元格B6帧”处的属于单元格B6的空间相关帧在编码器处使用多遍编码模式以及在“降低质量编码”的步骤720处的目标帧大小,在其原始通关序列的上下文中被重新编码,直到在“降低单元格B6的平均编码帧大小”步骤724处的单元格B6的平均编码帧大小几乎与在“所有单元格的平均编码帧大小”的步骤718处所示的所有单元格的平均编码帧大小相同。当完成所有单元格的处理时,单元格的所有平均帧大小应几乎相同。
每个单元格应该具有相关联的编码器质量设置,该编码器质量设置用于为具有与地图范围的平均编码帧大小相当的单元格生成平均编码帧大小。每单元编码器质量设置可以通过地图范围平均编码器质量设置被归一化,示例性地根据下面的等式(6)。
Figure BDA0002329429000000181
在视频流传输期间,游戏能够从对应于当前玩家位置的热图单元格中提取归一化编码器质量设置,并通过发送质量设置覆盖将其用于提示编码器。如上所述,在某些实施例中,以恒定速率因子(CRF)模式运行的H.264标准兼容库ffmpeg将使用-crf开关在命令行上接受覆盖量化参数值以提示编码器。在图8中示出了示例性的热图,可以从中提取归一化编码器质量设置。
在由图4中“寻找游戏序列的预生成的编码器设置”步骤402所描述的准备步骤期间,由于编码器质量设置被归一化,它们能够由多个源组合,例如空间相关的序列和时间相关的序列。在此步骤之前,能够将归一化值相乘在一起以生成编码器质量设置,该设置隐式考虑了每个源序列对编码视频比特率的影响。例如,玩家的位置用于从热图读取预生成的归一化编码器质量设置,并且玩家的武器会生成具有时间序列的预生成的归一化编码器质量设置的发射序列。在准备步骤期间将这两个归一化值相乘在一起以结合玩家位置和武器选择对编码的视频比特率的影响。
前述的描述和附图应被理解为对本发明原理仅为说明性的。本发明不旨在受限于优选实施例并且可以以对本领域普通技术人员显而易见的各种方式来实施。本领域技术人员将容易想到本发明的许多应用。因此,不需将本发明受限于所公开的特定示例或所示出和描述的确切构造和操作。相反,在本发明的范围内,可以采用所有合适的修改和等同物。

Claims (16)

1.一种用于编码数据的计算机实现的方法,包括以下步骤:
记录游戏环境中的一个或更多个通关;
将来自所述一个或更多个通关的多个帧排序到热图上的多个单元格中,其中所述排序产生与所述热图相关联的已排序帧的列表;
在渲染器处收集已排序帧的列表;
对已排序帧的列表中的一个或更多个帧进行编码,以计算所述热图中每个单元格的平均编码帧大小,其中每个平均编码帧大小与每单元格归一化编码器质量设置相关联;并且
根据每个单元格的平均编码帧大小计算热图的平均帧大小,
其中,在游戏过程期间,与热图中的单元格相对应的每单元格归一化编码器质量设置用于提示编码器对由帧组成的视频序列进行编码。
2.根据权利要求1所述的方法,其中,在所述视频序列中使用单遍编码对所述一个或更多个帧进行编码。
3.根据权利要求1所述的方法,还包括步骤:在渲染器处存储每单元格归一化编码器质量设置。
4.根据权利要求1所述的方法,其中,所述一个或更多个通关存储在遥测服务器上。
5.根据权利要求1所述的方法,其中,所述一个或更多个通关由多个帧和与所述多个帧中的每一个相关联的玩家位置组成。
6.根据权利要求5所述的方法,其中,玩家位置用于选择用于提示编码器的每单元格归一化编码器质量设置。
7.根据权利要求1所述的方法,其中,每单元格归一化编码器质量设置通过以下等式来计算:
Figure DEST_PATH_IMAGE002
8.根据权利要求1所述的方法,还包括步骤:将根据空间相关的序列的每单元格归一化编码器质量设置和根据时间相关的序列的每单元格归一化编码器质量设置进行组合。
9.一种用于编码数据的系统,包括:
渲染器,其中所述渲染器用于:
记录游戏环境中的一个或更多个通关;
将来自所述一个或更多个通关的多个帧排序到热图上的多个单元格中,其中所述排序产生与所述热图相关联的已排序帧的列表;
收集已排序帧的列表;并且
根据每个单元格的平均编码帧大小计算热图的平均帧大小; 以及
编码器,其中所述编码器用于:
对已排序帧的列表中的一个或更多个帧进行编码,以计算所述热图中每个单元格的平均编码帧大小,其中每个平均编码帧大小与每单元格归一化编码器质量设置相关联;并且
其中,在游戏过程期间,与热图中的单元格相对应的每单元格归一化编码器质量设置用于提示编码器对由帧组成的视频序列进行编码。
10.根据权利要求9所述的系统,其中,在所述视频序列中使用单遍编码对所述一个或更多个帧进行编码。
11.根据权利要求9所述的系统,其中,渲染器存储每单元格归一化编码器质量设置。
12.根据权利要求9所述的系统,其中,所述一个或更多个通关存储在遥测服务器上。
13.根据权利要求9所述的系统,其中,所述一个或更多个通关由多个帧和与所述多个帧中的每一个相关联的玩家位置组成。
14.根据权利要求13所述的系统,其中,玩家位置用于选择用于提示编码器的每单元格归一化编码器质量设置。
15.根据权利要求9所述的系统,其中,每单元格归一化编码器质量设置通过以下等式来计算:
Figure DEST_PATH_IMAGE003
16.根据权利要求9所述的系统,其中,根据空间相关的序列的每单元格归一化编码器质量设置和根据时间相关的序列的每单元格归一化编码器质量设置被组合。
CN201880041815.0A 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法 Active CN110945849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010966091.XA CN112153029A (zh) 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762488526P 2017-04-21 2017-04-21
US62/488,526 2017-04-21
US201862647180P 2018-03-23 2018-03-23
US62/647,180 2018-03-23
US201862655901P 2018-04-11 2018-04-11
US62/655,901 2018-04-11
PCT/US2018/028594 WO2018195440A1 (en) 2017-04-21 2018-04-20 Systems and methods for rendering & pre-encoded load estimation based encoder hinting

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010966091.XA Division CN112153029A (zh) 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法

Publications (2)

Publication Number Publication Date
CN110945849A CN110945849A (zh) 2020-03-31
CN110945849B true CN110945849B (zh) 2021-06-08

Family

ID=63854317

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010966091.XA Pending CN112153029A (zh) 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法
CN201880041815.0A Active CN110945849B (zh) 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010966091.XA Pending CN112153029A (zh) 2017-04-21 2018-04-20 基于编码器提示的渲染和预编码负载估计的系统和方法

Country Status (15)

Country Link
US (5) US10225564B2 (zh)
EP (4) EP3635954A4 (zh)
JP (3) JP7145203B2 (zh)
KR (4) KR102358294B1 (zh)
CN (2) CN112153029A (zh)
AU (3) AU2018255414B2 (zh)
BR (1) BR112019021628A2 (zh)
CA (6) CA3059747C (zh)
DE (1) DE112018002112T5 (zh)
GB (6) GB2595029B (zh)
MX (2) MX2020012597A (zh)
RU (3) RU2753157C2 (zh)
TW (4) TWI681666B (zh)
WO (1) WO2018195440A1 (zh)
ZA (3) ZA201907683B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146608B2 (en) * 2017-07-20 2021-10-12 Disney Enterprises, Inc. Frame-accurate video seeking via web browsers
US10841356B2 (en) 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations
US10880354B2 (en) * 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
CN111632382B (zh) * 2020-05-25 2021-06-25 腾讯科技(深圳)有限公司 游戏数据同步方法、装置、计算机及可读存储介质
CN111954067B (zh) * 2020-09-01 2022-10-04 杭州视洞科技有限公司 一种提高视频渲染效率与用户交互流畅度的方法
JP7024842B2 (ja) 2020-10-16 2022-02-24 日本ポリプロ株式会社 プロピレン単独重合体
KR20230154999A (ko) * 2021-08-16 2023-11-09 구글 엘엘씨 공유 참조 프레임을 사용한 저지연 다중 패스 프레임-레벨 전송률 제어
US20230247205A1 (en) * 2022-01-31 2023-08-03 Sling TV L.L.C. Bandwidth management using dynamic quality factor adjustments
WO2024001621A1 (en) * 2022-06-27 2024-01-04 Mediatek Inc. Multimedia system with dynamic adaptation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716643A (zh) * 2012-10-01 2014-04-09 辉达公司 用于使用内容信息改进视频编码的系统和方法
CN104365095A (zh) * 2012-03-30 2015-02-18 阿尔卡特朗讯公司 用于对视频流的选定空间部分进行编码的方法和装置
CN104685873A (zh) * 2012-10-05 2015-06-03 索尼公司 编码控制设备以及编码控制方法

Family Cites Families (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4501980A (en) 1982-06-04 1985-02-26 Motornetics Corporation High torque robot motor
JPH06129865A (ja) 1992-10-20 1994-05-13 Sumitomo Electric Ind Ltd シングルモ−ドファイバ型デポラライザとその製造方法及び光ファイバジャイロ
JP3265818B2 (ja) * 1994-04-14 2002-03-18 松下電器産業株式会社 動画符号化方法
US5506844A (en) * 1994-05-20 1996-04-09 Compression Labs, Inc. Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth
US6118817A (en) * 1997-03-14 2000-09-12 Microsoft Corporation Digital video signal encoder and encoding method having adjustable quantization
EP0919952A1 (en) * 1997-11-28 1999-06-02 Ecole Polytechnique Federale De Lausanne Method for coding/decoding of a digital signal
TW501022B (en) * 1998-03-16 2002-09-01 Mitsubishi Electric Corp Moving picture coding system
US7254116B2 (en) 2000-04-07 2007-08-07 Broadcom Corporation Method and apparatus for transceiver noise reduction in a frame-based communications network
EP1173026B1 (en) * 2000-07-10 2008-07-30 STMicroelectronics S.r.l. A method of compressing digital images
JP2005530250A (ja) 2002-06-12 2005-10-06 ジェナ ジョーダル, 複数階層視座を実現するデータ格納、取り出し、操作、及び表示ツール
CA2491522C (en) 2002-07-01 2014-12-09 E G Technology Inc. Efficient compression and transport of video over a network
US6903662B2 (en) 2002-09-19 2005-06-07 Ergodex Computer input device with individually positionable and programmable input members
US8054880B2 (en) 2004-12-10 2011-11-08 Tut Systems, Inc. Parallel rate control for digital video encoder with multi-processor architecture and picture-based look-ahead window
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US9192859B2 (en) 2002-12-10 2015-11-24 Sony Computer Entertainment America Llc System and method for compressing video based on latency measurements and other feedback
BRPI0411757A (pt) * 2003-06-26 2006-09-19 Thomson Licensing controle de taxa de vìdeo multipasse para casar restrições de canal de janela deslizante
KR101083100B1 (ko) * 2003-07-18 2011-11-16 코닌클리케 필립스 일렉트로닉스 엔.브이. 디지털 비디오 스트림 내의 컨텐트 아이템 검출
JP4180468B2 (ja) * 2003-08-11 2008-11-12 カノープス株式会社 画像圧縮システム及び画像圧縮方法
US7263126B2 (en) * 2003-09-15 2007-08-28 Sharp Laboratories Of America, Inc. System and method for transcoding with adaptive bit rate control
US7408984B2 (en) 2003-09-17 2008-08-05 International Business Machines Corporation Method and system for multiple pass video coding
US8533597B2 (en) 2003-09-30 2013-09-10 Microsoft Corporation Strategies for configuring media processing functionality using a hierarchical ordering of control parameters
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US20060230428A1 (en) 2005-04-11 2006-10-12 Rob Craig Multi-player video game system
JP4996603B2 (ja) * 2005-07-08 2012-08-08 タグ ネットワークス,インコーポレイテッド 事前符号化マクロブロックを使用するビデオゲームシステム
US7773672B2 (en) * 2006-05-30 2010-08-10 Freescale Semiconductor, Inc. Scalable rate control system for a video encoder
US8874725B1 (en) * 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US20080195664A1 (en) 2006-12-13 2008-08-14 Quickplay Media Inc. Automated Content Tag Processing for Mobile Media
JP4843482B2 (ja) 2006-12-27 2011-12-21 株式会社東芝 情報処理装置およびプログラム
US20080181298A1 (en) * 2007-01-26 2008-07-31 Apple Computer, Inc. Hybrid scalable coding
US8090016B2 (en) * 2007-05-17 2012-01-03 Zoran Corporation Activity normalization for video encoding
US8069258B1 (en) 2007-09-11 2011-11-29 Electronic Arts Inc. Local frame processing to apparently reduce network lag of multiplayer deterministic simulations
WO2009136878A1 (en) 2008-05-08 2009-11-12 Mamoun Al Durra The automatic car cover
US8264493B2 (en) * 2008-05-12 2012-09-11 Playcast Media Systems, Ltd. Method and system for optimized streaming game server
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
EP2364190B1 (en) 2008-05-12 2018-11-21 GameFly Israel Ltd. Centralized streaming game server
US8678929B1 (en) 2008-08-01 2014-03-25 Electronics Arts Inc. Client-side prediction of a local game object to reduce apparent network lag of multiplayer simulations
US10192389B2 (en) * 2008-09-01 2019-01-29 New Bis Safe Luxco S.À.R.L. Methods, apparatus and systems for determining an adjustment value of a gaming device
US8621044B2 (en) * 2009-03-16 2013-12-31 Microsoft Corporation Smooth, stateless client media streaming
JP5342391B2 (ja) * 2009-09-25 2013-11-13 株式会社メガチップス 画像処理装置
US9565439B2 (en) * 2009-10-15 2017-02-07 Nbcuniversal Media, Llc System and method for enhancing data compression using dynamic learning and control
US9338523B2 (en) 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US20110261885A1 (en) 2010-04-27 2011-10-27 De Rivaz Peter Francis Chevalley Method and system for bandwidth reduction through integration of motion estimation and macroblock encoding
US9456015B2 (en) * 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
US20120057629A1 (en) * 2010-09-02 2012-03-08 Fang Shi Rho-domain Metrics
US8965140B1 (en) * 2011-01-31 2015-02-24 Teradici Corporation Method and apparatus for encoding mixed content image sequences
US8411971B1 (en) * 2011-02-09 2013-04-02 Adobe Systems Incorporated Method and apparatus for normalizing perceptual quality in media compression
US9071841B2 (en) * 2011-05-17 2015-06-30 Microsoft Technology Licensing, Llc Video transcoding with dynamically modifiable spatial resolution
US9426494B2 (en) * 2011-07-18 2016-08-23 Ziilabs Inc., Ltd. Systems and methods with early variance measure used to optimize video encoding
JP5155462B2 (ja) 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US20150082345A1 (en) * 2011-09-29 2015-03-19 Avvasi Inc. System for generating enhanced advertizements and methods for use therewith
JP5977023B2 (ja) 2011-11-07 2016-08-24 株式会社スクウェア・エニックス・ホールディングス 描画システム、プログラム、及び記録媒体
US9110626B2 (en) 2012-02-14 2015-08-18 Microsoft Technology Licensing, Llc Video detection in remote desktop protocols
US9345966B2 (en) * 2012-03-13 2016-05-24 Sony Interactive Entertainment America Llc Sharing recorded gameplay to a social graph
US9621869B2 (en) * 2012-05-24 2017-04-11 Sony Corporation System and method for rendering affected pixels
BR112015006178B1 (pt) 2012-09-21 2022-11-16 Nokia Technologies Oy Métodos, aparelhos e meio não transitório legível por computador para codificação e decodificação de vídeo
WO2014120368A1 (en) 2013-01-30 2014-08-07 Intel Corporation Content adaptive entropy coding for next generation video
US9661351B2 (en) 2013-03-15 2017-05-23 Sony Interactive Entertainment America Llc Client side frame prediction for video streams with skipped frames
US10242462B2 (en) * 2013-04-02 2019-03-26 Nvidia Corporation Rate control bit allocation for video streaming based on an attention area of a gamer
US9079108B2 (en) 2013-05-31 2015-07-14 Empire Technology Development Llc Cache-influenced video games
US20150020806A1 (en) * 2013-07-19 2015-01-22 Merck Sharp & Dohme Corp. Dry powder inhaler for delivering multipe agglomerate formulations
AU2014311265B2 (en) * 2013-08-29 2019-05-02 Isee Vc Pty Ltd Quality controller for video image
US10491916B2 (en) * 2013-10-01 2019-11-26 Advanced Micro Devices, Inc. Exploiting camera depth information for video encoding
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US20150208069A1 (en) * 2014-01-23 2015-07-23 Magnum Semiconductor, Inc. Methods and apparatuses for content-adaptive quantization parameter modulation to improve video quality in lossy video coding
US20150228106A1 (en) 2014-02-13 2015-08-13 Vixs Systems Inc. Low latency video texture mapping via tight integration of codec engine with 3d graphics engine
EP3114835B1 (en) 2014-03-04 2020-04-22 Microsoft Technology Licensing, LLC Encoding strategies for adaptive switching of color spaces
CN104952096B (zh) * 2014-03-31 2018-06-08 中国电信股份有限公司 Cpu和gpu混合云渲染方法、装置和系统
US20150288965A1 (en) * 2014-04-08 2015-10-08 Microsoft Corporation Adaptive quantization for video rate control
US20150296215A1 (en) * 2014-04-11 2015-10-15 Microsoft Corporation Frame encoding using hints
EP2960854A1 (en) 2014-06-27 2015-12-30 Thomson Licensing Method and device for determining a set of modifiable elements in a group of pictures
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
US9386317B2 (en) * 2014-09-22 2016-07-05 Sony Interactive Entertainment Inc. Adaptive picture section encoding mode decision control
US10264269B2 (en) * 2014-10-13 2019-04-16 Apple Inc. Metadata hints to support best effort decoding for green MPEG applications
US10063866B2 (en) 2015-01-07 2018-08-28 Texas Instruments Incorporated Multi-pass video encoding
US10404986B2 (en) 2015-03-30 2019-09-03 Netflix, Inc. Techniques for optimizing bitrates and resolutions during encoding
TW201642655A (zh) 2015-04-21 2016-12-01 Vid衡器股份有限公司 基於藝術意向之視訊編碼
JP6494439B2 (ja) * 2015-06-05 2019-04-03 キヤノン株式会社 通信装置およびその制御方法
CN105163134B (zh) 2015-08-03 2018-09-07 腾讯科技(深圳)有限公司 直播视频的视频编码参数设置方法、装置及视频编码设备
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US10425648B2 (en) 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
US20170105004A1 (en) * 2015-10-07 2017-04-13 Qualcomm Incorporated Methods and systems of coding a predictive random access picture using a background picture
JP6910130B2 (ja) 2015-11-06 2021-07-28 三星電子株式会社Samsung Electronics Co.,Ltd. 3dレンダリング方法及び3dレンダリング装置
US10163183B2 (en) 2016-01-13 2018-12-25 Rockwell Collins, Inc. Rendering performance using dynamically controlled samples
US10356406B2 (en) 2016-01-19 2019-07-16 Google Llc Real-time video encoder rate control using dynamic resolution switching
US9705526B1 (en) 2016-03-17 2017-07-11 Intel Corporation Entropy encoding and decoding of media applications
US10109100B2 (en) 2016-03-25 2018-10-23 Outward, Inc. Adaptive sampling of pixels
US9639935B1 (en) 2016-05-25 2017-05-02 Gopro, Inc. Apparatus and methods for camera alignment model calibration
US10244167B2 (en) * 2016-06-17 2019-03-26 Gopro, Inc. Apparatus and methods for image encoding using spatially weighted encoding quality parameters
US10567775B2 (en) * 2016-10-01 2020-02-18 Intel Corporation Method and system of hardware accelerated video coding with per-frame parameter control
US10798404B2 (en) 2016-10-05 2020-10-06 Qualcomm Incorporated Systems and methods of performing improved local illumination compensation
US10463964B2 (en) 2016-11-17 2019-11-05 Activision Publishing, Inc. Systems and methods for the real-time generation of in-game, locally accessible heatmaps
US20180176285A1 (en) 2016-12-15 2018-06-21 The Directv Group, Inc. Enhanced transmission of media to client devices
US10812559B2 (en) 2017-01-18 2020-10-20 Amazon Technologies, Inc. Just-in-time variable adaptive encoding and delivery of media content
US10419785B2 (en) * 2017-07-21 2019-09-17 Cisco Technology, Inc. Distributed learning video encoder/decoder
US10045053B1 (en) 2017-08-23 2018-08-07 Amazon Technologies, Inc. Fragment insertion for live media streams

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104365095A (zh) * 2012-03-30 2015-02-18 阿尔卡特朗讯公司 用于对视频流的选定空间部分进行编码的方法和装置
CN103716643A (zh) * 2012-10-01 2014-04-09 辉达公司 用于使用内容信息改进视频编码的系统和方法
CN104685873A (zh) * 2012-10-05 2015-06-03 索尼公司 编码控制设备以及编码控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cloud Gaming: Architecture and Performance;SHEA, Ryan等;《IEEE Network》;20131231;全文 *
H.264中码率控制算法的研究和改进;苏成;《中国优秀硕士学位论文全文数据库(电子期刊)》;20080615;全文 *

Also Published As

Publication number Publication date
JP7050836B2 (ja) 2022-04-08
CA3106617A1 (en) 2018-10-25
CA3108057A1 (en) 2018-10-25
US10225564B2 (en) 2019-03-05
RU2753157C2 (ru) 2021-08-12
TW201904292A (zh) 2019-01-16
RU2020114319A3 (zh) 2020-07-07
GB202103312D0 (en) 2021-04-21
GB2583826A (en) 2020-11-11
BR112019021628A2 (pt) 2020-05-12
CA3059747A1 (en) 2018-10-25
TWI681666B (zh) 2020-01-01
KR20200021047A (ko) 2020-02-27
EP3720130A1 (en) 2020-10-07
JP2020110608A (ja) 2020-07-27
GB2583825B (en) 2021-05-12
EP3635954A4 (en) 2020-07-15
TWI684358B (zh) 2020-02-01
KR20210010668A (ko) 2021-01-27
US20180309811A1 (en) 2018-10-25
GB2577642A (en) 2020-04-01
CA3159950A1 (en) 2018-10-25
GB202104290D0 (en) 2021-05-12
GB202104855D0 (en) 2021-05-19
CA3159952A1 (en) 2018-10-25
RU2752723C2 (ru) 2021-07-30
US20180310009A1 (en) 2018-10-25
EP3739881A1 (en) 2020-11-18
US11202084B2 (en) 2021-12-14
GB2577642B (en) 2021-05-19
CN110945849A (zh) 2020-03-31
DE112018002112T5 (de) 2020-01-16
MX2020012597A (es) 2021-10-19
KR102358294B1 (ko) 2022-02-08
ZA202007053B (en) 2022-03-30
GB2591410A (en) 2021-07-28
US20190281313A1 (en) 2019-09-12
TW202017388A (zh) 2020-05-01
ZA202007213B (en) 2022-04-28
WO2018195440A1 (en) 2018-10-25
TWI742510B (zh) 2021-10-11
KR20220012426A (ko) 2022-02-03
JP2022065047A (ja) 2022-04-26
JP7291820B2 (ja) 2023-06-15
US11503313B2 (en) 2022-11-15
GB202002838D0 (en) 2020-04-15
AU2018255414A1 (en) 2019-12-05
EP4109899A1 (en) 2022-12-28
CA3159950C (en) 2024-01-23
GB2593598B (en) 2021-12-29
GB2593598A (en) 2021-09-29
EP3720130B1 (en) 2022-09-28
JP7145203B2 (ja) 2022-09-30
CA3106617C (en) 2023-11-07
GB2595029B (en) 2022-02-09
KR20210114553A (ko) 2021-09-23
US20210058630A1 (en) 2021-02-25
GB202002769D0 (en) 2020-04-15
US10869045B2 (en) 2020-12-15
ZA201907683B (en) 2021-04-28
RU2720067C1 (ru) 2020-04-23
TWI737045B (zh) 2021-08-21
GB201916973D0 (en) 2020-01-08
AU2020289756A1 (en) 2021-01-21
CA3087809C (en) 2021-03-09
KR102460792B1 (ko) 2022-10-28
RU2019138226A (ru) 2019-12-27
US20190158856A1 (en) 2019-05-23
RU2020114319A (ru) 2020-06-18
CA3059747C (en) 2021-03-23
TW202015408A (zh) 2020-04-16
EP3635954A1 (en) 2020-04-15
GB2583825A (en) 2020-11-11
JP2020520204A (ja) 2020-07-02
RU2019138226A3 (zh) 2020-06-30
AU2020289755B2 (en) 2021-11-25
CA3087809A1 (en) 2018-10-25
AU2020289756B2 (en) 2021-11-25
CN112153029A (zh) 2020-12-29
AU2018255414B2 (en) 2021-01-21
GB2595029A (en) 2021-11-17
TW201842778A (zh) 2018-12-01
MX2021004094A (es) 2021-06-08
AU2020289755A1 (en) 2021-01-21
GB2583826B (en) 2021-05-19
US10362320B2 (en) 2019-07-23
KR102447074B1 (ko) 2022-09-23

Similar Documents

Publication Publication Date Title
CN110945849B (zh) 基于编码器提示的渲染和预编码负载估计的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40019106

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant