JP2023550940A - クライアントデバイス上でビデオストリームを復号化すること - Google Patents

クライアントデバイス上でビデオストリームを復号化すること Download PDF

Info

Publication number
JP2023550940A
JP2023550940A JP2023530582A JP2023530582A JP2023550940A JP 2023550940 A JP2023550940 A JP 2023550940A JP 2023530582 A JP2023530582 A JP 2023530582A JP 2023530582 A JP2023530582 A JP 2023530582A JP 2023550940 A JP2023550940 A JP 2023550940A
Authority
JP
Japan
Prior art keywords
video
stream
decoding
media player
decoded
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
JP2023530582A
Other languages
English (en)
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 JP2023550940A publication Critical patent/JP2023550940A/ja
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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440227Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • 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/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

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

Abstract

本出願は、クライアントデバイス上でビデオストリームを復号化することに関する。クライアントデバイス上でのクライアントアプリケーションは、メディアプレーヤライブラリによって実施される復号化機能を呼び出し、メディアプレーヤライブラリによって実施される復号化機能は、クライアントデバイスのオペレーティングシステムによって実施される復号化機能の更なる呼び出しを含み、ビデオストリームが多層コーディングスキームを使用して符号化されているかどうかの判定を含むように修正される。ビデオストリームが多層コーディングスキームを使用して符号化されている場合、ビデオストリームは処理されて、ベースストリーム及び改良ストリームが抽出され、ベースストリームが、オペレーティングシステムによって実施される復号化機能の更なる呼び出しを使用して復号化され、符号化された改良ストリームが、復号化され、復号化された改良ストリームが、復号化されたベースストリームに適用されて復号化されたビデオストリームデータを生成し、復号化されたビデオストリームデータが、メディアプレーヤライブラリによって実施される復号化機能に返される。【選択図】図1

Description

本発明は、クライアント上でビデオストリームを復号化する際に使用されるための方法、装置、コンピュータプログラム、及びコンピュータ可読媒体に関する。
ビデオコンテンツの符号化及び復号化は、多くの既知のシステムにおいて考慮されている。ビデオコンテンツは、例えば、データ通信ネットワークを介して送信するために符号化され得る。そのようなビデオコンテンツが復号化されるとき、ビデオの質のレベルを高めること、及び/又は元のビデオに含まれる情報の可能な限り多くを復元することが望まれる場合がある。これらの所望の特性を達成することを試みるが、多くの場合、オペレーティングシステムのレベルでの顕著なソフトウェアアップデート及び/又は顕著なハードウェアアップグレードを必要とする、多くのビデオコーディングフォーマット及びそれらに関連するコーデックが開発されている。更に、復号化されたビデオコンテンツの品質を向上させるために、典型的には、符号化及び復号化手順の複雑度を増大させることが必要になり、それによって、電力使用量が増大し、ビデオコンテンツを配信することができるレイテンシが増大することがある。
本開示の第1の態様によれば、クライアントデバイス上でビデオストリームを復号化する方法が提供される。方法は、クライアントデバイス上のクライアントアプリケーションから、クライアントデバイス上で利用可能なメディアプレーヤライブラリによって実施される復号化機能を呼び出すことであって、メディアプレーヤライブラリによって実施される復号化機能が、クライアントデバイスのオペレーティングシステムによって実施される復号化機能の更なる呼び出しを含む、呼び出すことと、メディアプレーヤライブラリによって実施される復号化機能を、ビデオストリームが多層コーディングスキームを使用して符号化されているかどうかの判定を含むように修正することと、ビデオストリームが多層コーディングスキームを使用して符号化されていると判定することに応答して、ビデオストリームを処理して、多層コーディングスキームのベースストリーム及び改良ストリームを抽出することと、クライアントデバイスのオペレーティングシステムによって実施される復号化機能の更なる呼び出しを使用してベースストリームを復号化して、復号化されたベースストリームを生成することと、符号化された改良ストリームを復号化して、復号化された改良ストリームを生成することと、復号化された改良ストリームを復号化されたベースストリームに適用して、復号化されたビデオストリームデータを生成することと、復号化されたビデオストリームデータを、メディアプレーヤライブラリによって実施される復号化機能に返すことと、を含む。
クライアントデバイスは、Apple(登録商標)デバイスであってもよい。オペレーティングシステムは、iOS、macOS(登録商標)、又はtvOSなどのApple(登録商標)によって開発されたオペレーティングシステムであり得る。メディアプレーヤライブラリは、libvlcであり得る。多層コーディング方式は、MPEG-5 Part 2 Low Complexity Enhancement Video Encoding(LCEVC)であり得る。
符号化された改良ストリームの復号化は、多層復号化機能を使用して実行され得る。多層復号化機能は、ベースストリームに対してオペレーティングシステムビデオ復号化機能の呼び出しを含み得、オペレーティングシステムビデオ復号化機能の呼び出しの出力に改良ストリームの復号化されたバージョンを適用して、復号化されたビデオストリームデータを生成するように構成され得る。
方法は、LCEVCなどの多層コーディングスキームをサポートする修正されたビデオツールボックスモジュール内で実行され得る。修正されたビデオツールボックスモジュールは、VLCKitラッパーを介してアクセスされ得る。修正されたビデオツールボックスモジュールは、1つ以上のパッチをlibvlcに適用することによって、例えば、1つ以上のLCEVC固有パッチをlibvlcに適用することによって取得することができる。ビデオツールボックスモジュールへの修正は、LCEVCスキームを使用して符号化されたビデオストリームを復号化する機能を提供するApple(登録商標)のVTDecompressionSessionオブジェクトの一般化を作成することを含み得る。
方法は、VLCKitのインスタンスを作成することを更に含み得る。符号化されたビデオストリームは、CMSampleBuffersに分離され得る。方法は、ビデオストリームがLCEVCを使用して符号化されているかどうかを判定することを更に含み得る。ビデオストリームがLCEVCを使用して符号化されていると判定される場合、方法は、ビデオストリームからLCEVCペイロードを抽出することを含み得る。LCEVCペイロードは、VTDecompressionSessionオブジェクトを使用して復号化され得る。方法は、復号化されたLCEVCペイロードを提示順に並べ替えることを更に含み得る。ビデオストリーム内の改良ストリームは、復号化され、復号化された改良ストリーム、例えば、復号化されたLCEVCペイロードに適用され、復号化されたビデオストリームを生成し得る。ビデオストリームがLCEVCを使用して符号化されていないと判定される場合、方法は、VTDecompressionSessionオブジェクトを使用してビデオストリームを復号化することを含み得る。いずれの場合においても、方法は、復号化されたビデオストリームをCVPixelBuffersとして返すことを更に含み得る。CVPixelBuffersが正しい順序であるかどうかを判定し得る。CVPixelBuffersが正しい順序ではないと判定された場合、CVPixelBuffersは、提示順に並べ替えられ得る。方法は、提示のために、復号化されたビデオストリームをデキューすることを更に含み得る。
本開示の第2の態様によれば、クライアントデバイスが提供される。クライアントデバイスは、オペレーティングシステムビデオ復号化機能を含むオペレーティングシステムと、ビデオを表示するためのクライアントアプリケーションと、クライアントアプリケーションによって使用されるためのメディアプレーヤビデオ復号化機能を含むメディアプレーヤライブラリとを備え、メディアプレーヤビデオ復号化機能は、オペレーティングシステムビデオ復号化機能の呼び出しを含む。メディアプレーヤビデオ復号化機能は、多層コーディングスキームを使用して符号化されたビデオストリームの受信時に多層復号化機能を選択的に実施するオペレーティングシステムビデオ復号化機能のラッパーを含むように修正され、ビデオストリームは、ベースストリーム及び改良ストリームを含み、多層復号化機能は、ベースストリームに対するオペレーティングシステムビデオ復号化機能の呼び出しを含み、多層復号化機能は、オペレーティングシステムビデオ復号化機能の呼び出しの出力に改良ストリームの復号化されたバージョンを適用して、復号化されたビデオストリームデータを生成するように構成され、多層復号化機能は、復号化されたビデオストリームデータをクライアントアプリケーションによって使用されるためのメディアプレーヤビデオ復号化機能に返すように更に構成される。
クライアントデバイスは、Apple(登録商標)デバイスであってもよい。オペレーティングシステムは、iOS、macOS(登録商標)、又はtvOSなどのApple(登録商標)によって開発されたオペレーティングシステムであり得る。メディアプレーヤライブラリは、libvlcであり得る。多層コーディング方式は、LCEVCであり得る。
メディアプレーヤビデオ復号化機能は、LCEVCなどの多層コーディングスキームをサポートする修正されたビデオツールボックスモジュールを含むことができる。修正されたビデオツールボックスモジュールは、VLCKitラッパーを介してアクセスされ得る。修正されたビデオツールボックスモジュールは、1つ以上のパッチをlibvlcに適用することによって、例えば、1つ以上のLCEVC固有パッチをlibvlcに適用することによって取得することができる。ビデオツールボックスモジュールへの修正は、LCEVCスキームを使用して復号化されたビデオストリームを復号化する機能を提供するApple(登録商標)のVTDecompressionSessionオブジェクトの一般化を作成することを含み得る。
クライアントデバイスは、符号化されたビデオストリームをCMSampleBuffersに分離するためのデマルチプレクサを更に含み得る。修正されたビデオツールボックスモジュールは、ビデオストリームがLCEVCを使用して符号化されているかどうかを判定し得る。ビデオストリームがLCEVCを使用して符号化されていると判定される場合、LCEVCペイロードは、ビデオストリームから抽出されてもよい。LCEVCペイロードは、VTDecompressionSessionオブジェクトを使用して復号化され得る。この場合、修正されたビデオツールボックスモジュールは、復号化されたLCEVCペイロードを提示順に並べ替え得る。ビデオストリーム内の改良ストリームは、復号化され得、復号化された改良ストリーム、例えば、復号化されたLCEVCペイロードに適用され、復号化されたビデオストリームを生成し得る。ビデオストリームがLCEVCを使用して符号化されていないと判定された場合、ビデオストリームは、VTDecompressionSessionオブジェクトを使用して復号化され得る。いずれの場合も、復号化されたビデオストリームは、CVPixelBuffersとして返され得る。CVPixelBuffersが正しい順序であるかどうかを判定し得る。CVPixelBuffersが正しい順序ではないと判定された場合、CVPixelBuffersは、提示順に並べ替えられ得る。復号化されたビデオストリームは、提示のためにデキューされ得る。
本開示の第3の態様によれば、第1の態様の方法を実行するために、少なくとも1つのプロセッサによって実行可能な命令を記憶するコンピュータ可読記憶媒体が提供される。
更なる特徴は、添付の図面を参照して行われる、例としてのみ与えられる以下の説明から明らかになるであろう。
クライアントデバイス上でビデオストリームを復号化するための例示的なシステムの概略図である。 実施例による、クライアントデバイス上でビデオストリームを復号化する方法のフロー図である。 更なる実施例による、クライアントデバイス上でビデオストリームを復号化する方法のフロー図である。 ビデオを復号化するための例示的なコンピュータシステムレベルの階層である。
デジタル信号の符号化は、圧縮とも呼ばれ、元の信号、例えば元のビデオを表すために使用されるよりも少ない情報ビットを使用してデジタル信号の表現を生成するプロセスである。符号化プロセスは、元の信号と生成された表現との間で情報が失われるときにロッシーとして記述され得る。代替的に、元の信号と生成された表現との間で情報が失われない場合、符号化プロセスはロスレスであると記述され得る。例えば、ビデオコンテンツを表現する符号化されていないデジタル信号は、高いデータ伝送速度を必要とし、したがって、しばしば符号化される。
デジタルビデオコンテンツの符号化及び復号化において、典型的には、ビデオ品質の向上と符号化及び復号化の複雑度との間のトレードオフが存在する。しかしながら、WO/2020/188273A1、及び参照により本明細書に組み込まれる、2020年1月13日月曜日から2020年1月17日金曜日にかけてブリュッセルで開催されたMPEG 129 meeting in Brusselsで公開されたDraft Text of ISO/IEC DIS23094-2 Low Complexity Enhancement Video Codingを含む関連する規格仕様文書に詳細が記載されているMPEG-5 Part 2 Low Complexity Enhancement Video Encoding(LCEVC)の出現によって、現在では、ビデオ品質を改善し、コーデックの複雑度を低減させることが可能である。これは、基本コーデック(例えば、高度ビデオコーディング(AVC、Advanced Video Coding)、高効率ビデオコーディング(HEVC、High Efficiency Video Coding))、又は任意の他の現在若しくは将来のコーデック)を使用して符号化された基本ストリームを、コーディングされたデータの少なくとも1つの拡張レベルを含む改良ストリームと組み合わせることによって達成される。
ベースストリームを改良ストリームと組み合わせることにより、ベースストリームをより低い解像度で送信することができ、データ通信ネットワーク上の帯域幅要件を低減させる。代替的に、ビデオコンテンツを同じ帯域幅についてより高い解像度で送信し、ベースストリームを改良ストリームと組み合わせずに可能なよりも高い品質のビデオを生成することができる。
これにより、ビデオ品質及び複雑度の低減に関するこれらの利点が可能になるが、クライアントデバイスにLCEVCを実装するためのアプローチ、特に、コーディングスキームをメディアプレーヤ機能及びそのようなデバイスのオペレーティングシステムビデオ復号化機能と統合するためのアプローチが依然として必要である。
図1は、例示的なクライアントデバイス100の概略図である。クライアントデバイスは、任意の世代のiPhone(登録商標)、iPad(登録商標)、又はラップトップ若しくはデスクトップコンピュータなどの別のコンピューティングデバイスなどのモバイルデバイスであり得る。クライアントデバイスは、典型的には、1つ以上のプロセッサ、メモリ、ユーザインタフェース(UI、user interface)、及び/又は少なくとも1つのグラフィックス処理ユニット(GPU、graphics processing unit)などの、データ処理を容易にするための適切なハードウェアコンポーネントを備える。
クライアントデバイス100は、オペレーティングシステム102を含み、オペレーティングシステム102は、例えば、クライアントデバイス100のハードウェア及びソフトウェアリソースの管理を含む、クライアントデバイス100の基本的な機能をサポートするクライアントデバイス100のシステムソフトウェアである。オペレーティングシステム102は、符号化されたビデオコンテンツの復号化に使用されるためのオペレーティングシステムビデオ復号化機能104を含む。オペレーティングシステムビデオ復号化機能104は、オペレーティングシステムによって実施される復号化機能と称され得る。オペレーティングシステム102は、それ自身のオペレーティングシステムビデオ復号化機能104を含むので、オペレーティングシステム102は、例えば、特定のコーデックを使用して符号化されたビデオストリームを復号化するためのネイティブサポートを有する。クライアントデバイスがApple(登録商標)デバイスである場合、オペレーティングシステムは、米国のCupertinoのApple Inc.によって開発されたオペレーティングシステムの対応するバージョンであり得る。例えば、クライアントデバイスがiPhone(登録商標)である場合、オペレーティングシステムは、iOSの任意のバージョンであり得る。別の実施例では、クライアントデバイスは、任意のApple(登録商標)Mac(登録商標)デバイスであり得、この場合、オペレーティングシステムは、任意のバージョンのmacOS(登録商標)であり得る。更なる例では、クライアントデバイスは、Apple(登録商標)TVデバイスであってもよく、この場合、オペレーティングシステムは、tvOSの任意のバージョンであってもよい。
クライアントデバイス100は、ビデオを表示するためのクライアントアプリケーション106を更に備える。クライアントアプリケーション106は、クライアントデバイス100上の任意のソフトウェアアプリケーションであってもよく、クライアントデバイス100に結合された、又はクライアントデバイス100内に組み込まれたディスプレイ上でビデオをレンダリングする、又は他の方法で表示するのに使用可能である。クライアントアプリケーションは、アプリケーション自体に埋め込まれた、又は他の方法で含まれたビデオコンテンツを含めることが一般的である。一例は、クライアントアプリケーション106がどのように使用されるかをユーザに説明するクライアントアプリケーション106内のビデオチュートリアルであり得る。別の例は、ユーザがソーシャルメディアアプリケーションの他のユーザによってアップロードされたビデオコンテンツを視聴することを可能にするソーシャルメディアアプリケーションである。
クライアントデバイス100はまた、メディアプレーヤライブラリ108を含み、メディアプレーヤライブラリ108は、この実施例では、クライアントアプリケーション内にビデオコンテンツを表示するためのリソースの少なくとも一部を提供する。メディアプレーヤライブラリ108は、ビデオなどのメディアを再生するために、オペレーティングシステム102のメディアプレーヤに関連付けられている。
メディアプレーヤライブラリ108は、メディアプレーヤビデオ復号化機能110を含み、メディアプレーヤビデオ復号化機能110は、メディアプレーヤライブラリによって実施される復号化機能と呼ばれることがあり、(この場合、オペレーティングシステムビデオ復号化機能102とともに)符号化されたビデオコンテンツを復号化する際にクライアントアプリケーション106によって使用されるための機能である。メディアプレーヤビデオ復号化機能110は、オペレーティングシステムビデオ復号化機能102の呼び出しを含む。これにより、メディアプレーヤライブラリ108は、オペレーティングシステム102の復号化機能にアクセスすることができる。
メディアプレーヤビデオ復号化機能110は、多層コーディングスキームを使用して符号化されたビデオストリームを受信すると、多層復号化機能を選択的に実装する、オペレーティングシステムビデオ復号化機能104用のラッパーを含むように修正される。このように、多層復号化機能は、特定のビデオ(多層コーディングスキームを使用して符号化されたものなど)に対して利用され得る。他のビデオには、異なる復号化機能を使用できる。例えば、変更されないメディアプレーヤビデオ復号化機能110に対応するレガシー復号化機能は、多層コーディングスキームとは異なるスキームを使用して符号化されたビデオに対して使用され得る。
実施例では、多層コーディングスキームを使用して符号化されたビデオストリームは、基本ストリームと、改良ストリームとを含む。ベースストリームは、例えば、ダウンサンプリングされたソース信号であり、ベースコンプレッサとしても知られているベースエンコーダを使用して符号化され、デコンプレッサとしても知られているデコーダによって復号化可能である。ベースエンコーダは、高度ビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、VP9、MPEG-5必須ビデオコーディング(EVC、MPEG-5 Essential Video Coding)、汎用ビデオコーディング(VVC、Versatile Video Coding)、及びAOMediaビデオ1(AV1、AOMedia Video 1)エンコーダなどの任意のベースエンコーダとすることができる。既存のベースエンコーダ(及びデコーダ)を符号化(及び復号化)手順の一部として使用すると、多層ビデオコンテンツを復号化することができないシステムが、既存のベースコーデックを使用してベースストリームを確実に復号化できるようになる。これは、多層コーディングスキームを使用して符号化されたビデオストリームを復号化するためにハードウェアへの更新が必要とされないことを意味し、クライアントデバイス100などのシステムのハードウェアが将来のベースコーデックと互換性があるようにアップグレードされる場合、将来のベースコーデックも、更なるハードウェアアップグレードなしで使用され得ることを意味する。
オペレーティングシステムビデオ復号化機能104は、ベースストリームを復号化するように構成される。例えば、オペレーティングシステムビデオ復号化機能104は、高度ビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、VP9、MPEG-5必須ビデオコーディング(EVC)、汎用ビデオコーディング(VVC)、及びAOMediaビデオ1(AV1)デコーダのうちの少なくとも1つを含み得る。オペレーティングシステムビデオ復号化機能104は、ハードウェアデコーダを備え得るため、オペレーティングシステムビデオ復号化機能104は、ベースストリームを復号化するためのハードウェアアクセラレーションを利用することができる。この場合、復号化をハードウェアにオフロードすることによって、クライアントデバイス100の中央処理ユニット(CPU)によって実行される計算の数を減らすことができる。ハードウェアアクセラレーションは、例えば、動き補償などの計算集約的なプロセスを伴う復号化プロセスを実施し、逆離散コサイン変換を計算する、より効率的な方法を提供し得る。
改良ストリームは、ベースストリームを補正するか、又は他の場合には改良する残差の符号化されたセットを含む。階層構造内に複数のレベルの改良データが存在し得る。改良ストリームは、非圧縮全解像度ビデオから改良ストリームを生成するように構成された専用エンコーダを使用して符号化され得る。
LCEVC改良ストリームは、多層コーディングスキームを使用して符号化されたビデオストリームの例である。この場合、ビデオストリームは、LCEVCエンコーダによって符号化され、特に、ベースストリームは、ベースエンコーダを使用して符号化され、LCEVCエンコーダは、ベースデコーダの出力を使用して、改良ストリームを生成する。例えば、符号化されたベースストリームは、ベースデコーダを使用して復号化されてもよく、復号化されたベースストリームからのフレームは、元の入力フレーム(事前ベース符号化)とともにLCEVCエンコーダによってアクセスされて、改良ストリームの1つ以上のレイヤとして符号化するための残差データの1つ以上のレイヤを生成してもよい。しかしながら、本明細書の例は、他の多層コーディングスキームを使用して符号化されたビデオストリームにも適用され得る。
メディアプレーヤビデオ復号化機能110は、オペレーティングシステムビデオ復号化機能104のためのラッパーを含むように修正される。これにより、メディアプレーヤビデオ復号化機能110は、オペレーティングシステムビデオ復号化機能104を呼び出し、オペレーティングシステムビデオ復号化機能104のリソースを利用することができる。オペレーティングシステムビデオ復号化機能104のリソースは、例えば、受信された符号化されたビデオストリームが多層復号化機能を使用して符号化されると判定されたときに、メディアプレーヤビデオ機能110によって、多層復号化機能を使用して、多層コーディングスキームによって符号化されたビデオストリームを選択的に復号化するために使用され得る。
多層復号化機能は、ベースストリームに関するオペレーティングシステムビデオ復号化機能104の呼び出しを含む。上述のように、オペレーティングシステムビデオ復号化機能104は、符号化されたベースストリームを復号化するように動作可能である。したがって、多層復号化機能からオペレーティングシステムビデオ復号化機能104の呼び出しは、多層コーディングスキームによって符号化されたビデオストリームのベースストリームを復号化することを可能にする。言い換えれば、オペレーティングシステム102のネイティブ復号化機能を利用して、ベースストリームを復号化することができる。
実施例では、多層復号化機能はまた、多層コーディングスキームによって符号化されたビデオストリームの改良ストリームを復号化して、改良ストリームの復号化されたバージョンを生成するように動作可能である。このようにして、メディアプレーヤビデオ復号化機能110を修正して、オペレーティングシステムビデオ復号化機能104のラッパーを含み、多層復号化機能を選択的に実装することにより、改良ストリームを復号化することができる。このことは、例えば、多層コーディングスキームなどのより高度なコーデックを使用して符号化されたビデオストリームを復号化することを可能にすることによって、メディアプレーヤビデオ復号化機能110の機能を増大させる。実施例では、メディアプレーヤビデオ復号化機能110の機能は、メディアプレーヤライブラリ108及びオペレーティングシステム102の既存の機能を直接的かつ柔軟な方法で利用することによって、クライアントデバイス100の基礎的なハードウェアを変更することなく、この方法で増大させることができる。例えば、オペレーティングシステムビデオ復号化機能104のラッパーは、直接に変更され得、それによって、例えば、多層復号化機能は、メディアプレーヤライブラリ108及び/又はオペレーティングシステム102の基礎的な機能を変更することなく、異なる多層復号化スキームを使用して符号化されたビデオを復号化するように動作可能になる。
これらの実施例では、次いで、多層復号化機能は、オペレーティングシステムビデオ復号化機能104の呼び出しの出力に、強調ストリームの復号化されたバージョンを適用して、復号化されたビデオストリームデータを生成する。これは、復号化されたベースストリーム、及び改良ストリームの復号化されたバージョンを、単一の復号化されたビデオストリームに組み合わせ、単一の復号化されたビデオストリームは、典型的には、復号化されたベースストリームよりも高品質を有する。例えば、改良ストリームの復号化されたバージョンは、出力復号化されたビデオストリームを生成するために復号化されたベースストリームに追加される残差データの1つ以上のレイヤを含み得る。
多層復号化機能は、復号化されたビデオストリームデータを、クライアントアプリケーション106によって使用されるためのメディアプレーヤビデオ復号化機能110に返すように更に構成される。例えば、復号化されたビデオストリームデータは、例えば、クライアントデバイス100に結合されたディスプレイを使用して、クライアントアプリケーション106内に表示され得る。
いくつかの実施例では、多層復号化機能は、復号化されたベースストリームのフレームを並べ替える。これは、復号化されたベースストリーム内のフレームの順序が、関連付けられた非圧縮全解像度ビデオの順序と異なる場合であり得る。このことは、ベースストリームを復号化すると、復号化されたベースストリームのフレームが並べ替えられる場合に起こる可能性がある。改良ストリームが欠如している実施例では、ベースストリームは、受信されたビデオストリームデータ内の唯一のビデオストリームであり得るため、フレームの並べ替えは、ビデオコンテンツが表示される前の最終ステップであり得る。しかしながら、本実施例では、復号化されたベースストリームが、復号化された改良ストリームと組み合わされる。したがって、ベースストリームが復号化された後、復号化されたベースストリームのフレームを並べ替えて、改良ストリームの関連する復号化されたバージョンが復号化されたベースストリームに確実に適用されて、最終的な復号化されたビデオストリームデータを生成し、次に適切な順序で表示されるようにする必要があり得る。
一実施例では、オペレーティングシステムビデオ復号化機能104の少なくとも1つの内部メソッドは、クライアントアプリケーション106及びメディアプレーヤライブラリ108のうちの少なくとも一方に利用可能ではなく、したがって、制限された機能であるとみなされ得る。例えば、オペレーティングシステムビデオ復号化機能104の少なくとも1つの基礎的なルーチンへのアクセスは、オペレーティングシステム102の開発者によって制限され得る。しかしながら、クライアントアプリケーション106及び/又はメディアプレーヤライブラリ108は、基礎的なルーチンへのそのようなアクセスにかかわらず、オペレーティングシステムビデオ復号化機能104を呼び出し得る。言い換えれば、クライアントアプリケーション106及び/又はメディアプレーヤライブラリ108は、内部メソッド自体によって提供される機能に別々にアクセスできることなく、オペレーティングシステムビデオ復号化機能104によって提供される機能(オペレーティングシステムビデオ復号化機能104の内部メソッドを呼び出すことを含み得る)にアクセスすることができる。
ここで、多層コーディングスキームを使用して符号化されたビデオストリームが、図1に示されるクライアントデバイス100などのクライアントデバイス内で復号化されるプロセスを、方法200に関して更に詳細に説明する。
図2のブロック202では、クライアントデバイス上で利用可能なメディアプレーヤライブラリによって実施される復号化機能が、クライアントデバイス上のクライアントアプリケーションから呼び出される。上で説明されるように、クライアントアプリケーションは、クライアントデバイスのユーザに見えるビデオコンテンツを含み得る。クライアントアプリケーション内のビデオコンテンツを表示するために、クライアントアプリケーションは、メディアプレーヤライブラリの呼び出しを含む。メディアプレーヤライブラリは、クライアントアプリケーション内にビデオコンテンツを表示するために必要なリソースの少なくとも一部を含む。
メディアプレーヤライブラリによって実施される復号化機能は、クライアントデバイスのオペレーティングシステムによって実施される復号化機能の更なる呼び出しを含む。オペレーティングシステムは、オペレーティングシステムによって実施される復号化機能を含み、復号化機能は、例えば、ビデオストリームの符号化されたベースストリームを復号化するためのリソースを含む。
ブロック204において、メディアプレーヤライブラリによって実施される復号化機能は、ビデオストリームが多層コーディングスキームを使用して符号化されるかどうかの判定を含むように修正される。上述したように、多層コーディングスキームは、LCEVCスキームであってもよい。判定は、ビデオストリームの少なくとも1つの特性を検出することを含み得る。例えば、ビデオストリームは、ビデオストリームが多層コーディングスキームを使用して符号化されていることを示すメタデータを含み得る。判定は、代替的又は追加的に、ビデオストリームが改良ストリームを含むかどうかを検出することを含み得る。
ビデオストリームが多層コーディングスキームを使用して符号化されていると判定された場合、方法200はブロック206に進み、このブロック206では、ビデオストリームが処理されて、多層コーディングスキームのベースストリーム及び改良ストリームが抽出される。このことは、専用の信号抽出器又はクライアントデバイスの別の論理コンポーネントの一部を形成する信号抽出器などの好適な信号抽出器を使用して実行することができる。
ブロック208において、ベースストリームは、オペレーティングシステムによって実施される復号化機能の更なる呼び出しを使用して復号化される。言い換えれば、オペレーティングシステムのネイティブリソースを使用して、ベースストリームを復号化することができる。
ブロック210において、改良ストリームが復号化される。改良ストリームは、ブロック204において修正されたメディアプレーヤによって実施される復号化機能によって復号化され得る。次いで、復号化された改良ストリームは、復号化されたベースストリームに適用されて、復号化されたビデオストリームデータを生成する。例えば、改良ストリームは、多層ビデオストリームを復号化するための好適な復号化機能を含む多層デコーダライブラリの呼び出しを使用して、復号化されたベースストリームに復号化及び適用され得る。ブロック204においてメディアプレーヤによって実施される復号化機能の修正は、例えば、メディアプレーヤによって実施される復号化機能を修正して、多層デコーダライブラリへのアクセスを提供することを含む。
ブロック212において、復号化されたビデオストリームデータは、メディアプレーヤライブラリによって実施される復号化機能に返される。次いで、クライアントアプリケーションは、復号化されたビデオストリームを受信し、クライアントアプリケーション内に表示することができる。
しかしながら、ビデオストリームが多層コーディングスキームを使用して符号化されていないと判定された場合、方法200は、ブロック214に進む。方法200のブロック214において、ビデオストリームは、オペレーティングシステムによって実施される復号化機能の更なる呼び出しを使用して復号化される。メディアプレーヤライブラリによって実施される復号化機能の修正は、ベースストリームを復号化するオペレーティングシステムの復号化機能の能力に影響を及ぼさない。したがって、符号化されたビデオストリームがLCEVCなどの多層コーディングスキームを使用して符号化されていない場合、オペレーティングシステムによって実施される復号化機能は、メディアプレーヤによって実施される復号化機能に修正が加えられていないかのように、符号化されたビデオストリームを復号化することができる。次いで、符号化されたビデオストリームは、メディアプレーヤによって実施される復号化機能に渡され、復号化されて、復号化されたビデオストリームを取得することができる。したがって、復号化されたビデオストリームは、クライアントアプリケーションに渡され、クライアントアプリケーションによって表示することができる。したがって、方法200は、符号化されたビデオストリームがベースコーデックのみを使用して符号化されるか、又は多層コーディングスキームを使用して符号化されるかにかかわらず、符号化されたビデオストリームが復号化されることを可能にする。方法200は、例えば、オペレーティングシステムのハードウェアを変更することなく、オペレーティングシステム内の既存の機能を利用する、符号化されたビデオを復号化する効率的なプロセスを提供する。
復号化されたビデオストリームデータが、メディアプレーヤライブラリによって実施される復号化機能に返された後(例えば、図2のブロック212において、又は図2のブロック214が実行された後)、メディアプレーヤライブラリによって実施される復号化機能は、復号化されたビデオストリームデータのフレームを並べ替え得る。これは、ベースストリームを復号化すること、又は復号化されたベースストリームに復号化された改良ストリームを適用して、復号化されたビデオストリームデータを生成することにより、復号化されたビデオストリーム内のフレームの順序が、関連付けられた非圧縮全解像度ビデオ内のフレームの順序とは異なる場合に当てはまり得る。復号化されたビデオストリームデータのフレームを並べ替えることによって、ビデオストリームの表示されたフレームは、再生時に確実に正しい順序で表示される。いくつかの例では、同様の並べ替えが、代替的に、ベースストリームが図2のブロック208において復号化された後に実行され得る。
一実施例では、図2の方法200のブロック204において復号化機能を修正することは、パッチをメディアプレーヤライブラリに適用することを含む。例えば、パッチは、メディアプレーヤライブラリの機能を改善し、例えば、オペレーティングシステムによって実施される復号化機能などのオペレーティングシステムリソースを使用して、多層コーディングスキームを使用して符号化されたビデオストリームの復号化をサポートすることを可能にする。パッチをメディアプレーヤライブラリに適用することは、メディアプレーヤライブラリによって実施される復号化機能のためのコンピュータプログラムコードを含むファイルを修正することと、クライアントデバイスのオペレーティングシステムによって実施される復号化機能のための更なるファイルを追加することとを含み得る。
いくつかの場合には、メディアプレーヤライブラリによって実施される復号化機能を修正することは、追加的に、オペレーティングシステムによって実施される復号化機能にラッパーを適用する(例えば、図1を参照して説明されるように)ことを含み、多層復号化機能を選択的に実装する(例えば、図2のブロック204~212を実行する)。ラッパーは、例えば、オペレーティングシステムによって実施される復号化機能を使用して多層復号化機能を実行することを可能にする。例えば、ラッパーは、オペレーティングシステムによって実施される復号化機能へのインタフェースとして機能し得、それによって、(例えば、オペレーティングシステムによって実施される復号化機能を使用して)ベースストリームを復号化し、(例えば、多層デコーダライブラリの呼び出しを使用して)改良ストリームを復号化し、復号化されたベースストリーム及び復号化された改良ストリームを組み合わせて、復号化されたビデオストリームデータを取得する(これは、多層デコーダライブラリの呼び出し又は更なる呼び出しを使用して実行され得る)。
図2の方法200は、クライアントデバイスの適切に構成されたソフトウェア又はハードウェアを使用して実施され得る。代替的に、1つ以上のプロセッサ(例えば、好適なクライアントデバイス)によって処理されたときに、方法200を実装する命令は、コンピュータ可読記憶媒体上に記憶され得る。
図3は、方法200を例示的に実施する方法300を示し、この場合、オペレーティングシステムは、iOS、macOS(登録商標)及びtvOSなどの米国のCupertinoのApple Inc.によって開発されたオペレーティングシステムであり、多層コーディングスキームはLCEVCである。方法300は、ビデオツールボックスモジュール324内のプロセスを説明する。図3のビデオツールボックスモジュール324は、VLCKitラッパーを介してアクセスされる、ビデオツールボックス機能の修正版である。ビデオツールボックス機能は、VT-ビデオツールキット-Apple(登録商標)によって開発されたオペレーティングシステムとともに使用されるためのメディアライブラリ機能である。VLCKitは、libvlcの外部インタフェース用のラッパーである。libvlcは、Apple(登録商標)デバイスとともに使用され得るVLCメディアプレーヤのコアライブラリであり、libvlcはシステムレベルのライブラリを提供する実行可能ファイルとして実装され得る。修正されていない、ビデオツールボックスモジュール324は、前述のベースストリームなどの符号化ビデオストリームを復号化するハードウェアアクセラレートフレームワーク(Apple(登録商標)によって開発されたオペレーティングシステムの一部を形成するApple(登録商標)からのビデオツールキット)の使用を可能にする。本例は、フレームワークが多層コーディングスキーム(この場合、LCEVC)をサポートするように修正され得ることを可能にするように、ビデオツールボックスモジュール324を修正する。修正は、1つ以上のLCEVC固有のパッチをlibvlcに適用することによって、例えば、VLCkitインスタンスを構築する前に、パッチを適切なフォルダに配置することによって実施され得る。これにより、ビデオツールボックスがLCEVC拡張ビデオストリームを復号化できるようにするために必要な変更が提供される。
この変更は、LCEVC DecompressionSession 326の作成を伴い、LCEVC DecompressionSession 326は、変更されていないビデオツールボックスモジュール内のApple(登録商標)VTDecompressionSessionオブジェクトの一般化であり、LCEVCスキームを使用して符号化されたビデオストリームを復号化する機能を提供する。この実施例では、LCEVC DecompressionSession 326はまた、他のスキーム(単層コーディングスキームなど)を使用して符号化されたビデオストリームを復号化することを可能にする。
VTDecompressionSessionは、ビデオツールボックスによって提供されるセッションオブジェクトであり、ビデオデータの解凍を管理し、かつVTDecompressionSessionは、ベースストリームを復号化するためにApple(登録商標)によって開発されたオペレーティングシステムに組み込まれたオペレーティングシステムビデオ復号化機能である。LCEVC DecompressionSession 326では、VTDecompressionSessionは、修正されていないVideo Toolboxモジュールのように、ベースストリームを復号化するために利用される。LCEVC DecompressionSession326は、LCEVC符号化ストリームを復号化するために必要とされる追加の構造を更に備える。LCEVC DecompressionSession326について、図3の方法300を参照して説明する。
方法300は、VLCKit 302のインスタンスを作成することを含む。この場合、メディアプレーヤはVLCであり、libvlcは、VLCKit 300ラッパーを介してアクセス可能なメディアプレーヤライブラリである。libvlcライブラリは、メディアプレーヤビデオ復号化機能を含む。
ブロック304において、受信された符号化されたビデオストリームは、CMSampleBuffers内に分離される。CMSampleBuffersは、ビデオのサンプルを含むオブジェクトであり、メディアサンプルデータを、メディアパイプラインを介して移動させるために使用される。次いで、ビデオストリームは、LCEVC DecompressionSession 326モジュールによって処理される。
ブロック306において、方法200のブロック204と同様に、ビデオストリームがLCEVCを使用して符号化されているかどうかが判定される。ビデオストリームがLCEVCを使用して符号化されていると判定された場合、方法300はブロック308に進み、LCEVCペイロードがビデオストリームから抽出される。LCEVCペイロードは、LCEVCストリームのベースストリームであり、ベースコーデックを使用して符号化されている。
ブロック310で、ベースビデオストリームは、VTDecompressionSessionを使用して復号化される。ベースビデオストリームの復号化は、復号化されたベースビデオストリームのフレームの順序を、関連付けられた符号化されていない全解像度ビデオのフレームの順序と異ならせ得る。したがって、方法300は、復号化されたベースビデオストリームを提示順に並べ替えること312を含む。提示の順番は、最終的なビデオコンテンツのフレームが表示される順番に対応する。
ブロック314において、ブロック308において抽出されたLCEVCを使用して符号化されたビデオストリーム内の改良ストリームが、復号化され、復号化された基本ビデオストリームに適用されて、復号化されたビデオストリームを生成する。方法300のブロック314は、例えば、図4を参照して更に論じられるように、LCEVC復号化プロセスを実装するための少なくとも1つの好適な機能にアクセスするために、多層デコーダライブラリの呼び出しを伴う。
ブロック306において、ビデオストリームがLCEVCを使用して符号化されていないと判定される場合、次いで、VTDecompressionSession 316オブジェクトを使用して、修正されていないビデオツールボックスモジュールケースのように、ビデオストリームを復号化する。
ブロック314又は316のいずれかの後、復号化されたビデオストリームは、CVPixelBuffersとして返される。CVPixelBufferは、イメージバッファであり、ピクセルをメモリに保持する。ブロック318において、CVPixelBuffersが表示のための正しい順序にあるかどうかが判定される。CVPixelBuffersが正しい順序でない場合、方法300は、ブロック320に進み、ここで、CVPixelBuffersは、各フレームが正しく順序付けられるように並べ替えられ、それによって、修正されていないビデオツールボックスモジュールケースのように、ビデオストリームが元のビデオの表現を提供する。
ブロック318において、CVPixelBuffersが正しく順序付けられていると判定される場合、方法300は、ブロック322に進み、ここで、復号化されたビデオストリームは、提示のためにデキューされる。
例えば、図3のブロック314において実行されるように、LCEVCストリームがどのように復号化されるかの例が、図4に示されている。図4は、図1のクライアントデバイス100などのクライアントデバイス上にビデオコンテンツを表示するためのコンポーネントのコンピュータシステムレベル階層400を概略的に示す。最も高いレベルでは、クライアントアプリケーション402がある。これは、ビデオが表示されるソフトウェアアプリケーションである。ユーザは、クライアントデバイスに結合されたディスプレイ上でビデオを視聴することができる。クライアントアプリケーション402は、VLCKit 404のインスタンスを使用して、VLCメディアプレーヤのコアライブラリであるlibvlc406とインタフェースする。コアlibvlcライブラリは、メディアプレーヤ機能をクライアントアプリケーション402に組み込むことを可能にする実行可能なコンピュータプログラムコードを含み得る。この場合、libvlc406は、libvlcがLCEVC復号化をサポートすることを可能にする1つ以上のパッチを含むように修正される。このことは、libvlc406を実施するか又はlibvlc406とともに動作する1つ以上のファイル及び/又はコンピュータプログラムコード部分を修正することを含み得る。libvlc406内の修正されたモジュール408は、符号化されたビデオストリームに関連付けられたデータを処理し、ビデオストリームの関連コンポーネントをそれぞれのデコーダ410に供給し、デコーダ410は、例えば、オペレーティングシステムビデオ復号化機能及び多層復号化機能(例えば、多層デコーダライブラリによって提供される)を含んでいた。例えば、ベースストリームは、上述のように、オペレーティングシステムビデオ復号化機能によって復号化され得る一方、改良ストリームは、1つ以上のパッチ(例えば、多層デコーダライブラリに対応する)を用いて修正されたlibvlcを使用して復号化され得る。次に、復号化されたビデオコンテンツは、表示のために、クライアントアプリケーション402によって受信される。
上記の実施例は、例示的な例として理解されるべきである。更なる実施例が想定される。任意の1つの実施形態に関連して説明される任意の特徴が、単独で、又は説明される他の特徴と組み合わせて使用され得、また、実施例の任意の他の1つ以上の特徴、又は実施例の任意の他の任意の組み合わせと組み合わせて使用され得ることを理解されたい。更に、上記に記載されていない等価物及び修正は、添付の特許請求の範囲の範囲から逸脱せずに用いられ得る。

Claims (15)

  1. クライアントデバイス上でビデオストリームを復号化する方法であって、前記方法が、
    前記クライアントデバイス上のクライアントアプリケーションから、前記クライアントデバイス上で利用可能なメディアプレーヤライブラリによって実施される復号化機能を呼び出すことであって、前記メディアプレーヤライブラリによって実施される前記復号化機能が、前記クライアントデバイスのオペレーティングシステムによって実施される復号化機能の更なる呼び出しを含む、呼び出すことと、
    前記メディアプレーヤライブラリによって実施される前記復号化機能を、前記ビデオストリームが多層コーディングスキームを使用して符号化されているかどうかの判定を含むように修正することと、
    前記ビデオストリームが多層コーディングスキームを使用して符号化されていると判定することに応答して、
    前記ビデオストリームを処理して、前記多層コーディングスキームのベースストリーム及び改良ストリームを抽出することと、
    前記クライアントデバイスの前記オペレーティングシステムによって実施される前記復号化機能の前記更なる呼び出しを使用して前記ベースストリームを復号化して、復号化されたベースストリームを生成することと、
    前記符号化された改良ストリームを復号化して、復号化された改良ストリームを生成することと、
    前記復号化された改良ストリームを前記復号化されたベースストリームに適用して、復号化されたビデオストリームデータを生成することと、
    前記復号化されたビデオストリームデータを、前記メディアプレーヤライブラリによって実施される前記復号化機能に返すことと、を含む、方法。
  2. 前記ビデオストリームが前記多層コーディングスキームを使用して符号化されていないと判定することに応答して、前記オペレーティングシステムによって実施される前記復号化機能の前記更なる呼び出しを使用して前記ビデオストリームを復号化することを更に含む、請求項1に記載の方法。
  3. 前記メディアプレーヤライブラリによって実施される前記復号化機能が、表示のために、前記メディアプレーヤライブラリによって実施される前記復号化機能に返される前記復号化されたビデオストリームデータのフレームを並べ替える、請求項1又は2に記載の方法。
  4. 前記クライアントデバイスが、モバイルデバイスである、請求項1~3のいずれか一項に記載の方法。
  5. オペレーティングシステムによって実施される前記復号化機能が、ハードウェアによりアクセラレートされる、請求項1~4のいずれか一項に記載の方法。
  6. 前記クライアントデバイスの前記オペレーティングシステムが、iOS、macOS(登録商標)、及びtvOSのうちの1つである、請求項1~5のいずれか一項に記載の方法。
  7. 前記多層コーディングスキームが、低複雑度改良ビデオ符号化(LCEVC)スキームである、請求項1~6のいずれか一項に記載の方法。
  8. 前記復号化機能を前記修正することが、パッチを前記メディアプレーヤライブラリに適用することを含む、請求項1~7のいずれか一項に記載の方法。
  9. 前記パッチを前記メディアプレーヤライブラリに適用することが、前記メディアプレーヤライブラリによって実施される前記復号化機能のためのコンピュータプログラムコードを含むファイルを修正することと、前記クライアントデバイスの前記オペレーティングシステムによって実施される前記復号化機能のための更なるファイルを追加することと、を含む、請求項8に記載の方法。
  10. クライアントデバイスであって、
    オペレーティングシステムビデオ復号化機能を含むオペレーティングシステムと、
    ビデオを表示するためのクライアントアプリケーションと、
    前記クライアントアプリケーションによって使用されるためのメディアプレーヤビデオ復号化機能を含むメディアプレーヤライブラリであって、前記メディアプレーヤビデオ復号化機能が、前記オペレーティングシステムビデオ復号化機能の呼び出しを含む、メディアプレーヤライブラリと、を備え、
    前記メディアプレーヤビデオ復号化機能が、多層コーディングスキームを使用して符号化されたビデオストリームの受信時に多層復号化機能を選択的に実施する前記オペレーティングシステムビデオ復号化機能用のラッパーを含むように修正され、
    前記ビデオストリームが、ベースストリームと、改良ストリームとを含み、
    前記多層復号化機能が、前記ベースストリームに対する前記オペレーティングシステムビデオ復号化機能の呼び出しを含み、前記多層復号化機能が、前記オペレーティングシステムビデオ復号化機能の前記呼び出しの出力に前記改良ストリームの復号化されたバージョンを適用して、復号化されたビデオストリームデータを生成するように構成され、
    前記多層復号化機能が、前記復号化されたビデオストリームデータを、前記クライアントアプリケーションによって使用されるための前記メディアプレーヤビデオ復号化機能に返すように更に構成されている、クライアントデバイス。
  11. 前記多層コーディングスキームが、低複雑度改良ビデオコーディング(LCEVC)スキームである、請求項10に記載のクライアントデバイス。
  12. 前記多層復号化機能が、表示のために、前記復号化されたベースストリームのフレームを並べ替える、請求項10又は11に記載のクライアントデバイス。
  13. 前記オペレーティングシステムビデオ復号化機能の内部メソッドが、前記クライアントアプリケーション及び前記メディアプレーヤライブラリのうちの少なくとも一方に利用可能でない、請求項10~12のいずれか一項に記載のクライアントデバイス。
  14. 前記オペレーティングシステムビデオ復号化機能が、ハードウェアによりアクセラレートされる、請求項10~13のいずれか一項に記載のクライアントデバイス。
  15. 請求項1~9のいずれか一項に記載の方法を実行するように少なくとも1つのプロセッサによって実行可能な命令を記憶する、コンピュータ可読記憶媒体。
JP2023530582A 2020-11-27 2021-11-26 クライアントデバイス上でビデオストリームを復号化すること Pending JP2023550940A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2018743.1 2020-11-27
GB2018743.1A GB2601484A (en) 2020-11-27 2020-11-27 Decoding a video stream on a client device
PCT/GB2021/053076 WO2022112780A1 (en) 2020-11-27 2021-11-26 Decoding a video stream on a client device

Publications (1)

Publication Number Publication Date
JP2023550940A true JP2023550940A (ja) 2023-12-06

Family

ID=74099746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023530582A Pending JP2023550940A (ja) 2020-11-27 2021-11-26 クライアントデバイス上でビデオストリームを復号化すること

Country Status (7)

Country Link
US (1) US20240022743A1 (ja)
EP (1) EP4252422A1 (ja)
JP (1) JP2023550940A (ja)
KR (1) KR20230124552A (ja)
CN (1) CN116491123A (ja)
GB (1) GB2601484A (ja)
WO (1) WO2022112780A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2453137A1 (en) * 2001-07-06 2003-01-16 E-Genie Australia Pty Limited Method and system for computer software application execution
US9179144B2 (en) * 2012-11-28 2015-11-03 Cisco Technology, Inc. Fast switching hybrid video decoder
CN111210496B (zh) * 2018-11-19 2022-11-25 腾讯科技(深圳)有限公司 一种图片解码方法、装置以及设备
GB2618718B (en) 2019-03-20 2024-03-13 V Nova Int Ltd Low complexity enhancement video coding

Also Published As

Publication number Publication date
US20240022743A1 (en) 2024-01-18
GB202018743D0 (en) 2021-01-13
EP4252422A1 (en) 2023-10-04
KR20230124552A (ko) 2023-08-25
WO2022112780A1 (en) 2022-06-02
GB2601484A (en) 2022-06-08
CN116491123A (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
KR102027410B1 (ko) 계층화된 신호 품질 계층에서의 재구성 데이터의 송신
JP7016428B2 (ja) 帯域外エンドオブストリームnalユニットを復号化に使用する方法、装置、及びコンピュータプログラム
JP2012508485A (ja) Gpu加速を伴うソフトウエアビデオトランスコーダ
US10976986B2 (en) System and method for forwarding an application user interface
JP2009506456A (ja) 任意のフォーマットにおけるラージオブジェクトの通信のためのリモートプロトコルサポート
WO2015194179A1 (en) Bitstream partitions operation
TWI626841B (zh) 具有減少色彩解析度的視訊流之自適應處理
CN111955010A (zh) 用于解码或编码的方法、装置和介质
US11825104B2 (en) Methods, apparatuses, computer programs and computer programs and computer-readable media for scalable image coding
CN114641976B (zh) 用于流式传输媒体内容的方法、设备和计算机可读介质
JP2023550941A (ja) ブラウザ内でのビデオストリームの復号化
US10115174B2 (en) System and method for forwarding an application user interface
CN113228665A (zh) 用于处理配置数据的方法、设备、计算机程序和计算机可读介质
JP2023550940A (ja) クライアントデバイス上でビデオストリームを復号化すること
WO2023073365A1 (en) Enhancement decoding implementation and method
CN115867906A (zh) 使用基于会话的dash操作的基于会话的描述url定制
US20210409735A1 (en) Methods, apparatuses, computer programs and computer-readable media for scalable video coding and transmission
US12003742B2 (en) Methods, apparatuses, computer programs and computer-readable media for scalable image coding
US20240129500A1 (en) Flexible encoding of components in tiered hierarchical coding
WO2023136907A1 (en) Auxiliary mpds for mpeg dash to support prerolls, midrolls and endrolls with stacking properties
GB2617286A (en) Enhancement decoding implementation and method
WO2023118851A1 (en) Synchronising frame decoding in a multi-layer video stream