JP7467613B2 - クラウドゲーム用の方法および装置 - Google Patents

クラウドゲーム用の方法および装置 Download PDF

Info

Publication number
JP7467613B2
JP7467613B2 JP2022517928A JP2022517928A JP7467613B2 JP 7467613 B2 JP7467613 B2 JP 7467613B2 JP 2022517928 A JP2022517928 A JP 2022517928A JP 2022517928 A JP2022517928 A JP 2022517928A JP 7467613 B2 JP7467613 B2 JP 7467613B2
Authority
JP
Japan
Prior art keywords
metadata
image frame
encoding
image
game
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
JP2022517928A
Other languages
English (en)
Other versions
JP2022550288A (ja
Inventor
グイチュン・リ
シアン・リ
シャオジョン・シュ
ビョンドゥ・チェ
シャン・リュウ
Original Assignee
テンセント・アメリカ・エルエルシー
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 テンセント・アメリカ・エルエルシー filed Critical テンセント・アメリカ・エルエルシー
Publication of JP2022550288A publication Critical patent/JP2022550288A/ja
Application granted granted Critical
Publication of JP7467613B2 publication Critical patent/JP7467613B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/167Position within a video image, e.g. region of interest [ROI]
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

[関連出願への相互参照]
この出願は、2021年2月24日に出願された米国特許出願第17/184,082号「クラウドゲーム用の方法および装置」に対する優先権の利益を主張し、それは、2020年3月16日に出願された米国仮特許出願第62/990,204号「クラウドゲームシステムにおけるメタデータによるビデオコーディング方法」に対する優先権の利益を主張する。従来の出願の全開示は、その全体が参照により本明細書に組み込まれる。
[技術分野]
この開示は、クラウドゲームの分野におけるマルチメディア技術に一般的に関連する実施形態を説明する。
本明細書で提供される背景技術の説明は、本開示のコンテキストを全体的に示すことを目的とする。この背景技術部分及び本明細書の各態様において説明された、現在署名されている発明者の作業の程度は、本開示の提出時に先行技術として示されておらず、また、本開示の先行技術として認められていることを明示または暗示していない。
クラウドゲームサービスは、複数のサービスプロバイダから利用できるトレンドオンラインサービスである。クラウドゲームは、ゲームオンデマンドと呼ばれてもよい。クラウドゲームシステムでは、ゲームは、リモートサーバ上で実行され、クラウドベースのゲームと呼ばれる。ユーザは、ユーザデバイスを介して、クラウドベースのゲームをプレイすることができる。ゲームコンテンツは、リモートサーバ上で生成され、ユーザデバイス上でストリーミングされて表示され得る。
本開示の各態様は、クラウドゲーム用の方法および装置を提供する。いくつかの例では、クラウドゲーム用の装置は、処理回路を含む。例えば、処理回路は、ビデオシーケンスと、当該ビデオシーケンスに関連付けられたメタデータとを受信する。ビデオシーケンスは、ゲーム制御情報に応答して生成された一連の画像フレームを含み、メタデータは、ゲーム制御情報に基づいて決定される。処理回路は、メタデータに基づいて、ビデオシーケンスを符号化するための符号化構成を決定することができる。そして、処理回路は、符号化構成に基づいて、ビデオシーケンスをコード化されたビデオビットストリームに符号化する。
一実施形態では、メタデータは、動きベクトルを含み、処理回路は、動きベクトルに基づいて、ビデオシーケンスの画像フレーム内のブロックを符号化するための動き検索の開始ポイントを決定する。
別の実施形態では、メタデータは、ビデオシーケンスの画像フレームのシーン変化特性、照明変化特性、点滅特性、パンニング特性、ズーミング特性、フェーディング特性、およびオーバーレイ特性のうちの少なくとも1つの画像特性を示す。処理回路は、画像特性に基づいて、画像フレームを符号化するための符号化構成を決定することができる。
別の実施形態では、メタデータは、画像フレームにおける境界ボックスを示す。処理回路は、境界ボックスに基づいて、現在の画像フレームの前の画像フレームに対する前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアのための前の画像フレームにおける参照エリアを決定することができ、前の画像フレームにおける参照エリアに基づいて、現在の画像フレームにおける境界ボックスによってカバーされていないエリアを符号化する。
別の実施形態では、メタデータは、第1画像フレームから第2画像フレームへのモデル変換を示す。処理回路は、モデル変換に基づいて、符号化構成を決定することができ、符号化構成に基づいて、第2画像フレームにおけるブロックを、第1画像フレームにおける参照ブロックに基づいて符号化することができる。
別の実施形態では、メタデータは、後続の画像フレームにおける現在の画像フレームのオブジェクトの存在を示す。処理回路は、メタデータに基づいて、バッファ構成を決定する。
別の実施形態では、メタデータは、画像フレームのノイズレベルを示す。処理回路は、ノイズレベルに基づいて、画像フレームを前処理/後処理することができる。
別の実施形態では、メタデータは、画像フレームにおける関心のある領域を示す。処理回路は、関心のある領域外のブロックを符号化するために使用される第2符号化構成よりも高品質を有する第1符号化構成を使用して、関心のある領域を符号化する。
別の実施形態では、メタデータは、画像フレームの領域におけるグラフィックオーバーレイを示す。処理回路は、グラフィックオーバーレイに基づいて、当該領域を符号化するための符号化構成を決定する。
別の実施形態では、メタデータは、オーバーレイメッセージ用の画像フレームにおけるメッセージボックスを示す。処理回路は、コード化されたビデオビットストリームの特定のネットワーク抽象化層ユニット(NALU)に、オーバーレイメッセージの情報を含ませる。
本開示の各態様は、また、命令が記憶されている不揮発性コンピュータ読み取り可能な記憶媒体を提供し、前記命令がビデオ処理のためのコンピュータによって実行されるとき、コンピュータにクラウドゲーム用の方法を実行させる。
開示された主題の更なる特徴、性質、および様々な利点は、以下の詳細な説明および添付図面からより明らかになり、ここで、
本開示の一実施形態によるクラウドゲームシステムのブロック図を示す。 本開示のいくつかの実施形態によるクラウドゲームシナリオを示す図である。 本開示のいくつかの実施形態によるクラウドゲームシステムのブロック図を示す。 本開示の一実施形態によるビデオエンコーダのブロック図を示す。 本開示のいくつかの実施形態によるビデオデコーダの図を示す。 本開示の一実施形態によるプロセス例を概説するフローチャートを示す。 本開示の一実施形態による他のプロセス例を概説するフローチャートを示す。 一実施形態によるコンピュータシステムの概略図である。
本開示の各態様は、クラウドゲームの分野におけるメタデータ支援ビデオコーディング(符号化/復号)設計のためのシステム、デバイスおよび方法を提供する。
図1は、本開示の実施形態によるクラウドゲームシステム(100)のブロック図を示す。前記クラウドゲームシステム(100)は、ネットワーク(150)によって接続されたサーバシステム(101)とクライアントシステム(102)とを含む。サーバシステム(101)は、互いに結合された1つまたは複数のサーバ(110)を含む。例えば、サーバシステム(101)は、データセンタ(複数)、サーバファーム(複数)などを含み得る。サーバシステム(101)は、ゲームコンテンツをレンダリングし、ゲームコンテンツをビットストリームに圧縮することができる。ビットストリームは、ネットワーク(150)によってクライアントシステム(102)に配信され得る。クライアントシステム(102)は、それぞれゲームユーザ(プレーヤとも呼ばれる)とインタラクションを行うことができる1つまたは複数のクライアントデバイス(160)を含む。例えば、クライアントデバイス(160)は、ゲームユーザからユーザ制御情報を受信することができ、例えばビデオ出力、オーディオ出力などのような出力をゲームユーザに提供することができる。
サーバ(110)は、任意の適切な技術を使用してそれぞれ実現され得る。図1において、サーバ(110)は、互いに結合された処理回路(120)、メモリ(115)およびインターフェース回路(111)を含む。メモリ(115)は、処理前、処理中、および処理後に、ソフトウェア命令や様々なデータ(例えば、メディアデータ、構成情報、制御情報など)を記憶するように構成される。
処理回路(120)は、例えば1つまたは複数の中央処理ユニット(CPU)、1つまたは複数のグラフィック処理ユニット(GPU)、特定用途向け集積回路などのような任意の適切な処理回路を含み得る。図1の例では、処理回路(120)は、ゲームエンジン(125)を含むように構成され得る。例えば、1つまたは複数のCPUおよび/またはGPUは、メモリ(115)に記憶されているゲームソフトウェアを実行することで、ゲームエンジン(125)として機能することができる。さらに、処理回路(120)は、例えばビデオエンコーダ、オーディオエンコーダなどのようなエンコーダを含むように構成され得る。図1の例では、処理回路(120)は、ビデオエンコーダ(130)を含むように構成される。例えば、1つまたは複数のCPUおよび/またはGPUは、ビデオエンコーダ(130)として機能するように構成され得る。別の例では、ビデオエンコーダ(130)は、特定用途向け集積回路を使用して実現され得る。
インターフェース回路(111)は、サーバ(110)をネットワーク(150)とインターフェースすることができる。インターフェース回路(111)は、ネットワーク(150)から信号を受信する受信部と、ネットワーク(150)に信号を送信する送信部とを含み得る。例えば、インターフェース回路(111)は、ネットワーク(150)を介して、例えばコード化されたビデオビットストリーム、コード化されたオーディオビットストリームなどのような符号化されたメディアデータを搬送する信号を、クライアントデバイス(160)などのような他のデバイスに送信することができる。インターフェース回路(111)は、ネットワーク(150)を介して、ユーザ入力などのようなユーザ情報を搬送する信号を、クライアントデバイス(160)から受信することができる。
ネットワーク(150)は、例えばイーサネット接続、光ファイバ接続、WiFi接続、セルラーネットワーク接続などのような有線および/または無線接続を介して、サーバシステム(101)およびクライアントシステム(102)に適切に結合される。ネットワーク(150)は、ネットワークサーバデバイス、ストレージデバイス、ネットワークデバイスなどを含み得る。ネットワーク(150)の構成要素は、有線および/または無線接続を介して適切に結合される。
クライアントデバイス(160)は、ユーザとインタラクションを行うように構成される。図1の例では、クライアントデバイス(160)は、例えばインターフェース回路(161)、処理回路(170)、ディスプレイ(165)およびユーザ入力デバイス(169)などのような様々な構成要素を含み、これらが互いに結合されている。
インターフェース回路(161)は、クライアントデバイス(160)をネットワーク(150)とインターフェースすることができる。インターフェース回路(161)は、ネットワーク(150)から信号を受信する受信部と、ネットワーク(150)に信号を送信する送信部とを含み得る。例えば、インターフェース回路(161)は、サーバ(110)によって送信された、例えばコード化されたビデオビットストリームを搬送する信号、オーディオビットストリームを搬送する信号などのような、データを搬送する信号を、ネットワーク(150)から受信することができ、またユーザ入力を搬送する信号などのような信号を、ネットワーク(150)を介してサーバ(110)などのような他のデバイスに送信することができる。
ユーザ入力デバイス(169)は、ユーザ入力を受信することができ、ユーザ入力は、サーバシステム(101)に適切に送信され得る。一例では、ユーザ入力は、処理回路(170)に提供され得ており、処理回路(170)は、ユーザ入力を例えばメッセージ、パケットなどのような適切な形式に変換して、インターフェース回路(161)を介して、このユーザ入力を送信することができる。ユーザ入力は、ネットワーク(150)を介してサーバシステム(101)に送信され得る。ユーザ入力デバイス(169)は、例えばジョイスティック、動きセンサー、マイクロホン、キーボード、マウス、タッチスクリーン、タッチパッドなどのような任意の適切なユーザ入力デバイスであり得る。
処理回路(170)は、例えばCPU、GPU、特定用途向け集積回路などのような適切な処理回路を含み得る。処理回路(170)は、例えばビデオデコーダ、オーディオデコーダなどのようなメディアデコーダ(複数)を含むように構成され得る。例えば、処理回路(170)は、ビデオデコーダ(180)を含むように構成される。一例では、GPUは、ビデオデコーダ(180)として構成される。別の例では、CPUは、ソフトウェア命令を実行することで、ビデオデコーダ(180)として機能することができる。ビデオデコーダ(180)は、コード化されたビデオビットストリームにおける情報を復号し、ビデオシーケンス(例えば、一連の画像フレーム)を再構築することができる。
さらに、処理回路(170)は、ゲームクライアント(175)を含むように構成され得る。例えば、CPUは、クラウドゲームクライアントソフトウェアを実行することで、ゲームクライアント(175)として機能することができる。ゲームクライアント(175)は、ユーザ入力(171)を受信し、ユーザ入力(171)を表すデータをサーバ(110)におけるゲームエンジン(125)に送信することができる。
ディスプレイ(165)は、例えばテレビ、スマートフォン、ウェアラブルディスプレイ、ヘッドマウントデバイスなどのような任意の適切なディスプレイデバイスであり得る。一例では、ディスプレイ(165)は、ビデオシーケンスを受信し、このビデオシーケンスを適切に表示することができる。
いくつかの例では、ゲームをプレイするために、ゲームエンジン(125)は、例えばビデオシーケンス、オーディオなどのような、ゲーム用のゲームコンテンツを生成することができ、このゲームコンテンツは、ゲームの様々なゲーム環境を示す。一例では、ゲームエンジン(125)は、ビデオコンテンツ(122)(例えば、ビデオシーケンス)を生成し、ビデオコンテンツ(122)をビデオエンコーダ(130)に提供することができる。ビデオエンコーダ(130)は、ビデオコンテンツ(122)をコード化されたビデオビットストリーム(123)に圧縮することができ、このコード化されたビデオビットストリーム(123)は、インターフェース回路(111)によって送信され、ネットワーク(150)を介してクライアントデバイス(160)にストリーミングされ得る。クライアントデバイス(160)では、インターフェース回路(161)は、コード化されたビデオビットストリームを搬送する信号を受信し、このコード化されたビデオビットストリーム(172)をビデオデコーダ(180)に提供することができる。ビデオデコーダ(180)は、コード化されたビデオビットストリーム(172)からビデオシーケンスを再構築することができ、この再構築されたビデオシーケンス(173)は、ゲーム環境をゲームユーザに提供するために、ディスプレイ(165)に提供され得る。
ゲームユーザは、ゲームクライアント(175)とインタラクションを行うことができる。例えば、ゲームクライアント(175)は、図1に示すユーザ入力(171)などのようなユーザ制御情報(いくつかの例ではインタラクションデータとも呼ばれる)を受信することができる。例えばコマンド、位置情報、深さ情報、動き情報などのようなユーザ制御情報(ユーザ制御情報は、サーバ(110)上で(121)によって表示される)は、インターフェース回路(161)、ネットワーク(150)、およびインターフェース回路(111)を介して、ゲームクライアント(175)からゲームエンジン(125)に送信され得る。そして、ゲームエンジン(125)は、受信したユーザ制御情報(121)に応答して、動作を実行し、更新されたゲームコンテンツを生成することができる。更新されたゲームコンテンツは、圧縮されてサーバ(110)からクライアントデバイス(160)に提供され得る。ゲームが続くにつれて、ゲームプロセスが繰り返される。
いくつかの実施形態では、ゲームエンジン(125)は、YUVフォーマットでの一連の画像フレームなどのような、生のビデオコンテンツ(122)の形でのゲームビデオコンテンツを生成することができる。生のビデオコンテンツ(122)は、ビデオエンコーダ(130)に提供され得る。ビデオエンコーダ(130)は、生のビデオコンテンツを圧縮し、例えばH.264、H.265、AV1、AVS2などのような、特定のビデオコーディングフォーマットまたは規格に従って、コード化されたビデオビットストリーム(123)を生成する。このコード化されたビデオビットストリーム(123)は、クライアントデバイス(160)に送信され、ビデオエンコーダ(130)のような適合フォーマットまたは標準を使用して、表示のためにクライアント側のビデオデコーダによって復号され得る。
クラウドゲームシステム(100)は、関連例におけるゲームコンソールまたは他のローカルデバイス上ではなく、リモートサーバ上でゲームソフトウェアを実行することによってビデオゲームをプレイする手段を提供する。例えば、ゲーム会社は、ゲームストリーミングのための専用サーバであるサーバ(110)を所有し、また、サーバ(110)は、消費者側ハードウェア(例えば、クライアントデバイス)よりも著しく強力であり得る。さらに、いくつかの例では、ストリーミングサービスは、複数のプレイヤー(ユーザ)によって同じゲームがプレイされる複数のクライアントデバイス(160)に、同様のデータを送信することができる。したがって、複数のプレイヤーは、コストがプレイヤーの数に比例する関連例で予想されるものよりも、運営コストの総額(ゲーム会社に対して)より少ない運営コストで同じゲームをプレイすることができる。
図2は、本開示のいくつかの実施形態によるクラウドゲームシナリオを示す図(200)を示す。図2の例では、サーバ(210)は、ゲーム用のゲームサービスを提供するクラウドゲームサーバであり、クライアントデバイス260A~260Cは、それぞれゲームのプレイヤーA~Cとインタラクションを行うクライアントデバイスである。サーバ(210)は図1におけるサーバ(110)と同様に構成され得る。クライアントデバイス260A~260Cは、それぞれ、図1におけるクライアントデバイス(160)と同様に構成され得る。
図2の例では、サーバ(210)におけるゲームエンジン(図示せず)は、ゲーム環境のためのゲームコンテンツをレンダリングし、ネットワーク(図示せず)を介して、クライアントデバイス(260A)~(260C)にゲームコンテンツを提供する。一度に、図2における(201)として示されるように、クライアントデバイス(260B)は、プレイヤーBからのユーザ入力などのようなユーザ制御情報を受信する。図2における(202)として示されるように、クライアントデバイス260Bは、ユーザ入力を表すデータを、ネットワークを介してサーバ(210)に送信する。図2における(203)として示されるように、ユーザ入力を表すデータに応答して、サーバ(210)におけるゲームエンジンは、動作を実行して、ゲーム環境を更新する。そして、図2における(204)として示されるように、サーバ(210)は、更新されたゲームコンテンツをクライアントデバイス(260A)~(260C)に送信する。クライアント側では、図2における(205)として示されるように、各クライアントデバイス(260A)~(260C)は、更新されたゲームコンテンツに応答して、ゲーム環境をリフレッシュすることができ、例えば、ディスプレイをリフレッシュすることができる。
関連例では、クライアントデバイスは、ほとんどのゲームをプレイするために必要とされるゲームコンソールまたはパソコンであり得て、また、ゲームのための大きな前払いコストを構成し得る。これらのゲームコンソールやパソコンの価格は、数百ドルから数千ドルまでのコストに達する可能性がある。ローカルマシン(ゲームコンソールやパソコン)も経時的に摩耗し、低下したパフォーマンスを有する。技術の発展に伴い、クラウゲームサーバは、消費者にとって追加のコストなしで、継続的にアップグレードされている。
本開示のいくつかの態様によれば、クラウドゲームは、良好なユーザエクスペリエンスを達成するために、高いかつ信頼性のある帯域幅要求と、双方向通信に必要とされる低い遅延とを必要とし得る。いくつかの例では、クラウドゲームは、高いかつ信頼性のある帯域幅を得るために、高速および安定したインターネット接続と、ゲームサーバに近接していることとを必要とする場合がある。例えば、クラウドゲーム用のストリーミングサービスは、10Mbpsから35Mbpsの間の帯域幅を必要とする場合がある。本開示は、帯域幅要求を低減し、また視覚的品質を向上させるために、コーディング速度およびコーディング効率を改善するための技術を提供する。
いくつかの例では、高い遅延は、ゲーム体験にとって不利になることがある。遅延は、多くの要因によって寄与されることがあり、ストリーミングのためのビデオ符号化は、これらの要因の1つである。本開示は、コーディング効率を維持しながら符号化時間を短縮するために技術をも提供し、したがってクラウドゲーム体験を改善する。
本開示の各態様は、クラウドゲームシステムにおけるメタデータ支援ビデオ符号化設計のための技術を提供する。いくつかの例では、ビデオコンテンツ用のメタデータ(例えば、生のビデオ)は、例えばカメラ情報、色情報、照明情報、動き情報、視聴情報、ユーザ制御などのようなビデオコンテンツに関する情報を提供するデータを指す。生のビデオと共にメタデータは、ゲームエンジン(例えば、ゲームエンジン(125))によってレンダリングされ得て、符号化プロセスを支援するために、ゲームエンジンによってビデオエンコーダ(例えば、ビデオエンコーダ(130))に入力として提供され得る。いくつかの実施形態では、ビデオエンコーダ(例えば、ビデオエンコーダ(130))は、メタデータの助けを借りて、生のビデオをコード化されたビデオビットストリームに符号化することができる。さらに、いくつかの実施形態では、メタデータは、コード化されたビデオビットストリームとともにビデオデコーダ(例えば、ビデオデコーダ(180))に提供され得る。ビデオデコーダ(例えば、ビデオデコーダ(180))は、メタデータの助けを借りて、コード化されたビデオビットストリームを復号することができる。
図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)のように同様に構成される。これらの構成要素の説明は、以上で提供されており、明確にするためにここでは省略されている。
さらに、図3の例では、ビデオエンコーダ(330)は、メタデータの助けを借りてビデオコンテンツをビデオビットストリームに符号化するように構成される。例えば、ビデオエンコーダ(330)は、メタデータベースのコントローラであるコントローラ(331)を含む。ゲームエンジン(325)は、メタデータ(326)とともに生のビデオコンテンツ(322)をビデオエンコーダ(330)に提供する。メタデータ(326)は、生のビデオコンテンツ(322)に関連付けられた情報、例えばカメラ情報、色情報、照明情報、動き情報、視聴情報、ユーザ制御などを含む。コントローラ(331)は、メタデータ(326)を受信し、メタデータ(326)に基づいてビデオエンコーダ(330)の構成を制御することで、生のビデオコンテンツ(322)を符号化し、コード化されたビデオビットストリーム(323)を生成する。メタデータの助けを借りて、符号化の速度および効率を向上させ、また、帯域幅の要求が低減され、遅延が短縮され得る。
いくつかの実施形態では、コード化されたビデオビットストリーム(323)は、例えばメタデータ出力(327)によって示されるようなメタデータとともに出力され得る。
さらに、図3の例では、ビデオデコーダ(380)は、メタデータの助けを借りてビデオビットストリームを復号するように構成される。例えば、ビデオデコーダ(380)は、メタデータベースのコントローラであるコントローラ(381)を含む。コントローラ(381)は、コード化されたビデオビットストリーム(372)とともにメタデータ(377)を受信する。一例では、コード化されたビデオビットストリーム(372)は、ビデオエンコーダ(330)によって生成されたコード化されたビデオビットストリーム(323)であり得、メタデータ(377)は、メタデータ出力(327)であり得る。コントローラ(381)は、コード化されたビデオビットストリーム(372)を復号するためにメタデータ(377)に基づいてビデオデコーダ(380)の構成を制御し、再構築されたビデオシーケンス(373)を生成することができる。
いくつかの実施形態では、ゲームエンジン(325)からビデオエンコーダ(330)へのメタデータ(326)は、コーディング効率を向上させ、および/または符号化プロセスの複雑さを低減するのを助けることができる、ゲームシーン情報(例えば、カメラ情報、色情報、照明情報、動き情報、視聴情報)、ユーザ制御情報などのような、任意の適切なゲーム制御情報を含み得る。
具体的には、いくつかの例では、例えばジョイスティック、キーパッド、マウス、および/またはキーボードなどのようなユーザ入力デバイス(369)からのユーザ入力(371)(ユーザ制御情報としても呼ばれる)は、クライアントデバイス(360)からサーバ(310)に送信され得る。一例では、ゲームエンジン(325)は、クライアントデバイス(360)においてユーザ入力(371)に対応するユーザ制御情報(321)を受信する。ゲームエンジン(325)は、ユーザ制御情報(321)に基づいて、ゲームシーンコンテンツ(例えば、ビデオコンテンツ、オーディオコンテンツなど)を生成することができる。いくつかの実施形態では、メタデータ(326)は、ゲームシーン情報およびユーザ制御情報(321)に基づいて決定され得る。例えば、ゲームシーンのグローバル動きおよび/またはオブジェクトのローカル動きは、ゲームシーン情報およびユーザ制御情報(321)に基づいて識別され得る。一例では、ユーザ制御情報(321)は、視線方向の変化を含み、これにより、ゲームシーンのグローバル動きは、視線方向の変化に基づいて識別され得る。別の例では、ユーザ制御情報(321)は、オブジェクトの動きを含み、これにより、オブジェクトのローカル動きは識別され得る。一例では、メタデータ(326)は、ゲームシーンのグローバル動き、オブジェクトのローカル動き、およびオブジェクトの境界ボックスを含み得る。メタデータ(326)は、ビデオエンコーダ(330)への追加の入力データとしてビデオ符号化プロセスを助けることができる。メタデータ(326)は、ゲームエンジン(325)によってレンダリングされた生のビデオコンテンツ(322)とともにビデオエンコーダ(330)に供給され得る。ビデオエンコーダ(330)は、メタデータ(326)における情報を利用して、生のビデオコンテンツ(322)を利用して動き推定/補償処理を効率的に実行することができる。
いくつかの実施形態では、メタデータ(326)は、ビデオエンコーダ(330)のパラメータなどのような、構成可能なエンコーダ設定として、ビデオエンコーダ(330)に供給され得る。一例では、メタデータ(326)は、画像または画像の領域の、グローバル動きモデル(例えば、アフィンモデル、透視(perspective)モデル、回転モデル、ズーミングモデルなど)を生成するために使用され得る。別の例では、メタデータ(326)は、ビデオエンコーダ(330)における符号化ツールを選択するために使用され得る。しかしながら、一例では、そのようなパラメータのいずれかが利用できない場合、デフォルト値のセットは、ビデオエンコーダ(330)によって仮定され得る。
いくつかの実施形態では、ビデオエンコーダ(330)に供給されたメタデータ(326)は処理され、メタデータ(327)によって示されて、コード化されたビデオデータストリーム(323)とともに送信され得る。メタデータ(327)は、ビデオデコーダがコード化されたビデオビットストリーム(323)を復号するのを助けることができる。例えば、タイミング情報、オーバーレイメッセージ、オーバーレイグラフィックス、境界ボックスなどのような、コード化されたビデオビットストリーム(323)の復号および表示を支援することができるメタデータ(327)は、補足拡張情報(SEI)メッセージとして送信され得る。SEIメッセージは、コード化されたビデオビットストリーム内で、または別個に伝達され得る。
いくつかの実施形態では、クライアントデバイス(360)は、メタデータ(377)とともにコード化されたビデオビットストリーム(372)を受信する。メタデータ(377)は、コード化されたビデオビットストリーム(372)において搬送されたビデオシーケンスの復号または後処理を支援するために、クライアントデバイス(360)によって使用され得る。例えば、メタデータ(377)は、コード化されたビデオビットストリーム(372)の復号および表示を支援することができるタイミング情報、オーバーレイメッセージ、オーバーレイグラフィックス、境界ボックス情報を含み得る。
いくつかの実施形態では、メタデータは、追加のコーデックを使用してコード化された(符号化/復号)され得る。いくつかの例では、ゲームエンジン(325)は、分離されたコンテンツ、ビデオ、オーディオ、オーバーレイメッセージ、オーバーレイグラフィックスなどを出力することができる。一例では、オーバーレイメッセージ(またはオーバーレイグラフィックス)は、ビデオコンテンツのためのメタデータとして見なされる。オーバーレイメッセージ(またはオーバーレイグラフィックス)は、ビデオエンコーダ330からの別個のエンコーダを使用して、別個のビットストリーム(第2ビットストリーム)に圧縮され得る。そして、一例では、ビデオコンテンツのためのコード化されたビデオビットストリームと、オーバーレイメッセージ(またはオーバーレイグラフィックス)のための第2ビットストリームとは、単一のビットストリームに多重化され得る。
本開示のいくつかの態様によれば、ビデオ符号化プロセスまたはビデオ復号プロセスを支援することができる様々な情報は、メタデータとして、ゲームビデオ入力(例えば、ビデオ符号化プロセスのためのゲームビデオ入力としてのビデオシーケンス、ビデオ復号プロセスのためのゲームビデオ入力としてのコード化されたビデオビットストリーム)と共に送信され得る。
いくつかの例では、メタデータは、ゲームキャラクタの位置(例えば、ゲームのメインキャラクタ)、ゲームシーンの関心のある領域(ROI:region of interest)などのような、リージョナルゲームコンテンツの位置情報を含み得る。
いくつかの例では、メタデータは、例えばメインカメラの位置情報、カメラの視野角、および様々なカメラパラメータ(例えば、焦点距離、メインキャラクタまでの距離、視野角、歪みパラメータ、ビネットパラメータなど)などのようなカメラ情報を含み得る。
いくつかの例では、メタデータは、例えばシーンのメインカラー、シーンの明るさ、現在の画像のノイズレベル、シーン変化インジケータ、フェーディングインジケータ、および/またはフェーディングパラメータ(例えば、重み付けられた予測のための重み付け)などのような、ゲームシーンの系統的情報を含み得る。
いくつかの例では、メタデータは、リージョナルおよびグローバルの動き情報を含み得る。一例では、メタデータは、各画素レベルで、または予め定義されたブロックサイズを有するブロックレベルで、前の画像のうちの1つまたは複数に対する並進動きベクトルを含む。
いくつかの例では、メタデータは、グローバル動きモデルまたはリージョナル動きモデルを含み得る。一例では、メタデータは、画像のためのパンニングモデル、ズーミングモデル、回転モデル、透視動きモデル、アフィン動きモデルなどのようなグローバル動きモデルを含み得る。別の例では、メタデータは、パンニングモデル、ズーミングモデル、回転モデル、透視動きモデル、アフィン動きモデルなどのようなリージョナルモデルを含むことができる。
いくつかの例では、メタデータは、キーストークス、マウスの動き、マウスボタンのクリック、動きセンサーの入力などのような、ユーザ入力情報を含み得る。
様々な実施形態では、メタデータは、例えばゲームエンジン(325)からサーバ側上のビデオエンコーダ(330)へ提供され、これにより、様々な情報が含まれる。当該様々な情報は、符号化プロセスの複雑さを低減すること、またはビットレートの低減および/または歪みの低減のような、コーディング効率を向上させることのために、符号化プロセスを支援することができる。
一実施形態では、ゲームエンジン(325)は、画素レベルまたはブロックレベルで推奨された動きベクトル(複数)を含むメタデータを提供することができる。推奨された動きベクトル(複数)は、ビデオエンコーダ(330)による動き推定を助けるために使用され、これにより、動きベクトル検索動作を減少させ、動き推定精度を向上させることができる。一例では、ゲームエンジン(325)からの推奨された動きベクトルは、ビデオエンコーダ(330)による動き検索アルゴリズムにおける開始ポイントとして使用され得る。いくつかの例では、ゲームエンジン(325)は、ゲームシーンの動き情報およびユーザ入力に応答してビデオコンテンツを生成し、ゲームエンジン(325)によって推奨された動きベクトルは、非常に正確であり得る。これにより、ビデオエンコーダ(330)は、動きベクトル検索のための時間を減らし、正確な動き推定を達成することができる。
別の実施形態では、ゲームエンジン(325)は、例えばシーン変化、照明変化、点滅、パンニング、ズーミング、フェーディング、メッセージオーバーレイなどのような、ビデオコンテンツにおける画像の特徴を識別することができるパラメータを含むメタデータを提供することができる。パラメータの観点から、ビデオエンコーダ(330)は、符号化プロセスを進めるように、適切な構成設定、パラメータ設定、コードツールなどを選択することができ、これにより、圧縮効率を向上させることができる。
別の実施形態では、ゲームエンジン(325)は、境界ボックス情報を含むメタデータを提供することができ、ビデオエンコーダ(330)は、境界ボックス情報を使用して、画像フレームにおけるカバーされていないエリアとビデオシーケンスにおける貴重な画像フレームとの関係を決定することができ、その関係を使用することで、不要な計算を回避し、処理速度を向上させることができる。一例では、境界ボックスにおけるキャラクタは、画像の残り部分から異なる動きを有することがある。ビデオエンコーダ(330)は、境界ボックス情報を使用して、キャラクタおよび画像の残りの部分に別個の動きモデルを適用することができる。別の例では、ビデオエンコーダ(330)は、境界ボックス情報を使用して、例えば現在の画像内の境界ボックスによってカバーされていない特定のエリア(カバーされていないエリアとも呼ばれる)を前の画像から識別することができ(例えば、特定のエリアは、前の画像における境界ボックスによってカバーされている)、また、特定の領域を露出した前の画像(複数)を識別することができる(例えば、境界ボックスが特定の領域をカバーする前に)。このような情報によれば、ビデオエンコーダ(330)は、それらの領域に対して選択される可能性が低いコーディングモードにおける不必要な計算を回避することができる。例えば、そのような情報に基づいて、ビデオエンコーダ(330)は、他の予測ツールを試みずに、識別された前の画像(複数)に基づいて、現在の画像における特定の領域を予測するために、時間予測を直接に選択することができる。
別の実施形態では、ゲームエンジン(325)は、動きブラー効果の変化、レンズブラー効果の変化、レンズ歪みの変化、レンズビネットの変化などのような、前の画像(複数)に対する画像領域におけるモデル変換(例えば、異なる撮像特性を有する同一のオブジェクト)を示すメタデータを提供することができる。ビデオエンコーダ(330)は、メタデータによって示されるモデル変換情報に基づいて、特定の領域で使用されるコーディングツール、コーディング方法、コーディングパラメータなどを決定することができる。例えば、メタデータが、前の画像フレームにおける参照領域に対する現在の画像フレームの領域におけるレンズブラーを示す場合、ビデオエンコーダ(330)は、前の画像フレームにおける参照領域およびぼかしブラーフィルタに基づいて、現在の画像フレームの領域を符号化することができる。
別の実施形態では、ゲームエンジン(325)は、後続の画像(複数)において画像(現在の画像)または現在の画像におけるオブジェクトの存在を示すメタデータを提供する。メタデータに基づいて、ビデオエンコーダ(330)は、後続の画像(複数)のための参照として使用されるべき現在の画像の特定のコンテンツ/エリアをバッファリングするなどのバッファ構成を決定することができる。一例では、メタデータは、後続の画像におけるオブジェクトの動きを引き起こすオブジェクトの動きを示す。メタデータに基づいて、ビデオエンコーダ(330)は、オブジェクトを有する現在の画像におけるエリア(オブジェクトを有するエリア)のコンテンツをバッファリングすることができ、バッファリングされたコンテンツは、動き補償において後続の画像(複数)の参照として使用され得る。別の例では、メタデータは、現在の画像および後続の画像に使用されるマップを示す。メタデータに基づいて、ビデオエンコーダ(330)は、後続の画像をコーディングするための参照として、現在の画像におけるマップエリアをバッファリングすることができる。別の例では、メタデータは、現在の画像(または現在の画像の領域)が後続の画像のための背景であることを示す。メタデータに基づいて、ビデオエンコーダ(330)は、現在の画像(または現在の画像の領域)をバッファリングして長期参照とすることができ、それに応じて後続の画像をコードすることができる。例えば、スキップモードは、長期参照を参照できる後続の画像におけるブロックをコード化するために使用され得る。
別の実施形態では、ゲームエンジン(325)は、画像のノイズレベル情報などのノイズ特徴を示すメタデータを提供する。メタデータに基づいて、画像の前処理および/または後処理を行うことができる。一例では、ゲームエンジン(325)は、ノイズの多い画像(ビデオコンテンツにおける)と、ノイズレベルを示すメタデータとをビデオエンコーダ(330)に提供する。ビデオエンコーダ(330)は、ノイズレベルを示すメタデータに基づいて、前処理段階でノイズの多い画像からノイズを除去し(例えば、ノイズを除去するフィルタを適用し)、低ノイズ画像を生成して、低ノイズ画像を符号化することができる。ノイズ除去の強度/閾値は、メタデータにおけるノイズレベル情報によって決定され得る。一例では、符号化された画像(低ノイズ画像)と、ノイズレベルを示すメタデータとは、クライアントデバイス(360)に送信される。そして、ビデオデコーダ(380)は、低ノイズ画像を再構築し、その後、メタデータにおけるノイズレベル情報に基づいて、後処理段階でノイズを低ノイズ画像に追加することができる。
別の例では、ゲームエンジン(325)は、低ノイズ(またはノイズなし)の画像(ビデオコンテンツにおける)と、ノイズレベルを示すメタデータとをビデオエンコーダ(330)に提供する。そして、ビデオエンコーダ(330)は、低ノイズ画像を符号化する。一例では、符号化された画像(低ノイズ画像)と、ノイズレベルを示すメタデータとは、クライアントデバイス(360)に送信される。その後、ビデオデコーダ(380)は、低ノイズ画像を再構築し、それから、メタデータにおけるノイズレベル情報に基づいて、後処理段階でノイズを低ノイズ画像に追加することができる。いくつかの例では、ビデオエンコーダ(330)は、メタデータにおけるノイズレベル情報に基づいて後処理段階でノイズを追加することができるローカルデコーダを含む。
低ノイズ画像は、高ノイズ画像と比較して、より高いコーディング効率でコード化され得る、ことに留意されたい。
別の実施形態では、ゲームエンジン(325)は、画像における関心のある領域(複数)を示すメタデータを提供する。メタデータに基づいて、ビデオエンコーダ(330)は、よりよい品質制御またはレート制御を達成することができる。一例では、画像における他の領域よりも関心のある領域(複数)を符号化するために、より高いビットレートを割り当てることができる。別の例では、帯域幅が、より高いビットレートで画像全体をコーディングするのに十分ではない場合、関心のある領域のためのより高いビットレートを維持するために、関心のある領域外のエリアをコーディングするためのビットレートを最初に低減することができる。
別の実施形態では、ゲームエンジン(325)は、ロゴ、バナー、レーダイメージ、地図、メッセージボックスなどのような画像内のグラフィックオーバーレイの領域(複数)を示すメタデータを提供する。メタデータに基づいて、ビデオエンコーダ(330)は、画像における他の領域用のためのコーディングツールとは異なり得る、グラフィックオーバーレイ(複数)の領域のための適切なコーディングツールを適用することができる。一例では、ロゴは、コーディング効率を向上させるために、スキップモードを使用してコード化され得る。グラフィックオーバーレイの領域のための適切なコーディングツールを使用することは、誤った動き情報、アーティファクト/歪みなどを回避することができる。
いくつかの実施形態では、ゲームエンジン(325)は、オーバーレイメッセージのためのメッセージボックスを示すメタデータを提供する。オーバーレイメッセージは、オーバーレイメッセージのために特別に使用される別個のネットワーク抽象化層ユニット(NALU:network abstraction layer unit)として、圧縮されてビデオビットストリームに含まれ得る。いくつかの例では、NALUは、実際にはパケットである。ビデオビットストリームは、NALU(パケット)を介して編成されて伝送され得、NALUのうちの1つは、オーバーレイメッセージのための特別なNALUであり得る。オーバーレイメッセージのためのNALUには、オーバーレイメッセージの境界ボックスのエリア、オーバーレイメッセージの位置、フォント、サイズ、色、テキストのスタイル、オーバーレイテキストコンテンツなどが含まれ得る。一例では、オーバーレイテキストコンテンツは、Unicodeでコード化され得る。一例では、ゲームエンジン(325)は、ビデオコンテンツとは別にオーバーレイメッセージをビデオエンコーダ(330)に提供する。ビデオエンコーダ(330)は、ビデオコンテンツおよびオーバーレイメッセージを別々に符号化することができる。オーバーレイメッセージは、ビデオビットストリームにおける別個のNALUとして圧縮され得る。ビデオビットストリームは、サーバ(310)からクライアントデバイス(360)に伝送され得る。処理回路(370)は、ビデオコンテンツとオーバーレイメッセージをビデオビットストリームから別々に復号し、その後、クローズドキャプションを追加するように、オーバーレイメッセージをビデオコンテンツに追加することができる。
図4は、本開示の一実施形態によるビデオエンコーダ(430)のブロック図を示す。ビデオエンコーダ(430)は、電子デバイス(410)に含まれる。一例では、電子デバイス(410)は、図3の例におけるサーバ(310)のようなサーバデバイスである。電子デバイス(410)は、また、送信機(411)(例えば、伝送回路等)を含む。ビデオエンコーダ(430)は、図3の例におけるビデオエンコーダ(330)の位置に使用され得る。
ビデオエンコーダ(430)は、図3の例におけるゲームエンジン(325)などのビデオソースから生のビデオコンテンツを受信することができる。さらに、ビデオエンコーダ(430)は、カメラ情報、色情報、照明情報、動き情報、視聴情報、オーバーレイ情報(例えば、オーバーレイ情報、オーバーレイグラフィックスなど)、ユーザ制御などのようなメタデータを受信することができ、生のビデオコンテンツに関連付けられた情報を提供する。
いくつかの例では、生のビデオコンテンツは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB、…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)の形態であり得るデジタルビデオサンプルストリームの形である。生のビデオコンテンツは、順次に視聴する際に動きを伝える複数の個別の画像として提供され得る。画像自体は、画素の空間的アレイとして編成され得て、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて1つまたは複数のサンプルを含み得る。
一実施形態によれば、ビデオエンコーダ(430)は、生のビデオコンテンツ(ビデオシーケンスとも呼ばれる)の画像をコード化されたビデオビットストリーム(443)にコード化されて圧縮することができる。図4の例では、ビデオエンコーダ(430)は、コントローラ(431)を含み、コントローラ(431)が、符号化速度および効率を向上させるために、メタデータに基づいてビデオエンコーダ(430)の符号化構成を制御するように構成される。いくつかの実施形態では、コントローラ(431)は、メタデータに基づいて符号化構成を決定することができる。さらに、コントローラ(431)は、他の機能ユニットに機能的に結合され、符号化プロセスのための他の機能ユニットを制御する。この結合は、明確にするために示されていない。なお、コントローラ(431)は、画像スキップ、量子化器、レート歪み最適化技法のラムダ値、画像サイズ、画像グループ(GOP)レイアウト、最大動きベクトル探索範囲、動きモデルなどのような、様々な構成およびパラメータを設定することができる。
一例では、コントローラ(431)は、メタデータに基づいて、アフィンモデル、透視モデル、回転モデル、スケーリングモデルなどのような画像のグローバル動きモデルを決定するように構成され、それに応じて、符号化パラメータを構成することができる。別の例では、コントローラ(431)は、メタデータに基づいて、画像内の境界ボックスにおける領域およびその領域のローカル動きモデルを決定するように構成される。いくつかの実施形態では、コントローラ(431)は、ビデオエンコーダ(430)の他の部分とは異なる別個のエンコーダ(図示せず)を含む。別個のエンコーダは、メタデータを圧縮されたメタデータに圧縮することができる。例えば、メタデータは、オーバーレイメッセージやオーバーレイグラフィックスなどのようなオーバーレイコンテンツを含む。オーバーレイコンテンツは、オーバーレイコンテンツビットストリーム(444)に圧縮され得る。一例では、オーバーレイコンテンツビットストリーム(444)は、例えばマルチプレクサ(412)によって、コード化されたビデオビットストリーム(443)と結合されて単一のビットストリームになることができる。別の例では、コントローラ431は、コード化されたビデオビットストリーム(443)に関連付けられたSEIメッセージにメタデータを含むことができる。コントローラ(431)は、特定のシステム設計のために最適化されたビデオエンコーダ(430)に関連する他の適切な機能を有するように構成され得る。
いくつかの実施形態では、ビデオエンコーダ(430)は、符号化ループで動作するように構成される。過度に簡単化された説明として、一例では、符号化ループは、ソースコーダ(432)(例えば、コード化される入力画像と、参照画像とに基づいて、シンボルストリームなどのようなシンボルを作成することを担当する)と、ビデオエンコーダ(430)に埋め込まれた(ローカル)デコーダ(434)とを含むことができる。デコーダ(434)は、(リモート)デコーダがサンプルデータを作成すると同様の方法でシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルとコード化されたビデオビットストリームとの間の任意の圧縮が無損失であるからである)。再構築されたサンプルストリーム(サンプルデータ)は、参照画像メモリ(435)に入力される。シンボルストリームの復号により、デコーダの位置(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像メモリ(435)のコンテンツは、ローカルデコーダとリモートデコーダの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。
「ローカル」デコーダ(434)の動作は、既に図5に関連して以上で詳細に説明された「リモート」デコーダの動作と同じであり得る。動作中に、いくつかの実施形態では、ソースコーダ(432)は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照画像」として指定された1つ以上の以前にコード化された画像を参照して、入力画像を予測的に符号化する。このようにして、コーディングエンジン(433)は、入力画像の画素ブロックと、入力画像に対する予測参照として選択されることができる参照画像の画素ブロックとの間の差分を符号化する。いくつかの例では、ソースコーダ(432)は、コントローラ(431)から制御信号を受信することができる。制御信号は、ビデオシーケンスのメタデータに基づいて生成され、動き補償された予測符号化を高速で実行するようにソースコーダ(432)を制御することができる。
ローカルビデオデコーダ(434)は、ソースコーダ(432)によって生成されたシンボルに基づいて、参照画像として指定されることができる画像のコード化されたビデオデータを復号することができる。コーディングエンジン(433)の動作は、有利には損失性プロセスであってもよい。コード化されたビデオデータがビデオデコーダ(図5を参照して説明されたビデオデコーダなどのような)で復号された場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(434)は、参照画像に対してビデオデコーダによって実行されることができる復号プロセスをコピーして、再構築された参照画像を参照画像キャッシュ(435)に記憶することができる。このようにして、ビデオエンコーダ(430)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照画像と共通のコンテンツを有する再構築された参照画像のコピーを、ローカルに記憶することができる。
予測器(436)は、コーディングエンジン(433)に対して予測検索を実行することができる。すなわち、コード化される新しい画像について、予測器(436)は、サンプルデータ(候補参照画素ブロックとして)のために参照画像メモリ(435)を検索することができる。いくつかの例では、予測器(436)は、コントローラ(431)から制御信号を受信する。制御信号は、メタデータ、カメラ情報、色情報、照明情報、動き情報、ビュー情報、ユーザ制御、ブロック形状などに基づいて生成され得る。制御信号は、新しい画像のための適切な予測参照の予測検索用の時間を短縮するように予測器(436)を制御することができる。一例では、制御信号は、参照(例えば、参照画像、参照ブロックなど)を示すことができる。別の例では、制御信号は、検索のための開始ポイントを示すことができる。予測器(436)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(436)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(435)に記憶された複数の参照画像から引き出された予測参照を有することができる。
コントローラ(431)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(432)の符号化動作を管理することもできる。
上述のすべての機能ユニットの出力は、エントロピーコーダ(437)でエントロピー符号化されることができる。エントロピーコーダ(437)は、例えばハフマン符号化、可変長符号化、算術符号化などのような技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルをコード化されたビデオシーケンスに変換する。
送信機(411)は、ネットワークを介した送信に備えるために、エントロピーコーダ(437)によって作成された、コード化されたビデオシーケンスをバッファリングすることができる。送信機(411)は、ビデオコーダ(4303)からのコード化されたビデオデータを、送信される他のデータ、例えば、コード化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。いくつかの例では、コード化されたビデオビットストリーム(443)およびオーバーレイコンテンツビットストリーム(444)は、単一のビットストリームに多重化される。 別の例では、メタデータは、コード化されたビデオビットストリーム(443)に関連付けられたSEIメッセージに含まれてもよい。
コントローラ(431)は、ビデオエンコーダ(430)の様々な管理動作を実行することができる。符号化する期間、コントローラ(431)は、各コード化された画像に、特定のコード化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、画像が、I画像、P画像、B画像などの画像タイプの1つとして割り当てられることはが多い。
フレーム内画像(I画像)は、シーケンスにおける任意の他の画像を予測のソースとして使用せずに、符号化および復号されることができるものであってもよい。いくつかのビデオコーデックは、独立したデコーダリフレッシュ(Independent Decoder Refresh、「IDR」)画像などの異なるタイプのフレーム内画像を許容する。
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に、2つ以上の参照画像および関連付けられたメタデータを使用することができる。
ソース画像は、一般的に、複数のサンプルブロック(例えば、それぞれ4×4、8×8、4×8、または16×16個のサンプルのブロック)に空間的に細分され、ブロックごとにコード化されることができる。これらのブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既にコード化された)ブロックを参照して予測的にコード化されることができる。例えば、I画像のブロックは、非予測的にコード化されてもよく、またはそれらが同じ画像の既にコード化されたブロックを参照して予測的にコード化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前にコード化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的にコード化されてもよい。B画像のブロックは、1つまたは2つ前にコード化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的にコード化されてもよい。
ビデオエンコーダ(430)は、所定のビデオコーディング技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオエンコーダ(430)は、入力ビデオシーケンスにおける時間的と空間的冗長性を利用する予測符号化動作を含む、様々な圧縮動作を実行することができる。したがって、コード化されたビデオデータは、使用されるビデオコーディング技術または規格によって指定された構文に従うことができる。
一実施形態では、送信機(411)は、コード化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ(432)は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含むことができる。
ビデオ(またはビデオシーケンス、生のビデオコンテンツ)は、時系列で複数のソース画像(ビデオ画像)として捕捉されることができる。フレーム内画像予測(フレーム内予測と略称されることが多い)は、与えられた画像における空間的相関を利用し、フレーム間画像予測は、画像間の(時間的または他の)相関を利用する。一例では、現在の画像と呼ばれる、符号化/復号化中の特定の画像がブロックに分割される。現在の画像のブロックが、ビデオにおける以前にコード化され、まだバッファリングされている参照画像における参照ブロックに類似している場合、現在の画像のブロックは、動きベクトルと呼ばれるベクトルによってコード化されることができる。動きベクトルは、参照画像における参照ブロックを指し、複数の参照画像が使用されている場合、参照画像を識別する3番目の次元を有することができる。
いくつかの実施形態では、双方向予測技術は、フレーム間画像予測に使用されることができる。双方向予測技術によれば、例えば、復号化の順で両方とも、ビデオにおける現在の画像の前にある(ただし、表示の順でそれぞれ、過去と将来にあるかもしれない)第1参照画像および第2参照画像などのような2つの参照画像が使用される。現在の画像におけるブロックは、第1参照画像における第1参照ブロックを指す第1動きベクトルと、第2参照画像における第2参照ブロックを指す第2動きベクトルによってコード化されることができる。ブロックは、第1参照ブロックおよび第2参照ブロックの組み合わせによって予測されることができる。
さらに、符号化効率を向上させるために、マージモード技術は、フレーム間画像予測で使用されることができる。
本開示のいくつかの実施形態によれば、フレーム間画像予測やフレーム内画像予測などのような予測は、ブロックの単位で実行される。例えば、高効率ビデオコーディング(HEVC:high efficiency video coding)規格に従って、ビデオ画像のシーケンスにおける画像は、圧縮のために符号化ツリーユニット(CTU:coding tree unit)に分割され、画像におけるCTUは同じサイズ、例えば64×64画素、32×32画素、または16×16画素を有する。一般的に、CTUは、1つの輝度CTBと2つの色度CTBである3つの符号化ツリーブロック(CTB)を含む。各CTUは、再帰的に四分木で1つ以上の符号化ユニット(CU)に分割されてもよい。例えば、64×64画素のCTUは、1つの64×64画素のCU、4つの32×32画素のCU、または16つの16×16画素のCUに分割されることができる。一例では、各CUは、フレーム間予測タイプまたはフレーム内予測タイプなどのようなCUに対する予測タイプを決定するために分析される。CUは、時間的および/または空間的予測可能性に応じて、1つ以上の予測ユニット(PU)に分割される。通常、各PUは、輝度予測ブロック(PB)と2つの色度PBを含む。一実施形態では、符号化(エンコーディング/デコーディング)における予測動作は、予測ブロックの単位で実行される。輝度予測ブロックを予測ブロックの例として使用すると、予測ブロックは、8×8画素、16×16画素、8×16画素、16×8画素などのような画素値(例えば、輝度値)の行列を含む。
図5は、本開示のいくつかの実施形態によるデコーダ(580)の図を示す。ビデオデコーダ(580)は、コード化されたビデオシーケンスの一部であるコード化された画像を受信し、コード化された画像を復号して再構築された画像を生成するように構成される。一例では、ビデオデコーダ(580)は、図3のビデオデコーダ(380)の代わりに使用される。
図5の例では、ビデオデコーダ(580)は、図5に示されるように一緒に結合された、エントロピーデコーダ(582)と、フレーム間デコーダ(585)と、残差デコーダ(583)と、再構築モジュール(586)と、フレーム内デコーダ(584)とを含む。
エントロピーデコーダ(582)は、コード化された画像から、コード化された画像を構成する構文要素を表す特定のシンボルを再構築するように構成されることができる。このようなシンボルは、例えば、ブロックをコード化するためのモード(例えば、フレーム内モード、フレーム間モード、双方向予測モード、後者の2つのマージサブモードまたは別のサブモード)と、フレーム内デコーダ(584)またはフレーム間デコーダ(585)による予測に使用される特定のサンプルまたはメタデータをそれぞれ識別できる予測情報(例えば、フレーム内予測情報またはフレーム間予測情報など)と、例えば量子化された変換係数の形式の残差情報などとを含む。一例では、予測モードがフレーム間予測モードまたは双方向予測モードである場合、フレーム間予測情報は、フレーム間デコーダ(585)に提供される。そして、予測タイプがフレーム内予測タイプである場合、フレーム内予測情報は、フレーム内デコーダ(584)に提供される。残差情報は、逆量子化を受けて、残差デコーダ(583)に提供されることができる。メタデータは、コントローラ(581)に提供され得る。
フレーム間デコーダ(585)は、フレーム間予測情報を受信し、フレーム間予測情報に基づいてフレーム間予測結果を生成するように構成される。
フレーム内デコーダ(584)は、フレーム内予測情報を受信し、フレーム内予測情報に基づいてフレーム内予測結果を生成するように構成される。
残差デコーダ(583)は、逆量子化を実行して、逆量子化された変換係数を抽出し、その逆量子化された変換係数を処理して、残差を周波数領域から空間領域に変換するように構成される。残差デコーダ(583)はまた、特定の制御情報(量子化器パラメータ(QP)を含むように)も必要とする場合があり、その情報は、エントロピーデコーダ(582)によって提供される場合がある(これが低ボリューム制御情報のみであるため、データ経路は図示されていない)。
再構築モジュール(586)は、空間領域において、残差デコーダ(583)による出力としての残差と、(場合によっては、フレーム間予測モジュールまたはフレーム内予測モジュールによる出力としての)予測結果とを組み合わせて、再構築されたブロックを形成するように構成され、再構築されたブロックは、再構築された画像の一部とすることができ、その後、再構築された画像は、再構築されたビデオの一部とすることができる。それは、視覚的品質を改善するために、デブロッキング動作などのような他の適切な動作を実行することができる、ということに留意されたい。再構築された画像は、例えばバッファ(587)内にバッファリングされ、バッファ(587)は、フレーム間デコーダ(585)に参照画像を提供することができる。
いくつかの実施形態では、コントローラ(581)は、メタデータを受信し、メタデータに基づいてデコーダ(580)の復号パラメータを構成することができる。いくつかの例では、コントローラ(581)は、メタデータに基づいて予測を制御するためにフレーム内デコーダ(584)および/またはフレーム間デコーダ(585)に制御信号を提供することができる。別の例では、コントローラ(581)は、メタデータからオーバーレイコンテンツを復号し、オーバーレイコンテンツを再構築モジュール(586)に提供することができる。したがって、再構築モジュール(586)は、オーバーレイコンテンツを用いて画像を再構築することができる。
図6は、本開示の一実施形態によるプロセス(600)を概説するフローチャートを示す。プロセス(600)は、クラウドゲームシステム(100)、クラウドゲームシステム(300)などのクラウドゲームシステムにおけるビデオシーケンスを符号化するために使用され得る。様々な実施形態では、プロセス(600)は、サーバ(110)における処理回路(120)、サーバ(310)における処理回路(320)、ビデオエンコーダ(130)、ビデオエンコーダ(330)、ビデオエンコーダ(430)などの処理回路によって実行される。いくつかの実施形態では、プロセス(600)は、ソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行する場合、処理回路は、プロセス(600)を実行する。このプロセスは、(S601)から始まり、(S602)に進む。
(S610)で、ビデオシーケンスと、当該ビデオシーケンスに関連付けられたメタデータとを受信する。ビデオシーケンスは、ゲーム制御情報に応答して生成された一連の画像フレームを含む。メタデータは、ゲーム制御情報に基づいて決定され、ゲーム制御情報を示す。一例では、ゲームエンジン(325)などのゲームエンジンは、ゲームシーン制御情報、ユーザ情報などのゲーム制御情報に基づいて、ビデオコンテンツ、オーディオコンテンツなどのゲームコンテンツを生成する。ビデオコンテンツは、一連の画像フレームを含むビデオシーケンスとして生成され得る。さらに、ビデオシーケンスに関連付けられたメタデータは、ゲーム制御情報に基づいて識別され得る。ビデオシーケンスおよびメタデータは、ビデオエンコーダ(330)のようなビデオエンコーダに提供され得る。ビデオエンコーダ(330)は、ビデオシーケンスと、当該ビデオシーケンスに関連付けられたメタデータとを受信する。
(S620)で、メタデータに基づいて符号化構成を決定する。一実施形態では、メタデータは、画素レベルまたはブロックレベルでの動きベクトルを含む。動きベクトルに基づいて、ビデオシーケンスの画像フレーム内のブロックを符号化するための動き探索の開始ポイントは決定され得る。
別の実施形態では、メタデータは、ビデオシーケンスの画像フレームのシーン変化特徴、照明変化特徴、点滅特徴、パンニング特徴、ズーミング特徴、フェーディング特徴、およびオーバーレイ特徴のうちの少なくとも1つの画像特徴を示す。画像特徴に基づいて、画像フレームを符号化するための符号化構成(例えば、コーディングツール、パラメータセット、構成設定など)は決定され得る。
別の実施形態では、メタデータは、画像フレームにおける境界ボックスを示す。境界ボックスに基づいて、現在の画像フレームの前の画像フレームに対する前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアのための前の画像フレームにおける参照エリアを決定することができる。前の画像フレームにおける参照エリアに基づいて、現在の画像フレームにおける境界ボックスによってカバーされていないエリアを符号化することができる。
別の実施形態では、メタデータは、第1画像フレームから第2画像フレームへのモデル変換(例えば、動きブラー効果の変化、レンズブラー効果の変化、レンズ歪みの変化、レンズビネットの変化など)を示す。符号化構成(例えば、フィルタツール、パラメータセット、構成設定など)は、モデル変換に基づいて決定され得る。符号化構成に基づいて、第2画像フレームにおけるブロックは、第1画像フレームにおける参照ブロックに基づいて符号化され得る。
別の実施形態では、メタデータは、後続の画像フレームにおける現在の画像フレームのオブジェクトの存在を示す。そして、バッファ構成(例えば、後続の画像フレームを符号化/復号するためのオブジェクトを含む再構築されたエリアをバッファリングする)は、メタデータに基づいて決定され得る。
別の実施形態では、メタデータは、画像フレームのノイズレベルを示す。そして、画像フレームのための前処理構成または後処理構成は、ノイズレベルに基づいて決定され得る。一例では、画像フレームは、前処理において前処理構成に基づいてノイズ除去され得る。別の例では、ノイズは、後処理において後処理構成に基づいて、再構築されたフレームに追加され得る。
別の実施形態では、メタデータは、画像フレームにおける関心のある領域を示す。いくつかの例では、より高い品質(例えば、より高い解像度、より高いビットレート)を有する第1符号化構成は、関心のある領域を符号化するために決定され得、また、第1符号化構成よりも低い品質を有する第2符号化構成は、関心のある領域外のエリアを符号化するために決定され得る。
別の実施形態では、メタデータは、画像フレームの領域におけるグラフィックオーバーレイを示す。そして、グラフィックオーバーレイに基づいて領域を符号化するための符号化構成は決定され得る。一例では、スキップモードは、コーディング効率を向上させるために、ロゴなどの特定のグラフィックオーバーレイをコード化するために使用され得る。
(S630)で、符号化構成に基づいて、ビデオシーケンスをコード化されたビデオビットストリームに符号化する。コード化されたビデオビットストリームは、ネットワークを介して、例えばクライアントデバイス(360)などのような宛先デバイスに送信され得る。いくつかの実施形態では、メタデータは、また、コード化されたビデオビットストリームの復号を宛先デバイスで支援するために、宛先デバイスに送信される。一実施形態では、メタデータは、コード化されたビデオビットストリームとともにSEIメッセージで送信される。別の実施形態では、メタデータは、オーバーレイコンテンツを含む。オーバーレイコンテンツは、オーバーレイコンテンツビットストリームに符号化され得る。オーバーレイコンテンツビットストリームおよびコード化されたビデオビットストリームは、単一の出力ビットストリームに多重化され得る。単一の出力ビットストリームは、ネットワークを介して、宛先デバイスに送信され得る。
別の実施形態では、メタデータは、オーバーレイメッセージのための画像フレームにおけるメッセージボックスを示す。オーバーレイメッセージおよびオーバーレイメッセージの情報は、コード化されたビデオビットストリームの特定のNALUに圧縮されて含まれ得る。コード化されたビデオビットストリームは、コード化されたビデオデータを搬送するための複数のNALU(例えば、パケット)を含み、オーバーレイメッセージを搬送するための特定のNALUを含むことができる。コード化されたビデオビットストリームは、ネットワークを介して、宛先デバイスに送信され得る。その後、このプロセスは、(S699)に進んで終了する。
図7は、本開示の一実施形態によるプロセス(700)を概説するフローチャートを示す。プロセス(700)は、クラウドゲームシステム(100)、クラウドゲームシステム(300)などのクラウドゲームシステムにおけるビデオシーケンスを復号するために使用され得る。様々な実施形態では、プロセス(700)は、クライアントデバイス(160)における処理回路(170)、クライアントデバイス(360)における処理回路(370)、ビデオデコーダ(180)、ビデオデコーダ(380)、ビデオデコーダ(480)などの処理回路によって実行される。いくつかの実施形態では、プロセス(700)は、ソフトウェア命令で実現され、したがって、処理回路がソフトウェア命令を実行する場合、処理回路は、プロセス(700)を実行する。このプロセスは、(S701)から始まり、(S710)に進む。
(S710)で、コード化されたビデオビットストリームと、当該コード化されたビデオビットストリームに関連付けられたメタデータとを受信する。メタデータは、サーバ(310)などのようなゲームサーバのビデオコンテンツを生成するためにも使用されるゲーム制御情報に基づいて決定される。
(S720)で、メタデータに基づいて、復号構成および再構築構成を決定する。
一実施形態では、メタデータは、画像フレームのノイズレベルを示す。そして、画像フレームのための後処理構成(再構築構成における構成)は、ノイズレベルに基づいて決定され得る。一例では、後処理構成により、ノイズレベルのノイズは、再構築された画像フレームに追加され得る。
(S730)で、復号構成に基づいて、コード化されたビデオビットストリームを復号し、再構築構成に基づいて、ビデオシーケンスを再構築する。その後、このプロセスは、(S799)に進んで終了する。
いくつかの実施形態では、コード化されたビデオビットストリームは、ビデオコンテンツを搬送するためのNALUと、オーバーレイコンテンツを搬送するための特定のNALUとを含む。特定のNALUは、オーバーレイコンテンツを生成するために識別され、個別に(例えば、異なるデコーダによって)復号され得る。そして、ビデオシーケンスは、オーバーレイコンテンツで再構築され得る。
上記の技術は、コンピュータ読み取り可能な命令を使用するコンピュータソフトウェアとして実現され、また、物理的に1つ以上のコンピュータ読み取り可能な媒体に記憶されることができる。例えば、図8は、開示された主題の特定の実施形態を実現するのに適したコンピュータシステム(800)を示す。
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用して符号化されることができ、アセンブリ、コンパイル、リンク、または同様のメカニズムを受けて命令を含むコードを作成することができ、命令は、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)などによって、直接的に実行されてもよく、またはコード解釈、マイクロコード実行などによって実行されてもよい。
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
図8に示されるコンピュータシステム(800)のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム(800)の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
コンピュータシステム(800)は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、触覚入力(例えば、キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェースデバイスはまた、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連されているとは限らない、特定のメディアを捕捉するために使用されることもできる。
ヒューマンインターフェース入力デバイスは、キーボード(801)、マウス(802)、トラックパッド(803)、タッチスクリーン(810)、データグローブ(図示せず)、ジョイスティック(805)、マイクロホン(806)、スキャナ(807)、カメラ(808)(それぞれの1つだけが図示された)のうちの1つまたは複数を含むことができる。
コンピューターシステム(800)はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン(810)、データグローブ(図示せず)またはジョイスティック(805)による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ(809)、ヘッドホン(図示せず))、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン(810)であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよいし、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、例えば、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
コンピューターシステム(800)は、CD/DVDを有するCD/DVD ROM/RW(820)を含む光学媒体または類似の媒体(821)、サムドライブ(822)、リムーバブルハードドライブまたはソリッドステートドライブ(823)、テープおよびフロッピーディスク(図示せず)などのようなレガシー磁気媒体、セキュリティドングル(図示せず)などのような特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語は、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
コンピューターシステム(800)はまた、一つ以上の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光学的であってもよい。ネットワークはさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(GSM(登録商標)、3G、4G、5G、LTEなど)などのLAN、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用および産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(849)(例えば、コンピュータシステム(800)のUSBポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステムシステム(800)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(800)は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、Canbusから特定のCanbusデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上述のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピューターシステム(800)のコア(840)に接続されることができる。
コア(840)は、1つ以上の中央処理ユニット(CPU)(841)、グラフィック処理ユニット(GPU)(842)、フィールドプログラマブルゲートアレイ(FPGA)(843)の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェアアクセラレータ(844)などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)(845)、ランダムアクセスメモリ(846)、例えば内部の非ユーザアクセスハードディスクドライブ、SSDなどの内部大容量ストレージ(847)などとともに、システムバス(848)を介して接続されてもよい。いくつかのコンピュータシステムでは、付加的なCPU、GPUなどによって拡張を可能にするために、システムバス(848)に1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス(1348)に直接的に接続されてもよく、または周辺バス(849)を介して接続されてもよい。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI)、汎用シリアルバス(USB)などを含む。
CPU(841)、GPU(842)、FPGA(843)、およびアクセラレータ(844)は、いくつかの命令を実行することができ、これらの命令を組み合わせて上述のコンピュータコードを構成することができる。そのコンピュータコードは、ROM(845)またはRAM(846)に記憶されることができる。また、一時的なデータは、RAM(846)に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ(847)に記憶されることができる。1つ以上のCPU(841)、GPU(842)、大容量ストレージ(847)、ROM(845)、RAM(846)などと密接に関連することができる、キャッシュメモリを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
限定ではなく例として、アーキテクチャ(800)、特にコア(840)を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサとして機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上記のユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ(847)またはROM(845)などの、不揮発性コア(840)を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア(840)によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア(840)、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM(846)に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、本明細書に説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤードされているか、または別の方法で回路(例えば、アクセラレータ(844))に組み込まれているため、機能を提供することができ、この回路は、ソフトウェアの代わりに動作し、またはソフトウェアと一緒に動作して、本明細書に説明された特定のプロセスの特定のプロセスまたは特定の部分を実行することができる。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行されるソフトウェアを記憶する回路(集積回路(IC)など)を含み、実行されるロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、配置、および様々な均等置換が存在している。したがって、当業者は、本明細書では明確に示されていないかまたは説明されていないが、本開示の原則を具現しているので、本開示の精神および範囲内にある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
100 クラウドゲームシステム
101 サーバシステム
102 クライアントシステム
110 サーバ
111 インターフェース回路
115 メモリ
120 処理回路
125 ゲームエンジン
130 ビデオエンコーダ
150 ネットワーク
160 クライアントデバイス
161 インターフェース回路
165 ディスプレイ
169 ユーザ入力デバイス
170 処理回路
175 ゲームクライアント
180 ビデオデコーダ

Claims (20)

  1. 電子デバイスが実行するクラウドゲーム用の方法であって、
    ビデオシーケンスと、前記ビデオシーケンスに関連付けられたメタデータとをゲームエンジンから受信するステップであって、前記メタデータは、ゲーム環境に関するゲーム制御情報に基づいて作成され、前記ゲーム制御情報は、ユーザ制御情報と、ゲームシーン情報とを含み、前記メタデータは、前記ユーザ制御情報がユーザ入力に応じて変更されることに基づいて前記ゲームエンジンにおいて更新され、かつ、前記ゲームシーン情報がゲームシーンの動きに応じて変更されることに基づいて前記ゲームエンジンにおいて更新され、前記ビデオシーケンスは、前記ゲーム制御情報に応答して生成された一連の画像フレームを含む、ステップと、
    前記メタデータに基づいて、前記ビデオシーケンスを符号化するための符号化構成を決定するステップと、
    前記符号化構成に基づいて、前記ビデオシーケンスをコード化されたビデオビットストリームに符号化するステップと、
    を含み、
    前記メタデータは、前記ビデオシーケンスの画像フレームの照明変化特徴、点滅特性、およびフェーディング特徴のうちの少なくとも1つの画像特徴を示し、前記方法は、さらに、
    前記画像特徴に基づいて、前記画像フレームを符号化するための符号化構成を決定するステップ、を含むことを特徴とする方法。
  2. 前記メタデータは、動きベクトルを含み、前記方法は、さらに、
    前記動きベクトルに基づいて、前記ビデオシーケンスの画像フレーム内のブロックを符号化するための動き探索の開始ポイントを決定するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記メタデータは、前記ビデオシーケンスの画像フレームのシーン変化特徴、パンニング特徴、ズーミング特徴、およびオーバーレイ特徴のうちの少なくとも1つの画像特徴をさらに示し、前記方法は、さらに、
    前記画像特徴に基づいて、前記画像フレームを符号化するための符号化構成を決定するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  4. 前記メタデータは、画像フレームにおける境界ボックスを示し、前記方法は、さらに、
    前記境界ボックスに基づいて、現在の画像フレームの前の画像フレームに対する前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアのための前記前の画像フレームにおける参照エリアを決定するステップと、
    前記前の画像フレームにおける参照エリアに基づいて、前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアを符号化するステップと、を含む、
    ことを特徴とする請求項1に記載の方法。
  5. 前記メタデータは、第1画像フレームから第2画像フレームへのモデル変換を示し、前記方法は、さらに、
    前記モデル変換に基づいて、前記符号化構成を決定するステップと、
    前記符号化構成に基づいて、前記第2画像フレームにおけるブロックを、前記第1画像フレームにおける参照フレームに基づいて符号化するステップと、を含む、
    ことを特徴とする請求項1に記載の方法。
  6. 前記メタデータは、後続の画像フレームにおける現在の画像フレームのオブジェクトの存在を示し、前記方法は、さらに、
    前記メタデータに基づいて、バッファ構成を決定するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  7. 前記メタデータは、画像フレームのノイズレベルを示し、前記方法は、さらに、
    前記ノイズレベルに基づいて、前記画像フレームを前処理/後処理するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  8. 前記メタデータは、画像フレームにおける関心のある領域を示し、前記方法は、さらに、
    前記関心のある領域外のブロックを符号化するために使用される第2符号化構成よりも高品質を有する第1符号化構成を使用して、前記関心のある領域を符号化するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  9. 前記メタデータは、画像フレームの領域におけるグラフィックオーバーレイを示し、前記方法は、さらに、
    前記グラフィックオーバーレイに基づいて、前記領域を符号化するための符号化構成を決定するステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  10. 前記メタデータは、オーバーレイメッセージ用の画像フレームにおけるメッセージボックスを示し、前記方法は、さらに、
    前記コード化されたビデオビットストリームの特定のネットワーク抽象化層ユニットNALUに、前記オーバーレイメッセージの情報を含ませるステップ、を含む、
    ことを特徴とする請求項1に記載の方法。
  11. クラウドゲーム用の装置であって、
    処理回路を備え、前記処理回路は、
    ビデオシーケンスと、前記ビデオシーケンスに関連付けられたメタデータとをゲームエンジンから受信することであって、前記メタデータは、ゲーム環境に関するゲーム制御情報に基づいて作成され、前記ゲーム制御情報は、ユーザ制御情報と、ゲームシーン情報とを含み、前記メタデータは、前記ユーザ制御情報がユーザ入力に応じて変更されることに基づいて前記ゲームエンジンにおいて更新され、かつ、前記ゲームシーン情報がゲームシーンの動きに応じて変更されることに基づいて前記ゲームエンジンにおいて更新され、前記ビデオシーケンスは、前記ゲーム制御情報に応答して生成された一連の画像フレームを含む、ことと、
    前記メタデータに基づいて、前記ビデオシーケンスを符号化するための符号化構成を決定することと、
    前記符号化構成に基づいて、前記ビデオシーケンスをコード化されたビデオビットストリームに符号化することと、を実行するように構成され、
    前記メタデータは、前記ビデオシーケンスの画像フレームの照明変化特徴、点滅特性、およびフェーディング特徴のうちの少なくとも1つの画像特徴を示し、前記処理回路は、さらに、
    前記画像特徴に基づいて、前記画像フレームを符号化するための符号化構成を決定することを、実行するように構成される、
    ことを特徴とする装置。
  12. 前記メタデータは、動きベクトルを含み、前記処理回路は、さらに、
    前記動きベクトルに基づいて、前記ビデオシーケンスの画像フレーム内のブロックを符号化するための動き探索の開始ポイントを決定すること、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  13. 前記メタデータは、前記ビデオシーケンスの画像フレームのシーン変化特徴、パンニング特徴、ズーミング特徴、およびオーバーレイ特徴のうちの少なくとも1つの画像特徴をさらに示し、前記処理回路は、さらに、
    前記画像特徴に基づいて、前記画像フレームを符号化するための符号化構成を決定することを、実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  14. 前記メタデータは、画像フレームにおける境界ボックスを示し、前記処理回路は、さらに、
    前記境界ボックスに基づいて、現在の画像フレームの前の画像フレームに対する前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアのための前記前の画像フレームにおける参照エリアを決定することと、
    前記前の画像フレームにおける参照エリアに基づいて、前記現在の画像フレームにおける境界ボックスによってカバーされていないエリアを符号化することと、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  15. 前記メタデータは、第1画像フレームから第2画像フレームへのモデル変換を示し、前記処理回路は、さらに、
    前記モデル変換に基づいて、前記符号化構成を決定することと、
    前記符号化構成に基づいて、前記第2画像フレームにおけるブロックを、前記第1画像フレームにおける参照フレームに基づいて符号化することと、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  16. 前記メタデータは、後続の画像フレームにおける現在の画像フレームのオブジェクトの存在を示し、前記処理回路は、さらに、
    前記メタデータに基づいて、バッファ構成を決定すること、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  17. 前記メタデータは、画像フレームのノイズレベルを示し、前記処理回路は、さらに、
    前記ノイズレベルに基づいて、前記画像フレームを前処理/後処理すること、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  18. 前記メタデータは、画像フレームにおける関心のある領域を示し、前記処理回路は、さらに、
    前記関心のある領域外のブロックを符号化するために使用される第2符号化構成よりも高品質を有する第1符号化構成を使用して、前記関心のある領域を符号化すること、を実行するように構成される、
    ことを特徴とする請求項11に記載の装置。
  19. 電子デバイスであって、
    前記電子デバイスには、プロセッサとメモリとが含まれ、
    前記メモリには、読み取り可能な命令が記憶されており、前記読み取り可能な命令が前記プロセッサによってロードされて実行されると、請求項1~10のいずれか1項に記載の方法が実現される、
    ことを特徴とする電子デバイス。
  20. コンピュータプログラムであって、
    前記コンピュータプログラムは、電子デバイスによってロードされて実行されるとき、前記電子デバイスに請求項1~10のいずれか1項に記載の方法を実行させる、
    ことを特徴とするコンピュータプログラム。
JP2022517928A 2020-03-16 2021-03-15 クラウドゲーム用の方法および装置 Active JP7467613B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202062990204P 2020-03-16 2020-03-16
US62/990,204 2020-03-16
US17/184,082 2021-02-24
US17/184,082 US11833419B2 (en) 2020-03-16 2021-02-24 Method and apparatus for cloud gaming
PCT/US2021/022347 WO2021188428A1 (en) 2020-03-16 2021-03-15 Method and apparatus for cloud gaming

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2024060304A Division JP2024074918A (ja) 2020-03-16 2024-04-03 クラウドゲーム用の方法および装置

Publications (2)

Publication Number Publication Date
JP2022550288A JP2022550288A (ja) 2022-12-01
JP7467613B2 true JP7467613B2 (ja) 2024-04-15

Family

ID=77664159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022517928A Active JP7467613B2 (ja) 2020-03-16 2021-03-15 クラウドゲーム用の方法および装置

Country Status (5)

Country Link
US (1) US11833419B2 (ja)
EP (1) EP4011069A4 (ja)
JP (1) JP7467613B2 (ja)
CN (1) CN114402592A (ja)
WO (1) WO2021188428A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115767245A (zh) * 2021-08-30 2023-03-07 瑞昱半导体股份有限公司 视频处理系统以及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004517590A (ja) 2001-01-24 2004-06-10 オーワイ ゲームクラスター リミテッド ビデオ情報圧縮方法
JP2008517530A (ja) 2004-10-18 2008-05-22 トムソン ライセンシング フィルム粒子のシミュレーション方法
US20110069757A1 (en) 2008-05-22 2011-03-24 Satya Ghosh Ammu Content adaptive video encoder and coding method
US20150092856A1 (en) 2013-10-01 2015-04-02 Ati Technologies Ulc Exploiting Camera Depth Information for Video Encoding
US20190045213A1 (en) 2017-08-03 2019-02-07 Intel Corporation Reference frame reprojection for improved video coding
US20190158704A1 (en) 2017-11-17 2019-05-23 Ati Technologies Ulc Game engine application direct to video encoder rendering

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711923B2 (en) * 2002-12-10 2014-04-29 Ol2, Inc. System and method for selecting a video encoding format based on feedback data
WO2010033642A2 (en) 2008-09-16 2010-03-25 Realnetworks, Inc. Systems and methods for video/multimedia rendering, composition, and user-interactivity
US20110211634A1 (en) * 2010-02-22 2011-09-01 Richard Edwin Goedeken Method and apparatus for offset metadata insertion in multi-view coded view
US10390024B2 (en) 2013-04-08 2019-08-20 Sony Corporation Region of interest scalability with SHVC
US9888240B2 (en) * 2013-04-29 2018-02-06 Apple Inc. Video processors for preserving detail in low-light scenes
US20150296215A1 (en) * 2014-04-11 2015-10-15 Microsoft Corporation Frame encoding using hints
WO2017142353A1 (ko) * 2016-02-17 2017-08-24 엘지전자 주식회사 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
US10735725B2 (en) 2016-09-14 2020-08-04 Microsoft Technology Licensing, Llc Boundary-intersection-based deblock filtering
US10506255B2 (en) * 2017-04-01 2019-12-10 Intel Corporation MV/mode prediction, ROI-based transmit, metadata capture, and format detection for 360 video
US10567788B2 (en) 2017-04-21 2020-02-18 Zenimax Media Inc. Systems and methods for game-generated motion vectors
US11004209B2 (en) 2017-10-26 2021-05-11 Qualcomm Incorporated Methods and systems for applying complex object detection in a video analytics system
WO2019235904A1 (ko) * 2018-06-08 2019-12-12 엘지전자 주식회사 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치
US11652863B2 (en) 2020-03-16 2023-05-16 Tencent America LLC Method and apparatus for cloud gaming

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004517590A (ja) 2001-01-24 2004-06-10 オーワイ ゲームクラスター リミテッド ビデオ情報圧縮方法
JP2008517530A (ja) 2004-10-18 2008-05-22 トムソン ライセンシング フィルム粒子のシミュレーション方法
US20110069757A1 (en) 2008-05-22 2011-03-24 Satya Ghosh Ammu Content adaptive video encoder and coding method
US20150092856A1 (en) 2013-10-01 2015-04-02 Ati Technologies Ulc Exploiting Camera Depth Information for Video Encoding
US20190045213A1 (en) 2017-08-03 2019-02-07 Intel Corporation Reference frame reprojection for improved video coding
US20190158704A1 (en) 2017-11-17 2019-05-23 Ati Technologies Ulc Game engine application direct to video encoder rendering

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Byeongdoo Choi, et al.,AHG8: E-Sport Use cases of VVC region-wise scalability and its system support,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0335-v2,15th Meeting: Gothenburg, SE,2019年06月,pp.1-5

Also Published As

Publication number Publication date
EP4011069A4 (en) 2023-03-22
US11833419B2 (en) 2023-12-05
US20210283499A1 (en) 2021-09-16
EP4011069A1 (en) 2022-06-15
KR20220053655A (ko) 2022-04-29
CN114402592A (zh) 2022-04-26
WO2021188428A1 (en) 2021-09-23
JP2022550288A (ja) 2022-12-01

Similar Documents

Publication Publication Date Title
JP2021517411A (ja) ビデオ符号化のための方法、装置及びコンピュータプログラム
JP7027617B2 (ja) ビデオエンコーディング及びデコーディングのための方法、装置、コンピュータプログラム、及び非一時的なコンピュータ可読媒体
CN113519163B (zh) 点云压缩的方法、装置和存储介质
JP7055485B2 (ja) 映像符号化のための方法並びに、その、装置及びコンピュータプログラム
CN112997503B (zh) 对已编码视频序列进行解码的方法、装置及存储介质
CN113574873B (zh) 对已编码视频流的子码流进行解码的方法和计算机设备
JP7016971B2 (ja) ビデオ符号化の方法及び装置
KR102611065B1 (ko) 클라우드 게이밍을 위한 방법 및 장치
JP7457170B2 (ja) サブブロックに基づく時間的動きベクトル予測のための方法並びにその機器及びコンピュータプログラム
CN111641836A (zh) 点云压缩的方法、装置、计算机设备和存储介质
JP2022524107A (ja) イントラピクチャブロック補償のための予測候補リストサイズシグナリングのための方法および装置
CN111641834B (zh) 点云编码的方法和装置、计算机设备和存储介质
JP2022516062A (ja) ビデオ復号のための方法、ビデオデコーダ、およびコンピュータプログラム、ならびにビデオ符号化のための方法
JP2021517410A5 (ja)
JP7442919B2 (ja) データ操作のためのパッチ可能なリモート要素方法、装置、およびコンピュータプログラム
JP7467613B2 (ja) クラウドゲーム用の方法および装置
JP2023154040A (ja) ビデオコーディングのための方法および装置
JP7237410B2 (ja) ビデオビットストリームにおけるピクチャサイズおよび分割情報の効率的なシグナリングのための方法、装置、およびコンピュータプログラム
KR102666825B1 (ko) 클라우드 게이밍을 위한 방법 및 장치
JP2022525989A (ja) ビデオコーディングのための方法、装置及びプログラム
JP2024074918A (ja) クラウドゲーム用の方法および装置
RU2775739C1 (ru) Способ поуровневого произвольного доступа в кодированном видеопотоке
WO2024010994A1 (en) Vertex position coding in mesh compression
CN117461059A (zh) 网格压缩中的顶点位置预测
CN118118667A (zh) 视频编码、解码的方法和计算机设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220318

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230904

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240403

R150 Certificate of patent or registration of utility model

Ref document number: 7467613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150