(57)【特許請求の範囲】
【請求項１】
クライアント装置（５１６）に接続されたビデオストリーム処理装置（５０２）を備えたシステム内で、ビデオストリーム（１０２、１０２’、２０２）を処理するための方法であって、
前記ビデオストリームに適用されるべき１以上のシェーダ（Ｓ１、Ｓ２、Ｓ３、１０５）を設定する（Ｓ１０２）こと、
前記ビデオストリーム処理装置において、前記ビデオストリーム処理装置から前記クライアント装置へ送信されるべきビデオストリームのリクエストを前記クライアント装置から受信する（Ｓ２０２）こと、
前記ビデオストリーム処理装置において、少なくとも前記クライアント装置のグラフィック処理ユニット（ＧＰＵ）のタイプの情報を含む前記クライアント装置に関する情報を前記リクエストから抽出すること、
第１の処理によって、前記ビデオストリーム処理装置で、前記１以上のシェーダのうちの少なくとも１つ（１０７）を、前記ビデオストリーム（１０２、２０２）の少なくとも１つのサブセットに適用する（Ｓ１０４）こと、
第２の処理によって、前記クライアント装置で、前記１以上のシェーダのうちの少なくとも１つ（１０８）を、前記ビデオストリームの少なくとも１つのサブセットに適用する（Ｓ１１２）ことを含み、
前記第１の処理及び／又は前記第２の処理は、抽出された前記情報のうち、少なくとも前記クライアント装置のＧＰＵのタイプの情報に依存し、
前記第２の処理で適用される前記１以上のシェーダのうちの少なくとも１つは、前記ビデオストリーム処理装置から前記クライアント装置に送信され（Ｓ１０６、Ｓ２０８、Ｓ２１４）、かつ
前記ビデオストリームは、符号化されたビデオストリームとして、前記ビデオストリーム処理装置から前記クライアント装置に送信され、そこで前記ビデオストリームは前記第２の処理の前に復号され、
前記ビデオストリームの送信は、第１の優先度レベルを有し、前記ビデオストリーム処理装置から前記クライアント装置への、前記第２の処理で適用される前記１以上のシェーダのうちの前記少なくとも１つの送信は、前記第１の優先度レベルよりも低い第２の優先度レベルを有し、送信の順序はそれらのそれぞれの優先度レベルに基づく、方法。
【請求項２】
前記第１の処理は前記第２の処理とは異なる、請求項１に記載の方法。
【請求項３】
前記第１の処理で適用される前記少なくとも１つのシェーダは、前記第２の処理で適用される前記少なくとも１つのシェーダとは異なる、請求項２に記載の方法。
【請求項４】
前記第１の処理が関連する前記ビデオストリームの前記少なくとも１つのサブセットは、前記第２の処理が関連する前記ビデオストリームの前記少なくとも１つのサブセットとは異なる、請求項２又は３に記載の方法。
【請求項５】
前記第１の処理及び／又は前記第２の処理は、
前記クライアント装置のグラフィック処理ユニット（ＧＰＵ）（５１８）のタイプ、及び
前記ビデオストリーム処理装置のグラフィック処理ユニット（ＧＰＵ）（５０８）のタイプから成るグループの少なくとも１つに依存する、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記第１の処理及び／又は前記第２の処理は、前記ビデオストリームの継続時間全体にわたって変更される、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記第１の処理及び／又は前記第２の処理は、
前記ビデオストリーム処理装置と前記クライアント装置との間の接続の回線容量、
前記クライアント装置のバッテリレベル、
前記ビデオストリーム処理装置のバッテリレベル、
前記クライアント装置の前記ＧＰＵの処理能力、及び
前記ビデオストリーム処理装置の前記ＧＰＵの処理能力から成るグループの少なくとも１つに関する情報に基づいて、前記ビデオストリームの継続時間全体にわたって動的に変更される、請求項６に記載の方法。
【請求項８】
前記ビデオストリームの送信は、第１のネットワーク接続を介して実行され、前記ビデオストリーム処理装置から前記クライアント装置への、前記第２の処理で適用される前記１以上のシェーダのうちの少なくとも１つの送信は、前記第１のネットワーク接続とは異なる第２のネットワーク接続を介して実行される、請求項１に記載の方法。
【請求項９】
ビデオストリーム（１０２、２０２、２０２’）を処理するためのシステム（５００）であって、クライアント装置（５１６）に接続されたビデオストリーム処理装置（５０２）を備え、
前記ビデオストリーム処理装置は、
前記ビデオストリーム処理装置から前記クライアント装置へ送信されるべきビデオストリームのリクエストを前記クライアント装置から受信し（Ｓ２０２）、
少なくとも前記クライアント装置のグラフィック処理ユニット（ＧＰＵ）のタイプの情報を含む前記クライアント装置に関する情報を前記リクエストから抽出するように設定されており、
前記ビデオストリーム処理装置は、
前記ビデオストリームに適用されるべき１以上のシェーダ（Ｓ１、Ｓ２、Ｓ３、１０５）を記憶するためのメモリ（５０４）、
前記１以上のシェーダのうちの少なくとも１つ（１０７）が適用されるべき前記ビデオストリームの少なくとも１つのサブセットに関連する第１の処理、及び前記１以上のシェーダのうちの少なくとも１つ（１０８）が適用されるべき前記ビデオストリームの少なくとも１つのサブセットに関連する第２の処理を決定するためのシェーダハンドリングユニット（５０６）、
前記第１の処理を実行する（Ｓ１０４）ためのグラフィック処理ユニット（ＧＰＵ）（５０８）、
前記ビデオストリームを符号化されたビデオストリームに符号化するように設定されたエンコーダ、及び
前記第２の処理で適用されるべき（Ｓ１１２）前記１以上のシェーダのうちの少なくとも１つと、前記第２の処理が関連する前記ビデオストリームの前記少なくとも１つのサブセットに関するデータと、前記符号化されたビデオストリームとをデジタルネットワークを介して送信する（Ｓ１０６、Ｓ２０８、Ｓ２１４）ように設定されたデジタルネットワークモジュール（５１０）を備え、
前記シェーダハンドリングユニット（５０６）は、抽出された前記情報のうち、少なくとも前記クライアント装置のＧＰＵのタイプの情報に依存して前記第１の処理及び／又は前記第２の処理を決定するように設定され、
前記クライアント装置（５１６）は、
前記デジタルネットワークを介して、前記第２の処理で適用されるべき前記１以上のシェーダのうちの少なくとも１つと、前記第２の処理が関連する前記ビデオストリームの前記少なくとも１つのサブセットに関するデータと、符号化されたビデオストリームとを受信するように設定されたデジタルネットワークモジュール（５２２）、
前記符号化されたビデオストリームをビデオストリームへ復号する（Ｓ１１０）ように設定されたデコーダ（５２０）、並びに
前記１以上のシェーダのうちの受信した少なくとも１つ、及び前記第２の処理が関連する前記ビデオストリームの前記少なくとも１つのサブセットに関する受信したデータを使用して、前記第２の処理を実行する（Ｓ１１２）ためのＧＰＵ（５１８）を備え、
前記ビデオストリームは、符号化されたビデオストリームとして、前記ビデオストリーム処理装置から前記クライアント装置に送信され、そこで前記ビデオストリームは前記第２の処理の前に復号され、
前記ビデオストリームの送信は、第１の優先度レベルを有し、前記ビデオストリーム処理装置から前記クライアント装置への、前記第２の処理で適用される前記１以上のシェーダのうちの前記少なくとも１つの送信は、前記第１の優先度レベルよりも低い第２の優先度レベルを有し、送信の順序はそれらのそれぞれの優先度レベルに基づく、システム。
【請求項１０】
ビデオストリーム処理装置がデジタルビデオカメラであり、前記ビデオストリームは前記デジタルビデオカメラによって取得される、請求項９に記載のシステム。
【請求項１１】
処理能力を有する装置によって実行されたときに、請求項１から８のいずれか一項に記載の方法を実行するように設定された指示命令を有するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオストリームの処理の分野に関し、特に、シェーダ（ｓｈａｄｅｒ）を使用するビデオストリームの後処理の分野に関する。
【背景技術】
【０００２】
今日、ビデオ処理システムの多くは、典型的には、ビデオストリームを受信し、ビデオストリームを処理し、その後、ネットワークを介して遠隔クライアントに処理されたビデオストリームを送信するサーバを含む標準アーキテクチャに従う。
【０００３】
サーバ及び遠隔クライアントの両方の処理能力を使用することは、計算上の理由および性能を高めるために有利であり得る。
【０００４】
処理の一部は、グラフィック処理ユニット（ＧＰＵ）によって行われる処理に関する。ＧＰＵは、ディスプレイに出力することを企図された画像を生成する。ＧＰＵは、また、ビデオストリーム内の画像を操作するようにも設定され得る。サーバクライアントシステムでは、グラフィック処理を実行するためにサーバ及びクライアントの両方でＧＰＵを使用できることが有利であり得る。
【０００５】
ＵＳ２０１３／００１６１０７（ＣＨＮＯＷ  ＩＮＣ．）は、サーバ側のレンダリング（ｒｅｎｄｅｒｉｎｇ）及びクライアント側のレンダリングの両方を利用することができる、グラフィックスをレンダリングするための方法に関する。この文書での主たるアイデアは、レンダリングがサーバ側で行われるべきか又はクライアント側で行われるべきかを決定することである。レンダリングがサーバ側で行われる場合には、ビデオデータ（すなわち、画素データ）が、サーバからクライアントに送られて、その後、表示される。レンダリングがクライアント側で行われる場合には、グラフィックデータ（すなわち、ベクトルデータ）が、クライアントに送られて、その後、クライアントのＧＰＵを使用してビデオデータにレンダリングされる。クライアント及びサーバ内のＧＰＵの利用可能な処理能力に基づいて、かつネットワーク回線容量に基づいてその選択が行われる。
【０００６】
ＵＳ２０１３／００１６１０７の方法は、グラフィックデータが、処理されて、例えば、コンピュータゲームなどのビデオデータにレンダリングされる用途において有利であり得る。サーバ側及びクライアント側の両方でビデオを処理するために、種々のアプローチが必要とされ、例えば、特殊効果及びビデオの後処理にシェーダを適用することが行われる。
【発明の概要】
【０００７】
上述したことを考慮し、本発明の目的は、上記の欠点のうちの1つ又は幾つかを解決するか少なくとも低減させることである。概して、上記の目的は添付の独立請求項によって達成される。
【０００８】
第１の側面によれば、本発明は、クライアント装置に接続されたビデオストリーム処理装置を備えたシステム内でビデオストリームを処理するための方法によって実現され、方法は、ビデオストリームに適用されるべき１以上のシェーダを設定すること、第１の処理によって、ビデオストリーム処理装置において、１以上のシェーダのうちの少なくとも１つをビデオストリームの少なくとも１つのサブセットに適用すること、第２の処理によって、クライアント装置において、１以上のシェーダのうちの少なくとも１つをビデオストリームの少なくとも１つのサブセットに適用することを含み、第２の処理で適用される１以上のシェーダのうちの少なくとも１つは、ビデオストリーム処理装置からクライアント装置に送信される。
【０００９】
シェーダは、コンピュータグラフィックスにおいて使用されるコンピュータプログラムである。シェーダは、例えば、特殊効果及びビデオの後処理のために使用される。様々な種類のシェーダが存在し、例えば、遠近法変換のために使用され得る頂点シェーダ、画素の色及び位置を変えるために使用され得るピクセルシェーダ、及びビデオ解析の計算のために使用され得るコンピュートシェーダが存在する。シェーダは、互換性のあるグラフィック処理ユニット（ＧＰＵ）が実行されることを必要とする。例えば、全てのＧＰＵがコンピュートシェーダをサポートするわけではない。ＧＰＵは、２次元及び３次元のベクトルグラフィックスをレンダリングするためのマルチプラットフォームアプリケーションプログラミングインターフェース（ＡＰＩ）であるオープングラッフィクスライブラリ（ＯｐｅｎＧＬ）をサポートし得る。
【００１０】
「処理」という用語は、本明細書の文脈では、処理が関係するビデオストリームの少なくとも１つのサブセットへのシェーダの実行として理解されるべきである。
【００１１】
クライアント装置は、ＧＰＵを有し、ウェブサーバからのウェブアプリケーションを実行して処理されたビデオストリームを表示する装置、例えば、タブレットコンピュータ又はスマートフォンであり得る。また、クライアント装置は、そのＧＰＵを使用してビデオストリームを処理し、引き続いてそれを可視化する目的でディスプレイに送る装置を指してもよい。そのような装置の例は、タブレットコンピュータ又はスマートフォンと同じ方式で処理されたビデオストリームを表示し得る接続されたディスプレイを有するＰＣであり得るが、この場合において、タブレットコンピュータ又はスマートフォンが、その埋め込まれたディスプレイを同じ目的に対して使用する一方で、ディスプレイはコンピュータに接続される。クライアント装置は、また、１以上のカメラを備えたモニタリングシステムからのビデオを管理し視認するためのビデオ管理システム（ＶＭＳ）内でも使用され得る。ＶＭＳは、例えば、クラウドベースシステム（例えば、様々なクラウドベースビデオホスティングサービスを介して）、セントラルサーバに基づいたシステム（例えば、Ａｘｉｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ＡＢによって製造される「Ａｘｉｓ  Ｃａｍｅｒａ  Ｓｔａｔｉｏｎ」）、又はシステムのカメラにインストールされたソフトウェアがビデオ管理を行うサーバレスシステム（例えば、Ａｘｉｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ＡＢによって製造される「Ａｘｉｓ  Ｃａｍｅｒａ  Ｃｏｍｐａｎｉｏｎ」）に基づき得る。クライアント装置は、この場合に、ＶＭＳに接続され得る。
【００１２】
「ビデオストリームのサブセット」という用語によって、本明細書の文脈では、全体のビデオストリームが、ビデオストリーム処理装置及び／又はクライアント装置において処理される必要はないことが、理解されるべきである。ビデオストリーム処理装置での処理及びクライアント装置での処理は、フレームの（異なる）部分（例えば、フレームの半分）、又はフレームの（異なる）サブセット（例えば、ビデオストリーム内の１つおきのフレーム）、又はそれらの２つの組合せに関係することができる。他の実施形態によれば、第１及び第２の処理は、両方とも、ビデオストリームの全体を処理する。
【００１３】
本発明は、ビデオストリーム処理装置において全てのシェーダを提供し、ビデオストリーム処理装置にクライアント装置での処理のために必要とされるシェーダを送信させることによって、第１及び第２の処理のための適応性を増加させることができるという理解に基づく。言い換えると、シェーダの実行は、例えば、ネットワークトポロジー、ビデオストリーム処理装置及びクライアント装置の両方の能力及び負荷、並びに使用事例の特性に基づいて、ランタイムにおいて動的に分割され得る。代替的に、実行の分割は静的であり得る。
【００１４】
ある実施形態によれば、第１の処理は第２の処理とは異なる。これは、ビデオストリーム処理装置とクライアント装置との間で、ビデオストリームの１以上のシェーダの実行のために必要とされる処理を有利に分割するかもしれない。
【００１５】
ある実施形態によれば、第１の処理で適用される少なくとも１つのシェーダは、第２の処理で適用される少なくとも１つのシェーダとは異なる。例えば、任意の頂点シェーダが、ビデオストリーム処理装置で実行され得、任意のピクセルシェーダが、クライアント装置で実行され得る。
【００１６】
ある実施形態によれば、第１の処理が関連するビデオストリームの前記少なくとも１つのサブセットは、第２の処理が関連するビデオストリームの前記少なくとも１つのサブセットとは異なる。上述されたように、ビデオストリーム処理装置での処理及びクライアント装置での処理は、フレームの異なる部分（例えば、半分のフレームがビデオストリーム処理装置で処理され、残りの半分がクライアント装置で処理される）、又はフレームの異なるサブセット（例えば、ビデオストリーム内の１つおきのフレームがビデオストリーム処理装置で処理され、残りのフレームがクライアント装置で処理される）に関係することができる。
【００１７】
しかしながら、ある実施形態によれば、第１の処理及び第２の処理は互いに異ならない、すなわち、同じシェーダが、ビデオストリーム処理装置及びクライアント装置の両方でビデオストリームの同じ部分に適用されることが注意されるべきである。これは、第１及び第２の処理がインクレメンタルフィルタリング（ｉｎｃｒｅｍｅｎｔａｌ  ｆｉｌｔｅｒｉｎｇ）に関係する場合に、有利であり得る。この場合にも、シェーダの実行は、ビデオストリーム処理装置とクライアント装置との間で分割される。なぜなら、インクレメンタルフィルタリングの第１の部分が、ビデオストリーム処理装置で実行され、インクレメンタルフィルタリングの第２の部分が、クライアント装置で実行されるからである。
【００１８】
ある実施形態によれば、第１の処理及び／又は第２の処理は、クライアント装置のグラフィック処理ユニット（ＧＰＵ）のタイプ及びビデオストリーム処理装置のグラフィック処理ユニット（ＧＰＵ）のタイプから成るグループの少なくとも１つに依存する。上述されたように、異なるタイプのＧＰＵは、異なるタイプのシェーダをサポートし得る。例えば、通常は、クライアント装置内のＧＰＵのみが、テセレーションシェーダ（Ｔｅｓｓｅｌｌａｔｉｏｎ  ｓｈａｄｅｒ）又はジオメトリシェーダ（Ｇｅｏｍｅｔｒｙ  ｓｈａｄｅｒ）をサポートする。頂点シェーダは、テセレーションシェーダ及び／又はジオメトリシェーダの前に実行されることを必要とするので、実行の分割は、頂点シェーダがビデオストリーム処理装置で実行され、テセレーションシェーダ又はジオメトリシェーダがクライアント装置で実行されるように、行われ得る。
【００１９】
ある実施形態によれば、第１の処理及び／又は第２の処理は、ビデオストリームの継続時間全体にわたって変更される。ビデオストリーム処理装置とクライアント装置との間のシェーダの実行の分割は、ビデオストリームの各々の期間について個別に決定され得、それ故、ネットワークトポロジーにおける変化、ビデオストリーム処理装置及びクライアント装置の両方の負荷及び他の重要な特性の変化、並びに変化した使用事例（例えば、実行のレーテンシ要求（ｌａｔｅｎｃｙ  ｄｅｍａｎｄ））に有利に従い得るので、このことは、更に、本発明方法の適応性を増加させ得る。
【００２０】
例えば、第１の処理及び／又は第２の処理は、ビデオストリーム処理装置とクライアント装置との間の接続の回線容量、クライアント装置のバッテリレベル、ビデオストリーム処理装置のバッテリレベル、クライアント装置のＧＰＵの処理能力、及びビデオストリーム処理装置のＧＰＵの処理能力から成るグループの少なくとも１つに関する情報に基づいて、ビデオストリームの継続時間全体にわたって動的に変更し得る。
【００２１】
上述したように、クライアント装置は、タブレットコンピュータなどのバッテリで駆動される装置であり得る。シェーダの実行は、クライアント装置のバッテリを弱らせ得るので、クライアント装置がバッテリを消費し尽しかけている場合に、ビデオストリーム処理装置がビデオストリームで１以上のシェーダを実行するための処理を必要とするより大きな部分を実行するならば、それは有利であり得る。
【００２２】
ある実施形態によれば、ビデオストリームは、符号化されたビデオストリームとして、ビデオストリーム処理装置から、第２の処理の前にビデオストリームが復号されるクライアント装置へ送信される。ビデオストリーム処理装置で適用される処理がいかなるものであっても、ビデオストリームは、符号化され、クライアント装置に送信されるので、このことは有利である。例えば、ビデオストリームは、符号化され、クライアント装置に送信される場合に、半処理（ｓｅｍｉ  ｐｒｏｃｅｓｓｅｄ）されてもよい。更に、本実施形態は、ビデオストリーム処理装置内のエンコーダ（及びクライアント装置における対応するデコーダ）が常に実行されているので、シェーダの実行フローが容易に設定され得、維持され得るという点において有利である。更なる利点は、ビデオストリーム処理装置内のエンコーダ及びクライアント装置内のデコーダを有する基本システムレイアウトが、この実施形態によって変化しないということであり得る。更に、ネットワーク負荷は、１以上のシェーダの実行が、ビデオストリーム処理装置とクライアント装置との間でどのように分割されようとも、比較的安定であり得る。
【００２３】
ある実施形態によれば、ビデオストリームの送信は、第１の優先度レベルを有し、ビデオストリーム処理装置からクライアント装置への、第２の処理で適用される１以上のシェーダのうちの少なくとも１つの送信は、第１の優先度レベルよりも低い第２の優先度レベルを有する。したがって、送信を実行する順序は、それらのそれぞれの優先度レベルに基づく。この実施形態によれば、ビデオストリームの送信は、常に、クライアント装置で適用されるシェーダの送信よりも高い優先度を与えられ得る。これは、ビデオストリームが、クライアント装置に接続される又はクライアント装置内のディスプレイで表示される場合に、スタッタリングの危険性を低減し得る。この実施形態によれば、第２の処理におけるシェーダは、第２の処理のシェーダが移送される前に既に送信されてしまったビデオストリームのフレームに適用されない。
【００２４】
ある実施形態によれば、ビデオストリームの送信は、第１のネットワーク接続を介して実行され、ビデオストリーム処理装置からクライアント装置への、第２の処理で適用される１以上のシェーダのうちの少なくとも１つの送信は、第１のネットワーク接続とは異なる第２のネットワーク接続を介して実行される。例えば、シェーダがソケット又はＨＴＴＰ接続を介して送信され得る一方で、ビデオストリームは、リアルタイムストリーミングプロトコル（ＲＴＳＰ）接続又はハイパーテキストトランスファープロトコル（ＨＴＴＰ）接続を介して送信され得る。
【００２５】
ある実施形態によれば、ビデオストリーム処理装置は、複数の実行スレッドを備え、ビデオストリームの送信は、第１のスレッドを実行することによって実行され、第２の処理で適用される１以上のシェーダのうちの少なくとも１つの送信は、第１のスレッドとは異なる第２のスレッドを実行することによって実行される。これは、更に、ビデオストリームが、第２の処理のシェーダの送信に優先して送信されることを容易にする。
【００２６】
ある実施形態によれば、方法は、更に、ビデオストリーム処理装置において、ビデオストリーム処理装置からクライアント装置へ送信されるべきビデオストリームのリクエストをクライアント装置から受信するステップ、及び、ビデオストリーム処理装置において、クライアント装置に関する情報、すなわち少なくともクライアント装置のＧＰＵのタイプの情報を含むクライアント装置に関する情報をそのリクエストから抽出するステップを含み、第１の処理及び／又は第２の処理は抽出された情報に依存する。
【００２７】
クライアント装置からのビデオストリームのリクエストから、シェーダ実行の分割のために必要とされる情報をあらかじめ抽出しておくことによって、第１の処理及び第２の処理の決定が早く実行され得る。
【００２８】
ある実施形態によれば、ビデオストリーム処理は、クライアント装置によって送られるビデオストリームのリクエストに応答する、クライアント装置に関する情報のリクエストを含み得る。ビデオストリーム処理装置は、例えば、応答に含まれるＪａｖａＳｃｒｉｐｔを介して情報をリクエストし得る。クライアント装置がこの応答を受信した場合に、クライアント装置は、ビデオ処理装置に送られる更なる通信にリクエストされた情報を提供し得る。
【００２９】
第２の側面において、本発明は、ビデオストリームを処理するためのビデオストリーム処理装置を提供し、ビデオストリーム処理装置は、ビデオストリームに適用されるべき１以上のシェーダを記憶するためのメモリ、１以上のシェーダのうちの少なくとも１つが適用されるべきビデオストリームの少なくとも１つのサブセットに関連する第１の処理、及び１以上のシェーダのうちの少なくとも１つが適用されるビデオストリームの少なくとも１つのサブセットに関連する第２の処理を決定するためのシェーダハンドリングユニットを備える。ビデオストリーム処理装置は、更に、第１の処理を実行するためのグラフィック処理ユニット（ＧＰＵ）、並びに、第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータを送信するように設定されたデジタルネットワークモジュールを備える。
【００３０】
ビデオ処理装置は、有利なことに、デジタルビデオカメラの一部分であってよく、ビデオストリームはデジタルビデオカメラによって取得される。これは、ビデオカメラに接続される更なる電子装置の必要性を低減し、例えば、組み立てにおける理由により、並びにビデオストリーム処理装置及びカメラを設置するために必要とされる空間を低減するので、有利である。
【００３１】
第３の側面において、本発明は、ビデオストリームを処理するためのシステムを提供し、システムは、ビデオストリーム処理装置を備え、ビデオストリーム処理装置は、ビデオストリームに適用されるべき１以上のシェーダを記憶するためのメモリ、１以上のシェーダのうちの少なくとも１つが適用されるべきビデオストリームの少なくとも１つのサブセットに関連する第１の処理、及び１以上のシェーダのうちの少なくとも１つが適用されるビデオストリームの少なくとも１つのサブセットに関連する第２の処理を決定するためのシェーダハンドリングユニットを備える。ビデオストリーム処理装置は、更に、第１の処理を実行するためのグラフィック処理ユニットＧＰＵ、ビデオストリームを符号化されたビデオストリームに符号化するように設定されたエンコーダ、並びに、デジタルネットワークを介して、第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ、第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ、及び符号化されたビデオストリームを送信するように設定されたデジタルネットワークモジュールを備える。システムは、更に、クライアント装置を備え、クライアント装置は、デジタルネットワークを介して、第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ、第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ、及び符号化されたビットストリームを受信するように設定されたデジタルネットワークモジュール、符号化されたビデオストリームをビデオストリームへ復号するように設定されたデコーダ、並びに１以上のシェーダのうちの受信した少なくとも１つ、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関する受信したデータを使用して、第２の処理を実行するためのＧＰＵを備える。
【００３２】
第４の側面では、本発明は、処理能力を有する装置によって実行されたときに、第１の側面による方法を実行するように設定された指示命令を有するコンピュータ可読記憶媒体を備える、コンピュータプログラム製品を提供する。
【００３３】
第２の側面、第３の側面、及び第４の側面は、概して、第１の側面と同じ特徴及び利点を有し得る。
【００３４】
上記に加えて、本明細書のさらなる目的、特徴、及び利点は、添付の図面を参照するとともに、本発明の好適な実施形態の例示的で非限定的な詳細説明を通してより良く理解されるであろう。同じ参照番号が類似要素に対して使用されることになる。
【図面の簡単な説明】
【００３５】
【図１】シェーダを使用するビデオストリームの処理のフローチャートを示し、処理は、ビデオストリーム処理装置とクライアント装置との間で分割される。
【図２】ビデオストリーム処理装置とクライアント装置との間で、シェーダを使用してビデオストリームの処理を分割するために、ビデオストリーム処理装置とクライアント装置との間で送られるメッセージ及びデータを実施例によって示す。
【図３ａ】シェーダを使用するビデオストリームの処理のシナリオを示す。
【図３ｂ】ビデオストリーム処理装置とクライアント処理装置との間で、図３ａで示された処理を分割する異なる方式を示す。
【図３ｃ】ビデオストリーム処理装置とクライアント処理装置との間で、図３ａで示された処理を分割する異なる方式を示す。
【図４ａ】シェーダを使用するビデオストリームの処理のシナリオを示す。
【図４ｂ】ビデオストリーム処理装置とクライアント処理装置との間の、図４ａで示された処理の動的に変更される分割を示す。
【図４ｃ】ビデオストリーム処理装置とクライアント処理装置との間の、図４ａで示された処理の動的に変更される分割を示す。
【図５】ビデオストリーム処理装置及びクライアント装置を備えるシステムを示す。
【発明を実施するための形態】
【００３６】
図１は、シェーダを使用するビデオストリームの処理のフローチャートを実施例によって示す。フローチャートの第１のステップは、ビデオストリーム１０２に適用されるべき１以上のシェーダ１０５を設定するＳ１０２ステップである。図１で示されるように、ビデオストリーム１０２は、ビデオストリーム処理装置の外部で取得され得、ビデオストリーム処理装置へ送信され得る。幾つかの実施形態によれば、ビデオストリーム処理装置は、デジタルビデオカメラである。この場合は、ビデオストリーム１０２は、デジタルビデオカメラによって取得され、そのため、図１で示されるビデオストリーム処理装置へ送信されない。しかしながら、他の実施形態によれば、ビデオストリーム処理装置は、ビデオストリーム１０２を取得するビデオカメラから分離された装置である。この場合は、ビデオストリーム処理装置とビデオカメラとの間の接続は、有線接続又は無線接続であり得る。
【００３７】
更に、シェーダ１０５を設定するＳ１０２ステップは、図１では、ビデオストリーム処理装置の外部で、例えば、前処理のステップとして行われる。前処理のステップでは、ビデオストリーム１０２が解析され、適用されるべきシェーダ１０５がその解析に基づいて決定される。他の実施形態では、シェーダ１０５を設定するＳ１０２ステップは、ビデオストリーム処理装置内で実行される。更に別の実施形態によれば、１以上のシェーダは、常にビデオストリームに適用され、そのためビデオストリーム処理装置の中へハードコード化され得る、不変のシェーダである。
【００３８】
ビデオストリーム１０２に対する１以上のシェーダ１０５の適用は、第１及び第２の処理ステップに分割される。２つの処理ステップへの分割は、以下に説明される。第１の処理は、ビデオストリーム処理装置によって実行され、第２の処理は、ビデオストリーム処理装置に接続されたクライアント装置によって実行される。ビデオストリーム処理装置とクライアント装置との間の接続は、有線接続又は無線接続であり得る。
【００３９】
図１で示されるフローチャート内の次のステップは、第１の処理によって、ビデオストリーム処理装置において、（Ｓ１０２で既に設定された）１以上のシェーダ１０５のうちの少なくとも１つ１０７を、ビデオストリーム１０２の少なくとも１つのサブセットに適用するＳ１０４ステップである。このステップは、以下により詳細に説明されるように、ビデオストリーム処理装置のＧＰＵを使用して実行される。
【００４０】
更に、第２の処理に対して必要とされるシェーダ１０８は、ビデオストリーム処理装置からクライアント装置に送信される（Ｓ１０６）。第２の処理が、テクスチャを使用するテクスチャマッピングを含む場合に、テクスチャも第２の処理に対して必要とされるシェーダ１０８の送信Ｓ１０６の一部として、又は（図示せぬ）別個の送信として送信され得る。
【００４１】
図１で明瞭に見られるように、フローチャートは、２つの別個のトラックを含む。一方のトラックは、１以上のシェーダ１０５をビデオストリーム１０２、１０２’に適用するためのものであり、かつ１以上のシェーダ１０５をビデオストリーム処理装置からクライアント装置へ送信するためのものであり、他方のトラックは、ビデオストリーム処理装置においてビデオストリーム１０２を符号化し（Ｓ１０８）、符号化されたビデオストリーム１０６をクライアント装置に送信し（Ｓ１０９）、かつ符号化されたビデオストリーム１０６をクライアント装置において復号する（Ｓ１１０）ためのものである。言い換えると、ビデオストリームは、符号化されたビデオストリーム１０６として、ビデオストリーム処理装置からクライアント装置へ送信され（Ｓ１０９）、クライアント装置で、ビデオストリームは第２の処理Ｓ１１２の前に復号される（Ｓ１１０）。それ故、第２の処理は、１以上のシェーダ１０５のうちの送信された少なくとも１つ１０８を、ビデオストリーム１０２’の少なくとも１つのサブセットに適用することに関する。
【００４２】
ビデオストリーム１０２’は、後に、ディスプレイ１０４によって表示され得る。１以上のシェーダのうちの全部が完全なビデオストリームに適用された場合に、ディスプレイ１０４で表示されるビデオストリーム１０２’は、完全に処理される。しかしながら、フローの２つのトラックのデザインは、符号化されたビデオを送信すること（Ｓ１０９）と、クライアント装置において第２の処理で適用されるべき１以上のシェーダ１０５のうちの少なくとも１つ１０８を送信すること（Ｓ１０６）についての、異なる優先度のレベルを容易にする。したがって、ディスプレイ１０４で表示されるビデオストリーム１０２’の少なくとも一部分が半分だけ処理されるか全く処理されないこともあり得る。例えば、ビデオストリーム１０２’の第１のフレームは、Ｓ１０２で既に設定された１以上のシェーダ１０５の１つのサブセットによって処理されるのみでよく、及び／又はビデオストリームの第１のフレームに適用されたシェーダが、ビデオストリームの第１のフレームの１つのサブセットのみに適用されていてもよい。言い換えると、第２の処理のために必要とされるシェーダ１０８がクライアント装置に送信されている（Ｓ１０６）前に、既に表示されたビデオストリームのフレームに第２の処理は適用されていない。リアルタイムの適用、すなわち、リアルタイムで、ビデオが取得され、処理され、かつ表示される場合には、第２の処理のためのシェーダの送信（Ｓ１０６）より高い優先度をビデオストリームの送信（Ｓ１０９）に与えることは有利であり得る。
【００４３】
図２は、ビデオストリーム処理装置とクライアント装置との間で行われる送信を、実施例によって示している。第１の送信は、クライアント装置からビデオストリーム処理装置に送られる（Ｓ２０２）ビデオのリクエスト、例えば、ｈｔｔｐリクエストである。リクエストがビデオストリーム処理装置によって受信されると、ビデオストリーム処理装置は、直ちに、ビデオ２０２をクライアント装置に送信し始める。ビデオのリクエストから、ビデオストリーム処理装置は、クライアント装置がＧＰＵを有するか否か、ＧＰＵのタイプ、クライアント装置のオペレーティングシステム（ＯＳ）などの、クライアント装置に関する情報を抽出する。この情報は、１以上のシェーダの実行がビデオストリーム処理装置とクライアント装置との間で分割されるべきか否か、及びその場合にどのようにしてシェーダの実行が分割されるべきかを、決定するために使用され得る。
【００４４】
しかしながら、処理の分割を行うために更なる情報が必要とされる場合に、そのビデオストリーム処理装置は、クライアント装置に送られる（Ｓ２０４）その応答メッセージにおいて、クライアント装置に関する更なる情報をリクエストし得る。例えば、更なる情報のリクエストは、ｈｔｔｐ応答内に含まれるＪａｖａＳｃｒｉｐｔコード内に埋め込まれ得る。
【００４５】
そのような更なる情報がリクエストされた場合に、クライアント装置は、ビデオストリーム処理装置へ送信される（Ｓ２０６）メッセージ内にリクエストされた情報を提供し得る。
【００４６】
更なる情報がビデオストリーム処理装置によってリクエストされ（Ｓ２０４）、後に、ビデオストリーム処理装置に送信された（Ｓ２０６）としても、又はクライアント装置からのビデオのリクエスト内に提供された情報が、十分であるとみなされた場合であっても、シェーダの処理の分割が行われた後には、クライアント装置における第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータが、クライアント装置に送信される（Ｓ２０８）。
【００４７】
ある実施形態によれば、第１の処理及び／又は第２の処理は、ビデオストリーム２０２の継続時間全体にわたって動的に変更させられる。これは、更なる情報がクライアント装置からビデオストリーム処理装置に送信される（Ｓ２１２）ことによって、促され得る。この更なる情報は、例えば、クライアント装置のバッテリレベル、及び／又はクライアント装置のＧＰＵの処理能力に関係し得る。このタイプの情報は、クライアント装置から送信された（Ｓ２０２）ビデオのリクエストにおいて、又は更なる情報を有する第１のメッセージ（Ｓ２０６）において既に送信されていてもよい。しかし、情報は期間を経て動的に変わり得るクライアント装置の特性に関係するので、ビデオストリーム処理装置とクライアント装置との間でシェーダの処理を分割する場合に、更新された情報を考慮に入れることが有利であり得る。更なる情報は、クライアント装置の自身の主導で、又はビデオストリーム処理装置からのそのような更なる情報のリクエストの送信（Ｓ２１０）に対する応答として、送信され得る（Ｓ２１２）。更に、第１の処理及び／又は第２の処理は、ビデオストリーム処理装置において直接的に利用可能な情報、例えば、ビデオストリーム処理装置とクライアント装置との間の接続の回線容量、ビデオストリーム処理装置のＧＰＵの処理能力、及び／又はビデオストリーム処理装置のバッテリレベルに基づいて、動的に変えてもよい。
【００４８】
第２の処理が、上述したものによる新しい情報に基づいて変更される場合に、クライアント装置において変更された第２の処理に適用されるべき１以上のシェーダのうちの少なくとも１つ、及び変更された第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータが、クライアント装置に送信される（Ｓ２１４）。
【００４９】
ある実施形態によれば、第２の処理が新しい情報に基づいて変更されるが、元々の第２の処理と比較して変更された第２の処理に１以上のシェーダのうちの同じ少なくとも１つが適用される場合に、変更された第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータのみが、クライアント装置に送信されてもよい（Ｓ２１４）。１以上のシェーダのうちの少なくとも１つのみが変更された場合に、同じことがあてはまり、その場合に、クライアント装置において変更された第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つのみが、クライアント装置に送信されてもよい（Ｓ２１４）。
【００５０】
更に、第２の処理が変更された場合に（例えば、第２の処理で以前に適用されたシェーダのうちの１つが、もはや第２の処理の部分ではない場合に）、ビデオストリーム処理装置は、除去されたシェーダを適用することを止めるための命令をクライアント装置に送るだけでもよい。
【００５１】
ビデオストリーム処理装置が、ビデオストリーム２０２を幾つかのクライアント装置に同時に送信し得ることは注意されるべきである。この場合は、第１の処理と第２の処理との間の全処理の分割が、種々のクライアント装置の能力及び性能に応じて、それらに対して別個に行われ得る。ビデオストリーム処理装置のＧＰＵは、幾つかの種々のシェーダ（例えば、頂点シェーダ、ピクセルシェーダ、コンピュートシェーダ）が並行して実行されることを扱い得るので、そのような装置固有の分割を行うことが可能である。更に、種々のクライアント装置が、種々のビデオストリーム（例えば、種々の解像度、フレームレート、及び／又は視野の部分をデジタルに拡大するなど）をリクエストし得ることは、注意されるべきである。
【００５２】
図３ａは、シェーダを使用するビデオストリームの処理のシナリオを示す。このシナリオでは、３つのシェーダＳ１、Ｓ２、Ｓ３が、３つのフレーム＃１、＃２、＃３を含んだビデオストリームに適用されるように設定される。図３ｂでは、以下のように、３つのフレームの処理が、ビデオストリーム処理装置とクライアント装置との間で分割される。
【００５３】
第１及び第２の処理の両方のために、フレーム＃１、＃２、＃３の各々における画素の全部が処理される。それは、フレーム＃１、＃２、＃３を表す領域が完全にドット模様で表されていることによって示される。しかしながら、第１の処理は、シェーダＳ１、Ｓ２の２つをフレーム＃１、＃２、＃３に適用することを含み、第２の処理は、第３のシェーダＳ３をフレーム＃１、＃２、＃３に適用することを含む。したがって、第１の処理で適用される少なくとも１つのシェーダＳ１、Ｓ２は、第２の処理で適用される少なくとも１つのシェーダＳ３とは異なる。
【００５４】
図３Ｃでは、シェーダの処理の他のタイプの分割が行われる。この実施形態によれば、３つのシェーダＳ１、Ｓ２、Ｓ３の全部が、第１及び第２の処理の両方に適用される。代わりに、第１及び第２の処理は、ビデオストリームのフレーム＃１、＃２、＃３の異なるサブセットに関連する。図３ｃでは、第１の処理が、各々のフレーム＃１、＃２、＃３内の画素の半分に関連し、第２の処理が、各々のフレーム＃１、＃２、＃３の画素の他の半分に関連する。したがって、第１の処理が関連するビデオストリームのサブセットは、第２の処理が関連するビデオストリームのサブセットとは異なる。フレームを分割する他の方式が等しく可能であり、例えば、１つおきのフレームが、ビデオストリーム処理装置で処理され得、一方、クライアント装置での処理が、残りのフレームを担当する。他の可能性は、ビデオストリーム処理装置で画素の２／３を処理してクライアント装置で画素の残りの１／３を処理すること、又は処理される画素を分割する任意の他の適切な方式を含む。
【００５５】
図４ａは、シェーダを使用するビデオストリームの処理の別のシナリオを示す。このシナリオでは、３つのシェーダＳ１、Ｓ２、Ｓ３が、６つのフレーム＃１、＃２、＃３、＃４、＃５、＃６を含んだビデオストリームに適用されるように設定される。
【００５６】
図４ｂは、最初の３つのフレーム＃１、＃２、＃３の処理を示す。図４ｂにおける第１及び第２の処理の両方に対して、フレーム＃１、＃２、＃３の各々内の画素の全部が処理される。しかしながら、第１の処理は、シェーダＳ１、Ｓ２の２つをフレーム＃１、＃２、＃３に適用することを含み、第２の処理は、第３のシェーダＳ３をフレーム＃１、＃２、＃３に適用することを含む。
【００５７】
上述のように、第１の処理及び／又は第２の処理は、ビデオストリームの継続時間全体にわたって動的に変更し得る。このことは、最後の３つのフレーム＃４、＃５、＃６の処理を示す図４ｃで示される。図４ｃでは、第１及び第２の処理は、図４ｂにおける第１及び第２の処理と比較して変更されており、第２のシェーダＳ２の実行が、移動されてもはや、クライアント装置での第２の処理の部分となっている。
【００５８】
ビデオ処理装置とクライアント装置との間でシェーダの処理を分割する場合に、上述したものとは異なる更なる考慮が行われてもよい。例えば、１以上のシェーダのうちの１つが、ビデオストリーム上にプライバシーマスクを生成する場合に、そのプライバシーマスクが、第１の処理でその全体において生成されるとすれば有利であり得る。プライバシーマスクは、クライアント装置へ送られる符号化されたビデオに既に適用されているので、見る者に対して極秘ビデオデータを表示する危険性を低減する。
【００５９】
更に、低いレーテンシが必要なシェーダについて、及びクライアント装置における又はクライアント装置に接続されたディスプレイにおける相互ユーザインターフェースに関連するシェーダについて、これらのシェーダの実行は、クライアント装置で有利に実行される。
【００６０】
図３ｂ‐ｃ及び図４ｂ‐ｃでは、第１の処理は第２の処理とは異なる。しかしながら、前述したように、第１の処理及び第２の処理は同一であり得、例えば、それは、シェーダがビデオストリームのインクレメンタルフィルタリングを実行している場合である。
【００６１】
図５は、ビデオストリームを処理するためのシステム５００を示す。システム５００は、クライアント装置５１６に接続されたビデオストリーム処理装置５０２を備える。
【００６２】
ビデオストリーム処理装置は、ビデオストリームに適用されるべき１以上のシェーダを記憶するためのメモリ５０４を備える。メモリ５０４は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ‐ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は望ましい情報を記憶するために使用され得る及びコンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００６３】
ビデオストリーム処理装置５０２は、更に、１以上のシェーダのうちの少なくとも１つが適用されるビデオストリームの少なくとも１つのサブセットに関連する第１の処理、及び１以上のシェーダのうちの少なくとも１つが適用されるべきビデオストリームの少なくとも１つのサブセットに関連する第２の処理を決定するために使用され得る、シェーダハンドリングユニット５０６を備える。シェーダハンドリングユニット５０６は、第１の処理及び第２の処理を決定する場合に、ビデオストリーム処理装置、クライアント装置、及び／又はビデオストリーム処理装置とクライアント装置との間の接続に関する情報を考慮に入れ得る。また、シェーダハンドリングユニット５０６は、ビデオストリームの内容を考慮に入れてもよい。すなわち、ビデオ解析アルゴリズムを採用すること又は別の装置からビデオ解析データを提供されることによってである。例えば、ビデオストリームが、覆われる必要がある（すなわち、プライバシーマスクによって）人間の顔を含むということが判断された場合に、シェーダハンドリングユニットは、第１の処理がそのようなプライバシーマスクをビデオストリームに適用するためのシェーダを含むべきであるという決定をし得る。ある実施形態によれば、シェーダハンドリングユニットは、ビデオストリーム処理装置から離れて設けられる。この実施形態によれば、第１及び第２の処理は、ビデオストリーム処理装置で決定される代わりに、ビデオストリーム処理装置に提供される。
【００６４】
ビデオストリーム処理装置は、更に、第１の処理を実行するためのＧＰＵ５０８、及びビデオストリームを符号化されたビデオストリーム１０６に符号化するように設定されたエンコーダ５１２を備える。符号化されたビデオストリーム１０６は、その後、デジタルネットワークモジュール５１０によって、デジタルネットワーク５１４を介して、クライアント装置５１６に送信される。デジタルネットワークモジュール５１０は、また、第２の処理に適用されるべき１以上のシェーダの少なくとも１つ１０８、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ５２４を送信する。例えば、図３ｃで示された実施形態では、第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ５２４は、各々のフレームの右半分が第２の処理で処理されるべきことを示す。シェーダハンドリングユニット５０６及びエンコーダ５１２は、ソフトウェア内に実装され、ビデオストリーム処理装置５０２内の１以上のプロセッサによって実行される。
【００６５】
上述のように、符号化されたビデオストリーム１０６の送信には、第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ１０８、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ５３４の送信より高い優先度が与えられ得る。この特徴は、図５で、ビデオストリーム１０６の送信を表す線が、シェーダ１０８及びデータ５２４の送信を表す線と比較してより太くなっていることによって示される。この優先度の付与は、複数の方式で実現され得る。例えば、ビデオストリーム１０６の送信は第１のネットワーク接続を介して実行され得、シェーダ１０８及びデータ５２４の送信は、第１のネットワークとは異なる第２のネットワークを介して実行され得る。この場合には、ビデオストリーム１０６の送信のための接続は、シェーダ１０８及びデータ５２４の送信のための接続と比較して、より高い回線容量を有し得る。他の実施形態によれば、ビデオストリーム処理装置５０２は、複数の実行スレッドを備え、ビデオストリーム１０６の送信は、第１のスレッドを実行することによって実行され、第２の処理で適用されるシェーダ１０８、及びデータ５２４の送信は、第１のスレッドとは異なる第２のスレッドを実行することによって実行される。
【００６６】
符号化されたビデオストリーム１０６、シェーダ１０８、及びデータ５２４は、クライアント装置内のデジタルネットワークモジュール５２２によって受信される。したがって、クライアント装置５１６内のデジタルネットワークモジュール５２２は、デジタルネットワーク５１４を介して、第２の処理で適用されるべき１以上のシェーダのうちの少なくとも１つ１０８、第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関するデータ５２４、及び符号化されたビデオストリーム１０６を受信するように設定されている。クライアント装置５１６は、更に、符号化されたビデオストリーム１０６をビデオストリームに復号するように設定されたデコーダ５２０、及び１以上のシェーダのうちの受信した少なくとも１つ１０８、及び第２の処理が関連するビデオストリームの少なくとも１つのサブセットに関する受信したデータ５２４を使用して、第２の処理を実行するためのＧＰＵ５１８を備える。最後に、クライアント装置は、処理されたビデオストリーム５２６を表示するためのディスプレイ１０４に接続され得る。
【図１】
0006804191.tif 000002
【図２】
0006804191.tif 000003
【図３ａ】
0006804191.tif 000004
【図３ｂ】
0006804191.tif 000005
【図３ｃ】
0006804191.tif 000006
【図４ａ】
0006804191.tif 000007
【図４ｂ】
0006804191.tif 000008
【図４ｃ】
0006804191.tif 000009
【図５】
0006804191.tif 000010