JP6804191B2 - ビデオストリームの後処理のための方法及び装置 - Google Patents

ビデオストリームの後処理のための方法及び装置 Download PDF

Info

Publication number
JP6804191B2
JP6804191B2 JP2015236181A JP2015236181A JP6804191B2 JP 6804191 B2 JP6804191 B2 JP 6804191B2 JP 2015236181 A JP2015236181 A JP 2015236181A JP 2015236181 A JP2015236181 A JP 2015236181A JP 6804191 B2 JP6804191 B2 JP 6804191B2
Authority
JP
Japan
Prior art keywords
video stream
client device
shaders
processing
gpu
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
JP2015236181A
Other languages
English (en)
Other versions
JP2016111705A5 (ja
JP2016111705A (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 JP2016111705A publication Critical patent/JP2016111705A/ja
Publication of JP2016111705A5 publication Critical patent/JP2016111705A5/ja
Application granted granted Critical
Publication of JP6804191B2 publication Critical patent/JP6804191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • 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
    • H04N21/234345Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • H04N21/25833Management of client data involving client hardware characteristics, e.g. manufacturer, processing or storage capabilities
    • 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/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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4318Generation of visual interfaces for content selection or interaction; Content or additional data rendering by altering the content in the rendering process, e.g. blanking, blurring or masking an image region
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Studio Devices (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)

Description

本発明は、ビデオストリームの処理の分野に関し、特に、シェーダ(shader)を使用するビデオストリームの後処理の分野に関する。
今日、ビデオ処理システムの多くは、典型的には、ビデオストリームを受信し、ビデオストリームを処理し、その後、ネットワークを介して遠隔クライアントに処理されたビデオストリームを送信するサーバを含む標準アーキテクチャに従う。
サーバ及び遠隔クライアントの両方の処理能力を使用することは、計算上の理由および性能を高めるために有利であり得る。
処理の一部は、グラフィック処理ユニット(GPU)によって行われる処理に関する。GPUは、ディスプレイに出力することを企図された画像を生成する。GPUは、また、ビデオストリーム内の画像を操作するようにも設定され得る。サーバクライアントシステムでは、グラフィック処理を実行するためにサーバ及びクライアントの両方でGPUを使用できることが有利であり得る。
US2013/0016107(CHNOW INC.)は、サーバ側のレンダリング(rendering)及びクライアント側のレンダリングの両方を利用することができる、グラフィックスをレンダリングするための方法に関する。この文書での主たるアイデアは、レンダリングがサーバ側で行われるべきか又はクライアント側で行われるべきかを決定することである。レンダリングがサーバ側で行われる場合には、ビデオデータ(すなわち、画素データ)が、サーバからクライアントに送られて、その後、表示される。レンダリングがクライアント側で行われる場合には、グラフィックデータ(すなわち、ベクトルデータ)が、クライアントに送られて、その後、クライアントのGPUを使用してビデオデータにレンダリングされる。クライアント及びサーバ内のGPUの利用可能な処理能力に基づいて、かつネットワーク回線容量に基づいてその選択が行われる。
US2013/0016107の方法は、グラフィックデータが、処理されて、例えば、コンピュータゲームなどのビデオデータにレンダリングされる用途において有利であり得る。サーバ側及びクライアント側の両方でビデオを処理するために、種々のアプローチが必要とされ、例えば、特殊効果及びビデオの後処理にシェーダを適用することが行われる。
上述したことを考慮し、本発明の目的は、上記の欠点のうちの1つ又は幾つかを解決するか少なくとも低減させることである。概して、上記の目的は添付の独立請求項によって達成される。
第1の側面によれば、本発明は、クライアント装置に接続されたビデオストリーム処理装置を備えたシステム内でビデオストリームを処理するための方法によって実現され、方法は、ビデオストリームに適用されるべき1以上のシェーダを設定すること、第1の処理によって、ビデオストリーム処理装置において、1以上のシェーダのうちの少なくとも1つをビデオストリームの少なくとも1つのサブセットに適用すること、第2の処理によって、クライアント装置において、1以上のシェーダのうちの少なくとも1つをビデオストリームの少なくとも1つのサブセットに適用することを含み、第2の処理で適用される1以上のシェーダのうちの少なくとも1つは、ビデオストリーム処理装置からクライアント装置に送信される。
シェーダは、コンピュータグラフィックスにおいて使用されるコンピュータプログラムである。シェーダは、例えば、特殊効果及びビデオの後処理のために使用される。様々な種類のシェーダが存在し、例えば、遠近法変換のために使用され得る頂点シェーダ、画素の色及び位置を変えるために使用され得るピクセルシェーダ、及びビデオ解析の計算のために使用され得るコンピュートシェーダが存在する。シェーダは、互換性のあるグラフィック処理ユニット(GPU)が実行されることを必要とする。例えば、全てのGPUがコンピュートシェーダをサポートするわけではない。GPUは、2次元及び3次元のベクトルグラフィックスをレンダリングするためのマルチプラットフォームアプリケーションプログラミングインターフェース(API)であるオープングラッフィクスライブラリ(OpenGL)をサポートし得る。
「処理」という用語は、本明細書の文脈では、処理が関係するビデオストリームの少なくとも1つのサブセットへのシェーダの実行として理解されるべきである。
クライアント装置は、GPUを有し、ウェブサーバからのウェブアプリケーションを実行して処理されたビデオストリームを表示する装置、例えば、タブレットコンピュータ又はスマートフォンであり得る。また、クライアント装置は、そのGPUを使用してビデオストリームを処理し、引き続いてそれを可視化する目的でディスプレイに送る装置を指してもよい。そのような装置の例は、タブレットコンピュータ又はスマートフォンと同じ方式で処理されたビデオストリームを表示し得る接続されたディスプレイを有するPCであり得るが、この場合において、タブレットコンピュータ又はスマートフォンが、その埋め込まれたディスプレイを同じ目的に対して使用する一方で、ディスプレイはコンピュータに接続される。クライアント装置は、また、1以上のカメラを備えたモニタリングシステムからのビデオを管理し視認するためのビデオ管理システム(VMS)内でも使用され得る。VMSは、例えば、クラウドベースシステム(例えば、様々なクラウドベースビデオホスティングサービスを介して)、セントラルサーバに基づいたシステム(例えば、Axis Communications ABによって製造される「Axis Camera Station」)、又はシステムのカメラにインストールされたソフトウェアがビデオ管理を行うサーバレスシステム(例えば、Axis Communications ABによって製造される「Axis Camera Companion」)に基づき得る。クライアント装置は、この場合に、VMSに接続され得る。
「ビデオストリームのサブセット」という用語によって、本明細書の文脈では、全体のビデオストリームが、ビデオストリーム処理装置及び/又はクライアント装置において処理される必要はないことが、理解されるべきである。ビデオストリーム処理装置での処理及びクライアント装置での処理は、フレームの(異なる)部分(例えば、フレームの半分)、又はフレームの(異なる)サブセット(例えば、ビデオストリーム内の1つおきのフレーム)、又はそれらの2つの組合せに関係することができる。他の実施形態によれば、第1及び第2の処理は、両方とも、ビデオストリームの全体を処理する。
本発明は、ビデオストリーム処理装置において全てのシェーダを提供し、ビデオストリーム処理装置にクライアント装置での処理のために必要とされるシェーダを送信させることによって、第1及び第2の処理のための適応性を増加させることができるという理解に基づく。言い換えると、シェーダの実行は、例えば、ネットワークトポロジー、ビデオストリーム処理装置及びクライアント装置の両方の能力及び負荷、並びに使用事例の特性に基づいて、ランタイムにおいて動的に分割され得る。代替的に、実行の分割は静的であり得る。
ある実施形態によれば、第1の処理は第2の処理とは異なる。これは、ビデオストリーム処理装置とクライアント装置との間で、ビデオストリームの1以上のシェーダの実行のために必要とされる処理を有利に分割するかもしれない。
ある実施形態によれば、第1の処理で適用される少なくとも1つのシェーダは、第2の処理で適用される少なくとも1つのシェーダとは異なる。例えば、任意の頂点シェーダが、ビデオストリーム処理装置で実行され得、任意のピクセルシェーダが、クライアント装置で実行され得る。
ある実施形態によれば、第1の処理が関連するビデオストリームの前記少なくとも1つのサブセットは、第2の処理が関連するビデオストリームの前記少なくとも1つのサブセットとは異なる。上述されたように、ビデオストリーム処理装置での処理及びクライアント装置での処理は、フレームの異なる部分(例えば、半分のフレームがビデオストリーム処理装置で処理され、残りの半分がクライアント装置で処理される)、又はフレームの異なるサブセット(例えば、ビデオストリーム内の1つおきのフレームがビデオストリーム処理装置で処理され、残りのフレームがクライアント装置で処理される)に関係することができる。
しかしながら、ある実施形態によれば、第1の処理及び第2の処理は互いに異ならない、すなわち、同じシェーダが、ビデオストリーム処理装置及びクライアント装置の両方でビデオストリームの同じ部分に適用されることが注意されるべきである。これは、第1及び第2の処理がインクレメンタルフィルタリング(incremental filtering)に関係する場合に、有利であり得る。この場合にも、シェーダの実行は、ビデオストリーム処理装置とクライアント装置との間で分割される。なぜなら、インクレメンタルフィルタリングの第1の部分が、ビデオストリーム処理装置で実行され、インクレメンタルフィルタリングの第2の部分が、クライアント装置で実行されるからである。
ある実施形態によれば、第1の処理及び/又は第2の処理は、クライアント装置のグラフィック処理ユニット(GPU)のタイプ及びビデオストリーム処理装置のグラフィック処理ユニット(GPU)のタイプから成るグループの少なくとも1つに依存する。上述されたように、異なるタイプのGPUは、異なるタイプのシェーダをサポートし得る。例えば、通常は、クライアント装置内のGPUのみが、テセレーションシェーダ(Tessellation shader)又はジオメトリシェーダ(Geometry shader)をサポートする。頂点シェーダは、テセレーションシェーダ及び/又はジオメトリシェーダの前に実行されることを必要とするので、実行の分割は、頂点シェーダがビデオストリーム処理装置で実行され、テセレーションシェーダ又はジオメトリシェーダがクライアント装置で実行されるように、行われ得る。
ある実施形態によれば、第1の処理及び/又は第2の処理は、ビデオストリームの継続時間全体にわたって変更される。ビデオストリーム処理装置とクライアント装置との間のシェーダの実行の分割は、ビデオストリームの各々の期間について個別に決定され得、それ故、ネットワークトポロジーにおける変化、ビデオストリーム処理装置及びクライアント装置の両方の負荷及び他の重要な特性の変化、並びに変化した使用事例(例えば、実行のレーテンシ要求(latency demand))に有利に従い得るので、このことは、更に、本発明方法の適応性を増加させ得る。
例えば、第1の処理及び/又は第2の処理は、ビデオストリーム処理装置とクライアント装置との間の接続の回線容量、クライアント装置のバッテリレベル、ビデオストリーム処理装置のバッテリレベル、クライアント装置のGPUの処理能力、及びビデオストリーム処理装置のGPUの処理能力から成るグループの少なくとも1つに関する情報に基づいて、ビデオストリームの継続時間全体にわたって動的に変更し得る。
上述したように、クライアント装置は、タブレットコンピュータなどのバッテリで駆動される装置であり得る。シェーダの実行は、クライアント装置のバッテリを弱らせ得るので、クライアント装置がバッテリを消費し尽しかけている場合に、ビデオストリーム処理装置がビデオストリームで1以上のシェーダを実行するための処理を必要とするより大きな部分を実行するならば、それは有利であり得る。
ある実施形態によれば、ビデオストリームは、符号化されたビデオストリームとして、ビデオストリーム処理装置から、第2の処理の前にビデオストリームが復号されるクライアント装置へ送信される。ビデオストリーム処理装置で適用される処理がいかなるものであっても、ビデオストリームは、符号化され、クライアント装置に送信されるので、このことは有利である。例えば、ビデオストリームは、符号化され、クライアント装置に送信される場合に、半処理(semi processed)されてもよい。更に、本実施形態は、ビデオストリーム処理装置内のエンコーダ(及びクライアント装置における対応するデコーダ)が常に実行されているので、シェーダの実行フローが容易に設定され得、維持され得るという点において有利である。更なる利点は、ビデオストリーム処理装置内のエンコーダ及びクライアント装置内のデコーダを有する基本システムレイアウトが、この実施形態によって変化しないということであり得る。更に、ネットワーク負荷は、1以上のシェーダの実行が、ビデオストリーム処理装置とクライアント装置との間でどのように分割されようとも、比較的安定であり得る。
ある実施形態によれば、ビデオストリームの送信は、第1の優先度レベルを有し、ビデオストリーム処理装置からクライアント装置への、第2の処理で適用される1以上のシェーダのうちの少なくとも1つの送信は、第1の優先度レベルよりも低い第2の優先度レベルを有する。したがって、送信を実行する順序は、それらのそれぞれの優先度レベルに基づく。この実施形態によれば、ビデオストリームの送信は、常に、クライアント装置で適用されるシェーダの送信よりも高い優先度を与えられ得る。これは、ビデオストリームが、クライアント装置に接続される又はクライアント装置内のディスプレイで表示される場合に、スタッタリングの危険性を低減し得る。この実施形態によれば、第2の処理におけるシェーダは、第2の処理のシェーダが移送される前に既に送信されてしまったビデオストリームのフレームに適用されない。
ある実施形態によれば、ビデオストリームの送信は、第1のネットワーク接続を介して実行され、ビデオストリーム処理装置からクライアント装置への、第2の処理で適用される1以上のシェーダのうちの少なくとも1つの送信は、第1のネットワーク接続とは異なる第2のネットワーク接続を介して実行される。例えば、シェーダがソケット又はHTTP接続を介して送信され得る一方で、ビデオストリームは、リアルタイムストリーミングプロトコル(RTSP)接続又はハイパーテキストトランスファープロトコル(HTTP)接続を介して送信され得る。
ある実施形態によれば、ビデオストリーム処理装置は、複数の実行スレッドを備え、ビデオストリームの送信は、第1のスレッドを実行することによって実行され、第2の処理で適用される1以上のシェーダのうちの少なくとも1つの送信は、第1のスレッドとは異なる第2のスレッドを実行することによって実行される。これは、更に、ビデオストリームが、第2の処理のシェーダの送信に優先して送信されることを容易にする。
ある実施形態によれば、方法は、更に、ビデオストリーム処理装置において、ビデオストリーム処理装置からクライアント装置へ送信されるべきビデオストリームのリクエストをクライアント装置から受信するステップ、及び、ビデオストリーム処理装置において、クライアント装置に関する情報、すなわち少なくともクライアント装置のGPUのタイプの情報を含むクライアント装置に関する情報をそのリクエストから抽出するステップを含み、第1の処理及び/又は第2の処理は抽出された情報に依存する。
クライアント装置からのビデオストリームのリクエストから、シェーダ実行の分割のために必要とされる情報をあらかじめ抽出しておくことによって、第1の処理及び第2の処理の決定が早く実行され得る。
ある実施形態によれば、ビデオストリーム処理は、クライアント装置によって送られるビデオストリームのリクエストに応答する、クライアント装置に関する情報のリクエストを含み得る。ビデオストリーム処理装置は、例えば、応答に含まれるJavaScriptを介して情報をリクエストし得る。クライアント装置がこの応答を受信した場合に、クライアント装置は、ビデオ処理装置に送られる更なる通信にリクエストされた情報を提供し得る。
第2の側面において、本発明は、ビデオストリームを処理するためのビデオストリーム処理装置を提供し、ビデオストリーム処理装置は、ビデオストリームに適用されるべき1以上のシェーダを記憶するためのメモリ、1以上のシェーダのうちの少なくとも1つが適用されるべきビデオストリームの少なくとも1つのサブセットに関連する第1の処理、及び1以上のシェーダのうちの少なくとも1つが適用されるビデオストリームの少なくとも1つのサブセットに関連する第2の処理を決定するためのシェーダハンドリングユニットを備える。ビデオストリーム処理装置は、更に、第1の処理を実行するためのグラフィック処理ユニット(GPU)、並びに、第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータを送信するように設定されたデジタルネットワークモジュールを備える。
ビデオ処理装置は、有利なことに、デジタルビデオカメラの一部分であってよく、ビデオストリームはデジタルビデオカメラによって取得される。これは、ビデオカメラに接続される更なる電子装置の必要性を低減し、例えば、組み立てにおける理由により、並びにビデオストリーム処理装置及びカメラを設置するために必要とされる空間を低減するので、有利である。
第3の側面において、本発明は、ビデオストリームを処理するためのシステムを提供し、システムは、ビデオストリーム処理装置を備え、ビデオストリーム処理装置は、ビデオストリームに適用されるべき1以上のシェーダを記憶するためのメモリ、1以上のシェーダのうちの少なくとも1つが適用されるべきビデオストリームの少なくとも1つのサブセットに関連する第1の処理、及び1以上のシェーダのうちの少なくとも1つが適用されるビデオストリームの少なくとも1つのサブセットに関連する第2の処理を決定するためのシェーダハンドリングユニットを備える。ビデオストリーム処理装置は、更に、第1の処理を実行するためのグラフィック処理ユニットGPU、ビデオストリームを符号化されたビデオストリームに符号化するように設定されたエンコーダ、並びに、デジタルネットワークを介して、第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ、第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ、及び符号化されたビデオストリームを送信するように設定されたデジタルネットワークモジュールを備える。システムは、更に、クライアント装置を備え、クライアント装置は、デジタルネットワークを介して、第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ、第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ、及び符号化されたビットストリームを受信するように設定されたデジタルネットワークモジュール、符号化されたビデオストリームをビデオストリームへ復号するように設定されたデコーダ、並びに1以上のシェーダのうちの受信した少なくとも1つ、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関する受信したデータを使用して、第2の処理を実行するためのGPUを備える。
第4の側面では、本発明は、処理能力を有する装置によって実行されたときに、第1の側面による方法を実行するように設定された指示命令を有するコンピュータ可読記憶媒体を備える、コンピュータプログラム製品を提供する。
第2の側面、第3の側面、及び第4の側面は、概して、第1の側面と同じ特徴及び利点を有し得る。
上記に加えて、本明細書のさらなる目的、特徴、及び利点は、添付の図面を参照するとともに、本発明の好適な実施形態の例示的で非限定的な詳細説明を通してより良く理解されるであろう。同じ参照番号が類似要素に対して使用されることになる。
シェーダを使用するビデオストリームの処理のフローチャートを示し、処理は、ビデオストリーム処理装置とクライアント装置との間で分割される。 ビデオストリーム処理装置とクライアント装置との間で、シェーダを使用してビデオストリームの処理を分割するために、ビデオストリーム処理装置とクライアント装置との間で送られるメッセージ及びデータを実施例によって示す。 シェーダを使用するビデオストリームの処理のシナリオを示す。 ビデオストリーム処理装置とクライアント処理装置との間で、図3aで示された処理を分割する異なる方式を示す。 ビデオストリーム処理装置とクライアント処理装置との間で、図3aで示された処理を分割する異なる方式を示す。 シェーダを使用するビデオストリームの処理のシナリオを示す。 ビデオストリーム処理装置とクライアント処理装置との間の、図4aで示された処理の動的に変更される分割を示す。 ビデオストリーム処理装置とクライアント処理装置との間の、図4aで示された処理の動的に変更される分割を示す。 ビデオストリーム処理装置及びクライアント装置を備えるシステムを示す。
図1は、シェーダを使用するビデオストリームの処理のフローチャートを実施例によって示す。フローチャートの第1のステップは、ビデオストリーム102に適用されるべき1以上のシェーダ105を設定するS102ステップである。図1で示されるように、ビデオストリーム102は、ビデオストリーム処理装置の外部で取得され得、ビデオストリーム処理装置へ送信され得る。幾つかの実施形態によれば、ビデオストリーム処理装置は、デジタルビデオカメラである。この場合は、ビデオストリーム102は、デジタルビデオカメラによって取得され、そのため、図1で示されるビデオストリーム処理装置へ送信されない。しかしながら、他の実施形態によれば、ビデオストリーム処理装置は、ビデオストリーム102を取得するビデオカメラから分離された装置である。この場合は、ビデオストリーム処理装置とビデオカメラとの間の接続は、有線接続又は無線接続であり得る。
更に、シェーダ105を設定するS102ステップは、図1では、ビデオストリーム処理装置の外部で、例えば、前処理のステップとして行われる。前処理のステップでは、ビデオストリーム102が解析され、適用されるべきシェーダ105がその解析に基づいて決定される。他の実施形態では、シェーダ105を設定するS102ステップは、ビデオストリーム処理装置内で実行される。更に別の実施形態によれば、1以上のシェーダは、常にビデオストリームに適用され、そのためビデオストリーム処理装置の中へハードコード化され得る、不変のシェーダである。
ビデオストリーム102に対する1以上のシェーダ105の適用は、第1及び第2の処理ステップに分割される。2つの処理ステップへの分割は、以下に説明される。第1の処理は、ビデオストリーム処理装置によって実行され、第2の処理は、ビデオストリーム処理装置に接続されたクライアント装置によって実行される。ビデオストリーム処理装置とクライアント装置との間の接続は、有線接続又は無線接続であり得る。
図1で示されるフローチャート内の次のステップは、第1の処理によって、ビデオストリーム処理装置において、(S102で既に設定された)1以上のシェーダ105のうちの少なくとも1つ107を、ビデオストリーム102の少なくとも1つのサブセットに適用するS104ステップである。このステップは、以下により詳細に説明されるように、ビデオストリーム処理装置のGPUを使用して実行される。
更に、第2の処理に対して必要とされるシェーダ108は、ビデオストリーム処理装置からクライアント装置に送信される(S106)。第2の処理が、テクスチャを使用するテクスチャマッピングを含む場合に、テクスチャも第2の処理に対して必要とされるシェーダ108の送信S106の一部として、又は(図示せぬ)別個の送信として送信され得る。
図1で明瞭に見られるように、フローチャートは、2つの別個のトラックを含む。一方のトラックは、1以上のシェーダ105をビデオストリーム102、102’に適用するためのものであり、かつ1以上のシェーダ105をビデオストリーム処理装置からクライアント装置へ送信するためのものであり、他方のトラックは、ビデオストリーム処理装置においてビデオストリーム102を符号化し(S108)、符号化されたビデオストリーム106をクライアント装置に送信し(S109)、かつ符号化されたビデオストリーム106をクライアント装置において復号する(S110)ためのものである。言い換えると、ビデオストリームは、符号化されたビデオストリーム106として、ビデオストリーム処理装置からクライアント装置へ送信され(S109)、クライアント装置で、ビデオストリームは第2の処理S112の前に復号される(S110)。それ故、第2の処理は、1以上のシェーダ105のうちの送信された少なくとも1つ108を、ビデオストリーム102’の少なくとも1つのサブセットに適用することに関する。
ビデオストリーム102’は、後に、ディスプレイ104によって表示され得る。1以上のシェーダのうちの全部が完全なビデオストリームに適用された場合に、ディスプレイ104で表示されるビデオストリーム102’は、完全に処理される。しかしながら、フローの2つのトラックのデザインは、符号化されたビデオを送信すること(S109)と、クライアント装置において第2の処理で適用されるべき1以上のシェーダ105のうちの少なくとも1つ108を送信すること(S106)についての、異なる優先度のレベルを容易にする。したがって、ディスプレイ104で表示されるビデオストリーム102’の少なくとも一部分が半分だけ処理されるか全く処理されないこともあり得る。例えば、ビデオストリーム102’の第1のフレームは、S102で既に設定された1以上のシェーダ105の1つのサブセットによって処理されるのみでよく、及び/又はビデオストリームの第1のフレームに適用されたシェーダが、ビデオストリームの第1のフレームの1つのサブセットのみに適用されていてもよい。言い換えると、第2の処理のために必要とされるシェーダ108がクライアント装置に送信されている(S106)前に、既に表示されたビデオストリームのフレームに第2の処理は適用されていない。リアルタイムの適用、すなわち、リアルタイムで、ビデオが取得され、処理され、かつ表示される場合には、第2の処理のためのシェーダの送信(S106)より高い優先度をビデオストリームの送信(S109)に与えることは有利であり得る。
図2は、ビデオストリーム処理装置とクライアント装置との間で行われる送信を、実施例によって示している。第1の送信は、クライアント装置からビデオストリーム処理装置に送られる(S202)ビデオのリクエスト、例えば、httpリクエストである。リクエストがビデオストリーム処理装置によって受信されると、ビデオストリーム処理装置は、直ちに、ビデオ202をクライアント装置に送信し始める。ビデオのリクエストから、ビデオストリーム処理装置は、クライアント装置がGPUを有するか否か、GPUのタイプ、クライアント装置のオペレーティングシステム(OS)などの、クライアント装置に関する情報を抽出する。この情報は、1以上のシェーダの実行がビデオストリーム処理装置とクライアント装置との間で分割されるべきか否か、及びその場合にどのようにしてシェーダの実行が分割されるべきかを、決定するために使用され得る。
しかしながら、処理の分割を行うために更なる情報が必要とされる場合に、そのビデオストリーム処理装置は、クライアント装置に送られる(S204)その応答メッセージにおいて、クライアント装置に関する更なる情報をリクエストし得る。例えば、更なる情報のリクエストは、http応答内に含まれるJavaScriptコード内に埋め込まれ得る。
そのような更なる情報がリクエストされた場合に、クライアント装置は、ビデオストリーム処理装置へ送信される(S206)メッセージ内にリクエストされた情報を提供し得る。
更なる情報がビデオストリーム処理装置によってリクエストされ(S204)、後に、ビデオストリーム処理装置に送信された(S206)としても、又はクライアント装置からのビデオのリクエスト内に提供された情報が、十分であるとみなされた場合であっても、シェーダの処理の分割が行われた後には、クライアント装置における第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータが、クライアント装置に送信される(S208)。
ある実施形態によれば、第1の処理及び/又は第2の処理は、ビデオストリーム202の継続時間全体にわたって動的に変更させられる。これは、更なる情報がクライアント装置からビデオストリーム処理装置に送信される(S212)ことによって、促され得る。この更なる情報は、例えば、クライアント装置のバッテリレベル、及び/又はクライアント装置のGPUの処理能力に関係し得る。このタイプの情報は、クライアント装置から送信された(S202)ビデオのリクエストにおいて、又は更なる情報を有する第1のメッセージ(S206)において既に送信されていてもよい。しかし、情報は期間を経て動的に変わり得るクライアント装置の特性に関係するので、ビデオストリーム処理装置とクライアント装置との間でシェーダの処理を分割する場合に、更新された情報を考慮に入れることが有利であり得る。更なる情報は、クライアント装置の自身の主導で、又はビデオストリーム処理装置からのそのような更なる情報のリクエストの送信(S210)に対する応答として、送信され得る(S212)。更に、第1の処理及び/又は第2の処理は、ビデオストリーム処理装置において直接的に利用可能な情報、例えば、ビデオストリーム処理装置とクライアント装置との間の接続の回線容量、ビデオストリーム処理装置のGPUの処理能力、及び/又はビデオストリーム処理装置のバッテリレベルに基づいて、動的に変えてもよい。
第2の処理が、上述したものによる新しい情報に基づいて変更される場合に、クライアント装置において変更された第2の処理に適用されるべき1以上のシェーダのうちの少なくとも1つ、及び変更された第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータが、クライアント装置に送信される(S214)。
ある実施形態によれば、第2の処理が新しい情報に基づいて変更されるが、元々の第2の処理と比較して変更された第2の処理に1以上のシェーダのうちの同じ少なくとも1つが適用される場合に、変更された第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータのみが、クライアント装置に送信されてもよい(S214)。1以上のシェーダのうちの少なくとも1つのみが変更された場合に、同じことがあてはまり、その場合に、クライアント装置において変更された第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つのみが、クライアント装置に送信されてもよい(S214)。
更に、第2の処理が変更された場合に(例えば、第2の処理で以前に適用されたシェーダのうちの1つが、もはや第2の処理の部分ではない場合に)、ビデオストリーム処理装置は、除去されたシェーダを適用することを止めるための命令をクライアント装置に送るだけでもよい。
ビデオストリーム処理装置が、ビデオストリーム202を幾つかのクライアント装置に同時に送信し得ることは注意されるべきである。この場合は、第1の処理と第2の処理との間の全処理の分割が、種々のクライアント装置の能力及び性能に応じて、それらに対して別個に行われ得る。ビデオストリーム処理装置のGPUは、幾つかの種々のシェーダ(例えば、頂点シェーダ、ピクセルシェーダ、コンピュートシェーダ)が並行して実行されることを扱い得るので、そのような装置固有の分割を行うことが可能である。更に、種々のクライアント装置が、種々のビデオストリーム(例えば、種々の解像度、フレームレート、及び/又は視野の部分をデジタルに拡大するなど)をリクエストし得ることは、注意されるべきである。
図3aは、シェーダを使用するビデオストリームの処理のシナリオを示す。このシナリオでは、3つのシェーダS1、S2、S3が、3つのフレーム#1、#2、#3を含んだビデオストリームに適用されるように設定される。図3bでは、以下のように、3つのフレームの処理が、ビデオストリーム処理装置とクライアント装置との間で分割される。
第1及び第2の処理の両方のために、フレーム#1、#2、#3の各々における画素の全部が処理される。それは、フレーム#1、#2、#3を表す領域が完全にドット模様で表されていることによって示される。しかしながら、第1の処理は、シェーダS1、S2の2つをフレーム#1、#2、#3に適用することを含み、第2の処理は、第3のシェーダS3をフレーム#1、#2、#3に適用することを含む。したがって、第1の処理で適用される少なくとも1つのシェーダS1、S2は、第2の処理で適用される少なくとも1つのシェーダS3とは異なる。
図3Cでは、シェーダの処理の他のタイプの分割が行われる。この実施形態によれば、3つのシェーダS1、S2、S3の全部が、第1及び第2の処理の両方に適用される。代わりに、第1及び第2の処理は、ビデオストリームのフレーム#1、#2、#3の異なるサブセットに関連する。図3cでは、第1の処理が、各々のフレーム#1、#2、#3内の画素の半分に関連し、第2の処理が、各々のフレーム#1、#2、#3の画素の他の半分に関連する。したがって、第1の処理が関連するビデオストリームのサブセットは、第2の処理が関連するビデオストリームのサブセットとは異なる。フレームを分割する他の方式が等しく可能であり、例えば、1つおきのフレームが、ビデオストリーム処理装置で処理され得、一方、クライアント装置での処理が、残りのフレームを担当する。他の可能性は、ビデオストリーム処理装置で画素の2/3を処理してクライアント装置で画素の残りの1/3を処理すること、又は処理される画素を分割する任意の他の適切な方式を含む。
図4aは、シェーダを使用するビデオストリームの処理の別のシナリオを示す。このシナリオでは、3つのシェーダS1、S2、S3が、6つのフレーム#1、#2、#3、#4、#5、#6を含んだビデオストリームに適用されるように設定される。
図4bは、最初の3つのフレーム#1、#2、#3の処理を示す。図4bにおける第1及び第2の処理の両方に対して、フレーム#1、#2、#3の各々内の画素の全部が処理される。しかしながら、第1の処理は、シェーダS1、S2の2つをフレーム#1、#2、#3に適用することを含み、第2の処理は、第3のシェーダS3をフレーム#1、#2、#3に適用することを含む。
上述のように、第1の処理及び/又は第2の処理は、ビデオストリームの継続時間全体にわたって動的に変更し得る。このことは、最後の3つのフレーム#4、#5、#6の処理を示す図4cで示される。図4cでは、第1及び第2の処理は、図4bにおける第1及び第2の処理と比較して変更されており、第2のシェーダS2の実行が、移動されてもはや、クライアント装置での第2の処理の部分となっている。
ビデオ処理装置とクライアント装置との間でシェーダの処理を分割する場合に、上述したものとは異なる更なる考慮が行われてもよい。例えば、1以上のシェーダのうちの1つが、ビデオストリーム上にプライバシーマスクを生成する場合に、そのプライバシーマスクが、第1の処理でその全体において生成されるとすれば有利であり得る。プライバシーマスクは、クライアント装置へ送られる符号化されたビデオに既に適用されているので、見る者に対して極秘ビデオデータを表示する危険性を低減する。
更に、低いレーテンシが必要なシェーダについて、及びクライアント装置における又はクライアント装置に接続されたディスプレイにおける相互ユーザインターフェースに関連するシェーダについて、これらのシェーダの実行は、クライアント装置で有利に実行される。
図3b‐c及び図4b‐cでは、第1の処理は第2の処理とは異なる。しかしながら、前述したように、第1の処理及び第2の処理は同一であり得、例えば、それは、シェーダがビデオストリームのインクレメンタルフィルタリングを実行している場合である。
図5は、ビデオストリームを処理するためのシステム500を示す。システム500は、クライアント装置516に接続されたビデオストリーム処理装置502を備える。
ビデオストリーム処理装置は、ビデオストリームに適用されるべき1以上のシェーダを記憶するためのメモリ504を備える。メモリ504は、限定されないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD‐ROM、デジタル多用途ディスク(DVD)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は望ましい情報を記憶するために使用され得る及びコンピュータによってアクセスされ得る任意の他の媒体を含み得る。
ビデオストリーム処理装置502は、更に、1以上のシェーダのうちの少なくとも1つが適用されるビデオストリームの少なくとも1つのサブセットに関連する第1の処理、及び1以上のシェーダのうちの少なくとも1つが適用されるべきビデオストリームの少なくとも1つのサブセットに関連する第2の処理を決定するために使用され得る、シェーダハンドリングユニット506を備える。シェーダハンドリングユニット506は、第1の処理及び第2の処理を決定する場合に、ビデオストリーム処理装置、クライアント装置、及び/又はビデオストリーム処理装置とクライアント装置との間の接続に関する情報を考慮に入れ得る。また、シェーダハンドリングユニット506は、ビデオストリームの内容を考慮に入れてもよい。すなわち、ビデオ解析アルゴリズムを採用すること又は別の装置からビデオ解析データを提供されることによってである。例えば、ビデオストリームが、覆われる必要がある(すなわち、プライバシーマスクによって)人間の顔を含むということが判断された場合に、シェーダハンドリングユニットは、第1の処理がそのようなプライバシーマスクをビデオストリームに適用するためのシェーダを含むべきであるという決定をし得る。ある実施形態によれば、シェーダハンドリングユニットは、ビデオストリーム処理装置から離れて設けられる。この実施形態によれば、第1及び第2の処理は、ビデオストリーム処理装置で決定される代わりに、ビデオストリーム処理装置に提供される。
ビデオストリーム処理装置は、更に、第1の処理を実行するためのGPU508、及びビデオストリームを符号化されたビデオストリーム106に符号化するように設定されたエンコーダ512を備える。符号化されたビデオストリーム106は、その後、デジタルネットワークモジュール510によって、デジタルネットワーク514を介して、クライアント装置516に送信される。デジタルネットワークモジュール510は、また、第2の処理に適用されるべき1以上のシェーダの少なくとも1つ108、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ524を送信する。例えば、図3cで示された実施形態では、第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ524は、各々のフレームの右半分が第2の処理で処理されるべきことを示す。シェーダハンドリングユニット506及びエンコーダ512は、ソフトウェア内に実装され、ビデオストリーム処理装置502内の1以上のプロセッサによって実行される。
上述のように、符号化されたビデオストリーム106の送信には、第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ108、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ534の送信より高い優先度が与えられ得る。この特徴は、図5で、ビデオストリーム106の送信を表す線が、シェーダ108及びデータ524の送信を表す線と比較してより太くなっていることによって示される。この優先度の付与は、複数の方式で実現され得る。例えば、ビデオストリーム106の送信は第1のネットワーク接続を介して実行され得、シェーダ108及びデータ524の送信は、第1のネットワークとは異なる第2のネットワークを介して実行され得る。この場合には、ビデオストリーム106の送信のための接続は、シェーダ108及びデータ524の送信のための接続と比較して、より高い回線容量を有し得る。他の実施形態によれば、ビデオストリーム処理装置502は、複数の実行スレッドを備え、ビデオストリーム106の送信は、第1のスレッドを実行することによって実行され、第2の処理で適用されるシェーダ108、及びデータ524の送信は、第1のスレッドとは異なる第2のスレッドを実行することによって実行される。
符号化されたビデオストリーム106、シェーダ108、及びデータ524は、クライアント装置内のデジタルネットワークモジュール522によって受信される。したがって、クライアント装置516内のデジタルネットワークモジュール522は、デジタルネットワーク514を介して、第2の処理で適用されるべき1以上のシェーダのうちの少なくとも1つ108、第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関するデータ524、及び符号化されたビデオストリーム106を受信するように設定されている。クライアント装置516は、更に、符号化されたビデオストリーム106をビデオストリームに復号するように設定されたデコーダ520、及び1以上のシェーダのうちの受信した少なくとも1つ108、及び第2の処理が関連するビデオストリームの少なくとも1つのサブセットに関する受信したデータ524を使用して、第2の処理を実行するためのGPU518を備える。最後に、クライアント装置は、処理されたビデオストリーム526を表示するためのディスプレイ104に接続され得る。

Claims (11)

  1. クライアント装置(516)に接続されたビデオストリーム処理装置(502)を備えたシステム内で、ビデオストリーム(102、102’、202)を処理するための方法であって、
    前記ビデオストリームに適用されるべき1以上のシェーダ(S1、S2、S3、105)を設定する(S102)こと、
    前記ビデオストリーム処理装置において、前記ビデオストリーム処理装置から前記クライアント装置へ送信されるべきビデオストリームのリクエストを前記クライアント装置から受信する(S202)こと、
    前記ビデオストリーム処理装置において、少なくとも前記クライアント装置のグラフィック処理ユニット(GPU)のタイプの情報を含む前記クライアント装置に関する情報を前記リクエストから抽出すること、
    第1の処理によって、前記ビデオストリーム処理装置で、前記1以上のシェーダのうちの少なくとも1つ(107)を、前記ビデオストリーム(102、202)の少なくとも1つのサブセットに適用する(S104)こと、
    第2の処理によって、前記クライアント装置で、前記1以上のシェーダのうちの少なくとも1つ(108)を、前記ビデオストリームの少なくとも1つのサブセットに適用する(S112)ことを含み、
    前記第1の処理及び/又は前記第2の処理は、抽出された前記情報のうち、少なくとも前記クライアント装置のGPUのタイプの情報に依存し、
    前記第2の処理で適用される前記1以上のシェーダのうちの少なくとも1つは、前記ビデオストリーム処理装置から前記クライアント装置に送信され(S106、S208、S214)、かつ
    前記ビデオストリームは、符号化されたビデオストリームとして、前記ビデオストリーム処理装置から前記クライアント装置に送信され、そこで前記ビデオストリームは前記第2の処理の前に復号され、
    前記ビデオストリームの送信は、第1の優先度レベルを有し、前記ビデオストリーム処理装置から前記クライアント装置への、前記第2の処理で適用される前記1以上のシェーダのうちの前記少なくとも1つの送信は、前記第1の優先度レベルよりも低い第2の優先度レベルを有し、送信の順序はそれらのそれぞれの優先度レベルに基づく、方法。
  2. 前記第1の処理は前記第2の処理とは異なる、請求項1に記載の方法。
  3. 前記第1の処理で適用される前記少なくとも1つのシェーダは、前記第2の処理で適用される前記少なくとも1つのシェーダとは異なる、請求項2に記載の方法。
  4. 前記第1の処理が関連する前記ビデオストリームの前記少なくとも1つのサブセットは、前記第2の処理が関連する前記ビデオストリームの前記少なくとも1つのサブセットとは異なる、請求項2又は3に記載の方法。
  5. 前記第1の処理及び/又は前記第2の処理は、
    前記クライアント装置のグラフィック処理ユニット(GPU)(518)のタイプ、及び
    前記ビデオストリーム処理装置のグラフィック処理ユニット(GPU)(508)のタイプから成るグループの少なくとも1つに依存する、請求項1から4のいずれか一項に記載の方法。
  6. 前記第1の処理及び/又は前記第2の処理は、前記ビデオストリームの継続時間全体にわたって変更される、請求項1から5のいずれか一項に記載の方法。
  7. 前記第1の処理及び/又は前記第2の処理は、
    前記ビデオストリーム処理装置と前記クライアント装置との間の接続の回線容量、
    前記クライアント装置のバッテリレベル、
    前記ビデオストリーム処理装置のバッテリレベル、
    前記クライアント装置の前記GPUの処理能力、及び
    前記ビデオストリーム処理装置の前記GPUの処理能力から成るグループの少なくとも1つに関する情報に基づいて、前記ビデオストリームの継続時間全体にわたって動的に変更される、請求項6に記載の方法。
  8. 前記ビデオストリームの送信は、第1のネットワーク接続を介して実行され、前記ビデオストリーム処理装置から前記クライアント装置への、前記第2の処理で適用される前記1以上のシェーダのうちの少なくとも1つの送信は、前記第1のネットワーク接続とは異なる第2のネットワーク接続を介して実行される、請求項に記載の方法。
  9. ビデオストリーム(102、202、202’)を処理するためのシステム(500)であって、クライアント装置(516)に接続されたビデオストリーム処理装置(502)を備え、
    前記ビデオストリーム処理装置は、
    前記ビデオストリーム処理装置から前記クライアント装置へ送信されるべきビデオストリームのリクエストを前記クライアント装置から受信し(S202)、
    少なくとも前記クライアント装置のグラフィック処理ユニット(GPU)のタイプの情報を含む前記クライアント装置に関する情報を前記リクエストから抽出するように設定されており、
    前記ビデオストリーム処理装置は、
    前記ビデオストリームに適用されるべき1以上のシェーダ(S1、S2、S3、105)を記憶するためのメモリ(504)、
    前記1以上のシェーダのうちの少なくとも1つ(107)が適用されるべき前記ビデオストリームの少なくとも1つのサブセットに関連する第1の処理、及び前記1以上のシェーダのうちの少なくとも1つ(108)が適用されるべき前記ビデオストリームの少なくとも1つのサブセットに関連する第2の処理を決定するためのシェーダハンドリングユニット(506)、
    前記第1の処理を実行する(S104)ためのグラフィック処理ユニット(GPU)(508)、
    前記ビデオストリームを符号化されたビデオストリームに符号化するように設定されたエンコーダ、及び
    前記第2の処理で適用されるべき(S112)前記1以上のシェーダのうちの少なくとも1つと、前記第2の処理が関連する前記ビデオストリームの前記少なくとも1つのサブセットに関するデータと、前記符号化されたビデオストリームとをデジタルネットワークを介して送信する(S106、S208、S214)ように設定されたデジタルネットワークモジュール(510)を備え、
    前記シェーダハンドリングユニット(506)は、抽出された前記情報のうち、少なくとも前記クライアント装置のGPUのタイプの情報に依存して前記第1の処理及び/又は前記第2の処理を決定するように設定され、
    前記クライアント装置(516)は、
    前記デジタルネットワークを介して、前記第2の処理で適用されるべき前記1以上のシェーダのうちの少なくとも1つと、前記第2の処理が関連する前記ビデオストリームの前記少なくとも1つのサブセットに関するデータと、符号化されたビデオストリームとを受信するように設定されたデジタルネットワークモジュール(522)、
    前記符号化されたビデオストリームをビデオストリームへ復号する(S110)ように設定されたデコーダ(520)、並びに
    前記1以上のシェーダのうちの受信した少なくとも1つ、及び前記第2の処理が関連する前記ビデオストリームの前記少なくとも1つのサブセットに関する受信したデータを使用して、前記第2の処理を実行する(S112)ためのGPU(518)を備え、
    前記ビデオストリームは、符号化されたビデオストリームとして、前記ビデオストリーム処理装置から前記クライアント装置に送信され、そこで前記ビデオストリームは前記第2の処理の前に復号され、
    前記ビデオストリームの送信は、第1の優先度レベルを有し、前記ビデオストリーム処理装置から前記クライアント装置への、前記第2の処理で適用される前記1以上のシェーダのうちの前記少なくとも1つの送信は、前記第1の優先度レベルよりも低い第2の優先度レベルを有し、送信の順序はそれらのそれぞれの優先度レベルに基づく、システム。
  10. ビデオストリーム処理装置がデジタルビデオカメラであり、前記ビデオストリームは前記デジタルビデオカメラによって取得される、請求項に記載のシステム。
  11. 処理能力を有する装置によって実行されたときに、請求項1からのいずれか一項に記載の方法を実行するように設定された指示命令を有するコンピュータ可読記憶媒体。
JP2015236181A 2014-12-04 2015-12-03 ビデオストリームの後処理のための方法及び装置 Active JP6804191B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP14196324.9A EP3029940B1 (en) 2014-12-04 2014-12-04 Method and device for post processing of a video stream
EP14196324.9 2014-12-04

Publications (3)

Publication Number Publication Date
JP2016111705A JP2016111705A (ja) 2016-06-20
JP2016111705A5 JP2016111705A5 (ja) 2019-01-17
JP6804191B2 true JP6804191B2 (ja) 2020-12-23

Family

ID=52015919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015236181A Active JP6804191B2 (ja) 2014-12-04 2015-12-03 ビデオストリームの後処理のための方法及び装置

Country Status (6)

Country Link
US (1) US10049424B2 (ja)
EP (1) EP3029940B1 (ja)
JP (1) JP6804191B2 (ja)
KR (1) KR102417055B1 (ja)
CN (1) CN105677270B (ja)
TW (1) TWI699116B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2520334B (en) * 2013-11-18 2015-11-25 Helen Bradley Lennon A video broadcast system and a method of disseminating video content
CA3059743A1 (en) 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding
JP7389602B2 (ja) * 2019-09-30 2023-11-30 株式会社ソニー・インタラクティブエンタテインメント 画像表示システム、画像処理装置、および動画配信方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7671862B1 (en) * 2004-05-03 2010-03-02 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7570267B2 (en) * 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US8098256B2 (en) * 2005-09-29 2012-01-17 Apple Inc. Video acquisition with integrated GPU processing
US8723951B2 (en) 2005-11-23 2014-05-13 Grandeye, Ltd. Interactive wide-angle video server
US7873229B2 (en) * 2006-02-08 2011-01-18 Moxair, Inc. Distributed processing for video enhancement and display power management
WO2007103883A2 (en) * 2006-03-07 2007-09-13 Sony Computer Entertainment America Inc. Dynamic replacement and insertion of cinematic stage props in program content
JP2008140368A (ja) * 2006-08-01 2008-06-19 Nvidia Corp 表示用にネットワークを介して通信されるコンテンツを処理するためのマルチグラフィックスプロセッサシステム及び方法
TW201114250A (en) * 2009-10-15 2011-04-16 Avermedia Information Inc IP camera and image output method applied thereto
US8803892B2 (en) * 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
US8681162B2 (en) * 2010-10-15 2014-03-25 Via Technologies, Inc. Systems and methods for video processing
US9007432B2 (en) 2010-12-16 2015-04-14 The Massachusetts Institute Of Technology Imaging systems and methods for immersive surveillance
WO2012097178A1 (en) 2011-01-14 2012-07-19 Ciinow, Inc. A method and mechanism for performing both server-side and client-side rendering of visual data
US9250966B2 (en) 2011-08-11 2016-02-02 Otoy, Inc. Crowd-sourced video rendering system
JP2013055454A (ja) * 2011-09-02 2013-03-21 Toshiba Corp 映像再生装置及び映像再生方法
WO2013153787A1 (ja) * 2012-04-12 2013-10-17 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
US9378582B2 (en) * 2012-07-31 2016-06-28 Siemens Product Lifecycle Management Software Inc. Rendering of design data
US9264749B2 (en) * 2012-12-13 2016-02-16 Microsoft Technology Licensing, Llc Server GPU assistance for mobile GPU applications
US9069568B2 (en) 2012-12-19 2015-06-30 International Business Machines Corporation Compilation dependency resolution from a diverse group of candidate resources
US20150087414A1 (en) * 2013-09-26 2015-03-26 Cellco Partnership D/B/A Verizon Wireless Cloud gaming implemented using a mobile device and a display device

Also Published As

Publication number Publication date
US20160165282A1 (en) 2016-06-09
KR102417055B1 (ko) 2022-07-05
EP3029940B1 (en) 2017-03-15
KR20160067798A (ko) 2016-06-14
CN105677270A (zh) 2016-06-15
TW201622426A (zh) 2016-06-16
US10049424B2 (en) 2018-08-14
JP2016111705A (ja) 2016-06-20
TWI699116B (zh) 2020-07-11
EP3029940A1 (en) 2016-06-08
CN105677270B (zh) 2018-06-26

Similar Documents

Publication Publication Date Title
US10979663B2 (en) Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos
US9378582B2 (en) Rendering of design data
JP5567744B2 (ja) ステートレス圧縮を利用したコンポジットビデオ画像をストリーミングする方法およびプログラム
US12034987B2 (en) Systems and methods of orchestrated networked application services
US9426476B2 (en) Video stream
CN105917382B (zh) 用于交互式图形流传输的方法和系统
CN115190345B (zh) 用于显示媒体的协调控制方法、客户端设备及存储介质
JP6804191B2 (ja) ビデオストリームの後処理のための方法及び装置
EP4375936A1 (en) Image processing method and apparatus, computer device and storage medium
US9335964B2 (en) Graphics server for remotely rendering a composite image and method of use thereof
CN116636224A (zh) 可替代联网应用程序服务的系统和方法
US9774877B2 (en) Digital watermarking for securing remote display protocol output
US20230042078A1 (en) Encoding and decoding views on volumetric image data
CN117616762A (zh) 利用3d图形增强视频或外部环境
Matsui et al. Virtual desktop display acceleration technology: RVEC
CN113663328B (zh) 画面录制方法、装置、计算机设备及存储介质
Wu et al. Edge-assisted Real-time Dynamic 3D Point Cloud Rendering for Multi-party Mobile Virtual Reality
CN117793441A (zh) 视频画质增强方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191105

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200910

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20200910

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200924

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20200929

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: 20201117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201202

R150 Certificate of patent or registration of utility model

Ref document number: 6804191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250