CN116391354A - 用于云游戏的内容自适应信噪比引导的两遍次视频编码 - Google Patents

用于云游戏的内容自适应信噪比引导的两遍次视频编码 Download PDF

Info

Publication number
CN116391354A
CN116391354A CN202080106947.4A CN202080106947A CN116391354A CN 116391354 A CN116391354 A CN 116391354A CN 202080106947 A CN202080106947 A CN 202080106947A CN 116391354 A CN116391354 A CN 116391354A
Authority
CN
China
Prior art keywords
frame
noise ratio
encoding
peak signal
quantization parameter
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
Application number
CN202080106947.4A
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN116391354A publication Critical patent/CN116391354A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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 encoded video 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/136Incoming video signal characteristics or properties
    • 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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/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/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

为实时云游戏编码游戏内容的技术,更具体地说,在先前帧直到当前帧的移动窗口中使用自适应统计模型来自适应地计算对应于选择的峰值信噪比(PSNR)目标的量化参数(QP)的下限。这种以PSNR为引导的编码的结果是显著减小了编码帧的大小(即,使用这些帧的PSNR作为引导当这些帧没有主观质量损失时,不达到目标比特率)。这些减少减轻了带宽问题并改善了整体用户体验,因为传送的更少的比特数导致网络传输和解码更快,以及平台开销更少。

Description

用于云游戏的内容自适应信噪比引导的两遍次视频编码
背景技术
各种云游戏平台都支持使用编码操作将游戏内容实时压缩成传送到互联网上的用户设备的视频流。通常,编码器采用量化参数(QP)来控制游戏内容如何被编码,特别是在编码操作期间保留多少信息。一些编码器根据帧的大小为每个帧(也称为媒体帧、视频帧、图像等)选择QP。这样,这些编码器选择QP以满足目标比特率(即帧大小)。然而,这些编码器会导致对游戏内容进行编码操作,其使得编码器(或与编码器关联的设备)增加不必要的带宽使用,并且在某些情况下会增加端到端延迟,从而对用户体验产生负面影响。
发明内容
本公开特别涉及基于确定的峰值信噪比(PSNR)在帧中编码媒体内容。例如,所提出的解决方案可以包括在先前帧直到当前帧的移动窗口中使用自适应统计模型来自适应地计算对应于PSNR目标的QP的下限。对应的PSNR引导编码的结果可能会显著减小编码帧的大小(即,使用那些帧的PSNR作为引导当那些帧没有主观质量损失时,不达到目标比特率)。这些减少减轻了带宽问题并改善了整体用户体验,因为传送的更少的比特数导致网络传输和解码更快,以及平台开销更少。
根据一个方面,一种用于编码实时云游戏的视频的方法,包括:确定与在第一编码遍次中对帧流的每个帧的缩小版本进行编码相关联的峰值信噪比;以及,响应于第一编码遍次,基于峰值信噪比在第二编码遍次中对帧流的每个帧进行编码。
该方法还可以包括:基于统计线性回归模型确定与用于编码帧流的每个帧的选择的目标PSNR相关联的最小QP。在一些实施方式中,基于编码帧的最小QP来编码帧流IS的帧以满足选择的目标PSNR。
该方法还可以包括:通过将在双端队列的先前帧的移动窗口中的PSNR和QP对拟合为线性曲线来确定针对每个帧从PSNR到最小QP的线性映射。在一些实施例中,线性映射在每个帧的第二编码遍次之后被更新。
该方法还可以包括基于针对帧流的每个帧的所选择的目标PSNR和更新的线性映射来确定最小QP的下限值。
该方法还可以包括基于先前帧的移动窗口确定从PSNR到最小QP的线性映射的交点和斜率。
该方法还可以包括保持与PSNR和QP对相关联的先前帧的移动窗口的大小。
该方法还可以包括:基于与帧流的每个帧相关联的PSNR更新统计模型,其中,对帧流的每个帧进行编码是基于来自统计模型的最小QP。
该方法还可以包括:在第一编码遍次中,通过编码器在未压缩帧和重构帧之间计算与帧流的每个帧相关联的PSNR;以及,在第二编码遍次中,通过编码器在未压缩帧和重构帧之间计算与帧流的每个帧相关联的PSNR。
在一些实施例中,统计模型包括基于PSNR和QP对的线性回归模型。
该方法还可以包括确定目标PSNR阈值,其中,基于目标PSNR阈值对帧流的每个帧进行编码。
该方法还可以包括基于下采样参数对帧流的每个帧进行下采样;以及,响应于下采样,基于目标比特率参数对帧流的下采样帧进行编码。
根据另一方面,一种用于编码实时云游戏的视频的装置,包括:一个或多个处理器;耦合到一个或多个处理器的存储器;以及,一个或多个处理器可执行以执行下述操作的指令:基于选择的目标PSNR确定最小QP;以及,基于最小QP对帧流的每个帧进行编码。
在一些实施例中,指令还可由一个或多个处理器执行以:基于与帧流的每个帧相关联的峰值信噪比更新统计模型。在一些实施例中,统计模型包括线性回归模型。在一些其他实施例中,线性回归模型基于一个或多个PSNR和QP对。
在一些实施例中,指令还可由一个或多个处理器执行以:基于下采样参数对帧流的每个帧进行下采样;以及,响应于下采样,基于目标比特率参数对帧流的下采样帧进行编码。
根据又一个方面,一种非暂时性计算机可读介质,存储用于在设备上对用于实时云游戏的游戏内容进行编码的代码,代码包括可由设备的处理器执行的指令用于:基于选择的目标PSNR确定最小QP;以及,基于最小QP对帧流的每个帧进行编码。
在一些实施例中,指令可进一步由设备的处理器执行以基于与帧流的每个帧相关联的PSNR更新统计模型。统计模型包括线性回归模型。线性回归模型基于一个或多个峰值信噪比和量化参数对。
附图说明
通过参考附图可以更好地理解本公开,并且其众多特征和优点对于本领域技术人员而言是显而易见的。在不同的附图中使用相同的附图标记表示相似或相同的项。
图1是根据一些实施例的支持实时游戏内容编码的基于云的游戏系统的框图。
图2是根据一些实施例的支持自适应内容编码的图1的系统的设备的框图。
图3是根据一些实施例的用于自适应PSNR引导的游戏内容编码的方法的流程图。
图4是图示根据一些实施例的图3的方法的附加方面的流程图,该附加方面包括用于PSNR到QP映射的统计模型。
具体实施方式
基于云的游戏系统使端用户能够在远程设备(例如便携式客户端设备(例如笔记本计算机、智能手机)上访问和体验有时原本配置用于非便携设备(例如,个人计算机或游戏控制台设置)的游戏应用。在基于云的游戏系统中,网络设备(例如,游戏服务器)执行诸如游戏内容的图形呈现、捕获、编码和流式传输到通信网络的操作。便携式客户端设备通过通信网络接收游戏内容的编码比特流,解码编码比特流并将得到的图像显示给用户。
为了增强用户体验,有时期望基于云的游戏系统生成并向客户端设备提供高分辨率高帧率视频流。然而,这种高质量的视频流会消耗大量的网络带宽和编码资源。例如,使用特定编解码器的1080p帧的每秒60帧(FPS)流(例如1080p视频)需要网络带宽提供超过每秒25兆比特(Mbps)的持续带宽的数据速率,以避免游戏内容的退化。此外,网络带宽可能会基于多种因素(例如,支持特定网络连接的基础技术)而异。例如,数字订户线(DSL)连接提供10-25Mbps的数据速率,电缆连接提供50-100Mbps的数据速率,光纤连接提供100+Mbps的数据速率,并且卫星连接提供15-25Mbps的数据速率。因此,基于特定的网络连接,特定的编解码器可能表现不佳并导致游戏内容质量下降,并且从而对用户体验产生负面影响。
为了满足带宽要求并保持低延迟视频流,一些游戏系统在各种基于云的平台上使用硬件加速编码器。这些用于基于云的应用的编码器专注于最大限度地提高客观游戏质量,以尽可能接近目标带宽。由于严格的端到端延迟要求,这些云游戏系统通常最优先考虑的是防止每帧超过目标帧大小。然而,当编码游戏内容的客观视频质量超过阈值时,人类视觉系统对任何额外的主观质量增益的敏感度要低得多。也就是说,通过峰值信噪比(PSNR)(以及其他度量)衡量的客观视频质量和通过平均意见得分(MOS)衡量的主观视频质量表明,在某个PSNR水平之上,主观视频质量最大化。
本公开的各个方面涉及用于游戏内容的自适应编码的技术,并且更具体地涉及游戏内容的峰值信噪比(PSNR)引导编码。例如,编码器接收与游戏内容相关的帧流,并输出帧流的编码版本以通过网络(例如互联网)流式传输。编码器接收并编码可以被下采样的输入帧以获得第一编码遍次信息。这允许编码器在第二编码遍次(即,最终编码阶段)中对其进行编码之前准确地预测当前的PSNR。编码器在先前帧到当前帧的移动窗口中使用内容自适应统计模型(例如,线性回归模型)来自适应地以分贝为单位计算对应于所选PSNR目标的QP(MIN QP)的下限,并采用下限QP用于速率控制过程以对当前帧进行编码。当PSNR指示这些帧上不太可能存在主观质量损失时,这种PSNR引导编码的结果是减少了编码帧的大小,同时低于目标比特率。这些减少减轻了带宽问题并提高了整体游戏性能,因为传送更少的比特数导致网络传输更快、解码更快和平台开销更少,同时保持游戏流的整体质量。
图1是根据一些实施例的支持实时游戏内容编码的基于云的游戏系统100的框图。基于云的游戏系统100包括客户端设备102、服务器104和数据库106。尽管基于云的游戏系统100图示了单个客户端设备102、单个服务器104、单个数据库106和单个网络108,本公开适用于具有一个或多个设备102、服务器104、数据库106和网络108的任何基于云的游戏系统架构。客户端设备102、服务器104和数据库106通过网络108使用一个或多个通信链路(例如,无线连接、有线连接)彼此通信。
服务器104可以是数据服务器、云服务器、与游戏订用提供商相关联的服务器、代理服务器、网络服务器、应用服务器或其任何组合。在一些实施例中,服务器104包括云游戏平台110。云游戏平台110允许客户端设备102发现、浏览、共享和流式传输经由网络108使用一个或多个通信链接在服务器上呈现的动态游戏内容112,或通过网络108经由实时数字分发存储在数据库106上的静态游戏内容112。因此,数字分发可以是递送诸如音频、视频、图像的某个静态游戏内容112的一种形式,不使用物理媒体,而是通过在线传递媒体,如互联网。
数据库106可以存储各种信息,例如指令或命令(例如,游戏相关信息)。例如,数据库106可以存储游戏内容112。客户端设备102可以经由网络108使用一个或多个通信链路从数据库106检索游戏内容112。网络108可以提供加密、访问授权、跟踪、网际协议(IP)连接和其他访问、计算、修改和/或功能。网络108的示例可以包括云网络、局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、无线网络(例如使用802.11)、蜂窝网络(使用第三代(3G)、第四代(4G)、长期演进(LTE)或新无线电(NR)系统(例如,第五代(5G))等。网络108可以包括互联网。
基于云的游戏系统100中所示的一个或多个通信链路包括从客户端设备102到服务器104和数据库106的上行链路传输,和/或从服务器104和数据库106到客户端设备102的下行链路传输。这些通信链路可以传输双向通信和/或单向通信。在一些实施例中,通信链路可以是有线连接或无线连接或两者。例如,通信链路可以包括一个或多个连接,包括但不限于Wi-Fi、蓝牙、低功耗蓝牙(BLE)、蜂窝、Z-WAVE、802.11、对等、LAN、无线局域网(WLAN)、以太网、FireWire、光纤和/或与无线通信系统相关的其他连接类型。
在一些实施例中,客户端设备102是支持包括h.264、vp9或HEVC的各种类型的视频编解码器的蜂窝电话、智能手机、平板计算机、膝上型计算机、显示设备(例如,监视器)等。在一些实施例中,服务器104和客户端设备102一起为客户端设备102的用户实现云游戏会话。为了说明,服务器104执行游戏程序114,该游戏程序基于由游戏程序114实现的游戏的游戏状态生成帧流116(图像)。客户端设备102执行游戏应用118,该游戏应用118可以从服务器104接收帧流,并且可以通过用户界面(例如,游戏控制器、触摸屏等或它们的任意组合)从用户接收输入数据。客户端设备102向服务器104提供输入数据,服务器104更新游戏程序114的游戏状态并基于更新的游戏状态为帧流生成更多帧。
为了执行相应的程序并实现游戏会话,客户端设备102和服务器104各自包括以下部分的一个或多个:通用处理器、数字信号处理器(DSP)、图像信号处理器(ISP)、中央处理器(CPU)、图形处理单元(GPU)、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立门或晶体管逻辑组件、分立硬件组件、或它们的任何组合、或其他可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件、或设计用于执行本公开中描述的功能的它们的任何组合、和/或类似物。例如,客户端设备102可以解码从服务器104流式传输的编码游戏内容112(例如,图像数据、视频数据、音频数据)。
服务器104还可以被配置为提供游戏内容112上的增强、恢复、分析和合成以及的其他功能。例如,服务器104可以执行白平衡、裁剪、缩放(例如,游戏压缩)、调整分辨率、拼接、颜色处理、空间游戏过滤、伪像去除、帧率调整等。作为进一步的示例,服务器104可以根据本文描述的技术处理游戏内容112以支持游戏内容112的自适应编码。
例如,在游戏会话期间,服务器104可以接收并编码与帧流116相关联的输入帧,该输入帧可以被下采样,以获得第一编码遍次信息,以在将它在第二编码遍次(即,最终编码阶段)中编码之前帮助准确预测帧流116的当前或后续帧的PSNR。服务器104在先前帧直到当前帧的移动窗口中使用内容自适应统计模型(例如,线性回归模型)来自适应地计算对应于所选择的PSNR目标的QP的下限。这种PSNR引导编码的结果是响应于使用这些帧的PSNR作为引导确定这些帧上没有主观质量损失,在低于目标比特率时显著减小编码帧的大小。这些减少减轻了带宽问题并提高了整体游戏性能,因为传送的更少的比特数导致网络传输更快、解码更快并且平台开销更少。
图2是根据一些实施例的、支持自适应游戏内容编码的图1的系统的设备200的框图。在一些实施例中,设备200实现如图1中描述的基于云的游戏系统100的各方面。例如,设备200可以是如图1中描述的服务器104的示例。设备200包括一个或多个用于双向通信的软件和硬件组件,包括用于编码游戏内容236的组件。在一些实施例中,设备200是支持游戏内容236编码的电子设备的一部分,包括台式计算机、服务器、游戏机等。在图2的示例中,设备200至少包括处理器202、存储器204和调制解调器206。这些组件经由一个或多个接口(例如,总线228)进行电子通信。
处理器202是通常支持指令集(例如计算机程序)的执行以便代表设备200执行指定任务的处理设备(例如通用处理器、CPU、GPU、ASIC、FPGA等)。在一些实施例中,处理器202被配置为使用集成到处理器202中的存储器控制器与存储器204对接。存储器204包括随机存取存储器(RAM)和只读存储器(ROM)。在一些实施例中,存储器204存储计算机可读的、计算机可执行的代码,其包括指令,该指令在被执行时使处理器202执行这里描述的各种功能。在一些实施例中,存储器204除其他特征外还包括基本输入/输出系统(BIOS),其控制基本硬件或软件操作,例如与设备200的外围组件的交互。代码存储在作为系统存储器或其他类型的存储器的非临时计算机可读介质。在一些其他实施例中,存储器204附加地或备选地存储与如本文描述的提高游戏内容236的编码性能相关的统计模型230。如本文所述,统计模型230可包括线性回归模型,其可将对应的PSNR值映射到对应的QP值。
调制解调器206经由一个或多个天线、有线或无线通信链路(例如,Wi-Fi通信链路、蜂窝通信链路)双向通信。在一些实施例中,调制解调器206被配置为调制承载编码游戏内容的分组并将调制分组提供给天线以用于传输,以及解调承载从天线接收的编码游戏内容的分组。在一些实施例中,调制解调器206代表无线收发器,其被配置成与另一设备(例如图1中所描述的客户端设备102或服务器104)进行双向通信。
在所示实施例中,处理器202包括游戏内容模块208、帧生成器模块210、帧分析模块212和编码器214。在一些实施例中,游戏内容模块208被配置为代表编码器214生成游戏内容236(例如,图像、视频、音频)以通过调制解调器206与另一个计算设备通信。例如,在一些实施例中,游戏内容模块208是在处理器202处执行的程序,其生成游戏内容用于传送到另一个设备。
为了生成游戏内容236,游戏内容模块208经由控制信号226向帧生成器模块210发信号以生成与游戏内容236(例如,图像、视频、音频)相关联的一个或多个帧216。例如,游戏内容模块208经由控制信号226向帧生成器模块210发信号,以生成与基于云的游戏应用等相关联的一个或多个帧。帧生成器模块210由处理器202或设备200的其他组件实现。帧生成器模块210经由控制信号226向编码器214发信号通知一个或多个生成的帧216。
编码器214由处理器202或设备200的其他组件实现。在一些实施例中,编码器214根据被称为编解码器的指定的编码技术将一个或多个生成的帧216编码成编码帧流232。在一些实施例中,编码器214被配置为例如将编码的帧流232转发到调制解调器206以传输到另一设备(例如,客户端设备102或服务器104,如图1中所描述的)。例如,编码器214生成帧流232,它可以是来自GPU呈现器(例如,在服务器104上,如图1所述)的未压缩视频流,编码器214并经由调制解调器206输出编码的视频流以通过互联网流式传输。
处理器202或设备200的其他组件通过控制信号226向帧生成器模块210发送信号,以分析与游戏内容236(例如,图像、视频、音频)相关联的一个或多个帧216,以支持游戏内容236的自适应编码。帧分析模块212初始化与分析与帧流232相关联的一个或多个帧216相关联的一个或多个参数。这些参数包括PSNR参数218、MIN QP 220、比特速率参数222或帧大小参数224或其任何组合的一个或多个。
在一些实施例中,帧分析模块212基于一个或多个因素来确定目标PSNR阈值。例如,帧分析模块212基于支持特定网络连接(例如,DSL、电缆、光纤、卫星等)的底层技术确定目标PSNR阈值为45分贝(dB),并将该值存储在目标PSNR参数218中。附加地或备选地,帧分析模块212基于与游戏应用相关联的默认配置(例如,游戏设置)将目标PSNR阈值确定为45dB,如图1中所描述的,并将该值存储在目标PSNR参数218中。在一些实施例中,帧分析模块212确定以Mbps为单位的目标比特率。例如,帧分析模块212将目标比特率确定为28Mbps并将该值存储在比特率参数222中。在一些实施例中,帧分析模块212确定目标帧大小(例如,以比特为单位)。帧分析模块212可基于目标比特率或帧率或其组合来确定目标帧大小。附加地或备选地,目标帧大小可以基于与游戏应用相关联的默认配置(例如,游戏设置)相关联的固定分辨率,如图1中所描述的。帧分析模块212将目标帧大小的值存储在帧大小参数224中。
在一些实施例中,编码器214对帧216-1进行编码并将编码信息提供给帧分析模块212。编码信息可以包括帧216-1的帧大小和与帧216-1相关联的PSNR(例如,亮度平面的PSNR)。在一些实施例中,帧分析模块212或编码器214将帧216-1缩小到其原始分辨率的分数(fraction)。编码器214使用目标比特率对缩小的帧216-1进行编码,这可以在对当前帧进行编码之前提供PSNR估计。
帧分析模块212为帧216-1选择MIN QP 220。例如,在一些实施例中,帧分析模块212将估计的帧216-1PSNR与目标PSNR进行比较。如果帧216-1的PSNR大于选择的目标PSNR,则帧分析模块212基于统计模型230根据等式(1)使用线性映射计算下限QP:
QP=f(PSNR)=斜率*PSNR+截距(1)
如下文进一步描述的,并将结果分配为MIN QP 220的下限值。线性映射因此是PSNR的函数。在一些实施例中,可以基于初始化来预定义斜率(slope)的值。例如,斜率的值最初可以设置为零。在一些实施例中,可以基于初始化来预定义交点(intersection)的值。例如,交集的值最初可以设置为零。在一些实施例中,帧分析模块212提供指示或为编码器214设置MIN QP 220。
在一些实施例中,帧分析模块212可以支持速率控制以调整与编码器214相关联的编码器参数以实现目标比特率。在一些实施例中,帧216的编码可以是固有的有损过程。例如,编码器214不仅可以通过从帧流232(比特流)中移除真正冗余的信息,而且可以通过以旨在最小化可感知的方式做出小的质量妥协来实现压缩。MIN QP 220提供速率控制可以使用的QP的下限。当MIN QP 220非常小时,速率控制几乎可以保留所有该细节。随着MIN QP220的增加,一些细节被聚合,使得比特率下降,但代价是客观失真有所增加和客观质量有所损失,而主观质量损失最小,因为PSRN目标可能被选择为足够高。帧分析模块212由此可以基于帧216的PSNR估计动态地改变MIN QP 220,使得每个帧216具有适当的比特分配以最大化主观质量。因此,因为MIN QP由高目标PSNR确定,所以主观质量损失被最小化。
举例来说,帧分析模块212可随后接收帧216-2并执行与编码帧216-2相关联的速率控制,并且从而管理编码帧216-2的质量。在一些实施例中,帧分析模块212基于与帧216-1相关联的编码信息选择用于帧216-2的MIN QP 220。在一些其他实施例中,帧分析模块212基于统计模型230选择用于帧216-2的MIN QP 220,这可以指示包括帧216-2的帧的当前窗口的MIN QP 220。帧分析模块212将选择的MIN QP 220用信号发送给编码器214,编码器214基于用于帧216-2的选择的MIN QP 220对帧216-2进行编码。在当前帧被编码之后,编码器214可以确定与帧216-2相关联的编码信息,例如与帧216-2相关联的PSNR,并将其传递给帧分析模块212。
编码器214将与帧216-2相关联的PSNR提供给帧分析模块212,帧分析模块212用包括用于帧216-2的选择的QP的编码信息更新统计线性回归模型230。例如,帧分析模块212使用编码信息在线性回归模型中将线性曲线拟合到与帧流232相关联的帧的当前窗口,如图4中更详细地描述。编码器214和帧分析模块212可以对与帧流232相关联的所有帧216重复上述操作。帧分析模块210由此确定当前帧的MIN QP以将其PSNR限制到目标PSNR阈值。由此,设备200支持从PSNR到QP的函数映射以支持游戏内容236的自适应编码。
因此,如上所述,设备200的编码器214在先前帧216直到当前帧216的移动窗口中使用内容自适应线性回归模型来自适应地计算对应于所选目标PSNR参数218的MIN QP220。这种PSNR引导的两遍次编码器的结果是在许多情况下通过使用那些帧的PSNR作为引导在那些帧没有主观质量损失时不达到目标比特率而显著减少编码帧216的大小。这些比特率降低不仅减轻了带宽问题,而且提高了整体性能。
图3是根据一些实施例的自适应游戏内容编码的方法的流程图。在一些实施例中,该方法由参考图1描述的编码器或其组件实现。例如,编码器被实现或配置为执行改进基于云的游戏应用中的游戏内容编码的方法以减少延迟并增加编码游戏内容的可靠性。在一些实施例中,编码器执行一组指令以控制编码器的功能元件执行下述操作。附加地或替代地,编码器使用专用硬件执行下述操作的方面。
在图3的示例中,编码器执行一个或多个初始化操作和第一编码操作。作为初始化阶段的一部分,在一些实施例中,编码器确定默认目标PSNR或默认初始MIN QP或两者。在一些其他实施例中,编码器还确定帧范围的最大帧数。在其他实施例中,编码器确定目标PSNR阈值(例如45dB)、目标比特率参数(例如28Mbps)或目标帧大小参数或其任何组合。作为用于自适应游戏内容编码的方法的初始化操作的一部分,编码器还可以预先配置有上述参数中的一个或多个。
作为第一编码阶段的一部分,在块302,编码器例如从与基于云的游戏应用相关联的帧流接收当前帧。在块304,编码器缩减当前帧。例如,编码器按当前帧原始分辨率的分数缩小当前帧。在一些实施例中,编码器按当前帧原始分辨率的二分之一(1/2)缩小当前帧。在一些其他实施例中,编码器按当前帧原始分辨率的四分之一(1/4)缩小当前帧。在其他实施例中,编码器按当前帧原始分辨率的不同分数缩小。在块306,编码器在第一编码遍次期间对缩小的当前帧进行编码。在一些实施例中,编码器基于目标比特率在第一编码遍次期间对缩小的当前帧进行编码。
在块308,编码器基于编码器的默认设置或配置来确定目标比特率。在一些实施例中,编码器由此基于编码器的默认设置或配置确定可以用Mbps表示的目标比特率,例如28Mbps。编码器在第一编码遍次期间根据28Mbps的目标比特率对缩小的当前帧进行编码。在一些实施例中,编码器基于目标比特率的分数(例如,目标比特率的四分之一(1/4))在第一编码遍次期间对缩小的当前帧进行编码。例如,编码器在第一次编码遍次期间根据28Mbps的目标比特率的分数(例如7Mbps)对缩小的当前帧进行编码。在块310,编码器附加地或备选地基于第一编码遍次确定当前帧的帧大小。在块312,编码器通过基于第一编码遍次的估计来确定当前帧的PSNR。例如,编码器使用专用硬件和软件技术在当前帧的第一编码遍次期间中确定亮度平面的PSNR。
图4是图示根据一些实施例的图3的方法的附加方面的流程图。在一些实施例中,该方法由参考图1描述的编码器或其组件实现。在一些实施例中,编码器执行一组指令来控制编码器的功能元件以执行下述操作。附加地或替代地,编码器使用专用硬件执行下述操作的方面。
在图4的示例中,编码器执行编码操作,其可以是两遍次编码操作的第二编码操作。在块402,编码器在第二编码遍次期间对当前帧进行编码。第二编码遍次期间的编码可以基于一个或多个参数(例如,最小量化参数、目标比特率参数)。在块404,编码器确定目标比特率。在块406,编码器确定先前帧信息。在块408,编码器确定先前的PSNR信息。由此,在第二编码遍次期间对当前帧的编码可以基于目标比特率、先前帧信息或先前PSNR信息、或来自第一编码遍次的估计PSNR或其任何组合。
在块410,编码器基于第二编码遍次确定当前帧的帧大小。在块412,在第二编码遍次之后,编码器确定当前帧的PSNR。在块414,编码器更新统计模型,例如,基于{当前psnr,当前qp}对的线性回归模型,以计算QP=f(PSNR)=斜率*PSNR+截距的映射。
编码器在前一帧到当前帧的移动窗口中维护{PSNR,QP}对的双端队列。在当前帧的第二编码遍次后,当前帧的{PSNR,QP}对被推到队列的尾部。当队列的大小达到由编码器的初始化阶段确定的最大大小时,框414将定义为QP=a*PSNR+b的线性曲线拟合到{PSNR,QP}对的当前队列,其中,a是交点,并且b是斜率。在一些实施例中,为队列计算平均PSNR和平均QP。对于队列中的每个{PSNR,QP}对,求平均PSNR与PSNR之差的平方,然后将结果累加到s_xx。类似地,平均QP与QP之差乘以平均PSNR之差,再累加到s_xy。在一些实施例中,线性曲线的交点(b)和斜率(a)由以下公式确定:
a=s_xy/s_xx
b=平均QP-斜率*平均PSNR
在一些实施例中,编码器最后移除队列前部的{PSNR,QP}对。
在一些实施例中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实现。该软件包括在非暂时性计算机可读存储介质上存储或否则有形地体现的一组或多组可执行指令。该软件可以包括指令和某些数据,这些指令和某些数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非易失性计算机可读存储介质可以包括例如磁盘或光盘存储设备、诸如闪存的固态存储设备、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储设备等等。存储在非暂时性计算机可读存储介质上的可执行指令可以是以源代码、汇编语言代码、目标代码或由一个或多个处理器解释或否则可执行的其他指令格式。
计算机可读存储介质可以包括在使用期间由计算机系统可访问的任何存储介质或存储介质的组合,用于向计算机系统提供指令和/或数据。这样的存储介质可以包括但不限于光学介质(例如,光盘(CD)、数字多功能盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统(例如,系统RAM或ROM)中,固定地附接到计算系统(例如,磁硬盘驱动器),可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的闪存,或通过有线或无线网络(例如,网络可访问存储器(NAS))耦合到计算机系统。
注意,并非一般描述中上述的所有活动或元素都是必需的,特定活动或设备的一部分可能不是必需的,并且除了上述那些之外,还可以执行一个或多个其他活动或包括元素。更进一步,列出活动的顺序不一定是执行它们的顺序。而且,已经参考特定实施例描述了概念。然而,本领域的普通技术人员将理解,可以进行各种修改和改变而不脱离如所附权利要求书中阐述的本公开的范围。因此,说明书和附图应被认为是说明性的而不是限制性的,并且所有这样的修改旨在被包括在本公开的范围内。
上面已经关于特定实施例描述了益处、其他优点和对于问题的解决方案。但是,益处、优点、对于问题的解决方案以及可能导致任何益处、优点或解决方案出现或变得更加明显的任何特征都不应解释为任何或全部权利要求的关键、必需或必要特征。此外,上面公开的特定实施例仅是说明性的,因为可以以受益于本文的教导的本领域技术人员显而易见的不同但等效的方式来修改和实践所公开的主题。除了在所附权利要求书中描述的以外,没有意图限于本文所示的构造或设计的细节。因此,显而易见的是,以上公开的特定实施例可以被改变或修改,并且所有这样的变化都被认为在所公开的主题的范围内。因此,本文所寻求的保护如所附权利要求书所述。

Claims (20)

1.一种用于对实时云游戏的视频进行编码的方法,包括:
确定与在第一编码遍次中对帧流的每个帧的缩小版本进行编码相关联的峰值信噪比;以及
响应于所述第一编码遍次,基于所述峰值信噪比在第二编码遍次中对所述帧流的每个帧进行编码。
2.根据权利要求1所述的方法,还包括:
基于统计线性回归模型,确定与用于对所述帧流的每个帧进行编码的选择的目标峰值信噪比相关联的最小量化参数;以及
对所述帧流的帧进行编码是基于用于编码的帧的所述最小量化参数,以满足所述选择的目标PSNR。
3.根据权利要求2所述的方法,还包括:
通过将在双端队列的先前帧的移动窗口中的峰值信噪比和量化参数对拟合到线性曲线,来针对每个帧确定从所述峰值信噪比到所述最小量化参数的线性映射,
其中,所述线性映射在每个帧的所述第二编码遍次之后被更新。
4.根据权利要求3所述的方法,还包括:
基于针对所述帧流中的每个帧的所述选择的目标峰值信噪比和更新的线性映射来确定所述最小量化参数的下限值。
5.根据权利要求3所述的方法,还包括:
基于先前帧的所述移动窗口,确定从所述峰值信噪比到所述最小量化参数的所述线性映射的交点和斜率。
6.根据权利要求5所述的方法,还包括:
保持与峰值信噪比和量化参数对相关联的先前帧的所述移动窗口的大小。
7.根据权利要求2所述的方法,还包括:
基于与所述帧流的每个帧相关联的所述峰值信噪比来更新统计模型,
其中,对所述帧流的每个帧进行编码是基于来自所述统计模型的所述最小量化参数。
8.根据前述权利要求1至7中任一项所述的方法,还包括:
在所述第一编码遍次中,通过所述编码器在未压缩帧和重构帧之间计算与所述帧流的每个帧相关联的所述峰值信噪比;以及
在所述第二编码遍次中,通过所述编码器在所述未压缩帧和所述重构帧之间计算与所述帧流的每个帧相关联的所述峰值信噪比。
9.根据权利要求7所述的方法,其中,所述统计模型包括基于所述峰值信噪比和量化参数对的线性回归模型。
10.根据前述权利要求1至7中任一项所述的方法,还包括:
确定目标峰值信噪比阈值,
其中,对所述帧流的每个帧进行编码是基于所述目标峰值信噪比阈值。
11.根据前述权利要求1至7中任一项所述的方法,还包括:
基于下采样参数对所述帧流的每个帧进行下采样;以及
响应于所述下采样,基于目标比特率参数对所述帧流的下采样的帧进行编码。
12.一种用于编码实时云游戏的视频的装置,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的存储器;以及
指令,所述指令由所述一个或多个处理器可执行以用于:
基于选择的目标峰值信噪比确定最小量化参数;以及
基于所述最小量化参数对帧流的每个帧进行编码。
13.根据权利要求12所述的装置,其中,所述指令还可由所述一个或多个处理器执行以用于:
基于与所述帧流的每个帧相关联的所述峰值信噪比来更新统计模型。
14.根据权利要求13所述的装置,其中,所述统计模型包括线性回归模型。
15.根据权利要求13或14所述的装置,其中,所述线性回归模型是基于一个或多个峰值信噪比和量化参数对。
16.根据权利要求12所述的装置,其中,所述指令还可由所述一个或多个处理器执行以用于:
基于下采样参数对所述帧流的每个帧进行下采样;以及
响应于所述下采样,基于目标比特率参数对所述帧流的下采样的帧进行编码。
17.一种存储代码的非暂时性计算机可读介质,所述代码用于在设备处对用于实时云游戏的游戏内容进行编码,所述代码包括指令,所述指令可由所述设备的处理器执行以用于:
基于选择的目标峰值信噪比来确定最小量化参数;以及
基于所述最小量化参数对帧流的每个帧进行编码。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述指令可进一步由所述设备的所述处理器执行以用于:
基于与所述帧流的每个帧相关联的所述峰值信噪比来更新统计模型。
19.根据权利要求18所述的非暂时性计算机可读介质,其中,所述统计模型包括线性回归模型。
20.根据权利要求18或19所述的非暂时性计算机可读介质,其中,所述线性回归模型是基于一个或多个峰值信噪比和量化参数对。
CN202080106947.4A 2020-11-25 2020-11-25 用于云游戏的内容自适应信噪比引导的两遍次视频编码 Pending CN116391354A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/062161 WO2022115102A1 (en) 2020-11-25 2020-11-25 Content-adaptive signal-to noise-ratio-guided two-pass video encoding for cloud gaming

Publications (1)

Publication Number Publication Date
CN116391354A true CN116391354A (zh) 2023-07-04

Family

ID=73856334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080106947.4A Pending CN116391354A (zh) 2020-11-25 2020-11-25 用于云游戏的内容自适应信噪比引导的两遍次视频编码

Country Status (6)

Country Link
US (1) US20230396766A1 (zh)
EP (1) EP4218236A1 (zh)
JP (1) JP2023550642A (zh)
KR (1) KR20230088454A (zh)
CN (1) CN116391354A (zh)
WO (1) WO2022115102A1 (zh)

Also Published As

Publication number Publication date
KR20230088454A (ko) 2023-06-19
WO2022115102A1 (en) 2022-06-02
US20230396766A1 (en) 2023-12-07
JP2023550642A (ja) 2023-12-04
EP4218236A1 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
US10523947B2 (en) Server-based encoding of adjustable frame rate content
JP7221957B2 (ja) ビデオエンコーダレンダリング向けのゲームエンジンアプリケーション
CN107623851B (zh) 视频码流传输控制装置及控制方法
CN108769693B (zh) 质量感知视频优化中的宏块级自适应量化
US8804508B1 (en) Method and apparatus for using a network appliance to manage media communications
KR102525577B1 (ko) 데이터 스트리밍 방법 및 장치
WO2017031692A1 (zh) 视频下载方法、装置及系统
US20190141374A1 (en) Method and system for low latency high frame rate streaming
JP2004088746A (ja) ストリーミング・メディアの輻輳制御メカニズム
CN107135411B (zh) 一种调整视频码率的方法及电子设备
JP7265623B2 (ja) コンテンツ適応量子化強度及びビットレートモデリング
US10003626B2 (en) Adaptive real-time transcoding method and streaming server therefor
CN112866746A (zh) 一种多路串流云游戏控制方法、装置、设备及存储介质
JP7265622B2 (ja) 低遅延ビデオ符号化のための効率的な量子化パラメータ予測方法
KR101742258B1 (ko) 웹 기반 가상 데스크탑 프로토콜을 이용한 컨텐츠 제공 방법 및 장치
JP5428702B2 (ja) ストリーム通信システム、サーバ装置及びクライアント装置
CN116391354A (zh) 用于云游戏的内容自适应信噪比引导的两遍次视频编码
TWI509563B (zh) 管理串流參數之圖形伺服器與方法
JP6162596B2 (ja) 品質推定装置、方法及びプログラム
CN114374841A (zh) 视频编码码率控制的优化方法、装置及电子设备
JP2017028622A (ja) 画質制御装置、画質制御方法、画質制御システム及び画質制御用プログラム
US20230031245A1 (en) Encoder changes
KR20110024971A (ko) 율 제어 방법 및 장치와 그를 이용한 영상 부호화 방법 및 장치
WO2021044974A1 (ja) 送信装置、受信装置、送信方法、受信方法及びプログラム
EP4344217A1 (en) Image transmission device and method

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