(57)【特許請求の範囲】
【請求項１】
再生ビデオを補完するためにビデオプレーヤのユーザインターフェースコンポーネントの色を設定するためのコンピュータ実装方法であって、
前記ビデオの複数のフレームを識別するステップと、
前記識別されたフレームの各フレームに対して、
前記フレームの画素の色を複数の色区分に区分し、
前記フレームの最大数の前記画素を有する色区分を識別し、
前記識別された色区分の前記画素を平均化する
ことによって、前記フレームの支配色を識別するステップと、
色パラメータを前記支配色の色成分に適用することによって、前記支配色に基づいて複数のカラーバリアントを生成するステップと、
前記カラーバリアントの各々に対して、かつ複数のユーザインターフェースコンポーネントタイプの各々に対して、ユーザインターフェースコンポーネント色を生成するステップと、
前記ビデオの再生状態、前記ビデオ内の現在の再生ポイント前に前記識別されたフレームの現在フレーム、および前記ビデオ内の前記現在の再生ポイント後に前記識別されたフレームの次のフレームを識別するステップと、
前記再生状態と、前記現在の識別されたフレームに対して生成される前記ユーザインターフェースコンポーネント色とに基づいて、第1のユーザインターフェースコンポーネント色を識別するステップと、
前記再生状態と、前記次の識別されたフレームに対して生成される前記ユーザインターフェースコンポーネント色とに基づいて、第2のユーザインターフェースコンポーネント色を識別するステップと、
前記識別された第1のユーザインターフェースコンポーネント色と前記識別された第2のユーザインターフェースコンポーネント色とに基づいて、前記ビデオプレーヤの前記ユーザインターフェースコンポーネントの色を設定するステップと
を含む、コンピュータ実装方法。
【請求項２】
コンピュータ実装方法であって、
ビデオのフレームの支配色を識別するステップと、
前記支配色に基づいて複数のカラーバリアントを生成するステップと、
前記ビデオの再生状態を識別するステップと、
前記再生状態に基づいて前記カラーバリアントのうちの1つを選択するステップと、
前記選択されたカラーバリアントに基づいてビデオユーザインターフェースのユーザインターフェースコンポーネントの色を設定するステップであって、
複数のユーザインターフェースコンポーネントタイプの各々に対して、前記カラーバリアントの各々に対するユーザインターフェースコンポーネント色を生成するステップと、
前記再生状態に基づいて選択された前記カラーバリアントに対して前記ユーザインターフェースコンポーネント色を使用して前記ビデオユーザインターフェースの前記色を設定するステップと
を含む、ステップと
を含む、コンピュータ実装方法。
【請求項３】
前記ビデオのフレームの前記支配色を前記識別するステップが、
前記フレームの画素の色を複数の色区分に区分するステップと、
前記フレームの最大数の前記画素を有する色区分を識別するステップと、
前記識別された色区分の前記画素を平均化するステップと
を含む、請求項2に記載のコンピュータ実装方法。
【請求項４】
前記支配色に基づいて前記複数のカラーバリアントを前記生成するステップが、
前記カラーバリアントに対応する色パラメータを識別するステップと、
前記色パラメータを前記支配色の色成分に適用するステップと
を含む、請求項2に記載のコンピュータ実装方法。
【請求項５】
前記ビデオの第2のフレームに対して、第2の支配色、および前記第2の支配色に基づく第2の複数のカラーバリアントを決定するステップをさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項６】
前記ビデオユーザインターフェースの前記ユーザインターフェースコンポーネントの前記色を前記設定するステップが、
前記ビデオの前記再生内の現在時間を識別するステップと、
第1のフレームに対応する前記ビデオ内の時間から前記現在時間の第1の時間差、および前記第2のフレームに対応する前記ビデオ内の時間から前記現在時間の第2の時間差を決定するステップと、
前記第1の時間差、前記第2の時間差、前記支配色、および前記第2の支配色に基づいて、ユーザインターフェース色を補間するステップと
を含む、請求項5に記載のコンピュータ実装方法。
【請求項７】
プロセッサによって実行可能な命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令が、
ビデオのフレームの支配色を識別するための命令と、
前記支配色に基づいて複数のカラーバリアントを生成するための命令と、
前記ビデオの再生状態を識別するための命令と、
前記再生状態に基づいて前記カラーバリアントのうちの1つを選択するための命令と、
前記選択されたカラーバリアントに基づいてビデオユーザインターフェースのユーザインターフェースコンポーネントの色を設定するための命令であって、
複数のユーザインターフェースコンポーネントタイプの各々に対して、前記カラーバリアントの各々に対するユーザインターフェースコンポーネント色を生成することと、
前記再生状態に基づいて選択された前記カラーバリアントに対する前記ユーザインターフェースコンポーネント色を使用して前記ビデオユーザインターフェースの前記色を設定することと
を含む、命令と
を含む、非一時的コンピュータ可読記憶媒体。
【請求項８】
ビデオのフレームの前記支配色を前記識別することが、
前記フレームの画素の色を複数の色区分に区分することと、
前記フレームの最大数の前記画素を有する色区分を識別することと、
前記識別された色区分の前記画素を平均化することと
を含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
【請求項９】
前記支配色に基づいて前記複数のカラーバリアントを前記生成することが、
前記カラーバリアントに対応する色パラメータを識別することと、
前記色パラメータを前記支配色の色成分に適用することと
を含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
【請求項１０】
前記命令が、前記ビデオの第2のフレームに対して、第2の支配色、および前記第2の支配色に基づく第2の複数のカラーバリアントを決定するための命令をさらに含む、請求項7に記載の非一時的コンピュータ可読記憶媒体。
【請求項１１】
前記ビデオユーザインターフェースの前記ユーザインターフェースコンポーネントの前記色を前記設定することが、
前記ビデオの前記再生内の現在時間を識別することと、
第1のフレームに対応する前記ビデオ内の時間からの前記現在時間の第1の時間差、および前記第2のフレームに対応する前記ビデオ内の時間からの前記現在時間の第2の時間差を決定することと、
前記第1の時間差、前記第2の時間差、前記支配色、および前記第2の支配色に基づいて、ユーザインターフェース色を補間することと
を含む、請求項10に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施形態は、一般にソフトウェアアプリケーションユーザインターフェースに対するコンピュータ実装方法に関し、より詳細にはビデオプレーヤ内で表示されるビデオのコンテンツに基づいて、ビデオプレーヤユーザインターフェース内のユーザインターフェースコンポーネントの色を決定することに関する。
【背景技術】
【０００２】
ソフトウェアアプリケーションのユーザインターフェースは、一般に比較的静的であり、場合によってはウィンドウのサイズ変更に応じて現在表示されるコンテンツに応じて著しい変更なしにそのレイアウトを変更させる。ビデオ自体に関連して表示される何らかのユーザインターフェースコンポーネントを含むビデオの視覚的表現がユーザの閲覧経験に著しく影響を及ぼす場合があるビデオプレーヤアプリケーションにとってこれは特に問題である。たとえば、ビデオのコンテンツに審美的に「衝突する」色を有するユーザインターフェースコンポーネントのように、注意をそらせるほど明るいユーザインターフェースコンポーネントは、ビデオ自体の閲覧を損なう場合がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
一実施形態では、再生ビデオを補完するためにビデオプレーヤのユーザインターフェースコンポーネントの色を設定するためのコンピュータ実装方法は、ビデオの複数のフレームを識別するステップを含む。識別されたフレームの各フレームに対して、いくつかの動作が実行される。これらの動作は、フレームの画素の色を複数の色区分(color partitions)に区分し、フレームの最大数の画素を有する色区分を識別し、識別された色区分の画素を平均化することによって、フレームの支配色を識別するステップを含む。これらの動作は、色パラメータを支配色の色成分に適用することによって、支配色に基づいて複数のカラーバリアントを生成するステップと、カラーバリアント(color variants)の各々に対して、かつ複数のユーザインターフェースコンポーネントタイプの各々に対して、ユーザインターフェースコンポーネント色を生成するステップとをさらに含む。本方法は、ビデオの再生状態、ビデオ内の現在の再生ポイント前に識別されたフレームの現在フレーム、およびビデオ内の現在の再生ポイント後に識別されたフレームの次のフレームを識別する。本方法はまた、再生状態と、現在の識別されたフレームに対して生成されるユーザインターフェースコンポーネント色とに基づいて、第1のユーザインターフェースコンポーネント色を識別し、再生状態と、次の識別されたフレームに対して生成されるユーザインターフェースコンポーネント色とに基づいて、第2のユーザインターフェースコンポーネント色を識別する。本方法は、識別された第1のユーザインターフェースコンポーネント色と識別された第2のユーザインターフェースコンポーネント色とに基づいて、ビデオプレーヤのユーザインターフェースコンポーネントの色を設定する。
【０００４】
一実施形態では、コンピュータ実装方法は、ビデオのフレームの支配色を識別するステップと、支配色に基づいて複数のカラーバリアントを生成するステップと、ビデオの再生状態を識別するステップと、再生状態に基づいてカラーバリアントのうちの1つを選択するステップと、選択されたカラーバリアントに基づいてビデオユーザインターフェースのユーザインターフェースコンポーネントの色を設定するステップとを含む。
【０００５】
一実施形態では、非一時的コンピュータ可読記憶媒体は、プロセッサによって実行可能な命令を記憶する。これらの命令は、ビデオのフレームの支配色を識別するための命令と、支配色に基づいて複数のカラーバリアントを生成するための命令と、ビデオの再生状態を識別するための命令と、再生状態に基づいてカラーバリアントのうちの1つを選択するための命令と、選択されたカラーバリアントに基づいてビデオユーザインターフェースのユーザインターフェースコンポーネントの色を設定するための命令とを含む。
【０００６】
本要約および以下の詳細な説明で説明する特徴および利点は、すべてを含んでいるわけではない。図面、明細書、およびそれらの特許請求の範囲に鑑みて、多くの追加の特徴および利点が当業者に明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】一実施形態による、ビデオのホスティングおよび閲覧のための環境のハイレベルブロック図である。
【図２】一実施形態による、モバイルデバイス上にビデオを表示するのに適した1つの例示的なユーザインターフェースを示す図である。
【図３】一実施形態による、図1のユーザインターフェース適応モジュールの詳細図を示すハイレベルブロック図である。
【図４】ある実施形態による、カラーパレット決定モジュールのアクションを示すデータフロー図である。
【図５】ある実施形態による、色パレットの生成およびフレームのセットに対するユーザインターフェースコンポーネント色補間を示す図である。
【発明を実施するための形態】
【０００８】
これらの図面は、例示のためだけに、本発明の様々な実施形態を示す。当業者は、以下の議論から、本明細書で説明する本発明の原理から逸脱せずに、本明細書で示す構造および方法の代替実施形態を用いることができることを認識されよう。
【０００９】
図1は、一実施形態による、ビデオのホスティングおよび閲覧のための環境のハイレベルブロック図である。図1は、ネットワーク140によって接続されたビデオホスティングシステム100およびクライアントデバイス120を示す。クライアントデバイス120は、ビデオホスティングシステム100内に含まれたビデオにアクセスすることができるエンティティを表す。クライアントデバイス120のユーザは、ビデオのカタログをブラウズし、キーワードを使用して探索を実行し、他のユーザまたはシステムアドミニストレータからの再生リスト(たとえば、チャネルを形成するビデオの収集物)を閲覧するか、または特定のユーザグループ(たとえば、コミュニティ)に関連するビデオを閲覧することによって、ビデオホスティングシステム100からのビデオにアクセスすることができる。さらに、いくつかの実施形態では、ビデオホスティングシステム100は、他のユーザとのビデオの共有を可能にする目的で記憶するためにビデオを受信するように適応される。
【００１０】
一実施形態では、クライアントデバイス120のユーザは、ネットワーク140を介してビデオホスティングシステム100と通信するためにクライアントデバイスを使用する。一実施形態では、クライアントデバイス120は、ユーザがビデオホスティングシステム100によって提供されるウェブページおよびビデオを閲覧することを可能にするMICROSOFT INTERNET EXPLORERまたはGOOGLE CHROMEなどのウェブブラウザ122を実行するパーソナルコンピュータである。一実施形態では、ウェブブラウザ122は、ビデオプレーヤ(たとえば、Adobe Systems, Inc.からのFlash(商標))を含む。クライアントデバイス120は、代替として、スマートフォン、タブレット、テレビジョン、テレビジョン「セットトップボックス」等などのデバイスであってもよい。図1は単一のクライアントデバイス120のみを示すが、多くのクライアントデバイス(たとえば、数百万)が任意の時点でビデオホスティングシステム100と通信することができることを理解されたい。この説明を簡素化かつ明確化するための単一のクライアントデバイス120が示される。
【００１１】
ネットワーク140は、クライアントデバイス120とビデオホスティングシステム100との間の通信経路を表す。一実施形態では、ネットワーク140は、インターネットであるが、LAN、MAN、WAN、モバイル、ワイヤードネットワークもしくはワイヤレスネットワーク、クラウドコンピューティングネットワーク、プライベートネットワーク、または仮想プライベートネットワーク、およびそれらの何らかの組合せを含むが、これらに限定されない、いずれのネットワークであってもよい。さらに、セキュアソケットレイヤ(SSL)、セキュアHTTPおよび/または仮想プライベートネットワーク(VPN)などの従来の暗号技術を使用して、リンクのすべてまたは一部を暗号化することができる。別の実施形態では、エンティティは、上記で説明した技術の代わりに、またはそれに加えて、カスタムおよび/または専用のデータ通信技術を使用することができる。
【００１２】
ビデオホスティングシステム100は、ユーザがインターフェースを探索および/またはブラウズすることによりビデオコンテンツにアクセスすることを可能にする任意のシステムを表す。ビデオは、ユーザのビデオアップロードから、他のウェブサイトもしくはビデオのデータベースの探索もしくはクロールからなど、またはそれらの任意の組合せでビデオを取得することができる。たとえば、一実施形態では、ビデオホスティングシステム100は、ユーザがコンテンツをアップロードすることを可能にするように構成することができ、別の実施形態では、ビデオホスティングシステム100は、リアルタイムでそのようなソースをクロールすることまたはそのようなソースを探索することによって、他のソースからビデオを取得することだけができるように構成することができる。
【００１３】
システムの実装に適したビデオホスティングシステム100は、YOUTUBE(登録商標)ウェブサイトである。他のビデオホスティングウェブサイトもよく知られており、本明細書で開示する教示に従って動作するように適応することができる。「ウェブサイト」という用語は、何らかのインターネットワーキングプロトコルを使用してコンテンツにサービスするように適応された任意のコンピュータシステムを表し、インターネットまたはHTTPプロトコルを介してアップロードまたはダウンロードされたコンテンツに限定されることを意図しないことを理解されよう。概して、一実施形態ではサーバサイドで実行するとして説明する機能は、他の実施形態では、適切な場合、クライアントサイドで実行することもできる。さらに、特定のコンポーネントに起因する機能は、一緒に動作する、別々のまたは多数のコンポーネントによって実行することもできる。
【００１４】
ビデオホスティングシステム100は、フロントエンドサーバ104と、取込みサーバ106と、ビデオ探索サーバ108と、ビデオアクセスサーバ112と、ビデオユーザインターフェースモジュール113と、ビデオデータストア114と、ユーザインターフェース適応モジュール118とを備える。システムの特徴を曖昧にしないように、ファイアウォール、ロードバランサ、アプリケーションサーバ、フェイルオーバサーバ、サイト管理ツールなどの多くの従来の特徴は示されていない。
【００１５】
フロントエンドサーバ104は、ネットワーク140を介してユーザとのすべての通信を処理する。フロントエンドサーバ104は、クライアントデバイス120から要求を受信し、要求を処理するために、ビデオホスティングシステム100の他のサーバと通信する。フロントエンドサーバ104は、ビデオホスティングシステム100を用いてユーザ対話を監視するようにさらに構成される。たとえば、ユーザがウェブページ上でクリックする場合、ビデオを閲覧する場合、買い物する場合、文書を開く場合、ウェブベースの書式に書き込む場合、フロントエンドサーバ104はこれらの対話を監視する。フロントエンドサーバ104は、要求されるビデオおよび関連ビデオリンクをウェブページ上でユーザに送信および提示するようにさらに構成されてもよい。要求されるビデオは、フロントエンドサーバ104によってユーザにストリーミングされる。関連するビデオを閲覧するために、クライアントデバイス120のユーザが関連するビデオリンクを選択することができるように、1つまたは複数の関連ビデオリンクは要求されるビデオが再生しているウェブサイト上に出現する。
【００１６】
ビデオホスティングシステム100に掲示するためにユーザからネットワーク140を介して受信されるいずれのコンテンツも処理のために取込みサーバ106に渡される。ビデオファイルの処理は、識別番号を新しく受信されたビデオファイルに割り当てることを含む。ビデオファイルを処理する他のステップは、書式設定(たとえば、トランスコーディング)、圧縮、メタデータのタグ付け、コンテンツ分析、および/または他のデータ処理方法を含んでもよい。ユーザは、ビデオホスティングシステム100に送信されるビデオファイルとともにフォームを送信する。ユーザは、ビデオを記述する情報(たとえば、タイトル、記述、およびタグ情報)をフォーム内に含めてもよい。フォーム情報はまた、アップロードされたビデオが常に「ビデオ」タイプになる、メディアタイプの指示を含んでもよい。取込みサーバ106は、処理されたビデオファイルをビデオデータストア114内に記憶し、フォーム内に含まれた情報をビデオファイルのメタデータとして記憶する。ビデオデータストア114は、ビデオホスティングシステム100に送信されるビデオファイルが記憶される記憶システムである。ビデオには、アイコンまたはサムネイルビュー、タイトル、著者、タグ、記述、コメント、および評価などの関連するメタデータが添付されてもよい。
【００１７】
ビデオ探索サーバ108は、ユーザからフロントエンドサーバ104によって受信されるいずれの探索クエリも処理する。ユーザによってフロントエンドサーバ104に送信される探索クエリは、ユーザが閲覧に関心があるビデオを識別する場合があるキーワードなど、探索基準を含む。たとえば、探索クエリは、テキストストリング「マチュピチュ」であってもよい。ビデオ探索サーバ108は、ビデオデータストア114内に記憶されたすべてのビデオファイルに関連するメタデータおよび/またはエンティティに問い合わせるため、またはビデオデータストア114に問い合わせるために、探索基準を使用してもよい。探索結果は、探索クエリに整合するエンティティを含むビデオである。たとえば、探索クエリ「マチュピチュ」に対する探索結果は、探索クエリに整合するエンティティ「マチュピチュ」の注釈がつけられたビデオアイテムを含む。クエリからの探索結果は、探索結果がユーザに提示されるように、フロントエンドサーバ104に送信される。
【００１８】
ビデオアクセスサーバ112は、フロントエンドサーバ104から、特定のビデオの閲覧(または、再生)を望むユーザから要求を受信する。ユーザの観点から、ユーザは、ビデオホスティングシステム100の様々なビデオカテゴリーをブラウズすることによって、または探索結果ウェブページからビデオへのリンク上をクリックすることによって、ビデオに対する要求を提出してもよい。ユーザによって送信された要求は、ユーザが閲覧を希望する(ユーザがビデオに対するリンク上をクリックすると、自動的に含めることもできる)ビデオの識別番号を含むことができる。ビデオアクセスサーバ112は、ビデオデータストア114内のどこにビデオが記憶されているかを探索して位置特定するために識別番号を使用する。ビデオアクセスサーバ112は、要求されるビデオをフロントエンドサーバ104に提供する。
【００１９】
ビデオホスティングシステム102は、ユーザインターフェースの一部としてユーザにビデオを提示するビデオユーザインターフェースモジュール113を含む。ビデオユーザインターフェースモジュール113によって提供される正確なユーザインターフェースは、様々な実施形態において異なってもよく、同じ実施形態が異なるタイプのユーザインターフェースを利用可能にしてもよい。たとえば、図2は、一実施形態による、モバイルデバイス上にビデオを表示するのに適した1つの例示的なユーザインターフェース200を示す。ユーザインターフェース200は、ビデオが再生されるとビデオのフレームが表示されるビデオ表示エリア205、ビデオ同士の間のナビゲーション、現在のビデオの再生の開始および停止などのための様々なビデオナビゲーション制御210、見出しおよび本文215Aおよび215B、背景領域220などを含む。図2に示すユーザインターフェースは、ユーザインターフェースの単なる一例であり、旧来のデスクトップまたはラップトップコンピュータスクリーン上のウェブブラウザに適したユーザインターフェースなど、多くの他のユーザインターフェースが等しく可能であることを諒解されよう。
【００２０】
一実施形態では、ビデオホスティングシステム102は、現在再生しているビデオのコンテンツおよびそのビデオの再生状態に応じて、ビデオプレーヤに対するユーザインターフェースの外観を修正するユーザインターフェース適応モジュール118をさらに含む。たとえば、一実施形態(図3に対して下記でより詳細に説明する)では、ユーザインターフェース適応モジュール118は、ビデオコンテンツの様々なフレームの各々から、本明細書で「支配」色と呼ばれる、最も代表的な色を決定し、決定された支配色に少なくとも部分的に基づいて、ユーザインターフェースの様々な部分の色を動的に調整する。他の実施形態では、ユーザインターフェース適応モジュール118は、代替としておよび/または追加で、たとえば、ビデオを取得して再生するためにビデオホスティングシステム102と対話するカスタムビデオプレーヤアプリケーションの一部として、クライアントデバイス120上に位置する。
【００２１】
本明細書で説明するビデオホスティングシステム102のデータ処理動作は、その実際の実装のためにプログラムされたコンピューティングシステムを本質的に必要とすることを諒解されたい。この説明を簡素化かつ明確化するために、ビデオホスティングシステム100によって受信および共有されるコンテンツは、概して、本明細書で説明するビデオ固有の実施形態に対して適宜に、ビデオ、ビデオファイル、またはビデオアイテムと呼ばれるが、ビデオホスティングシステム100は、いかなるメディアタイプのコンテンツも受信および共有することができることを理解されたい。このコンテンツは、メディアコンテンツアイテム、メディアアイテム、またはアイテムと呼ばれる場合がある。したがって、本明細書で説明するビデオホスティングシステム102の動作は、ビデオのみではなく、他のタイプのメディアコンテンツアイテムに適用することもできる。たとえば、他の適切なタイプのコンテンツアイテムは、静止画像(GIFファイルまたはJPEGファイルなどのネイティブ画像、またはPDFファイル、ワードプロセッシングファイルなど、画像に変換可能な画像のいずれか)、マルチスライドプレゼンテーションなど、そこから色が抽出できる視覚的文書を含む。
【００２２】
ユーザインターフェース色割当て
図3は、一実施形態による、ユーザインターフェース適応モジュール118の詳細図を示すハイレベルブロック図である。図3に示すように、ユーザインターフェース適応モジュール118は、いくつかのモジュールを含む。当業者は、他の実施形態が本明細書で説明するモジュール以外のモジュールを有することができ、機能が、様々な様式で、モジュール間で分散することができることを認識されよう。さらに、ユーザインターフェース適応モジュール118に起因する機能は、複数のモジュールによって実行することができる。
【００２３】
図示されるように、ユーザインターフェース適応モジュール118は、カラーパレット決定モジュール305とコンポーネント外観モジュール310とを含む。
【００２４】
カラーパレット決定モジュール305は、ビデオのフレームなど、所与の画像内に存在する色を補完する色のパレットを生成する。より具体的には、カラーパレット決定モジュール305は、所与の画像(たとえば、ビデオのフレーム)の支配色を決定し、支配色に基づいて色のパレット(セット)を生成する。色のパレットは、ユーザインターフェースの異なるタイプのコンポーネントに適用するための色を示す1つまたは複数の成分であるサブパレットを含む。
【００２５】
図4は、ある実施形態による、カラーパレット決定モジュール305のアクションを示すデータフロー図である。具体的には、図4は、支配色の3つのバリアントが生成され、次に、これらのバリアントの各々に対して1つまたは複数のサブパレットが生成され、各サブパレットがユーザインターフェースの様々なタイプのコンポーネントに適用するための色を示す、ある実施形態を示す。
【００２６】
カラーパレット決定モジュール305は、ビデオフレーム405(または、他の画像)を受信し、ビデオフレームの画素を区分する410。画素の区分は、色空間を区分411のセットに分割することと、ビデオフレームの様々な画素(たとえば、各画素)を区分のうちの1つに割り当てることとを伴う。たとえば、24ビットの色(たとえば、色相、彩度、および輝度、すなわち、赤成分、緑成分、および青成分の各々に対して8ビット)を仮定すると、224個の考えられる色の各々がN個(たとえば、1000個)の異なる区分411のうちの1つにマッピングされる。次いで、各区分内の画素の数が計数され、大部分の画素を有するいくつかの数の区分から支配色416が選定される。一実施形態では、支配色416は、大部分の画素を有する単一の区分に基づき、その区分内の色を平均化する415(たとえば、その区分内の画素の<R,G,B>成分または<H,S,V>成分の平均を計算する)ことによって選定される。いくつかの実施形態では、カラーパレット決定モジュール305は、複数の支配色、たとえば、各区分内の色を平均化することによって、大部分の画素を備えたN個の区分の各々に対して1つの支配色を決定する。
【００２７】
ビデオフレーム405に対する支配色416が選定され、カラーパレット決定モジュール305は、ビデオが見られているスクリーンのタイプ、ビデオが見られている環境状態、ビデオの再生状況(ビデオが再生しているか、または一時停止しているか)などの要因によって決定される、ある種のコンテキストで使用されてもよい支配色のカラーバリアント421を生成する420。図4に示す実施形態では、3つのバリアント、すなわち、主要色421A、暗色421B、および明色421Cが生成される。
【００２８】
一実施形態では、カラーパレット決定モジュール305は、各カラーバリアントに対して、考えられるカラーバリアントのセットから支配色に最も類似する色を選択することによって、支配色のカラーバリアント421を生成する420。たとえば、図4に示す実施形態では、主要色421A、暗色421B、明色421Cは各々、色相(H)成分の範囲の何らかの関連するセットを有し、各範囲は、彩度(S)パラメータ値および輝度(B)パラメータ値の対の対応するセットを有する。特定のカラーバリアント(たとえば、主要色421A)を生成するために、カラーバリアントに対応する色相範囲のうちの1つを選択するために支配色の色相成分が使用され、彩度成分値が選択された範囲に最も近い彩度パラメータ値に調整され、同様に輝度成分値が選択された範囲に最も近い輝度パラメータ値に調整される。これは、カラーバリアントを生成するとき、彩度成分値および輝度成分値を調整するために色相成分値を使用する効果がある。1つの特定の例として、主要色421Aは、彩度パラメータ値15および85と輝度パラメータ値50および60とを有する、31°〜80°の色相範囲を有する。支配色がHSB成分<56°,100,100>を有する場合、色相成分56°は色相範囲31°〜80°を選択し(56°は31°〜80°の範囲内であるため)、彩度成分は85に調整され(彩度成分値100は、彩度パラメータ15よりも彩度パラメータ85により近いため)、輝度成分は60に調整される(輝度成分値100は輝度パラメータ50よりも輝度パラメータ60により近いため)。したがって、この例では、主要色421Aに対応するパラメータの適用は、支配色<56°,100,100>から主要色<56°,85,60>を生成させる。暗色421Bおよび明色421Cは、それらの独自の対応するパラメータ値を使用して同様の方法で算出される。
【００２９】
カラーバリアント421が生成されて、カラーパレット決定モジュール305は、さらに、ビデオUIモジュール113によって作成されるビデオユーザインターフェース内の異なるタイプのコンポーネントに対応するUIコンポーネント色のセットを生成する425。たとえば、図4に示す実施形態では、カラーバリアント421の各々に対して生成される7つのUIコンポーネント色、すなわち、「ナビゲーションバー」UIコンポーネント、「セクション1」UIコンポーネント、「セクション2」UIコンポーネント、「アクティブナビコン(navicon)」UIコンポーネント、「アイドルナビコン」UIコンポーネント、「アイコン＆タイトルテキスト」UIコンポーネント、および「本文」UIコンポーネントの各々に対して1つのUIコンポーネント色が存在する。図2の実施形態の例示的なユーザインターフェースを再度参照すると、「ナビゲーションバー」UIコンポーネントは背景220Aに対応し、「セクション1」UIコンポーネントは背景220Bに対応し、「セクション2」UIコンポーネントは背景220Cに対応し、「アクティブナビコン」UIコンポーネントはコンポーネント210Dに対応し(それが、「再生」など、ビデオの現在の状況を反映するコンポーネントであると仮定して)、「アイドルナビコン」UIコンポーネントはコンポーネント210A〜210Cに対応し(それらがビデオの現在の状況を反映しないと仮定し)、「アイコン＆タイトルテキスト」UIコンポーネントはテキスト215Aに対応し、「本文」UIコンポーネントはテキスト215Bに対応する。
【００３０】
一実施形態では、カラーパレット決定モジュール305は、ユーザインターフェースコンポーネントの各タイプに対して、そのユーザインターフェースコンポーネントタイプに対して考えられるユーザインターフェースコンポーネント色のセットからカラーバリアントに最も類似する色を選択することによって、所与のカラーバリアント421に対するユーザインターフェースコンポーネント色426を生成する425。たとえば、図4に示す実施形態では、各ユーザインターフェースコンポーネント430(たとえば、ナビゲーションバーコンポーネント)は彩度(S)成分の範囲の何らかのセットを有し、各範囲は輝度(B)パラメータ値の対応するセットを有する。特定のユーザインターフェースコンポーネント色(たとえば、ナビゲーションバーのための色)を形成するために、カラーバリアントに対応する彩度範囲のうちの1つを選択するためにカラーバリアントの彩度成分が使用され、輝度成分値が選択された彩度範囲に対して最も近い輝度パラメータ値に調整される。これは、ユーザインターフェースタイプ色を生成するとき、輝度成分値を調整するために彩度成分値を使用する効果がある。1つの特定の例として、ナビゲーションバーユーザインターフェースコンポーネントタイプは、対応する輝度パラメータ値45、50、および55を有する15〜85の彩度範囲を有する。HSB成分<56°,85,60>を備えた主要カラーバリアントの上記の例を参照すると、彩度成分85は彩度範囲15〜85を選択し(彩度成分85は15〜85の範囲内であるため)、輝度成分は55に調整される(輝度成分値55は、他の輝度パラメータ45または50よりも輝度パラメータ60により近いため)。したがって、この例では、ナビゲーションバーユーザインターフェースコンポーネントタイプに対応するパラメータの適用は、主要カラーバリアント<56°,85,60>からのコンポーネント色<56°,85,55>を生成させる。他のユーザインターフェースコンポーネントタイプ430は、それらの独自の対応するパラメータ値を使用して同様の方法で算定されたそれらの色を有する。
【００３１】
図3に再度戻ると、ユーザインターフェース適応モジュール118は、特定の画像(たとえば、ビデオのフレーム)に対する色パレットを生成するためにカラーパレット決定モジュール305を使用し、ビデオユーザインターフェースモジュール113のユーザインターフェースコンポーネントを生成されたパレットの色に設定するコンポーネント外観モジュール310を含む。たとえば、図2および図4の例を参照すると、コンポーネント外観モジュール310は、背景220Aの色をナビゲーションバーユーザインターフェースコンポーネントに対する色に設定し、テキスト215Bの色を本文ユーザインターフェースコンポーネントの色に設定する、などである。
【００３２】
(静止画像とは対照的に)ビデオの場合、コンポーネント外観モジュール310は、ビデオが再生するにつれて、ユーザインターフェースコンポーネントの色を連続的に調整するために、ビデオの様々なフレームに上でカラーパレット決定モジュール305を繰り返し使用する。
【００３３】
たとえば、図5に示す一実施形態では、コンポーネント外観モジュール310は、固定間隔で(たとえば、N個のフレームごとに、または、t秒ごとのフレーム)、各フレームがそのフレームに対応する色を選定し、それに応じて、ユーザインターフェースコンポーネント色を設定するごとに、カラーパレット決定モジュール305を使用する。これは、ビデオフレーム内で表示されるコンテンツとともに、経時的にユーザインターフェース外観が変化することを可能にする。
【００３４】
一実施形態では、より平滑な色遷移を達成するために、コンポーネント外観モジュール310は、直線補間によってなど、経時的に支配色を混合する。すなわち、時間tまでに、コンポーネント外観モジュール310は、対応するフレームに対する色だけでなく、(時間t+kにおける)次の間隔に対応するフレームに対する色も算出している。いくつかのより小さな間隔の各々において(たとえば、スクリーンリフレッシュごとに)、コンポーネント外観モジュール310は、「現在」フレーム(時間tに対応するフレーム)および次の間隔におけるフレーム(時間t+kに対応するフレーム)と比較して、対応するフレームがどこに位置するかを決定する。すなわち、時間tiに対して算出された色のうちの1つがciであり、次の時間(ti+k)に対する色のうちの対応する1つがci+1であり、補間色が算出される時間がtrである場合、式cr=((tr-ti)/k*ci)+((ti+1-tr)/k*ci)によって対応する補間色crが与えられる。(スカラと色の積はスカラによってスケーリングされた色の成分のアレイである。)たとえば、図5に示すように、特定のスクリーンリフレッシュが時間tr=0.7kにおいて生じる場合、対応する補間色crは、cr=(0.7/k*ci)+(0.3/k*ci+1)になる。
【００３５】
一実施形態では、現在フレームにおいて(たとえば、スクリーンリフレッシュごとに)色を混合するとき、コンポーネント外観モジュール310は、何らかの整数N(たとえば、N=5)に対して、カラーパレット決定モジュール305から上位N個の支配色を取得し、(時間t+kにおけるフレームに対する)次の間隔の支配色として、(時間tにおけるフレームに対する)現在の支配色と最も類似する支配色のうちの1つを選択する。コンポーネント外観モジュール310は、次いで、現在の支配色を最も類似する支配色と混合する。最も類似する支配色との混合は、ユーザに対して不安定に出現する場合がある、急激な色変化を防ぐのに役立つ。
【００３６】
一実施形態では、ユーザがビデオに初めてアクセスするとき、コンポーネント外観モジュール310は、利用可能である場合、ビデオに対するキャッシュ化サムネイル(cached thumbnail)に基づいて支配色の第1の決定(すなわち、t=0に対する決定)を行う。これは、第1の色の決定が行われること、およびそれに応じてユーザインターフェースコンポーネントの色付けが、ビデオストリーミングを開始するために必要とされる期間(たとえば、数百ミリ秒)の間待つのではなく、本質的に速やかに行われることを可能にする。複数の間隔にわたって支配色を再算定することが実現可能でない状況では、ビデオを通してキャッシュ化サムネイルから抽出された単一の支配色を使用することができるが、これは、ビデオコンテンツに対するユーザインターフェースコンポーネント色の最適な整合を実現しないことになる。
【００３７】
一実施形態では、コンポーネント外観モジュール310は、カラーパレット決定モジュール305を使用してフレームから生成された色に基づいて、またビデオの再生状態に基づいて、ユーザインターフェースコンポーネントの色を設定する。たとえば、ビデオが再生されている場合、再生ビデオと視覚的に競合しないようにユーザインターフェースコンポーネントの強調を抑えるためにそのビデオはユーザにとって審美的に心地よいものであってよい。反対に、ビデオが一時停止されているか、またはさもなければ再生していない場合、ユーザインターフェースコンポーネントをより強調することができる。いくつかの実施形態では、クライアントデバイス120の光センサハードウェアによって決定される周辺光の角度、またはクライアントデバイスのスクリーンの属性(たとえば、サイズ、スクリーン反射性)など、他の要因も使用する色の選定に影響を及ぼす場合がある。
【００３８】
たとえば、一実施形態では、ビデオの再生状態は、どのカラーバリアントが使用されているかを決定し、ビデオが再生されているときは暗色421Bが使用され、再生されていないときは主要色421Aが使用される。たとえば、ビデオが再生しているとき、背景220Aは暗色421Bに対して生成されるサブパレット内のナビゲーションバーユーザインターフェースコンポーネントに対して生成される色に設定され、ユーザがビデオを一時停止する場合、背景220Aは主要色421Aに対して生成されるサブパレット内のナビゲーションバーユーザインターフェースコンポーネントに対して生成される色に設定されてもよい。
【００３９】
他の考慮事項
明細書における「一実施形態」または「ある実施形態」の参照は、それらの実施形態に関連して説明する特定の特徴、構造、または特性が少なくとも1つの実施形態内に含まれていることを意味する。明細書内の様々な場所における「一実施形態」との語句の出現は、すべて必ずしも同じ実施形態を指すとは限らない。
【００４０】
プロセスステップおよび命令はソフトウェア、ファームウェア、またはハードウェア内で実施され、ソフトウェア内で実施されるとき、様々なオペレーティングシステムによって使用される様々なプラットフォーム上に常駐するようにダウンロードすること、またそれらのプラットフォームから動作させることができることに留意されたい。
【００４１】
本明細書で、動作は、装置によって実行されてもよい。さらに、本明細書で参照するコンピュータは、単一プロセッサを含んでもよく、または増大されたコンピューティング能力に対する複数のプロセッサ設計を用いるアーキテクチャであってもよい。本明細書で説明したような本発明の教示を実装するために様々なプログラミング言語が使用されてよく、特定の言語に対する下記のいかなる参照も本発明の使用可能性および最良の形態の開示のために提供されることを諒解されよう。
【００４２】
本発明は好ましい実施形態およびいくつかの代替実施形態を参照して具体的に示され説明されてきたが、本発明の趣旨および範囲から逸脱せずに、形態および詳細において様々な変更を行うことができることを当業者は理解されよう。
【００４３】
最後に、本明細書で使用された言葉は主に読み易さおよび教示目的で選択されており、本発明の主題を描写または制限するために選択されていないことに留意されたい。したがって、本発明の開示は、例示的であることが意図され、以下の特許請求の範囲に記載される本発明の範囲を限定するものではない。
【符号の説明】
【００４４】
100  ビデオホスティングシステム
102  ビデオホスティングシステム
104  フロントエンドサーバ
106  取込みサーバ
108  ビデオ探索サーバ
112  ビデオアクセスサーバ
113  ビデオユーザインターフェースモジュール、ビデオUIモジュール
114  ビデオデータストア
118  ユーザインターフェース適応モジュール
120  クライアントデバイス
122  ウェブブラウザ
140  ネットワーク
200  ユーザインターフェース
205  ビデオ表示エリア
210  ビデオナビゲーション制御
210A〜210C  コンポーネント
210D  コンポーネント
215A  見出し
215B  本文
220  背景領域
220A  背景
220B  背景
220C  背景
305  カラーパレット決定モジュール
310  コンポーネント外観モジュール
405  ビデオフレーム
410  画素を区分する
411  区分
415  色を平均化する
416  支配色
420  カラーバリアントを生成する
421  カラーバリアント
421A  主要色
421B  暗色
421C  明色
426  ユーザインターフェースコンポーネント色
425  生成する
430  ユーザインターフェースコンポーネント、ユーザインターフェースコンポーネントタイプ
【図１】
0006719557.tif 000002
【図２】
0006719557.tif 000003
【図３】
0006719557.tif 000004
【図４】
0006719557.tif 000005
【図５】
0006719557.tif 000006