IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フル・エルエルシーの特許一覧

<>
  • 特開-ビデオエンコーディングの交差検証 図1
  • 特開-ビデオエンコーディングの交差検証 図2
  • 特開-ビデオエンコーディングの交差検証 図3
  • 特開-ビデオエンコーディングの交差検証 図4
  • 特開-ビデオエンコーディングの交差検証 図5
  • 特開-ビデオエンコーディングの交差検証 図6
  • 特開-ビデオエンコーディングの交差検証 図7
  • 特開-ビデオエンコーディングの交差検証 図8
  • 特開-ビデオエンコーディングの交差検証 図9
  • 特開-ビデオエンコーディングの交差検証 図10
  • 特開-ビデオエンコーディングの交差検証 図11A
  • 特開-ビデオエンコーディングの交差検証 図11B
  • 特開-ビデオエンコーディングの交差検証 図12
  • 特開-ビデオエンコーディングの交差検証 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022158941
(43)【公開日】2022-10-17
(54)【発明の名称】ビデオエンコーディングの交差検証
(51)【国際特許分類】
   H04N 21/24 20110101AFI20221006BHJP
   H04N 19/40 20140101ALI20221006BHJP
【FI】
H04N21/24
H04N19/40
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022021107
(22)【出願日】2022-02-15
(31)【優先権主張番号】17/218,888
(32)【優先日】2021-03-31
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】512333560
【氏名又は名称】フル・エルエルシー
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【弁理士】
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【弁理士】
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100212705
【弁理士】
【氏名又は名称】矢頭 尚之
(74)【代理人】
【識別番号】100219542
【弁理士】
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【弁理士】
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】チェン・リュー
(72)【発明者】
【氏名】ウェンハオ・ジャン
(72)【発明者】
【氏名】ダーリャン・フー
(72)【発明者】
【氏名】シャオボー・リュー
(72)【発明者】
【氏名】シーチャン・フアンフー
【テーマコード(参考)】
5C159
5C164
【Fターム(参考)】
5C159KK51
5C164SA32S
5C164SB41P
5C164YA21
(57)【要約】      (修正有)
【課題】交差検証プロセスを使用してエンコーディングストリームを自動的に検証する方法、装置及び記憶媒体を提供する。
【解決手段】エンコーディングストリームを自動的に検証する方法は、ビデオの現在のエンコーディングストリームを受信し、参照エンコーディングストリームについての第1の測定値を、参照エンコーディングストリームの品質を測定するために選択する。次に、現在のエンコーディングストリームの第2の測定値を、参照エンコーディングストリームの第1の測定値と比較し、比較することに基づいて、現在のエンコーディングストリームが検証されたかどうかを出力する。
【選択図】図3
【特許請求の範囲】
【請求項1】
コンピューティングデバイスによって、ビデオの現在のエンコーディングストリームを受信することと、
前記コンピューティングデバイスによって、参照エンコーディングストリームの品質を測定するために、前記参照エンコーディングストリームについての第1の測定値を選択することと、
前記コンピューティングデバイスによって、前記現在のエンコーディングストリームの第2の測定値を、前記参照エンコーディングストリームの前記第1の測定値と比較することと、
前記コンピューティングデバイスによって、前記比較することに基づいて、前記現在のエンコーディングストリームが検証されたかどうかを出力することと、
を備える方法。
【請求項2】
前記参照エンコーディングストリームと前記現在のエンコーディングストリームとの間の類似性に基づいて、前記参照エンコーディングストリームを選択すること
をさらに備える、請求項1に記載の方法。
【請求項3】
前記参照エンコーディングストリームを選択することは、
前記現在のエンコーディングストリームの第1の特性を、前記参照エンコーディングストリームの第2の特性と比較することと、
前記参照エンコーディングストリームを、前記現在のエンコーディングストリームのための参照として使用するかどうかを決定することと、
を備える、請求項2に記載の方法。
【請求項4】
前記参照エンコーディングストリームを選択することは、
前記現在のエンコーディングストリームを複数の参照エンコーディングストリームと比較することと、
前記現在のエンコーディングストリームとの類似性に基づいて、前記複数の参照エンコーディングストリームから前記参照エンコーディングストリームを選択することと、
を備える、請求項2に記載の方法。
【請求項5】
前記参照エンコーディングストリームを選択することは、
異なるビットレートでの前記ビデオの別のエンコーディングからの参照エンコーディングストリームを使用すること
を備える、請求項2に記載の方法。
【請求項6】
前記参照エンコーディングストリームを選択することは、
前記現在のエンコーディングストリームをエンコードするために使用されたものとは異なるエンコーディングプロトコルを使用した前記ビデオの別のエンコーディングからの参照エンコーディングストリームを使用すること
を備える、請求項2に記載の方法。
【請求項7】
前記参照エンコーディングストリームについての前記第1の測定値を選択することは、
前記参照エンコーディングストリームのフレームの少なくとも一部についての前記第1の測定値を決定すること
を備える、請求項1に記載の方法。
【請求項8】
前記参照エンコーディングストリームについての前記第1の測定値を選択することは、
前記参照エンコーディングストリームにおける各フレームについての前記第1の測定値を決定すること
を備える、請求項1に記載の方法。
【請求項9】
前記参照エンコーディングストリームについての前記第1の測定値を選択することは、
前記第1の測定値を決定するために、前記参照エンコーディングストリームと前記現在のエンコーディングストリームとの間の差に基づいて、前記参照エンコーディングストリームの第3の測定値を調整すること
を備える、請求項1に記載の方法。
【請求項10】
前記差は、前記参照エンコーディングストリームと前記現在のエンコーディングストリームとの間のビットレートの差を備える、請求項9に記載の方法。
【請求項11】
前記差は、前記参照エンコーディングストリームと前記現在のエンコーディングストリームとの間のビットレートの変化と、品質測定値の変化との間の変換係数を備える、請求項9に記載の方法。
【請求項12】
前記第1の測定値の値を静的しきい値に制限するために、前記第3の測定値に前記静的しきい値を適用すること
をさらに備える、請求項9に記載の方法。
【請求項13】
前記第1の測定値は、前記参照エンコーディングストリームのフレームのためのしきい値リストを備え、
前記しきい値リスト中のしきい値は、前記現在のエンコーディングストリームのそれぞれのフレームと比較される、
請求項1に記載の方法。
【請求項14】
前記現在のエンコーディングストリームの前記第2の測定値を、前記参照エンコーディングストリームの前記第1の測定値と比較することは、
前記参照エンコーディングストリームにおける第1のフレームセットについての前記第1の測定値と、前記現在のエンコーディングストリームにおける対応する第1のフレームセットについての前記第2の測定値とを比較するために、スライディングウィンドウを使用すること
を備える、請求項1に記載の方法。
【請求項15】
前記スライディングウィンドウは、前記参照エンコーディングストリームにおける異なるフレームセットについての前記第1の測定値と、前記現在のエンコーディングストリームにおける対応する異なるフレームセットについての前記第2の測定値とを比較するために移動される、請求項14に記載の方法。
【請求項16】
前記現在のエンコーディングストリームが検証されたかどうかを出力することは、
前記参照エンコーディングストリームにおけるフレームセットについての前記第1の測定値と、前記現在のエンコーディングストリームにおける対応するフレームセットについての前記第2の測定値とを比較するとき、失敗の数をカウントすることと、
前記失敗の数に基づいて、前記現在のエンコーディングストリームが検証されたかどうかについての結果を出力することと、
を備える、請求項1に記載の方法。
【請求項17】
前記現在のエンコーディングストリームが検証されたかどうかを出力することは、
前記比較することに基づいて、前記参照エンコーディングストリームにおいてエンコーディングエラーが生じたと決定された1つ又は複数のフレームを局所的に識別すること
を備える、請求項1に記載の方法。
【請求項18】
前記現在のエンコーディングストリームが検証されたかどうかを出力することは、
前記現在のエンコーディングストリームの、1つ又は複数のフレームを再エンコードするための調整されたエンコーディングパラメータを決定すること
を備える、請求項1に記載の方法。
【請求項19】
命令を含む非一時的なコンピュータ可読記憶媒体であって、前記命令は実行されると、
ビデオの現在のエンコーディングストリームを受信することと、
参照エンコーディングストリームの品質を測定するために、前記参照エンコーディングストリームについての第1の測定値を選択することと、
前記現在のエンコーディングストリームの第2の測定値を、前記参照エンコーディングストリームの前記第1の測定値と比較することと、
前記比較することに基づいて、前記現在のエンコーディングストリームが検証されたかどうかを出力することと、
を行うように動作可能であるようにコンピュータシステムを制御する、非一時的なコンピュータ可読記憶媒体。
【請求項20】
1つ又は複数のコンピュータプロセッサと、
命令を備える非一時的なコンピュータ可読記憶媒体と、
を備える装置であって、前記命令は実行されると、
ビデオの現在のエンコーディングストリームを受信することと、
参照エンコーディングストリームの品質を測定するために、前記参照エンコーディングストリームについての第1の測定値を選択することと、
前記現在のエンコーディングストリームの第2の測定値を、前記参照エンコーディングストリームの前記第1の測定値と比較することと、
前記比較することに基づいて、前記現在のエンコーディングストリームが検証されたかどうかを出力することと、
を行うように動作可能であるように前記1つ又は複数のコンピュータプロセッサを制御する、装置。
【発明の詳細な説明】
【背景技術】
【0001】
[0001]あるサービスは、そのビデオ配信サービスで提供されることになるソースビデオを受信し得る。このビデオをビデオ配信サービス上で公開する前に、サービスは、ソースビデオを異なるプロファイルにエンコードする。例えば、これらプロファイルは、ビットレート及び/又は品質の異なる組合せを表し得る。
【0002】
[0002]ソースビデオのエンコードされたバージョンは、エンコーディングエラーを含む可能性がある。エンコーディングエラーのあるビデオが公開された場合、エラーは、視聴体験に悪影響を及ぼし得る。したがって、サービスは、ビデオを公開する前に、どのエンコーディングストリームがエンコーディングエラーを含み得るかを決定するために、エンコーディングストリームを監視し得る。エラーについてエンコーディングストリームを監視する1つの方法は、何らかのエンコーディングエラーがあるかどうかを決定するために、ユーザがエンコーディングストリームを初めから終わりまで手動で視聴することを必要とし得る。例えば、ユーザは、映画を初めから終わりまでよく見て、何らかのエラーが見られるかどうかをチェックし得る。ビデオは、30分から数時間に及び得、各ビデオはまた、複数のプロファイルにエンコードされ得る。各エンコードされたビデオを手動でチェックすることは、数多くの時間を要し、手作業が多く、時間がかかり得る。追加として、ユーザがエンコーディングエラーを見落とし得、又はユーザがあまり目立たないエンコーディングエラーを見落とし得るという点で、検証はヒューマンエラーの影響を受けやすい。
【0003】
[0003]以下の説明及び図面に関して、示される詳細は、例示的な説明を目的とした例を表し、本開示の原理及び概念的な態様の説明を提供するために提示されていることが強調される。この点に関して、本開示の基本的理解に必要である以上に実施詳細を示す試みは行われない。以下の説明は、図面と併せて、本開示による実施形態がどのように実施され得るかを当業者に明らかにする。同様の又は同じ参照番号が、様々な図面及びサポートする説明において、同様の又は同じ要素を識別するか、さもなければそれらを参照するため使用され得る。
【図面の簡単な説明】
【0004】
図1】[0004]図1は、いくつかの実施形態による、ビデオをエンコードするための簡略化されたシステムを図示する。
図2】[0005]図2は、いくつかの実施形態による、ソースビデオをエンコードするための方法の簡略化されたフローチャートを図示する。
図3】[0006]図3は、いくつかの実施形態による、エンコーディングストリームパイプラインにおいて交差検証を実行するための方法の簡略化されたフローチャートを図示する。
図4】[0007]図4は、いくつかの実施形態による、交差検証プロセスを実行するための方法の簡略化されたフローチャートを図示する。
図5】[0008]図5は、いくつかの実施形態による、交差検証プロセスを実行するための方法の簡略化されたフローチャートを図示する。
図6】[0009]図6は、いくつかの実施形態による、ビデオのフレームに品質をマッピングするグラフを図示する。
図7】[0010]図7は、いくつかの実施形態による、調整の例を図示する。
図8】[0011]図8は、いくつかの実施形態による、静的品質しきい値を品質しきい値リストに適用する例を図示する。
図9】[0012]図9は、いくつかの実施形態による、局所検証(local validation)を使用するためのプロセスの例を図示する。
図10】[0013]図10は、いくつかの実施形態による、現在のエンコーディングストリームの品質を分析するための方法の簡略化されたフローチャートを図示する。
図11A】[0014]図11Aは、いくつかの実施形態による、エンコーディングエラーを検出する例を図示する。
図11B】[0015]図11Bは、いくつかの実施形態による、しきい値リストを使用してエンコーディングエラーを検出する例を図示する。
図12】[0016]図12は、一実施形態による、1つ又は複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステムを図示する。
図13】[0017]図13は、ビデオコンテンツ及び広告を視聴するための装置の線図を図示する。
【発明を実施するための形態】
【0005】
[0018]エンコーディングシステムのための技法が、本明細書で説明される。以下の説明では、説明を目的として、数多くの例及び特定の詳細が、いくつかの実施形態の完全な理解を提供するために示されている。特許請求の範囲によって定義されているいくつかの実施形態は、これらの例における特徴のうちのいくつか又は全てを、単独で又は以下に説明される他の特徴と組み合わせて含み得、本明細書で説明される特徴及び概念の修正例及び同等物をさらに含み得る。
【0006】
[0019]システムが、エンコーディングストリームを自動的に検証する(validates)交差検証プロセスを使用する。交差検証プロセスは、エラーについて現在のエンコーディングストリームを交差検証するために、参照エンコーディングストリームを使用し得る。参照は、現在のエンコーディングストリームと類似した特性を含み得、これは、参照エンコーディングストリームにおける品質のバリエーションが、現在のエンコーディングストリームを検証するために使用され得るので、検証を改善する。例えば、交差検証プロセスは、現在のエンコーディングストリームのための品質しきい値リストを決定するために、参照エンコーディングストリームからの品質情報を使用し得る。交差検証プロセスは、参照エンコーディングストリームと現在のエンコーディングストリームとの間の差に基づいて、参照エンコーディングストリームからの品質情報を調整し得る。例えば、参照エンコーディングストリームは、より低いビットレート及び/又は品質に関連付けられたプロファイルのためのものであり得る。差分品質しきい値が、現在のエンコーディングストリームのプロファイルと、参照エンコーディングストリームのプロファイルとの間の差を考慮し得る。次いで、品質しきい値リスト中の値は、差分品質しきい値によって調整され得、これは、現在のエンコーディングストリームを検証するために使用される品質しきい値のリストをもたらす。交差検証プロセスは、品質しきい値リストに基づいて、エラーについて現在のエンコーディングストリームをチェックし得る。エラーが見つかった場合、交差検証プロセスは、現在のエンコーディングストリームのエラーがある部分を識別し得る。次いで、このプロセスは、エンコーディングエラーがある部分を再処理すること等によって、エラーを修復し得る。
【0007】
[0020]交差検証プロセスは、エラーを検出するために、自動的に実行され得る。自動検出は、エンコーディングストリームを目で見てチェックするために必要であった多くの手作業の時間を節約し得る。さらに、参照エンコーディングストリームの使用は、現在のエンコーディングストリーム中にエラーがあるかどうかを予測するための、より正確であり得る品質情報を提供することによって、エラーについてチェックする自動プロセスを改善し得る。追加として、現在のエンコーディングストリームのエラーがある部分を識別することによって、現在のエンコーディングストリームの再処理は、現在のエンコーディングストリーム全体が再処理される必要がないという点で、コンピューティングリソースを節約し得る。
【0008】
[0021]システムの概要
【0009】
[0022]図1は、いくつかの実施形態による、ビデオをエンコードするための簡略化されたシステム100を図示する。システム100は、サーバシステム102と、クライアント104と、を含む。1つのサーバシステム102及び1つのクライアント104が示されているが、複数のクライアント104及び複数のサーバシステム102が使用され得ることが理解される。例えば、サーバシステム102は、複数のサーバを含み得、複数のクライアント104と通信し得る。また、コンテンツ配信ネットワーク(CDN:content delivery networks)が、クライアント104にビデオを配信するために使用され得るが、それは図示されていない。
【0010】
[0023]サーバシステム102は、ビデオのエンコードされたビットストリームをクライアント104に送ることを容易にするビデオ配信システム112を含み得る。例えば、ビデオ配信システム112は、クライアント104がビデオオンデマンド又はテレビの生放送からのライブビデオ等のビデオを要求することを可能にするビデオ配信サービスを提供し得る。上記で説明されたように、ビデオ配信システム112は、ビデオのエンコードされたビットストリームを配信するために、コンテンツ配信ネットワークを使用し得る。このケースでは、ビデオのエンコードされたバージョンは、クライアント104への配信のために、コンテンツ配信ネットワークに送られ得る。
【0011】
[0024]クライアント104は、スマートフォン、リビングルームデバイス、タブレットデバイス、パーソナルコンピュータ等のような、ビデオを再生し得る様々なコンピューティングデバイスを含み得る。ビデオ配信システム112は、クライアント104におけるインターフェースにおいて表示されるアプリケーションを提供し得る。ユーザアカウントが、ビデオ配信サービスにアクセスするために、アプリケーションにログオンし得る。次いで、ビデオ配信システム112は、クライアント104からビデオ要求を受信し、クライアント104がビデオをストリーミングすることを可能にするために、ビデオ要求を処理し得る。エンコードされたビットストリームを受信すると、デコーダ114が、ビットストリームをデコードする。メディアプレーヤ116が、クライアント104におけるユーザインターフェース上で、デコードされたビットストリームを再生し得る。
【0012】
[0025]サーバシステム102は、ソースビデオをエンコードするエンコーダ106を含む。例えば、ソースビデオは、コンテンツプロバイダ等のソースから受信され得る。エンコーダ106は、ソースビデオを異なるエンコードされたビットストリームにエンコードし得、これは、エンコーディングストリームと呼ばれ得る。周知のように、ビデオは、ビットレート及び/又は品質の異なるレベルであり得る異なるレベルに対応する複数のプロファイルでエンコードされ得る。いくつかの実施形態では、ソースビデオは、ビデオのために使用され得るプロファイルを含むプロファイルラダー(profile ladder)にエンコードされる。プロファイルは、ビットレート及び/又は品質特性等の特性に関連付けられた異なるレベルを含む。ビットレートは、送られ得る1秒あたりのバイト数であり得、品質特性は、ビデオの品質を測定し得る。より高い解像度がより高い品質に関連付けられている等、ビデオの解像度は、品質特性に関連し得る。プロファイルラダーにおけるプロファイルのレベルは、ビデオが400キロバイト/秒(Kbps)及び270pの解像度でトランスコードされ得る等、そのレベルに関してどのようにビデオがトランスコードされるかに基づいて決定され得る。270pの解像度は、ビデオの解像度において使用されるピクセル数を表し得る。
【0013】
[0026]エンコーダ106は、エンコーディングストリームをエンコーディングストリームモニタ108に出力し得、これは、エンコーディングストリームを検証(validate)し得る。以下でより詳細に説明されるように、エンコーディングストリームモニタ108は、エンコーディングストリームを検証する交差検証プロセスを実行し得る。エンコーディングストリームが検証されなかった(not validated)場合、エンコーダ106は、異なるエンコーディングパラメータを使用して、ビデオを再エンコードし得る。エンコーディングストリームが検証されると、エンコーダ106は、ビデオストレージ110内にエンコーディングストリームを記憶し得る。例えば、ビデオは、公開され得、公開後にクライアント104によって要求され得る。例えば、クライアント104は、現在の再生条件(playback conditions)に基づいて、プロファイルのうちの1つからのビデオのセグメントを要求し得る。いくつかの例では、クライアント104は、現在の利用可能な帯域幅及びその他のネットワーク条件に基づいて、ビデオのためのプロファイルを選択するために、適応ビットレートアルゴリズムを使用し得る。
【0014】
[0027]エンコーディングプロセス
【0015】
[0028]図2は、いくつかの実施形態による、ソースビデオをエンコードするための方法の簡略化されたフローチャート200を図示する。202において、エンコーディングストリームモニタ108は、ソースビデオの現在のエンコーディングストリームを受信する。現在のエンコーディングストリームは、エンコーダ106によって出力された、エンコードされたビットストリームであり得る。例えば、エンコーダ106は、ビットレート及び品質の異なる組合せに関連付けられ得るプロファイル等の、複数のプロファイルにソースビデオをエンコードし得る。いくつかの実施形態では、9個のプロファイル等の、いくつかのプロファイルが使用され得る。これらプロファイルは、200、300、400、650、1000、1500、2000、2500及び3200Kbpsのビットレートに関連付けられ得るが、他のビットレートも使用され得る。一例では、エンコーダ106は、200Kbpsでプロファイルをエンコードした後に、300Kbpsでプロファイルをエンコードし得る。
【0016】
[0029]204において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームを分析する。分析は、以下でより詳細に説明される。
【0017】
[0030]206において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの検証が不合格であるかどうかを決定する。検証が不合格であった場合、208において、エンコーディングストリームモニタ108は、エンコーディングパラメータを調整し得る。例えば、エンコーディングストリームモニタ108は、現在のエンコーディングストリームにおけるエラーを分析し、エラーに基づいて、異なるトランスコーディングパラメータを決定し得る。例えば、エンコーディングストリームモニタ108は、参照エンコーディングストリームと、現在のエンコーディングストリームとの間の品質の差を出力し得る。この差は、それに応じてパラメータを調整するために使用され得る。例えば、参照エンコーディングストリームの品質と、現在のエンコーディングストリームの品質との間の大きい差は、パラメータのより大きい調整をもたらし得る。また、エンコーディングストリームモニタ108は、エラーの位置を決定し、この位置をエンコーダ106に提供し得、これにより、エンコーダ106は、(例えば、ソースビデオ全体ではなく)エラーの位置に基づいてソースビデオの一部のみを再エンコードし得る。
【0018】
[0031]210において、現在のエンコーディングストリームが交差検証に不合格でなかった場合、210において、エンコーディングストリームモニタ108は、公開のために現在のエンコーディングストリームを記憶する。
【0019】
[0032]交差検証の実施形態
【0020】
[0033]交差検証は、異なる方法で、エンコーディングストリームパイプラインにおいて実行され得る。以下では、交差検証を実行するための2つの方法を説明するが、他の方法も理解され得る。図3は、いくつかの実施形態による、エンコーディングストリームパイプラインにおいて交差検証を実行するための方法の簡略化されたフローチャート300を図示する。302において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの品質測定値を計算する。品質測定値は、プロファイルの現在のエンコーディングストリーム全体についての平均品質であり得る。例えば、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの各フレームについて、ピーク信号対雑音比(PSNR)等の、品質測定値の平均を計算し得る。フレームの一部、全てのフレーム等からの最大ピーク信号対雑音比等の、他の測定値も使用され得る。
【0021】
[0034]304において、エンコーディングストリームモニタ108は、品質測定値をしきい値と比較する。しきい値は、変化しない静的品質しきい値であり得る。例えば、静的品質しきい値は、フレームの一部又はフレームごとに等、現在のエンコーディングストリームの一部に対して変化しない場合がある。また、しきい値は、複数のビデオにわたって変化しない場合がある。例えば、300Kbpsの同じプロファイルの場合、同じ静的品質しきい値が、300Kbpsプロファイルのためにエンコードされた全てのソースビデオのために使用され得る。いくつかの例では、30デシベル(dB)のピーク信号対雑音比が、このプロファイルのために使用される品質しきい値であり得る。
【0022】
[0035]306において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームが検証に不合格であるかどうかを決定する。そうでない場合、312において、エンコーディングストリームモニタ108は、エンコーディングが成功したことを示す情報を出力する。現在のエンコーディングストリームは、この時点で公開され得る。例えば、それ以上の検証(例えば、交差検証)は、実行されなくなり得る。
【0023】
[0036]現在のエンコーディングストリームが検証に不合格であった場合、308において、エンコーディングストリームモニタ108は、交差検証プロセスを実行する。交差検証プロセスが静的しきい値との第1の比較後に実行される場合の1つの理由が、静的しきい値を使用することが高いフォールスアラーム率(high false alarm ratio)を有し得ることである。ビデオエンコーディングの品質は、ビデオ特性に依存して、ビデオ全体を通して変化し得るので、高いフォールスアラーム率が存在し得る。例えば、ビデオのいくつかの部分は、多くの量の動きを有し得、いくつかの部分は、ほとんど静的なオブジェクトを含み得るか、又はあまり詳細がない(例えば、ブラックスクリーン)場合がある。動きの多いフレームは、静的なオブジェクトを有するフレームよりも低い品質を有し得る。静的しきい値は、例えば、エラーとしてフラグを立てられ得るが、いかなるエンコーディングエラーも有していない場合がある動きの多いコンテンツを有するフレーム等、実際のエラーではない場合があるエンコーディングエラーのフラグを立て得る値に設定され得る。例えば、動きの多いフレームは、静的なオブジェクトを有するフレームよりも低い品質を有し得る。いくつかの例では、大きいノイズを有するビデオ(例えば、映画)の場合、ピーク信号対雑音比は、一般に、およそ32デシベル(dB)~36dBであり得る。しかしながら、アニメーションの場合、ピーク信号対雑音比は、一般に、およそ42dB~45dBであり得る。したがって、静的しきい値がピーク信号対雑音比に対して高すぎるように設定されている場合、高ノイズを有するビデオの大半が、たとえビデオがエンコーディングエラーを有していなかったとしても、静的しきい値での検証に合格しない。また、静的しきい値がピーク信号対雑音比に対して低すぎるように設定されている場合、アニメーションがもともと高いピーク信号対雑音比を有しているので、一部のアニメーションは、たとえアニメーションがエンコーディングエラーを有していたとしても検証に合格し得る。したがって、静的しきい値を使用すると、ある特定のタイプのビデオでは、高い誤検出(false positives)が存在し得る。類似の参照エンコーディングを使用する交差検証は、品質しきい値が参照の特性に基づいて異なるので、この問題を克服し得る。
【0024】
[0037]以前は、現在のエンコーディングストリームが静的しきい値での検証に不合格であった場合、典型的に、ビデオは手動で見直され、これはリソースを浪費した。しかしながら、いくつかの実施形態では、エンコーディングストリームモニタ108は、最初の検証が不合格であると、交差検証プロセスを自動的に実行する。
【0025】
[0038]310において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームが交差検証に合格したかどうかを決定する。交差検証プロセスは、以下でより詳細に説明される。交差検証に合格した場合、312において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームがエラーなしに成功裏にエンコードされたことのインジケーションを出力する。いくつかのケースでは、交差検証は、エンコーディングストリームが最初の検証に不合格になった後に、それを検証し得る。例えば、現在のエンコーディングストリームが最初の検証に不合格であるが、交差検証には合格し得る場合は、現在のエンコーディングストリームが大きいノイズを有するときであり、ピーク信号対雑音比は、静的しきい値よりも低くなり得るが、交差検証プロセスでは、現在のエンコーディングストリームは合格し得、これは、現在のエンコーディングストリームが、参照エンコーディングストリームの特性に基づいてしきい値を変化させる参照エンコーディングストリームと比較されるからである。
【0026】
[0039]現在のエンコーディングストリームが交差検証に合格しなかった場合、314において、エンコーディングストリームモニタ108は、失敗(failure)を出力し、これは、エンコーディングエラーが検出されたことを意味する。交差検証プロセスは、エラーが存在するかどうかを決定するために、現在のエンコーディングストリームをより詳細にチェックし得る。また、交差検証が不合格であった場合、交差検証は、現在のエンコーディングストリームにおけるエラーがあった位置を識別し得、これは、エラーが生じた場所を決定するために、ビデオを手動で視聴する必要性を除去し得る。また、交差検証プロセスは、使用すべきターゲット品質等の、ビデオを再エンコードするときに使用すべきパラメータを提供し得る。
【0027】
[0040]交差検証方法はまた、スタンドアロンのプロセスとして使用され得る。例えば、図4は、いくつかの実施形態による、交差検証プロセスを実行するための方法の簡略化されたフローチャート400を図示する。402において、エンコーディングストリームモニタ108は、ビデオの現在のエンコーディングストリームを受信する。例えば、エンコーディングストリームモニタ108は、エンコーディングエラーについてその他任意の検証チェックが実行されることなく、エンコーダ106からの現在のエンコーディングストリームを受信する。404において、エンコーディングストリームモニタ108は、交差検証プロセスを実行する。406において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームが交差検証プロセスに合格したかどうかを決定する。そうである場合、エンコーディングストリームモニタ108は、検証について成功のインジケーションを出力する。そうでない場合、エンコーディングストリームモニタ108は、検証の失敗のインジケーションを出力する。したがって、最初の検証は、プロセスから除去される。静的しきい値での最初の検証チェックを含めない1つの理由は、ビデオ(例えば、上記で説明されたようなアニメーション)が、より高いピーク信号対雑音比を有し得、静的しきい値に合格し得るが、それでもエンコーディングエラーを有し得るからである。上記のエンコーディングパイプラインフローが説明されたが、交差検証プロセスを組み込む他のフローも使用され得る。
【0028】
[0041]交差検証プロセス
【0029】
[0042]次に、交差検証プロセスが、より詳細に説明される。図5は、いくつかの実施形態による、交差検証プロセスを実行するための方法の簡略化されたフローチャート500を図示する。502において、エンコーディングストリームモニタ108は、交差検証のための参照エンコーディングストリームを選択する。エンコーディングストリームモニタ108は、異なる方法で参照エンコーディングストリームを決定し得る。いくつかの実施形態では、エンコーディングストリームモニタ108は、参照エンコーディングストリームの選択を受信し得るか、又は参照エンコーディングストリームを選択し得る。例えば、エンコーディングストリームモニタ108は、現在のエンコーディングストリームと類似した特性を含む参照エンコーディングストリームを決定するように試みる。いくつかの実施形態では、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの特性を、可能な参照エンコーディングストリームの特性と比較し得る。次いで、エンコーディングストリームモニタ108は、参照エンコーディングストリームのセットから、現在のエンコーディングストリームに対する最適な参照(例えば、最も類似している)とみなされる参照エンコーディングストリームを選択し得る。いくつかの実施形態では、エンコーディングストリームモニタ108は、ストリームの特性に基づいて、各参照エンコーディングストリームについてのスコアを計算し得る。現在のエンコーディングストリームに最も類似するスコアを有する参照エンコーディングストリームが選択され得る。いくつかの実施形態では、エンコーディングストリームモニタ108は、現在のエンコーディングストリームのためのプロファイルを決定し得る。同じソースビデオについて以前にエンコードされた別のプロファイルが存在する場合、エンコーディングストリームモニタ108は、その参照エンコーディングストリームを選択し得る。例えば、300Kbpsプロファイルがエンコードされている場合、エンコーディングストリームモニタ108は、参照エンコーディングストリームとして200Kbpsプロファイルを選択し得る。200Kbpsプロファイルのためのエンコーディングストリームは、現在のエンコーディングストリームと類似した特性を有し得ることが予期される。
【0030】
[0043]いくつかのケースでは、現在のエンコーディングストリームは、ソースビデオのためにエンコードされた最初のエンコーディングストリームであり得る。エンコーディングストリームモニタ108は、信頼性があると見なされ得、エラーが非常に少ないか又はほとんどないであろう、別のエンコーダからの参照エンコーディングストリームを選択し得る。例えば、現在のエンコーディングストリームのためのエンコーダが、H.265等の第1のプロトコルを使用している場合、エンコーディングストリームモニタ108は、H.264等のより確立されたエンコーディングプロトコルからの参照エンコーディングストリームを選択し得る。H.265プロトコルが比較的新しい一方で、H.264プロトコルは、何年にもわたって信頼性をもって使用されてきた。H.264エンコーダからの参照エンコーディングストリームは、より信頼性が高くあり得、この参照エンコーディングストリームには、エンコーディングエラーが多くないという確信があり得る。また、エンコーディングストリームモニタ108は、現在のエンコーディングストリームと類似のコンテンツを含む参照エンコーディングストリームを決定するために、ストリームのコンテンツを分析し得る。
【0031】
[0044]504において、エンコーディングストリームモニタ108は、参照エンコーディングストリームのフレームについての品質測定値を決定する。フレームは、画像等の、ビデオの一部であり得る。品質測定値は、ビデオのフレームについての品質を定量化するための情報を提供し得る。品質測定値は、各フレーム、複数のフレーム、1つおきのフレーム等についてのものであり得る。図6は、いくつかの実施形態による、ビデオのフレームに品質をマッピングするグラフ600を図示する。例えば、グラフ600は、Y軸上にピーク信号対雑音比等の品質測定値を含み、X軸上にフレーム番号の識別を含む。線602が、これらフレームについての品質をマッピングする。品質測定値は、静的ではなく、フレームによって異なる。また、フレーム内に多くの動きが存在する、シーンが変わる場合等のように、フレーム間の品質に大きい差が存在し得る。現在のエンコーディングストリームの品質測定値が静的しきい値を下回るポイントが存在し得るが、そのポイントにおけるフレームは、エンコーディングエラーを含まないので、参照エンコーディングストリームにおける品質のバリエーションを使用することは、交差検証を改善する。むしろ、フレームは、ビデオの特性により、より低い品質でエンコードされたコンテンツに関連付けられ得る。
【0032】
[0045]図5を再び参照すると、506において、エンコーディングストリームモニタ108は、参照エンコーディングストリームに基づいて、品質しきい値リストを計算する。品質しきい値リストは、初期品質測定値に対する調整された品質測定値であり得る。調整は、参照エンコーディングストリームと現在のエンコーディングストリームとの間の任意の差に基づいて実行され得る。例えば、参照エンコーディングストリームは、200Kbpsプロファイルに基づき得、一方、現在のエンコーディングストリームは、300Kbpsプロファイルに基づき得る。200Kbpsプロファイルは、300Kbpsプロファイルとは異なるターゲット品質でエンコードされ得る。すなわち、300Kbpsプロファイルは、200Kbpsプロファイルよりも高い品質を有し得る。品質しきい値リストは、これらの差に基づいて調整を行う。図7は、いくつかの実施形態による、調整の例を図示する。例えば、図7は、いくつかの実施形態による、品質しきい値リストのグラフ700を図示する。グラフ700は、Y軸上に品質測定値及びX軸上にフレームを含む。差分品質しきい値702は、参照エンコーディングストリームの品質測定値の調整を表す。例えば、参照エンコーディングストリームについての品質測定値は、704において示されている。差分品質しきい値に基づく品質測定値への調整の結果は、706において示されている。見て分かるように、フレームについての品質測定値は、差分品質しきい値に基づいて調整されている。この例では、調整品質測定値は、元の品質測定値から増加されているが、調整された品質測定値は、より低い方へ等、他の方向に調整され得ることも理解されよう。すなわち、参照エンコーディングストリームが現在のエンコーディングストリームよりも高い品質プロファイルからものである場合には、品質測定値は、より低くなるように調整され得る。
【0033】
[0046]差分品質しきい値は、参照エンコーディングストリームと現在のエンコーディングストリームとの間の差に基づいて計算され得る。いくつかの実施形態では、差分品質しきい値Δquality_thresholdは、以下の関数によって計算され得る。
【0034】
【数1】
【0035】
変数bitratecurは、現在のエンコーディングストリームをエンコードするために使用されるプロファイルのビットレートであり得、変数bitraterefは、参照エンコーディングストリームのためのプロファイルのビットレートであり得る。変数qualityrefは、参照エンコーディングストリームのプロファイルの品質レベルであり得る。いくつかの実施形態では、bitratecurは、現在のエンコーディングストリームの平均ビットレートであり、bitraterefは、参照エンコーディングストリームの平均ビットレートであり、qualityrefは、参照エンコーディングストリームの平均品質である。上記は、差分品質しきい値が、現在のエンコーディングストリームのビットレートと、参照エンコーディングストリームのビットレートと、参照エンコーディングストリームの品質との関数であることを示す。関数fについての一例が、以下に示されるが、その他も使用され得る。
【0036】
【数2】
【0037】
[0047]関数f(qualityref)は、ビットレートと、異なる品質範囲の下での品質との変換係数を表し得る。変換係数は、ビットレートの値における変化を、品質測定値における値の変化に(ビットレートをピーク信号対雑音比に)変換し得る。例えば、ビットレートにおける10パーセントの変化は、ピーク信号対雑音比についてのdBにおける0.5の変化であり得る。ビットレートの変化から品質における変化への変換を実施する異なる方法が理解され得る。変数safe_factorは、Δquality_thresholdの値の控えめな使用(conservative use)を表す。すなわち、安全係数は、参照品質測定値をその完全な変換(its full conversion)にまで調整しない場合がある。例えば、エンコーディングストリームモニタ108は、品質しきい値レベルを100ピーク信号対雑音比に調整する代わりに、エンコーディングストリームモニタ108が、しきい値を90ピーク信号対雑音比に調整する等、変換の90%を獲得する(capture)ように安全係数を0.9に設定し得る。
【0038】
[0048]追加として、エンコーディングストリームモニタ108は、調整された品質測定値に静的品質しきい値(例えば、リミット又はクランプ)を適用し得る。静的品質しきい値は、品質しきい値リストの範囲を制限し得る。例えば、ある特定の品質レベルが、フレーム又はフレームのグループによって満たされた場合には、その品質レベルは、たとえ調整された品質測定値の品質レベルが静的品質しきい値を超えたとしても、許容可能であり得る。エンコーディングストリームモニタ108は、静的品質しきい値を、ピーク信号対雑音比について35dBに設定し得るが、他の値も使用され得る。したがって、エンコーディングストリームモニタ108は、静的品質しきい値より高い、フレーム又はフレームのグループのための任意の品質しきい値を、静的品質しきい値の値に制限し得る。
【0039】
[0049]図8は、いくつかの実施形態による、静的品質しきい値を品質しきい値リストに適用する例を図示する。グラフ800-1は、静的品質しきい値と、706における調整された品質しきい値リストとの関係とを示す。802において、静的品質しきい値は、エンコーディングストリーム全体にわたって適用され得る。静的品質しきい値は、許容可能な品質レベルとみなされた所定の値に設定され得る。グラフ800-2では、静的品質しきい値は、品質しきい値リストに適用される。例えば、静的品質しきい値を超える任意の測定値が、静的品質しきい値に調整され得る。静的品質しきい値を超えた品質しきい値リストのエリアは、804-1、804-2、及び804-3において示されている。品質しきい値リストについてのこれらの値は、静的品質しきい値に調整されている。静的品質しきい値を適用することによって、エンコーディングストリームモニタ108は、元の品質リストを下回るいくつかのフレームは、これらフレームの品質が十分であるので、エラーでない可能性があることを決定し得る。例えば、現在のエンコーディングストリームは、元の参照品質レベルを満たさない可能性があるが、静的品質しきい値を超え得る。
【0040】
[0050]図5を再び参照すると、508において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームにおけるフレームセットに対して、現在のエンコーディングストリームの局所検証を実行する。局所検証は、フレームセットについての品質測定値を、品質しきい値リスト中の対応するフレームについての、対応するしきい値と比較する。局所検証は、エンコーディングエラーを含み得るフレームを局所的に決定するために、フレームレベルで実行され得る。エンコーディングストリームモニタ108は、品質しきい値リストを、現在のエンコーディングストリームにおけるフレームについての品質と比較し得る。いくつかの実施形態では、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの品質をチェックするために、スライディングウィンドウを使用し得る。スライディングウィンドウは、いくつかのフレームに設定され得、これは、1つのフレームからビデオ全体の間であり得る。しかしながら、いくつかの実施形態では、エンコーディングストリームモニタ108は、エンコーディングエラーありのいくつかのフレームと、エンコーディングエラーなしのいくつかのフレームとを局所的に識別するために、ビデオ全体より小さいウィンドウを使用する。ウィンドウのサイズは、使用されるコンピューティングリソースの量を決定し得る。例えば、より小さいウィンドウサイズは、より大きいウィンドウサイズに比べて、エンコーディングストリーム全体を分析するためにより多くの計算を実行し得る。しかしながら、より大きいウィンドウサイズは、どこにエンコーディングエラーがあるかをフレームレベルで区別する感度がより低くなり得る。例えば、1つ又は2つのフレームのスライディングウィンドウは、1つ又は2つのフレームによって、局所エンコーディングエラーを決定することが可能であり得る。しかしながら、より大きいウィンドウサイズは、正確なフレームに対するエンコーディングエラーを決定することが可能でない場合がある。510において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームが検証されたかどうかの決定を出力する。異なる方法が、現在のエンコーディングストリームが検証されたかどうかを決定するために使用され得、以下でより詳細に説明される。
【0041】
[0051]図9は、いくつかの実施形態による、局所検証を使用するためのプロセスの例900を図示する。ビデオのフレームが902において示されており、現在のエンコーディングストリームの最初のフレームから最後のフレームまでであり得る。エンコーディングストリームモニタ108は、局所検証において分析すべきフレームを決定するために、ウィンドウ904を使用する。この例では、ウィンドウ904は、5つのフレームであるが、エンコーディングストリームモニタ108は、異なる数のフレームを使用し得る。
【0042】
[0052]交差検証プロセスでは、エンコーディングストリームモニタ108は、ウィンドウ904における5つのフレームを分析し、次いで、現在のエンコーディングストリーム902のフレームにわたってウィンドウをスライドさせる。例えば、906-1において5つのフレームを分析した後、エンコーディングストリームモニタ108は、さらに5つのフレームを分析するために、ウィンドウ904を906-2へとスライドさせる。いくつかの実施形態では、エンコーディングストリームモニタ108は、ウィンドウ904を1フレームずつスライドさせるが、エンコーディングストリームモニタ108は、分析のための異なる数のフレームでウィンドウ904をスライドさせ得る。単一フレームスライディングウィンドウでは、ウィンドウ904は、906-3へとスライドし、以下同様に906-4における最後の5つのフレームに至るまでスライドする。
【0043】
[0053]各スライディングウィンドウステップでは、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの局所品質と、現在のウィンドウ904におけるフレームについての品質しきい値リストの局所品質とを計算する。コーディングストリームモニタ108は、異なる品質測定値を比較し、これらのフレームが検証に不合格であったか、又は検証に合格したかを決定し得る。ウィンドウ904におけるフレームのために使用される品質測定値は、平均品質、最大品質、最小品質等のような、異なる測定値であり得る。また、重み付けされた品質が、以下のように、局所品質を表すために使用され得る:
【0044】
【数3】
【0045】
重み付けされた品質は、異なるようにウィンドウ904におけるフレームを重み付けし得る。例えば、中央のフレームは、ウィンドウ904において中央のフレームの品質を最も重要なものにするために、最も高く重み付けされ得る。いかなる重み付けも使用しないこと、最初のフレームをより高く重み付けすること等のような、他の方法も使用され得る。
【0046】
[0054]図10は、いくつかの実施形態による、現在のエンコーディングストリームの品質を分析するための方法の簡略化されたフローチャート1000を図示する。1002において、エンコーディングストリームモニタ108は、変数Pを0とし、ウィンドウサイズをサイズXとし、「不合格ポイント」という変数を0に等しく、「合格ポイント」という変数を0に等しく、これら変数を設定する。変数不合格ポイント及び変数合格ポイントは、分析中の失敗及び成功の数をカウントする。変数Pは、ビデオにおけるフレームを識別するフレーム識別子である。エンコーディングストリームモニタ108は、スライディングウィンドウ904の始点として変数Pを使用し得る。
【0047】
[0055]1004において、エンコーディングストリームモニタ108は、変数PをP+1に等しくなるように設定する。これはウィンドウを、ビデオの最初のフレームとして設定する。各後続の分析において、エンコーディングストリームモニタ108は、ウィンドウを増分し得るか、又はウィンドウを1フレーム分スライドさせ得る。ウィンドウは、1つより多くのフレーム分移動され得ることに留意されたい。
【0048】
[0056]1006において、エンコーディングストリームモニタ108は、ウィンドウサイズがビデオの終わりよりも大きくなるかどうかを決定する。すなわち、エンコーディングストリームモニタ108は、スライディングウィンドウがビデオの終わりを越えたかどうかを決定する。このケースでは、分析プロセスは終了し、1018に進み得、これは、後に説明される。スライディングウィンドウがビデオの終わりに到達していない場合、1008において、エンコーディングストリームモニタ108は、現在のエンコーディングストリームにおけるフレームPからフレームP+ウィンドウサイズまでのこれらフレームの局所品質を計算する。これは、「現在の品質」と呼ばれ得る。1010において、エンコーディングストリームモニタ108は、品質しきい値リスト中のフレームPからフレームP+ウィンドウサイズまでのこれらフレームの品質を計算する。これは、「品質しきい値」と呼ばれ得る。したがって、エンコーディングストリームモニタ108は、現在のエンコーディングストリームと品質しきい値リストについて、ウィンドウ904における局所品質を測定する。
【0049】
[0057]1012において、エンコーディングストリームモニタ108は、現在の品質が品質しきい値未満であるかどうかを決定する。例えば、現在の品質が品質しきい値未満である場合には、エンコーディングストリームモニタ108は、現在のエンコーディングストリームについてのウィンドウ904における部分が、その品質が参照エンコーディングストリームのものよりも低いので、その中にエラーがあり得ることを決定する。上記分析が決定されたが、品質しきい値の重み付けを使用する等、現在の品質と品質しきい値との間の他の比較も使用され得る。
【0050】
[0058]現在の品質が品質しきい値を満たさない(例えば、それより低い)場合、1014において、エンコーディングストリームモニタ108は、不合格ポイントの数を、1等によって増分する。現在の品質が品質しきい値を満たす(例えば、それより大きい)場合、1016において、エンコーディングストリームモニタ108は、合格ポイントの数を増分する。プロセスは1004へと反復し、ここで、変数Pは増分され、これは、ウィンドウ904をフレームの数P分だけスライドさせる。
【0051】
[0059]最終的には、ビデオの終わりがウィンドウ904によって到達されることになり、1018において、エンコーディングストリームモニタ108は、交差検証が不合格であったかどうかを決定する。例えば、エンコーディングストリームモニタ108は、不合格ポイントの数がしきい値を満たす(例えば、しきい値より大きい)かどうかを決定し得る。例えば、エンコーディングストリームモニタ108は、不合格ポイントの数をカウントし、不合格ポイントの数をしきい値と比較するのみであり得る。いくつかの実施形態では、不合格ポイントと合格ポイントとの比率が使用され、しきい値と比較され得るが、他の方法も使用され得る。比率は、比較の回数に基づいて、ビデオに基づく少数のエンコーディングエラーのみが存在し得、それらの少数のエンコーディングエラーは許容可能であり得るとみなし得る。不合格ポイントのみの使用は、ビデオの長さを考慮しない場合がある。例えば、エンコーディングストリームモニタ108は、合格しきい値として100%を使用し得、これは、不合格ポイントが1つでもあれば、エンコーディングストリームモニタ108は失敗を出力することになることを意味する。しかし、他のシナリオは、ストリームがすぐに公開される必要があり得るので、現在のエンコーディングストリームを再トランスコードする時間がほとんどない可能性がある等、品質よりも適時性(timeliness)又は計算リソースに重きを置き得る。これらのシナリオの場合、エンコーディングストリームモニタ108は、低い品質を有する1つ又は2つのフレーム等の、いくらかのエラーを許容し得、エンコーディングストリームモニタ108は、この合格しきい値を、99%等のより低い数値に設定し得る。
【0052】
[0060]1020において、交差検証は不合格でなく、エンコーディングストリームモニタ108は、成功のインジケーションを出力する。現在のエンコーディングストリームの更なる見直しは必要でなくなり得、現在のエンコーディングストリームは、公開(例えば、クライアントへのストリーミング)のために出力され得る。1022において、交差検証は不合格であり、エンコーディングストリームモニタ108は、失敗のインジケーションを出力し得る。この場合、現在のエンコーディングストリームの更なる処理が実行され得る。エンコーディングストリームモニタ108はまた、エラーの位置及び調整されたパラメータ等の、ソースビデオを再処理する際に役立ち得る情報を出力し得る。
【0053】
[0061]図11Aは、いくつかの実施形態による、エンコーディングエラーを検出する例を図示する。グラフ1100は、Y軸上に品質、及びX軸上に現在のエンコーディングストリームについてのフレームを示す。線1101は、現在のエンコーディングストリームの品質を示す。
【0054】
[0062]1102-1において、品質測定値は、いくつかのフレームについて低下する。これは、これらのフレームに局所的な品質問題が存在することを示し得る。スライディングウィンドウが使用されているので、エンコーディングエラーは、これらのフレームにおいて局所的に検出され得る。これらのエラーは、フレームのうちのいくつかがボックスによって示されるエンコーディングエラーを含む、現在のエンコーディングストリームにおける1102-2において示されている。
【0055】
[0063]図11Bは、いくつかの実施形態による、しきい値リストを使用してエンコーディングエラーを検出する例を図示する。グラフ1104は、Y軸上に品質、及びX軸上に現在のエンコーディングストリームについてのフレームを示す。線1106は、現在のエンコーディングストリームの品質を示し、線1108は、しきい値リストの品質を示す。現在のエンコーディングストリームの品質は、1110において示されるポイントにおいて、しきい値リストを満たさない場合がある。エンコーディングストリームモニタ108は、現在のエンコーディングストリームにおけるこのポイントがエンコーディングエラーを含むと決定する。
【0056】
[0064]エンコーディングストリームモニタ108は、エンコーディングエラーを含み得るフレームの識別を出力し得る。追加として、エンコーディングストリームモニタ108は、エンコーディングパラメータを調整するために使用され得る情報を出力し得る。エンコーディングストリームモニタ108は、この範囲にある識別されたフレームを分析し、調整を決定し得る。例えば、エンコーディングストリームモニタ108が、これらのフレームが明らかなブロック境界を有すると決定した場合、エンコーディングストリームモニタ108は、このピクチャのグループ(GOP)もしくはチャンクに対して、ヘビーデブロックフィルタ(heavy deblock filter)を提案し得、又は、エンコーディングストリームモニタ108が、これらのフレームがノイズを有すると決定した場合、エンコーディングストリームモニタ108は、それらに対してノイズ除去フィルタを提案し得る。他の提案は、サンプル適応オフセット(SAO)、レート歪み(rd)レベル、動き探索設定等を含む。
【0057】
[0065]結論
【0058】
[0066]したがって、エンコーディングストリームモニタ108は、現在のエンコーディングストリームの検証を自動的に実行する。参照エンコーディングストリームの使用は、動的しきい値が使用されることを可能にする。これは、検証を改善し、また、検証が、誤検出を低減し、使用されるコンピューティングリソースの量を低減することを可能にする。
【0059】
[0067]例となる実施形態
【0060】
[0068]いくつかの実施形態では、方法が、コンピューティングデバイスによって、ビデオの現在のエンコーディングストリームを受信することと、コンピューティングデバイスによって、参照エンコーディングストリームと現在のエンコーディングストリームとの間の類似性に基づいて、参照エンコーディングストリームを選択することと、コンピューティングデバイスによって、参照エンコーディングストリームの品質を測定するために、参照エンコーディングストリームについての第1の測定値を選択することと、コンピューティングデバイスによって、現在のエンコーディングストリームの第2の測定値を、参照エンコーディングストリームの第1の測定値と比較することと、コンピューティングデバイスによって、比較することに基づいて、現在のエンコーディングストリームが検証されたかどうかを出力することと、を備える。
【0061】
[0069]いくつかの実施形態では、参照エンコーディングストリームを選択することは、現在のエンコーディングストリームの第1の特性を、参照エンコーディングストリームの第2の特性と比較することと、参照エンコーディングストリームを、現在のエンコーディングストリームのための参照として使用するかどうかを決定することと、を備える。
【0062】
[0070]いくつかの実施形態では、参照エンコーディングストリームを選択することは、現在のエンコーディングストリームを複数の参照エンコーディングストリームと比較することと、現在のエンコーディングストリームとの類似性に基づいて、複数の参照エンコーディングストリームから参照エンコーディングストリームを選択することと、を備える。
【0063】
[0071]いくつかの実施形態では、参照エンコーディングストリームを選択することは、異なるビットレートでのビデオの別のエンコーディングからの参照エンコーディングストリームを使用することを備える。
【0064】
[0072]いくつかの実施形態では、参照エンコーディングストリームを選択することは、現在のエンコーディングストリームをエンコードするために使用されたものとは異なるエンコーディングプロトコルを使用したビデオの別のエンコーディングからの参照エンコーディングストリームを使用することを備える。
【0065】
[0073]いくつかの実施形態では、参照エンコーディングストリームについての第1の測定値を選択することは、参照エンコーディングストリームのフレームの少なくとも一部についての第1の測定値を決定することを備える。
【0066】
[0074]いくつかの実施形態では、参照エンコーディングストリームについての第1の測定値を選択することは、参照エンコーディングストリームにおける各フレームについての第1の測定値を決定することを備える。
【0067】
[0075]いくつかの実施形態では、参照エンコーディングストリームについての第1の測定値を選択することは、第1の測定値を決定するために、参照エンコーディングストリームと現在のエンコーディングストリームとの間の差に基づいて、参照エンコーディングストリームの第3の測定値を調整することを備える。
【0068】
[0076]いくつかの実施形態では、差は、参照エンコーディングストリームと現在のエンコーディングストリームとの間のビットレートの差を備える。
【0069】
[0077]いくつかの実施形態では、差は、参照エンコーディングストリームと現在のエンコーディングストリームとの間のビットレートの変化と、品質測定値の変化との間の変換係数を備える。
【0070】
[0078]いくつかの実施形態では、方法は、第1の測定値の値を静的しきい値に制限するために、第3の測定値に静的しきい値を適用することをさらに備える。
【0071】
[0079]いくつかの実施形態では、第1の測定値は、参照エンコーディングストリームのフレームのためのしきい値リストを備え、しきい値リスト中のしきい値は、現在のエンコーディングストリームのそれぞれのフレームと比較される。
【0072】
[0080]いくつかの実施形態では、現在のエンコーディングストリームの第2の測定値を、参照エンコーディングストリームの第1の測定値と比較することは、参照エンコーディングストリームにおける第1のフレームセットについての第1の測定値と、現在のエンコーディングストリームにおける対応する第1のフレームセットについての第2の測定値とを比較するために、スライディングウィンドウを使用することを備える。
【0073】
[0081]いくつかの実施形態では、スライディングウィンドウは、参照エンコーディングストリームにおける異なるフレームセットについての第1の測定値と、現在のエンコーディングストリームにおける対応する異なるフレームセットについての第2の測定値とを比較するために移動される。
【0074】
[0082]いくつかの実施形態では、現在のエンコーディングストリームが検証されたかどうかを出力することは、参照エンコーディングストリームにおけるフレームセットについての第1の測定値と、現在のエンコーディングストリームにおける対応するフレームセットについての第2の測定値とを比較するとき、失敗の数をカウントすることと、失敗の数に基づいて、現在のエンコーディングストリームが検証されたかどうかについての結果を出力することと、を備える。
【0075】
[0083]いくつかの実施形態では、現在のエンコーディングストリームが検証されたかどうかを出力することは、比較することに基づいて、参照エンコーディングストリームにおいてエンコーディングエラーが生じたと決定された1つ又は複数のフレームを局所的に識別することを備える。
【0076】
[0084]いくつかの実施形態では、現在のエンコーディングストリームが検証されたかどうかを出力することは、現在のエンコーディングストリームの、1つ又は複数のフレームを再エンコードするための調整されたエンコーディングパラメータを決定することを備える。
【0077】
[0085]いくつかの実施形態では、命令を含む非一時的なコンピュータ可読記憶媒体であって、命令は実行されると、ビデオの現在のエンコーディングストリームを受信することと、参照エンコーディングストリームと現在のエンコーディングストリームとの間の類似性に基づいて、参照エンコーディングストリームを選択することと、参照エンコーディングストリームの品質を測定するために、参照エンコーディングストリームについての第1の測定値を選択することと、現在のエンコーディングストリームの第2の測定値を、参照エンコーディングストリームの第1の測定値と比較することと、比較することに基づいて、現在のエンコーディングストリームが検証されたかどうかを出力することと、を行うように動作可能であるようにコンピュータシステムを制御する。
【0078】
[0086]いくつかの実施形態では、参照エンコーディングストリームを選択することは、現在のエンコーディングストリームの第1の特性を、参照エンコーディングストリームの第2の特性と比較することと、参照エンコーディングストリームを、現在のエンコーディングストリームのための参照として使用するかどうかを決定することと、を備える。
【0079】
[0087]いくつかの実施形態では、装置が、1つ又は複数のコンピュータプロセッサと、命令を備える非一時的なコンピュータ可読記憶媒体と、を備え、命令は実行されると、ビデオの現在のエンコーディングストリームを受信することと、参照エンコーディングストリームと現在のエンコーディングストリームとの間の類似性に基づいて、参照エンコーディングストリームを選択することと、参照エンコーディングストリームの品質を測定するために、参照エンコーディングストリームについての第1の測定値を選択することと、現在のエンコーディングストリームの第2の測定値を、参照エンコーディングストリームの第1の測定値と比較することと、比較することに基づいて、現在のエンコーディングストリームが検証されたかどうかを出力することと、を行うように動作可能であるように1つ又は複数のコンピュータプロセッサを制御する。
【0080】
[0088]システム
【0081】
[0089]本明細書で開示されている特徴及び態様は、図12に示されているように、1つ又は複数の通信ネットワークを介して複数のクライアントデバイスと通信状態にあるビデオストリーミングシステム1200とともに実施され得る。ビデオストリーミングシステム1200の態様は、本開示に従って用意されたコンテンツの配布及び配信を可能にするためのアプリケーションの例を提供するためだけに説明されている。本技術は、ストリーミングビデオアプリケーションに限定されず、その他のアプリケーション及び配信メカニズムにも適合され得るということを理解されたい。
【0082】
[0090]一実施形態では、メディア番組プロバイダが、メディア番組のライブラリを含み得る。例えば、メディア番組は、サイト(例えば、ウェブサイト)、アプリケーション、又はブラウザを通じて集約及び提供され得る。ユーザは、メディア番組プロバイダのサイト又はアプリケーションにアクセスして、メディア番組を要求し得る。ユーザは、メディア番組プロバイダによって提供されるメディア番組のみを要求することに制限され得る。
【0083】
[0091]システム1200では、ビデオデータが、ビデオコンテンツサーバ1202への入力としての使用のために、1つ又は複数のソースから、例えば、ビデオソース1210から入手され得る。入力ビデオデータは、任意の好適なデジタルフォーマット、例えば、ムービングピクチャーズエキスパートグループ(MPEG)-1、MPEG-2、MPEG-4、VC-1、H.264/アドバンストビデオコーディング(AVC)、高効率ビデオコーディング(HEVC)、又はその他のフォーマットでの生の又は編集されたフレームベースのビデオデータを備え得る。代替として、ビデオは、非デジタルフォーマットで提供されて、スキャナ及び/又はトランスコーダを使用してデジタルフォーマットへ変換され得る。入力ビデオデータは、様々なタイプのビデオクリップ又は番組、例えば、テレビエピソード、映画、及び、消費者にとって関心のある主要なコンテンツとして製作されたその他のコンテンツを備え得る。ビデオデータはまた、音声を含み得、又は音声のみが使用され得る。
【0084】
[0092]ビデオストリーミングシステム1200は、1つ又は複数のコンピュータにわたって分散された1つ又は複数のコンピュータサーバ又はモジュール1202、1204、及び/又は1207を含み得る。各サーバ1202、1204、1207は、1つ又は複数のデータストア1209、例えば、データベース、インデックス、ファイル、又はその他のデータ構造を含み得るか、又はそれらに動作可能に結合され得る。ビデオコンテンツサーバ1202は、様々なビデオセグメントのデータストア(図示せず)にアクセスし得る。ビデオコンテンツサーバ1202は、クライアントデバイスと通信するユーザインターフェースコントローラによって指示されるようにビデオセグメントを供給し得る。本明細書で使用される場合、ビデオセグメントは、テレビエピソード、映画、記録されたライブパフォーマンス、又はその他のビデオコンテンツを視聴するためのストリーミングビデオセッションにおいて使用され得るような、フレームベースのビデオデータの特定の部分を指す。
【0085】
[0093]いくつかの実施形態では、ビデオ広告サーバ1204は、特定の広告主又はメッセージのための広告として構成された比較的短いビデオ(例えば、10秒、30秒、又は60秒のビデオ広告)のデータストアにアクセスし得る。広告は、何らかの種類の支払と引換えに広告主のために提供され得るか、又はシステム1200に関する販売促進メッセージ、公共サービスメッセージ、又はその他の何らかの情報を備え得る。ビデオ広告サーバ1204は、ユーザインターフェースコントローラ(図示せず)によって指示されるようにビデオ広告セグメントを供給し得る。
【0086】
[0094]ビデオストリーミングシステム1200はまた、サーバシステム102を含み得る。
【0087】
[0095]ビデオストリーミングシステム1200は、ビデオコンテンツ及びビデオ広告をストリーミングビデオセグメントへと統合する統合及びストリーミングコンポーネント1207をさらに含み得る。例えば、ストリーミングコンポーネント1207は、コンテンツサーバ又はストリーミングメディアサーバであり得る。コントローラ(図示せず)は、任意の好適なアルゴリズム又はプロセスに基づいて、ストリーミングビデオにおける広告の選択又は構成を決定し得る。ビデオストリーミングシステム1200は、図12において図示されていないその他のモジュール又はユニット、例えば、管理サーバ、コマースサーバ、ネットワークインフラストラクチャー、広告選択エンジン等を含み得る。
【0088】
[0096]ビデオストリーミングシステム1200は、データ通信ネットワーク1212に接続し得る。データ通信ネットワーク1212は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、例えば、インターネット、電話ネットワーク、ワイヤレスセルラ電気通信ネットワーク(WCS)1214、又はこれらのもしくは類似のネットワークの何らかの組合せを備え得る。
【0089】
[0097]1つ又は複数のクライアントデバイス1220は、データ通信ネットワーク1212、ワイヤレスセルラ電気通信ネットワーク1214、及び/又は別のネットワークを介して、ビデオストリーミングシステム1200と通信状態にあり得る。このようなクライアントデバイスは、例えば、LANの場合はルータ1218を介した、ワイヤレスセルラ電気通信ネットワーク1214の場合は基地局1217を介した、又はその他の何らかの接続を介した、1つ又は複数のラップトップコンピュータ1220-1、デスクトップコンピュータ1220-2、「スマート」モバイル電話1220-3、タブレットデバイス1220-4、ネットワーク対応テレビ1220-5、又はそれらの組合せを含み得る。動作中、このようなクライアントデバイス1220は、ユーザ入力デバイスから受け取られたユーザ入力、又はその他の入力に応答して、システム1200に対してデータ又は命令を送受信し得る。これに応答して、システム1200は、メディア番組の選択に応答したデータストア1209からのビデオセグメント及びメタデータを、クライアントデバイス1220に供給し得る。クライアントデバイス1220は、ディスプレイスクリーン、プロジェクタ、又はその他のビデオ出力デバイスを使用してメディアプレーヤにおけるストリーミングビデオセグメントからビデオコンテンツを出力し、そのビデオコンテンツと対話するためのユーザ入力を受け取り得る。
【0090】
[0098]オーディオビデオデータの配布は、様々な方法、例えばストリーミングを使用して、ストリーミングコンポーネント1207から、コンピュータネットワーク、電気通信ネットワーク、及びそのようなネットワークの組合せを介して、リモートクライアントデバイスへ実施され得る。ストリーミングでは、コンテンツサーバは、クライアントデバイス上で少なくとも部分的に動作するメディアプレーヤコンポーネントにオーディオビデオデータを継続的にストリーミングし、メディアプレーヤコンポーネントは、サーバからストリーミングデータを受信すると同時にオーディオビデオデータを再生し得る。ストリーミングが説明されたが、配信のその他の方法も使用され得る。メディアプレーヤコンポーネントは、コンテンツプロバイダからデータの最初の部分を受信した直後にビデオデータの再生を開始し得る。従来のストリーミング技法は、データのストリームをエンドユーザのセットに配信する単一のプロバイダを使用する。単一のストリームを大勢の視聴者へ配信するためには、高い帯域幅及び処理能力が必要とされ得、エンドユーザの数が増大するにつれて、プロバイダの必要とされる帯域幅が増大し得る。
【0091】
[0099]ストリーミングメディアは、オンデマンド又はライブで配信され得る。ストリーミングは、ファイル内の任意のポイントにおける即時の再生を可能にする。エンドユーザは、メディアファイルにおける任意のポイントで再生を開始するために、又はメディアファイルにおける任意のポイントへ再生を変更するために、メディアファイルの至る所にスキップし得る。したがって、エンドユーザは、ファイルがプログレッシブにダウンロードするのを待つ必要がない。典型的には、ストリーミングメディアは、高帯域幅能力を有する少数の専用のサーバから専門のデバイスを介して配信され、その専門のデバイスは、ビデオファイルを求める要求を、それらのファイルのフォーマット、帯域幅、及び構造に関する情報とともに受け入れ、ビデオを再生するのに必要な量のデータのみを、それを再生するのに必要とされる速度で配信する。ストリーミングメディアサーバはまた、宛先クライアント上のメディアプレーヤの送信帯域幅及び能力を考慮し得る。ストリーミングコンポーネント1207は、ビデオが再生されるにつれて、変化するネットワーク状況に適応するために、制御メッセージ及びデータメッセージを使用してクライアントデバイス1220と通信し得る。これらの制御メッセージは、クライアントにおける早送り、早戻し、一時停止、又はファイルの特定の部分へのシーク等の制御機能を有効にするためのコマンドを含み得る。
【0092】
[00100]ストリーミングコンポーネント1207は、必要に応じてのみ、必要とされる速度でビデオデータを送信するので、供給されるストリームの数に対する正確な制御が維持され得る。視聴者が、より低いデータ転送速度の送信媒体上で高データ転送速度のビデオを視聴することは不可能であろう。しかしながら、ストリーミングメディアサーバは、(1)ビデオファイルへのランダムアクセスをユーザに提供し、(2)誰がどのビデオ番組を視聴しているか、そしてどれぐらい長くそれらが見られているかの監視を可能にし、(3)視聴体験をサポートするのに必要とされる量のデータのみが送信されるので、より効率的に送信帯域幅を使用し、(4)ビデオファイルは、視聴者のコンピュータにおいて記憶されず、メディアプレーヤによって破棄され、したがって、コンテンツに対する更なる制御を可能にする。
【0093】
[00101]ストリーミングコンポーネント1207は、ハイパーテキスト転送プロトコル(HTTP)及びリアルタイムメッセージングプロトコル(RTMP)等、TCPベースのプロトコルを使用し得る。ストリーミングコンポーネント1207はまた、ライブウェブキャストを配信し得、マルチキャストし得、これは、1より多くのクライアントが単一のストリームへとチューニングすることを可能にし、したがって、帯域幅を節約する。ストリーミングメディアプレーヤは、メディア番組における任意のポイントへのランダムアクセスを提供するために、ビデオ全体をバッファリングすることに依拠しないことがあり得る。代わりに、これは、メディアプレーヤからストリーミングメディアサーバへ送信される制御メッセージを使用して実現される。ストリーミングのために使用されるその他のプロトコルは、HTTPライブストリーミング(HLS)又はダイナミックアダプティブストリーミングオーバーHTTP(DASH)である。HLS及びDASHプロトコルは、典型的に、1つ又は複数のコンテンツ配信ネットワーク(CDN)から様々なビットレートで利用可能にされる小さなセグメントの再生リストを介してHTTP経由でビデオを配信する。これは、メディアプレーヤがセグメントごとの単位でビットレートとコンテンツソースとの両方を切り替えることを可能にする。この切替えは、ネットワーク帯域幅の変動を、そしてまた、ビデオの再生中に生じ得るインフラストラクチャーの障害を補正するのに役立つ。
【0094】
[00102]ストリーミングによるビデオコンテンツの配信は、様々なモデルのもとで実現され得る。1つのモデルでは、ユーザは、ビデオ番組の視聴に対する支払を行い、例えば、メディア番組のライブラリもしくは制限されたメディア番組の一部分へのアクセスに対する料金を支払うか、又はペイパービューサービスを使用する。放送テレビによってその開始直後に広く採用された別のモデルでは、スポンサーが、番組の提示中又は提示に隣接して広告を提示する権利と引換えに、メディア番組の提示に対する支払を行う。いくつかのモデルでは、広告は、ビデオ番組において所定の時間に挿入され、この時間は、「広告スロット」又は「広告休憩」と呼ばれ得る。ストリーミングビデオについては、メディアプレーヤは、クライアントデバイスが指定の広告スロット中に所定の広告も再生しなければ、ビデオを再生することができないように構成され得る。
【0095】
[00103]図13を参照すると、ビデオコンテンツ及び広告を視聴するための装置1300の線図が例示されている。選択された実施形態では、装置1300は、プロセッサメモリ1304に動作可能に結合されているプロセッサ(CPU)1302を含み得、プロセッサメモリ1304は、プロセッサ1302による実行用のバイナリーコード化された機能モジュールを保持する。このような機能モジュールは、入力/出力及びメモリアクセス等のシステム機能を取り扱うためのオペレーティングシステム1306、ウェブページを表示するためのブラウザ1308、並びにビデオを再生するためのメディアプレーヤ1310を含み得る。メモリ1304は、図13において示されていない追加のモジュール、例えば、本明細書におけるその他の場所で説明されているその他のオペレーションを実行するためのモジュールを保持し得る。
【0096】
[00104]バス1314又はその他の通信コンポーネントが、装置1300内の情報の通信をサポートし得る。プロセッサ1302は、特定のタスクを定義する機械可読ソフトウェアコードを実行することによって、本明細書に開示されている特徴及び態様に従って特定のタスクを実行するように構成されているか又はそのように動作可能な専門のもしくは専用のマイクロプロセッサであり得る。プロセッサメモリ1304(例えば、ランダムアクセスメモリ(RAM)又はその他の動的なストレージデバイス)は、バス1314に、又は直接プロセッサ1302に接続されて、情報と、プロセッサ1302によって実行されることになる命令とを記憶し得る。メモリ1304はまた、そのような命令の実行中に一時的変数又はその他の中間情報を記憶し得る。
【0097】
[00105]ストレージデバイス1324におけるコンピュータ可読媒体が、バス1314に接続され、プロセッサ1302のための静的な情報及び命令を記憶し得、例えば、ストレージデバイス(CRM)1324は、装置1300が電源をオフにされるときにモジュール1306、1308、1310、及び1312を記憶し得、そこから、これらのモジュールは、装置1300が電源を入れられたときに、プロセッサメモリ1304へとロードされ得る。ストレージデバイス1324は、情報、命令、又はそれらの何らかの組合せ、例えば、プロセッサ1302によって実行されると、装置1300が、本明細書で説明される方法の1つ又は複数のオペレーションを実行するように構成されるようにするか又は動作可能であるようにする命令を保持する非一時的なコンピュータ可読記憶媒体を含み得る。
【0098】
[00106]通信インターフェース1316がまた、バス1314に接続され得る。通信インターフェース1316は、オプションで、ルータ/モデム1326及び有線又はワイヤレス接続を介して、装置1300と1つ又は複数の外部デバイス、例えばストリーミングシステム1200との間の双方向データ通信を提供又はサポートし得る。代替又は追加として、装置1300は、アンテナ1329に接続されているトランシーバ1318を含み得、それを通じて、装置1300は、ワイヤレス通信システムのための基地局と、又はルータ/モデム1326と、ワイヤレスに通信し得る。代替として、装置1300は、ローカルエリアネットワーク、仮想プライベートネットワーク、又はその他のネットワークを介して、ビデオストリーミングシステム1200と通信し得る。別の代替として、装置1300は、システム1200のモジュール又はコンポーネントとして組み込まれて、バス1314を介して、又はその他の何らかのモダリティによってその他のコンポーネントと通信し得る。
【0099】
[00107]装置1300は、(例えば、バス1314及びグラフィックス処理ユニット1320を介して)ディスプレイユニット1328に接続され得る。ディスプレイ1328は、装置1300の操作者に情報を表示するための任意の好適な構成を含み得る。例えば、ディスプレイ1328は、視覚的な表示で装置1300のユーザに情報を提示するために、液晶ディスプレイ(LCD)、タッチスクリーンLCD(例えば、容量性ディスプレイ)、発光ダイオード(LED)ディスプレイ、プロジェクタ、又はその他のディスプレイデバイスを含み得、又はそれらを利用し得る。
【0100】
[00108]1つ又は複数の入力デバイス1330(例えば、英数字キーボード、マイクロフォン、キーパッド、リモートコントローラ、ゲームコントローラ、カメラ、又はカメラアレイ)が、情報及びコマンドを装置1300へ伝達するためにユーザ入力ポート1322を介してバス1314に接続され得る。選択された実施形態では、入力デバイス1330は、カーソルの位置決めに対する制御を提供又はサポートし得る。このようなカーソル制御デバイス(ポインティングデバイスとも呼ばれる)は、マウス、トラックボール、トラックパッド、タッチスクリーン、カーソル方向キー、又は、物理的な動きを受信もしくは追跡して、その動きを、カーソルの動きを示す電気信号へと変換するためのその他のデバイスとして構成され得る。カーソル制御デバイスは、例えば、タッチセンシティブスクリーンを使用して、ディスプレイユニット1328へと組み込まれ得る。カーソル制御デバイスは、方向情報及びコマンド選択をプロセッサ1302に伝達し、ディスプレイ1328上のカーソルの動きを制御し得る。カーソル制御デバイスは、2つ以上の自由度を有して、例えば、デバイスが平面又は3次元空間におけるカーソル位置を指定することを可能にし得る。
【0101】
[00109]いくつかの実施形態は、命令実行システム、装置、システム、又はマシンによる、又はそれらに関連した使用のために、非一時的なコンピュータ可読記憶媒体に実装され得る。コンピュータ可読記憶媒体は、いくつかの実施形態によって説明された方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つ又は複数のコンピューティングデバイスを含み得る。命令は、1つ又は複数のコンピュータプロセッサによって実行されると、いくつかの実施形態において説明されたものを実行するように構成され得るか、又はそのように動作可能であり得る。
【0102】
[00110]本明細書の説明及び後続する特許請求の範囲全体にわたって使用される場合、「a」、「an」、及び「the」は、文脈がそうでないことを明確に規定していない限り、複数形の参照も含む。また、本明細書の説明及び後続する特許請求の範囲全体にわたって使用される場合、「in」の意味は、文脈がそうでないことを明確に規定していない限り、「in」及び「on」を含む。
【0103】
[00111]上記の説明は、様々な実施形態を、いくつかの実施形態の態様がどのように実施され得るかの例とともに例示している。上記の例及び実施形態は、唯一の実施形態であるとみなされるべきではなく、下記の特許請求の範囲によって定義されるいくつかの実施形態の柔軟性及び利点を例示するために提示されている。上記開示及び以下の特許請求の範囲に基づいて、その他の配置、実施形態、実装形態、及び均等物が、特許請求の範囲によって定義されるここでの範囲から逸脱することなく用いられ得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11A
図11B
図12
図13
【外国語明細書】