JP2008527540A - ユーザインターフェイス用の分散ソフトウェア構成 - Google Patents

ユーザインターフェイス用の分散ソフトウェア構成 Download PDF

Info

Publication number
JP2008527540A
JP2008527540A JP2007550447A JP2007550447A JP2008527540A JP 2008527540 A JP2008527540 A JP 2008527540A JP 2007550447 A JP2007550447 A JP 2007550447A JP 2007550447 A JP2007550447 A JP 2007550447A JP 2008527540 A JP2008527540 A JP 2008527540A
Authority
JP
Japan
Prior art keywords
brick
zui
level
metadata
svg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007550447A
Other languages
English (en)
Inventor
チャールズ・ダブリュー・ケー・グリトン
デイヴ・アウフダーヘイド
ケヴィン・コンロイ
ニール・ゴイヤル
フランク・エー・ハンレス
スティーブン・シェイレイ
ダニエル・エス・シンプキンズ
Original Assignee
ヒルクレスト・ラボラトリーズ・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ヒルクレスト・ラボラトリーズ・インコーポレイテッド filed Critical ヒルクレスト・ラボラトリーズ・インコーポレイテッド
Publication of JP2008527540A publication Critical patent/JP2008527540A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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
    • 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/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • 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/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • 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/47End-user applications
    • 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/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

本発明によるシステムおよび方法は、ズーミング可能なユーザインターフェイスを作成するために使用可能なソフトウェア構成体(ブリック)を提供する。ブリックは、グラフィック表示のパラメータ化されたバリエーションをもたらし、ユーザインターフェイスにおける異なるシーンにまたがって再利用可能であり、カスケードである。

Description

本出願は、開示が参照により本明細書に組み込まれている、「Distributed Software Construction with Bricks」という表題の2005年1月5日に出願された米国仮特許出願第60/641,406号に関係するものであり、またその優先権を主張するものである。
本発明は、メディアアイテムの編成、選択、および起動を行うためのフレームワークについて説明する。そのフレームワークの一部は、ポイント、クリック、スクロール、ホバリング、およびズームの基本構成要素を備えるグラフィカルユーザインターフェイス、より詳細には、自由空間ポインティングリモコンとともに使用できるメディアアイテムに関連付けられているグラフィカルユーザインターフェイスの設計およびオペレーションを伴う。
情報の通信に関連する技術は、最近数十年の間に急速に発達した。(単に数例を挙げただけでも)テレビ、携帯電話、インターネットおよび光通信技術が複合することで、消費者は非常に多くの情報および娯楽の選択肢を利用できるようになっている。テレビを例にとると、この30年の間に、有線テレビ放送、衛星テレビ放送、ペイパービュー方式映画、ビデオオンデマンドが導入された。1960年代のテレビ視聴者は、典型的には、無料の電波によるテレビ放送の4つまたは5つのチャンネルをテレビ受像機で受信できたと思われるが、今日のテレビ視聴者は、数百、場合によっては数千ものチャンネルから番組や情報を選択する機会が与えられている。現在主にホテルなどで使用されているビデオオンデマンド技術を利用すれば、数千もの映画タイトルから家庭内で娯楽作品を選択することが可能になる。カリフォルニア州95002アルビソ、ゴールドストリート2160所在のTiVo, Inc.社が販売しているようなデジタルビデオ記録(DVR)機器は、さらに、利用可能な選択肢を広げる。
このような大量の情報およびコンテンツをエンドユーザに対して技術的に提供可能であることは、システム設計者およびサービス提供者に、好機をもたらすとともに、難題を課すことにもなる。難題の1つは、エンドユーザは典型的には与えられる選択肢が少ないのよりも多いのを好むが、この選好は、選択プロセスが高速で、かつ単純であるべきという願望と平衡しているという点である。残念なことに、エンドユーザがメディアアイテムにアクセスするために使用するシステムおよびインターフェイスの開発の結果、高速でもなく単純でもない選択プロセスができあがった。ここでまた、テレビ番組の例を考察する。テレビがまだその幼年時代にあった頃、どの番組を見るか決定することは、主に選択肢が少数であったため、比較的単純なプロセスであった。視聴者は、例えば、(1)近くのテレビチャンネル、(2)それらのチャンネルで伝送されている番組、および(3)日時の間の対応関係を示す一連の列と行として書式化された印刷された番組ガイドを調べる。テレビは、チューナつまみを調節することにより見たいチャンネルに合わされ、視聴者はその選択された番組を見た。その後、リモコンデバイスが導入され、視聴者は離れた場所からテレビのチャンネルを合わせることができるようになった。ユーザテレビジョンインターフェイスにこうした機能の追加が行われ、「チャンネルサーフィン」と呼ばれる現象が引き起こされるようになり、これにより視聴者は、多数のチャンネルで放送されている短い番組断片をすぐに見て、所定の時刻にどの番組が見られるかを素早く知ることができた。
チャンネルの数と視聴可能コンテンツの量は、劇的に増大してきたという事実があるにもかかわらず、テレビで一般的に利用可能なユーザインターフェイスおよびコントロールデバイスオプションおよびフレームワークは、ここ30年間あまり変化していない。印刷された番組ガイドは、なおも、番組情報を伝える最も普及しているメカニズムである。単純な上向き矢印と下向き矢印を備える複数ボタンリモコンは、なおも、最も普及しているチャンネル/コンテンツ選択メカニズムである。利用可能なメディアンコンテンツの増大に対する、TVユーザインターフェイスを設計し、実装する人々の反応は、既存の選択手順およびインターフェイスオブジェクトの直接的な拡張であった。そのため、印刷された番組ガイド中の行と列の数は、さらに多くのチャンネルを盛り込めるように増やされた。リモコンデバイス上のボタンの数も、例えば、図1に示されているように、追加機能およびコンテンツの取り扱いをサポートするために増やされた。しかし、このアプローチでは、視聴者が利用可能な情報を調べるのに要する時間だけでなく選択を実行するのに必要なアクションの複雑度も著しく増大した。ほぼ間違いなく、既存のインターフェイスの扱いにくい性質は、一部のサービス、例えば、ビデオオンデマンドの商業実装を妨げたが、それは、消費者が、すでに遅くて複雑すぎると見ているインターフェイスになおも複雑さを付け加える新しいサービスに抵抗しているからである。
帯域幅およびコンテンツの増大に加えて、ユーザインターフェイスのボトルネック問題は、技術の集約化により悪化しつつある。消費者は、多数の分離可能なコンポーネントではなく、統合システムを購入するオプションを持つことに対し積極的なリアクションを示している。このトレンドのよい例として、3つの以前には独立していたコンポーネントが今日では統合ユニットとして売られることが多くなっているコンビネーションテレビ/VCR/DVDが挙げられる。このトレンドは続く可能性が高く、潜在的に最終的結果として、家庭に現在見られる通信デバイスのすべてではないとしてもその大半が、統合ユニット、例えば、テレビ/VCR/DVD/インターネットアクセス/ラジオ/ステレオユニットとしてパッケージ化されるであろう。セパレート型コンポーネントを購入する人でも、それらのコンポーネントのシームレスなコントロールおよびそれらのコンポーネントの間の相互動作を望んでいる。このような集約化が増えるとともに、ユーザインターフェイスの複雑さが増す可能性がある。例えば、いわゆる「ユニバーサル」リモコンユニットが導入され、例えば、TVリモコンユニットとVCRリモコンユニットの機能を組み合わせたときに、それらのユニバーサルリモコンユニット上のボタンの個数は、典型的には、個別にTVリモコンユニット上のボタンの数またはVCRリモコンユニット上のボタン数のいずれよりも多くなった。このようにボタンと機能の数が増えると、リモコンユニット上の目指すボタンを探し回らずにTVまたはVCRの最も単純な機能以外のものをコントロールすることが非常に困難になる。これらのユニバーサルリモコンユニットが、特定TVに固有の多くのレベルにわかれているコントロールまたは機能にアクセスするのに十分な数のボタンを備えていないことは幾度となくある。これらの場合において、オリジナルのデバイスリモコンユニットはなおも必要であり、複数のリモコンを扱うという元からの面倒な作業は、集約化の複雑さから生じるユーザインターフェイス問題のせいで、いぜんとして残る。いくつかのリモコンユニットでは、このような問題を、エキスパートコマンドでプログラムすることができる「ソフト」ボタンを追加することにより解消している。これらのソフトボタンは、ときには、その動作を示すために付属LCDディスプレイを備える。これらには、また、TVからリモコンに目を移すことなく使用することが困難であるという欠点がある。これらのリモコンユニットのさらに他の欠点は、ボタンの数を減らそうとしてモードを使用することである。これらの「モード付き」ユニバーサルリモコンユニットでは、リモコンユニットがTV、DVDプレーヤ、ケーブルセットトップボックス、VCRなどと通信すべきかどうかを選択する特殊ボタンが存在する。これにより、間違ったデバイスにコマンドを送信すること、正しいモードに入っているかどうかを確認するためにユーザにリモコンユニットを見ることを強いることを含む多くの使用性問題が引き起こされ、複数のデバイスの統合の簡素化が行われない。これらのユニバーサルリモコンユニットの最も進んでいる点は、ユーザが複数のデバイスへのコマンド列をリモコンユニット内にプログラムできるようにすることによるある種の統合を実現することである。これは、多くのユーザがユニバーサルリモコンユニットをプログラムするためにインストール専門家を雇うような難しいタスクである。
エンドユーザとメディアシステムとの間の画面インターフェイスを現代的にするいくつかの試みもなされてきた。電子番組ガイド(EPG)は、前述のメディアガイドを置き換えるために、開発され実装された。初期のEPGは、印刷されたメディアガイドの本質的に電子レプリカとなるものを備えた。例えば、ケーブルサービス事業者は、アナログEPGを提供し、そこでは、専用チャンネルが、一定期間にわたって、例えば、次の2時間の間に、チャンネルおよび関連する番組のゆっくりスクロールするグリッドを表示する。この方法で100ものチャンネルをスクロールするのは、退屈な作業であり、コンテンツ配布が著しく増える、例えばビデオオンデマンドの場合に対応できるように拡張可能ではない。より高度なデジタルEPGも、開発されている。デジタルEPGでは、番組予定情報、およびオプションでアプリケーション/システムソフトウェアは、専用のEPG機器、例えば、デジタルセットトップボックス(STB)に送信される。デジタルEPGは、ローカルの対話性を実現し、ユーザと表示されるメディアアイテムの選択との間に1つまたは複数のインターフェイス層をかませることができるため、メディアシステム用のユーザインターフェイスを設計する際に柔軟度が高い。このようなインターフェイスの一実施例は、開示が参照により本明細書に組み込まれる、Kamenらの米国特許第6,421,067号に見られる。図2は、'067特許で説明されているGUIを示している。そこで、Kamenらの特許では、第1の列190は、番組チャンネルの一覧を表示し、第2の列191は、現在放映中の番組を示し、列192は、次の半時間に放映する番組を示し、第4の列193は、その後の半時間に放映する番組を示す。野球用バットのアイコン121は、列191および192にわたり、これにより、野球の試合が列192に対応するタイムスロットに続くことが予想されることを示す。しかし、テキストブロック111は、列192内に届かない。これは、フットボールの試合は、列192に対応するタイムスロットに及ぶことが予想されないことを示している。これからわかるように、絵文字194は、フットボールの試合の後、ABCが競馬を表示していることを示す。図2に示されているアイコンは、図には示されていないカーソルを使用して作動させることができ、さまざまな機能を実装する、例えば、選択されたプログラミングに関連する情報をダウンロードすることができる。他のデジタルEPGおよび関係するインターフェイスは、例えば、開示がさらに参照により本明細書に組み込まれる、米国特許第6,314,575号、第6,412,110号、および第6,577,350号で説明されている。
しかし、上で説明されているインターフェイスには、さまざまな欠点のうちとりわけ、メディアアイテムの大きなコレクションとメディアアイテムの小さなコレクションとの間で容易にスケーリングできないという欠点がある。例えば、アイテムのリストに依存するインターフェイスは、メディアアイテムの小さなコレクションの場合にはうまく働くが、メディアアイテムの大きなコレクションの場合にはブラウズに時間がかかる。階層的ナビゲーション(例えば、ツリー構造)に依存するインターフェイスは、メディアアイテムの大きなコレクションについては、リストインターフェイスに比べて横断がスピーディーな場合があるが、メディアアイテムの小さなコレクションには簡単に適応させることができない。さらに、ユーザは、ツリー構造内の3つまたはそれ以上の層内をユーザが移動しなければならない選択プロセスには関心を失う傾向がある。これらの場合すべてに関して、現在のリモコンユニットでは、リストまたは階層をナビゲートするために上および下ボタンを繰り返し押し続けることをユーザに強制するので、この選択プロセッサはなおいっそう退屈なものとなる。ページアップおよびページダウンなどの選択スキップコントロールが利用できる場合、ユーザは、通常、これらの特殊ボタンを見つけるためにリモコンユニットを見なければならないか、またはそもそも存在していることを知ることを学習しなければならない。
ユーザとメディアシステムとの間のコントロールおよび画面インターフェイスを簡素化し、さらには、選択プロセスを高速化する、編成フレームワーク、技術、およびシステムは、「A Control Framework with a Zoomable Graphical User Interface for Organizing, Selecting and Launching Media Items」という表題の2004年1月30日に出願された米国特許出願第10/768,432号で説明されており、その開示は、参照により本明細書に組み込まれ、これ以降「'432出願」と呼ぶ。このようなフレームワークを使用すると、サービスプロバイダは、多数のメディアアイテムおよび新しいサービスをユーザに提供しやすくすることによりエンドユーザ機器への利用可能な帯域幅の増大を利用することができる。
典型的には、ユーザインターフェイスおよび例えばセットトップボックスおよびTVシステムに関連するアプリケーション構築に関連するソフトウェア開発は、両極端の間の選択を伴う。アプローチの1つは、ソフトウェア全体を1つの統一アプリケーションとして開発することである。このアプローチには、ユーザとユーザインターフェイスとの間の対話は、完全にカプセル化され、実行は、完全にコントロールされるという利点がある。このアプローチの欠点は、何かが変更されたときにはいつもアプリケーション全体が影響を受けるため、ユーザインターフェイス用の新しい機能の開発に時間がかかることである。この範囲の他端には、Webブラウザによく似たユーザインターフェイスを設計するアプローチがある。このアプローチを使用すると、HTMLコードを解釈実行し、ユーザインターフェイス画面を構成する小さなマシンが構築される。この第2のアプローチの利点の1つは、アプリケーションの開発が非常に迅速に行えることである。このアプローチの欠点は、対話が完全にはカプセル化されず、帯域幅性能問題が完全にはコントロールされないという点である。首尾一貫したユーザ対話は、よいユーザインターフェイス設計にとって重要であるため、特にTVユーザインターフェイス設計では、前者の問題が重大であることがある。さらに、セットトップボックスは、例えば、重大な帯域幅制限に対処しなければならないことが多いため、この後者の問題も厄介であると考えられる。
したがって、これらの難点を解消するユーザインターフェイス、方法、およびソフトウェア設計構築を提供することが望ましいであろう。
米国仮特許出願第60/641,406号 米国特許第6,421,067号 米国特許第6,314,575号 米国特許第6,412,110号 米国特許第6,577,350号 米国特許出願第10/768,432号 米国特許出願第11/119,683号 Benjamin B. Bederson、「Quantum Treemaps and Bubblemaps for a Zoomable Image Browser」、UIST 2001、ACM Symposium on User Interface Software and Technology、CHI Letters、3(2)、71〜80頁 W3C Recommendationにより2003年1月14日に発布された「Scalable Vector Graphics (SVG) 1.1 Specification」
本発明によるシステムおよび方法は、複数のコントロール要素とともに画面に表示されるユーザインターフェイスを備えることによりこれらのニーズおよび他のニーズを解消するが、複数のコントロール要素のうち少なくとも一部は、少なくとも1つの英数字をその上に表示する。英数字を表示するためのテキストボックスは、複数のコントロール要素および表示されるアイテムの複数のグループを使用して入力される。ユーザインターフェイス上の複数のグループのレイアウトは、表示されるグループの第1の個数に基づいており、グループ内の表示されるアイテムのレイアウトは、そのグループ内に表示されるアイテムの第2の個数に基づく。
本発明の例示的な実施形態によれば、メタデータ処理システムに関連する分散ソフトウェア構成の方法は、複数の第1の種類のシステム規模のソフトウェア構成体を提供し、それぞれのソフトウェア構成体がそれぞれの高レベルのメタデータカテゴリとのユーザ対話を定義する、ステップと、少なくとも1つの第2の種類の下位レベルのシステム規模のソフトウェア構成体を提供し、複数の第1の種類のシステム規模のソフトウェア構成体のそれぞれが、第2の種類の下位レベルのシステム規模のソフトウェア構成体のうちの1つまたは複数からなる、ステップとを含む。
本発明の他の例示的な実施形態によれば、分散ソフトウェア構成を有するメタデータ処理システムは、さまざまな種類のメタデータをメタデータ処理システムに供給するためのメタデータ供給源、それぞれがそれぞれの高レベルメタデータカテゴリとのユーザ対話を定義する複数の第1の種類のシステム規模のソフトウェア構成体、および複数の第1の種類のシステム規模のソフトウェア構成体のそれぞれが第2の種類の下位レベルのシステム規模のソフトウェア構成体のうちの1つまたは複数からなる少なくとも1つの第2の種類の下位レベルのシステム規模のソフトウェア構成体を備える。
付属の図面は、本発明の例示的な実施形態を示している。
本発明の以下の詳細な説明では、付属の図面を参照する。異なる図面の同じ参照番号は、同じまたは類似の要素を明示する。また、以下の詳細な説明は、本発明を限定するものではない。その代わりに、本発明の範囲は、付属の請求項により定義される。
この説明の背景状況をある程度示すために、まず最初に、本発明を使用して実装できる例示的な集約的メディアシステム200を図3〜22に関して説明する。しかし、当業者であれば、本発明がこの種類のメディアシステムの実装に制限されないこと、またそこに含めるコンポーネントを加減できることを理解するであろう。そこでは、入出力(I/O)バス210は、メディアシステム200内のシステムコンポーネントを1つに接続する。I/Oバス210は、メディアシステムコンポーネント間の信号を引き回す多数の異なるメカニズムおよび技術を表している。例えば、I/Oバス210は、オーディオ信号を引き回す適切な数の独立のオーディオ「パッチ」ケーブル、ビデオ信号を引き回す同軸ケーブル、制御信号を引き回す二線シリアルラインまたは赤外線もしくは無線周波トランシーバ、光ファイバ、または他の種類の信号を引き回す他の信号経路メカニズムを備えることができる。
この例示的な実施形態では、メディアシステム200は、I/Oバス210に結合されたテレビジョン/モニタ212、ビデオカセットレコーダ(VCR)214、デジタルビデオディスク(DVD)レコーダ/再生デバイス216、オーディオ/ビデオチューナ218、およびコンパクトディスクプレーヤ220を備える。VCR 214、DVD 216、およびコンパクトディスクプレーヤ220は、単一ディスクまたは単一カセットデバイスとしてよいか、またはそれとは別に、複数ディスクまたは複数カセットデバイスとすることができる。これらは、独立のユニットであるか、または一体化されることもできる。それに加えて、メディアシステム200は、マイクロホン/スピーカシステム222、ビデオカメラ224、および無線I/Oコントロールデバイス226を含む。本発明の例示的な実施形態によれば、無線I/Oコントロールデバイス226は、自由空間ポインティングをサポートし、ナビゲーションをサポートする最低限の数のボタンを備え、RF信号を通じてメディアシステム200と通信するメディアシステムリモコンユニットである。例えば、無線I/Oコントロールデバイス226は、特定の所望のコマンドを決定するため、ジャイロスコープまたは他のメカニズムを使用して画面位置と運動ベクトルの両方を定義する自由空間ポインティングデバイスとすることができる。さらに、一組のボタンを無線I/Oデバイス226上に備え、後述の「クリック」プリミティブだけでなく「back」ボタンも起動することができる。他の例示的な実施形態では、無線I/Oコントロールデバイス226は、IR信号を介してメディアシステム200のコンポーネントと通信する、メディアシステムリモコンユニットである。さらに他の実施形態では、無線I/Oコントロールデバイス226は、外観が典型的なエンターテインメントシステムリモコンに似ている、ユーザがエンターテインメントシステム100のディスプレイ上でカーソルの位置を決めるために使用されるトラックボールまたは他のナビゲーションメカニズムの付加的機能を備える、IRリモコンデバイスとすることができる。
メディアシステム200は、さらに、システムコントローラ228も含む。本発明の例示的な一実施形態によれば、システムコントローラ228は、複数のエンターテインメントシステムデータソースから入手可能なエンターテインメントシステムデータを格納し、表示し、またシステムコンポーネントのそれぞれと関連する広範にわたる機能を制御するように動作する。図3に示されているように、システムコントローラ228は、直接的または間接的に、必要に応じて、I/Oバス210を通して、システムコンポーネントのそれぞれに結合される。例示的な一実施形態では、I/Oバス210に加えて、またはその代わりに、システムコントローラ228は、IR信号またはRF信号を介してシステムコンポーネントと通信することができる、無線通信送信機(またはトランシーバ)を備えるように構成される。コントロール媒体に関係なく、システムコントローラ228は、後述のグラフィカルユーザインターフェイスを介してメディアシステム200のメディアコンポーネントを制御するように構成される。
図3にさらに例示されているように、メディアシステム200は、さまざまなメディアソースおよびサービスプロバイダからメディアアイテムを受信するように構成することができる。この例示的な実施形態では、メディアシステム200は、有線放送230、衛星放送232(例えば、パラボラアンテナを介して)、放送テレビジョンネットワーク234の超短波(VHF)または極超短波(UHF)無線周波通信(例えば、空中線アンテナを介して)、電話網236、およびケーブルモデム238(またはインターネットコンテンツの他のソース)のうちのいずれかまたはすべてからメディア入力を受信し、適宜それらに情報を送信する。当業者であれば、図3に関して例示され、説明されているメディアコンポーネントおよびメディアソースは、純粋に例示的であり、メディアシステム200には、その両方を加減して含めることができることを理解するであろう。例えば、システムへの他の種類の入力は、AM/FMラジオおよび衛星ラジオを含む。
図4は、本発明による、例示的なシステムコントローラ228を例示するブロック図である。例えば、システムコントローラ228は、セットトップボックスとして実装することができ、例えば、プロセッサ300、メモリ302、ディスプレイコントローラ304、他のデバイスコントローラ(例えば、システム200の他のコンポーネントに関連する)、1つまたは複数のデータ記憶デバイス308、およびI/Oインターフェイス310を備える。これらのコンポーネントは、バス312を介してプロセッサ300と通信する。当業者であれば、プロセッサ300は、1つまたは複数の処理ユニットを使用して実装することができることを理解するであろう。(複数の)メモリデバイス302は、例えば、DRAMまたはSRAM、ROMを含むことができ、その一部は、キャッシュメモリとして指定することができ、そこに、プロセッサ300により実行されるソフトウェアおよび/または、後述のグラフィカルユーザインターフェイスに関連するソフトウェアおよび/またはデータを含む、そのようなプログラムにより使用可能なデータを格納する。ディスプレイコントローラ304は、プロセッサ300により、モニタ212の表示を制御して、とりわけ、後述のGUI画面およびオブジェクトを表示するために動作させることができる。本発明の例示的な実施形態によるズーミング可能なGUIは、解像度に関係しないズーミングを行い、したがって、モニタ212は、任意の解像度で表示を行うことができる。デバイスコントローラ306は、メディアシステム200の他のコンポーネントとプロセッサ300との間のインターフェイスをなす。データ記憶デバイス308は、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD-ROMデバイス、または他の大容量記憶装置のうちの1つまたは複数を含むことができる。入出力インターフェイス310は、例えば、キーボードインターフェイス、RFインターフェイス、IRインターフェイス、およびマイクロホン/会話インターフェイスを含む複数のインターフェイスのうちの1つまたは複数を含むことができる。本発明の例示的な一実施形態によれば、I/Oインターフェイス310は、無線ポインティングデバイスの移動に関連する位置情報を受信するためのインターフェイスを含む。
メディアアイテム選択情報を表示するための本発明の例示的な実施形態によるグラフィカルユーザインターフェイスの生成およびコントロールは、プロセッサ300がメモリ302に格納されている命令シーケンスを実行することに応答してシステムコントローラ228により実行される。このような命令は、(複数の)データ記憶デバイス308などの他のコンピュータ可読媒体から、またはメディアシステム200に外部的に接続されているコンピュータから、メモリ302内に読み込むことができる。メモリ302内に格納されている命令シーケンスが実行されると、プロセッサは、グラフィカルユーザインターフェイスオブジェクトおよびコントロールを、とりわけ、モニタ212上に生成する。他の実施形態において、本発明を実装するために、配線接続されている回路をソフトウェア命令の代わりに、または組み合わせて使用することができる。「背景技術」の節で説明されているように、テレビジョン産業に関連する従来のインターフェイスフレームワークは、単純でしかも広範囲にわたる選択活動をユーザが行えるようにするという点でひどく制限されている。したがって、本明細書で説明されているコントロールフレームワークは、これらの制限を解消し、したがって、もっぱらというわけではないが、テレビとともに使用することが意図されている。また、本明細書で説明されている画期的なコントロールフレームワーク、グラフィカルユーザインターフェイス、および/またはさまざまなアルゴリズムは、コンピュータおよび他の非テレビジョンデバイスとともに使用することができるインターフェイスに応用することができることが予想される。本発明の例示的な実施形態のこれらさまざまな応用例を区別するために、「テレビジョン」および「TV」という用語は、本明細書では、表示デバイスのサブセットを指すために使用されるが、「GUI」、「GUI画面」、「ディスプレイ」、および「表示画面」という用語は、総称的であることが意図されており、テレビジョンディスプレイ、コンピュータディスプレイ、および他の表示デバイスを指す。より具体的には、「テレビジョン」および「TV」という用語は、アダプタを使用してテレビジョン信号を他の形式(例えば、コンピュータビデオ形式)に変換することなく、テレビジョン信号(例えば、NTSC信号、PAL信号、またはSECAM信号)を表示することができる表示デバイスのサブセットを指すことが意図されている。それに加えて、「テレビジョン」および「TV」という用語は、数フィートまたはそれ以上の距離(例えば、ソファーから居間のTVまでの距離)から一般的に見られる表示デバイスのサブセットを指すが、コンピュータディスプレイは、一般的に、接近して見られる(例えば、椅子から机上のモニタまでの距離)。
本発明によるズーミング可能なグラフィカルインターフェイスを含むコントロールフレームワークを実装するために使用することができる例示的なメディアシステムについて説明されているが、このようなインターフェイスのいくつかの実施例をこれから説明する。本発明の例示的な実施形態によれば、ユーザインターフェイスは、カテゴリ別にグループ化できる選択可能アイテムを表示する。ユーザは、リモコンユニット上の注目する1つまたは複数のカテゴリをポイントし、選択ボタンを押して、ズームインするか、または「back」ボタンを押して、ズームを元に戻す。ユーザがズームイン、またはズームを元に戻すアクションを実行する毎に、ユーザインターフェイスにより画面上にレンダリングされる選択可能アイテムの倍率レベルおよび/またはコンテキストが変化する。例示的な実施形態によれば、倍率レベルのそれぞれの変化は、矛盾のないようにできる、つまり、倍率レベルの変化は、所定のステップで行われる。本発明の例示的な実施形態は、さらに、極大までのスケーリングを行ういくつかの視覚的技術を組み込んだユーザインターフェイスを実現する。これらの技術は、スケーラビリティと使い勝手の両方を高める構成要素および技術の組合せ、特に、ユーザインターフェイスオブジェクトの高速再訪のためユーザの視覚的記憶を高めるようにユーザインターフェイスを適応させる技術を伴う。
ユーザインターフェイスは、概して、視覚的経験を与えるものである。このような環境では、本発明の例示的な実施形態は、ユーザがビジュアル環境内でオブジェクトの位置を記憶できることを利用する。これは、ユーザインターフェイス選択項目に対する安定した、信頼できる場所を提供することにより実現される。それぞれのオブジェクトは、ズーミング可能なレイアウトである位置を有する。ユーザが注目するオブジェクトを見つけた後、そのオブジェクトを特定するためにどの方向をとったかを憶えておくことは当然である。そのオブジェクトに特に関心がある場合、ユーザは複数回そのアイテムを再訪する可能性が高く、そのオブジェクトまでの経路に対するユーザの記憶が強化される。本発明の例示的な実施形態によるユーザインターフェイスは、ユーザが注目するアイテムの位置を記憶するのを助ける視覚的ニーモニックを備える。このような視覚的ニーモニックは、パンおよびズームアニメーション、ユーザインターフェイスの仮想的表面をなぞる動きの地理的な感覚を生じさせる遷移効果、およびとりわけ、後述の実施例に基づいてより明らかになる一貫したズーミング機能を含む。
大きな選択集合に関連する詳細が隠されたまま、ユーザが極端に大きなアイテム集合から選択できるようにする編成メカニズムが備えられる。さまざまな種類の編成メカニズムが、本発明により使用することができ、以下に実施例が示される。
図5〜8をまず参照すると、本発明の例示的な一実施形態によるズーミング可能なグラフィカルユーザインターフェイスを含む例示的なコントロールフレームワークは、音楽メディアアイテムを表示し、選択する際に使用することに関して説明されている。図5は、ズーミング可能GUIをズームアウト率最大の状態で示している。そこでは、インターフェイスには、形状500の集合が表示される。それぞれの形状500内に表示されるのは、GUIのその部分を介してアクセス可能なメディアアイテム選択のグループを説明するテキスト502および/または写真504である。図5に示されているように、形状500は、四角形であり、テキスト502および/または写真504は、メディアのジャンルを説明する。しかし、当業者であれば、この第1の表示されるGUIグルーピングは、ユーザから利用できるメディア選択の他の態様、例えば、アーティスト、作成年、アーティストの居住地域、アイテムの長さ、または選択の他の何らかの特性を表すことが可能であることを理解するであろう。また、GUI内のさまざまなグルーピングの概要を示すために使用される形状は、四角形である必要はない。アルバムカバーの縮小バージョンおよび他のアイコンを使用し、形状グルーピング500内のテキスト502および/または写真504の代わりに、またはそれに加えて、ユーザへのさらなるナビゲーション上のヒントとすることができる。GUI 506の背景部分は、無地として表示することができるか、または地図などの写真の一部とすることができ、これは、ユーザがジャンルの空間的配置を記憶しておき、将来、あまり読まずにインターフェイスを使用する補助となる。選択ポインタ(カーソル)508は、入力デバイスの動きに追随し、ユーザがデバイス(図5に示されていない)上のボタンを押したときにズームインする場所を示す。
本発明の例示的な一実施形態によれば、入力デバイスは、以下でさらに詳しく説明されるポイント、クリック、スクロール、ホバリング、およびズーム構成要素をサポートするグラフィカルユーザインターフェイスと結合された、自由空間ポインティングデバイス、例えば、開示が参照により本明細書に組み込まれており、これ以降「'683出願」と呼ばれる、「Free Space Pointing Devices and Methods」という表題の2005年5月2日に出願された米国特許出願第11/119,683号で説明されている自由空間ポインティングデバイスとすることができる。本発明と連携して使用すると有益なこの例示的な入力デバイスの特徴の1つは、2つのボタンとスクロールホイールのみ、つまり、3つの入力作動オブジェクトだけで実装できるという点である。これらのボタンのうち1つは、ZOOM IN(選択)ボタンとして構成することができ、もう1つは、ZOOM OUT(戻る)ボタンとして構成することができる。従来のリモコンユニット、例えば図1に示されているものと比べると、本発明では、ユーザが自分のメディアアイテム選択を行う際に直面する、ボタンの数などを大幅に削減することにより、GUIのこの態様を簡素化している。本発明の例示的な実施形態による入力デバイスの追加の好ましいが、必須ではない、特徴は、ユーザ向けの「自由空間ポインティング」機能を実現することである。「自由空間ポインティング」という語句は、本明細書では、ユーザが表示画面の前の空中で3つ(またはそれ以上)の次元方向に入力デバイスを自由に動かせること、およびそれに対応して、ユーザインターフェイスがそれらの運動を画面上のカーソルの動きに直接変換することができることを指すために使用される。そのため、「自由空間ポインティング」は、表示画面とは別の表面、例えば机の表面またはマウスパッドを、マウスの相対的移動がコンピュータ表示画面上のカーソル移動に変換される際に起点となるプロキシ表面として使用する従来のコンピュータマウスポインティング技術とは異なる。本発明の例示的な実施形態によるコントロールフレームワーク内で自由空間ポインティングを使用することで、さらに、ユーザの選択活動が簡素化されるが、それと同時に、インターフェイスへの区別可能な入力として身振りを導入する機会が与えられる。身振りは、時間の経過を伴う移動の認識可能なパターンとしてみなすことができ、そのパターンは、GUIコマンド、例えば、x、y、z、ヨー、ピッチ、およびロール次元またはそれらの部分的組合せによる移動の関数に変換することができる。しかし、当業者であれば、好適な任意の入力デバイスを、本発明によるズーミング可能なGUIとともに使用できることを理解するであろう。好適な入力デバイスの他の実施例は、限定はしないが、トラックボール、タッチパッド、従来のTVリモコンデバイス、音声入力、ユーザの身振りをGUIコマンド、またはそれらの任意の組合せに伝達/変換することができる任意のデバイスを含む。本明細書で説明されているGUI機能のそれぞれの態様は、身振りおよび音声コマンドのうちの少なくとも1つを使用して本発明によりフレームワーク内で作動させることができることが意図されている。他の実装は、カーソルおよび/または他のリモコンキーまたはさらには音声入力を使用して選択対象のアイテムを識別することを含む。
図6は、ジャンル3をズームインしたビューを示しており、これは、ユーザが、例えば、ディスプレイ212上のジャンル3を囲む四角形により包含されている領域上でカーソル508を移動し、入力デバイス上のボタンを押すことにより、図5のジャンル3を選択した場合に表示される。インターフェイスは、図5から図6へのズームをアニメーション表示し、ズームが行われたことをユーザに知らせる。このようなアニメーションによるズーム/遷移効果の一実施例について以下で説明する。ジャンル3を含む形状516が、ディスプレイ212上の画面の大半を占有すると、インターフェイスは、ジャンルに含まれるアルバムを持つアーティストを表示する。この実施例では、いくつかの異なるアーティストおよび/またはその作品が表示される。図5のズームアウトされたビュー内のジャンル3に隣接していた未選択ジャンル515は、まだ、ズームインされたビュー内のジャンル3に隣接しているが、ディスプレイ212の縁によりクリップされる。これらの未選択ジャンルは、選択ポインタ508で選択することによりそこに素早くナビゲートすることができる。しかし、本発明の他の例示的な実施形態では、隣接オブジェクトをクリップするのを省き、代わりに、未クリップ選択のみを表示するようにできることは理解されるであろう。アーティストグループのそれぞれ、例えばグループ512は、縮小されたアルバムカバーの画像、アーティストの写真、またはカテゴリにユーザによって作成されたプレーリストが含まれる場合にユーザによるカスタマイズ可能なアートワークを含むことができる。
次いで、ユーザは、さらに検討および/または選択するためにアーティストグループのうちの1人を選択することができる。図7は、カーソル508の位置決めおよび入力デバイスの作動を介してユーザがアーティスト3を選択したことに対する応答としてさらにズームインしたビューを示しており、アルバムカバーの画像520が見えてくる。図5および図6のGUI画面からの遷移と同様に、未選択の、隣接アーティスト(この実施例におけるアーティスト#2、6、および7)は、ズームイン表示の辺に向かって示され、ユーザは、それらを選択ポインタ508でクリックし、それらのアーティストビューへパンすることができる。インターフェイスのこの部分では、アルバムカバーの画像520に加えて、アーティスト情報524をアーティストグループ内の一アイテムとして表示することができる。この情報は、例えば、アーティストの写真、略歴、雑学的知識、ディスコグラフィ、影響、Webサイトへのリンク、および他の関連データを含むことができる。アルバムカバーの画像520のそれぞれは、アルバムカバーの写真、およびオプションでテキストデータを含むことができる。アルバムカバーの画像520がユーザによって作成されたプレーリストを含む場合、グラフィカルユーザインターフェイスは、このインターフェイスにより自動的に選択される、またはユーザによって事前に選択された写真を表示することができる。
最後に、ユーザがグループ521内からアルバムカバーの画像520を選択した場合、インターフェイスは、図8に示されているようにアルバムカバー内をズームイン表示する。ズームが進行するにつれ、アルバムカバーは、フェードする、またはアルバム530のアーティストおよびタイトル、トラック532のリスト、アルバム536に関する他の情報、アルバムカバー528の縮小バージョン、およびコンテンツを再生するか、分類を修正するか、アーティストWebページにリンクするか、または選択に関する他の情報を見つけるためのコントロール534などのアイテムも含むビューにモーフィングで形を変えることができる。インターフェイスに表示させるために選択ポインタ508を使用して選択できる隣接アルバム538が示されている。上述のように、例えば、本発明の他の実施形態は、選択されたオブジェクト、例えばアルバム5だけを表示し、未選択オブジェクトのクリップされた部分、例えばアルバム4および6を省くようにズームインすることができる。この最終ズームは、意味論的ズーミングの一例となっており、そこでは、前のズームレベルではすでに見えていなかったいくつかのGUI要素が見えるようにされる。本発明の例示的な実施形態により意味論的ズーミングを実行するさまざまな技術について以下で説明する。
図5〜8および説明で示されているように、グラフィカルユーザインターフェイスのこの例示的な実施形態は、楽曲コレクションのナビゲーションを行う。本発明によるインターフェイスは、さらに、DVD、VHSテープ、他の記録媒体、ビデオオンデマンド、ビデオセグメント、およびホームムービーなどのビデオコレクションに対し使用することができる。他のオーディオ用途としては、ラジオショー、インストラクションテープ、歴史アーカイブ、およびサウンドクリップコレクションのナビゲーションがある。ニュース記事および電子ブックなどの印刷またはテキストメディアも、本発明を使用して編成され、アクセスされることができる。
当業者には前記の説明から明らかなように、本発明によるズーミング可能グラフィカルユーザインターフェイスは、ユーザに多数の(または少数の)メディアアイテムを素早く、簡単にブラウズする機能を提供している。この機能は、限定はしないが、(1)特定のメディアアイテムについて画像を選択情報の全部または一部として使用すること、(2)選択を行うためにユーザが必要とする多数の、または少数の情報を素早く与えるようにズーミングを使用すること、および(3)単一平面上にインターフェイス全体が置かれている感覚をユーザに与え、ユーザの方向感覚を使ってGUIのナビゲーションが実行され、記憶されうるように組み合わせる複数のGUI技術を使用することを含む、本発明の例示的な実施形態によるインターフェイスの多数の特性に帰すべきである。本発明によるGUIのこの後者の態様は、とりわけ、一方のGUI画面から次の画面へのGUIオブジェクト連続性を等しく維持する、例えば、現在のGUI画面の境界の周りに隣接する未選択オブジェクトの辺を表示することにより、さまざまなGUI画面を「地理的に」結び合わせることで実現できる。それとは別に、きれいなビューが望まれ、また他のGUI技術で十分な地理的フィードバックが得られる場合、クリップされたオブジェクトを省くことができる。本明細書で使用されているように、「GUI画面」という語句は、同時に1つまたは複数の表示ユニット上にレンダリングされたGUIオブジェクトの集合を指す。GUI画面は、メディアアイテムを出力する同じディスプレイ上にレンダリングすることができるか、または異なるディスプレイ上にレンダリングすることができる。ディスプレイは、TVディスプレイ、コンピュータモニタ、または他の好適なGUI出力デバイスとすることができる。
GUI画面の接続性に対するユーザの感覚を高める他のGUI効果は、ズーミングが実行されたとき、またはユーザが現在選択されているオブジェクトと同じズームレベルで隣接オブジェクトを選択したときに引き起こされるパニングアニメーション効果である。図5の実施例に戻ると、ユーザが最初にGUI画面を見ているときに、ユーザの視点は、点550を中心とする。しかし、ユーザがズームイン対象にジャンル3を選択した場合、ユーザの視点は、点552にシフトする。本発明の例示的な実施形態によれば、ズームインプロセスは、点550から552までPOV中心のシフトを伝えるようにアニメートされる。このパニングアニメーションは、すべてのGUI変化、例えば、ズームレベルの変化または同じGUIズームレベルでの一方のオブジェクトから他のオブジェクトへの変化について実行できる。そのため、例えば、図6のGUI画面に置かれているユーザが一番左の未選択ジャンル515(ジャンル2)を選択した場合、ユーザに左または西への「移動」の視覚的印象を与えるパニングアニメーションが生じるであろう。本発明の例示的な実施形態は、このような技術を使用して、GUI画面間の方向移動に関する首尾一貫した感覚をもたらし、これにより、ユーザは、ズームレベル間でも、同じズームレベルのメディアアイテム間でも、GUIを素早くナビゲートすることができる。
本発明によりズーミング可能なGUIを実装するために、さまざまなデータ構造体およびアルゴリズムを使用することができる。例えば、写真を表示するイメージブラウザでパニングおよびズーミングするためのデータ構造体およびアルゴリズムは、開示が参照により本明細書に踏み込まれている、論文、Benjamin B. Bederson、「Quantum Treemaps and Bubblemaps for a Zoomable Image Browser」、UIST 2001、ACM Symposium on User Interface Software and Technology、CHI Letters、3(2)、71〜80頁で説明されている。しかし、高いレベルで、多数のアプリケーションを切り替えることができ、低いレベルで、さまざまなメディア選択機能を実行する選択されたイメージに関連付けられているユーザコントロールを備える、メディア選択のためのGUIを実現するために、追加のデータ構造体およびアルゴリズムが必要である。
ズーミング可能GUIは、表示デバイスのビューポート内のユーザインターフェイスコンポーネントのシーンの周辺でのパニングおよびズーミングをサポートするものとして概念化することができる。この効果を生じさせるために、本発明の例示的な実施形態によるズーミング可能GUIは、シーングラフデータ構造体を使用して実装することができる。シーングラフ内のそれぞれのノードは、ボタンまたはテキストラベルまたはインターフェイスコンポーネントのグループなどのユーザインターフェイスコンポーネントの何らかの部分を表す。ノードの子は、そのノードの内部のグラフィック要素(直線、テキスト、画像など)を表す。例えば、アプリケーションは、シーングラフ内で、そのインターフェイスにおけるさまざまなグラフィック要素に対する子を持つノードとして表すことができる。2つの特別な種類のノードは、カメラおよび層と本明細書では呼ばれる。カメラは、層ノードを見ることによりビューポートをシーングラフの他の部分の中に与えるノードである。これらの層ノードの下に、ユーザインターフェイス要素を見つけることができる。ズーミング可能なインターフェイスのコントロールロジックでは、プログラミングにより、カメラビュー変換を調節し、パニングおよびズーミングの効果をもたらすようにする。
図9は、本発明の例示的ないくつかの実施形態を実装するために使用することができる基本的なズーミング可能なインターフェイス要素を含むシーングラフを示しており、特に、これは、1つのカメラノード900および1つの層ノード902を含む。カメラノード900と層ノード902との間の点線は、カメラノード900がカメラのビューポート内に層ノード902の子をレンダリングするように構成されていることを示す。アタッチされている表示デバイス904により、ユーザは、カメラのビューポートを見ることになる。層ノード902は、円と一対の卵形を描画する3つの子ノード904を持つ。シーングラフは、さらに、ノード912〜918を使って、四角形が円形内に描画され、3つの三角形が四角形内に描画されることを指定している。シーングラフは、ルートノード920によりデータ構造体内の他のシーングラフに結び付けられる。それぞれのノード906〜918は、局所座標変換行列を使用することによりそのノードの親に関して自己スケーリングおよび位置決めする機能を持つ。図10(a)および10(b)は、第1のズームアウト倍率と第2のズームイン倍率でそれぞれカメラを通してレンダリングされたときにシーングラフがどのように見えるかを例示している。
シーングラフのレンダリングは、以下のように行うことができる。ディスプレイ904を更新する必要がある場合、例えば、ユーザが図10(a)のビューから図10(b)のビューへのズームインをトリガしたときに、塗り直しイベントが、ディスプレイ904にアタッチされているカメラノード900を呼び出し、自己レンダリングさせる。次に、これにより、カメラノード900は、カメラのビューポート内に領域をレンダリングするよう層ノード902に通知する。層ノード902は、自己レンダリングするようにその子に通知することにより自己レンダリングする、というようにさらに続けて行く。現在の変換行列および更新すべき領域に対する有界な四角形は、ステップ毎に受け渡され、適宜修正され、レンダリングに使用すべき適切なスケールおよびオフセットをそれぞれのノードに知らせる。本発明によるズーミング可能GUI内で動作するアプリケーションのシーングラフは、数千ものノードを含むことができ、それぞれのノードは、変換行列および更新すべき領域をチェックし、必ずその描画演算が実際にユーザによって見られるようにすることができる。前述の実施例では、1つのカメラノードおよび1つの層ノードを含むシーングラフを説明しているが、本発明の例示的ないくつかの実施形態は、複数のカメラおよび層を埋め込むことができることが理解されよう。これらの埋め込まれたカメラは、ズーミング可能なインターフェイス全体におけるユーザの現在のビュー位置を示す小さなズームアウトされた地図などのユーザインターフェイス要素を備えることができ、またこれにより、ユーザインターフェイスコンポーネントを独立にズーミング可能およびパニング可能なものとすることができる。
ズーミング可能なインターフェイスを使用して複数のアプリケーションの動作を調整する場合、例えば、図14〜18に関して以下で説明されている例示的なムービーブラウザのように、それぞれのアプリケーションに対するメモリおよびリソース要件は、メディアシステム内で利用可能な全メモリ量を超えることがある。このことは、ユーザがコードおよびデータの一部または全部を見なくなったときにアプリケーション側でそれらをアンロードすることを示唆している。しかし、本発明によるズーミング可能GUIでは、アプリケーションの一部または全部が常時、ユーザに対しアクティブであるように見える外観を与えることが望ましい場合がある。これら2つの競合する目的を達成するために、ユーザの視点から「画面上にない」アプリケーションを一時的待機状態にすることができる。本発明の例示的な実施形態によりズーミング可能GUIでこの挙動を達成するために、ビューポートを出入りするときにそのことを示すイベントが、アプリケーションに送られる。このようなイベントを実装する一方法では、ユーザがビューポートに入ったときにそのことが検出されるようにコンポーネントをレンダリングするコードにロジックを追加する。しかし、このことは、レンダリングイベント毎に通知ロジックが呼び出されることを意味し、さらに重要なのは、ユーザがコンポーネントから離れる方向にビューポートをナビゲートしたときにそのことを容易に検出できないということを意味する。イベントをアプリケーションに送る他の方法では、通知ロジックをGUIナビゲーション要素(ハイパーリンクおよびボタンなどの)に組み込み、注目するコンポーネントを含むようにカメラのビューポートを変更したときに通知がコンポーネントに送られるようにすることである。しかし、これは、プログラマーが、用心深く通知コードを可能なすべてのナビゲーションUI要素に追加することを必要とする。
例示的な一実施形態によれば、計算効率の高いノード監視アルゴリズムを使用することで、GUIコンポーネントおよび/またはアプリケーションがカメラのビューをいつ出入りするかをアプリケーションに通知することができる。高レベルでは、ノード監視アルゴリズムは、(1)初期化、(2)ビューポート変化評価、および(3)シーングラフ変化評価の3つの主要ステージを持つ。初期化ステージでは、ビューポート変化評価により使用されるノード量を計算し、該当するデータ構造体を初期化する。ビューポート変化評価ステージは、ビューポートが変化したときに呼び出され、そのビューポートに入るか、または出た監視されているすべてのノードに通知する。最後に、シーングラフ変化評価ステージで、シーングラフが変化したため無効になった初期化ステージで行われた計算を更新する。例えば、監視されているノードの先行ノードがシーングラフ内の位置を変えた場合、初期化時に行われた計算は、再計算する必要がある場合がある。
これらのステージのうち、ビューポート変化評価では、ノード監視アルゴリズムの残り部分を駆動する。ノードがビューポートを出入りする時期を線引きするために、初期化ステップでは、所望のノードの有界な四角形を決定し、それをその局所座標系からビューポートの局所座標系に変換する。この方法で、ノードに入るのをチェックするのに、ビューポート変化毎に一連の座標変換を行う必要はない。そのノードの親は変換行列を持っている場合があるため、この初期化ステップは、そのノードからカメラまでシーングラフを横断することを必要とする。後述のように、埋め込まれたカメラが、シーングラフデータ構造体中で使用される場合、複数の場所に出現するノードを受け入れるために複数の有界な四角形が必要になることがある。
それぞれの監視されるノードに対する有界な四角形がビューポートの座標系において計算された後、初期化ステージで、有界な四角形をビューポート変化評価データ構造体に加える。ノード監視アルゴリズムは、基本構成要素をシーン内の次元毎に使用する。いくつかの例示的な実施形態によるズーミング可能インターフェイスでは、これは、x次元、y次元、およびスケール次元を含む。しかし、後述のように、他の例示的な実装には、追加の、または異なる次元がある場合がある。スケール次元は、ビューポート内のノードの倍率レベルを記述するものであり、以下の式で表される。
Figure 2008527540
ただし、sは、スケールであり、dは、ノードの一点からノードの局所座標内の他の点までの距離であり、d'は、その点からビューポート内の他の点までの距離である。
図11は、1つの次元におけるシーンの出入りを検出するための例示的な構成要素を示している。以下では、x次元における取り扱いを説明しているが、当業者であれば、他の次元も同様にして取り扱うことができることを理解するであろう。領域ブロック1100は、変換された有界な四角形座標への参照を含む。これは、四角形の左および右(上および下または最小および最大のスケール)オフセットを含む。左および右オフセットは、それぞれ、それ自体順序付き双方向連結リスト内に置かれ、低い番号のオフセットほど先頭に向かう、遷移ブロック1102および1104内に格納される。現在のビューポート境界は、ビュー境界ブロック1106内に格納される。ブロック1106は、ビューの左辺および右辺をちょうど超えたばかりの遷移ブロックへのポインタを持ち、例えば、ビュー左辺によって指されているもののすぐ右の遷移ブロックは、後者のブロックがビュー右辺により指されていない場合にビュー内にある。
ビューポートが変化した場合、以下の処理が次元毎に実行される。第1に、ビュー左辺およびビュー右辺ポインタをチェックして、遷移ブロックを包含または除外するようにそれらのポインタを移動する必要があるかどうかを調べる。次に、ポインタの一方または両方を移動する必要がある場合、遷移ブロックリスト上でスライドさせて新しい位置に移動する。次いで、ビュー左辺およびビュー右辺ポインタによって受け渡される遷移ブロック毎に、ノード監視アルゴリズムが、後述の遷移ブロック通知コードを実行する。この通知コードは、それぞれのノードがビューポートに入ったか、または出た可能性があるかを決定する。その可能性がある場合、そのノードは後処理リストに追加される。最後に、それぞれの次元についてこの処理の終わりに、後処理リスト上にあるそれぞれのノードがチェックされ、そのビューポートステータスが実際に変化したかが調べられる(変化およびその後の戻る変化とは反対に)。変化が生じた場合、このアルゴリズムは、イベントをコンポーネントに送る。ビューポートがズーミング可能インターフェイスの新しい領域に素早くジャンプする場合には、このアルゴリズムで、さらに多くの偽の入および出イベントを検出することがあることに留意されたい。
遷移ブロック通知コードは、チェックされる次元についてノードがビューポートに入ったかビューポートから出たかを決定する表引きとして実装することができる。表の例を以下に示す。
Figure 2008527540
列1、2、および3は、遷移通知表への入力である。特に、ノード監視アルゴリズムでは、ノード辺、ビュー辺、およびビュー移動方向の組合せを使用して表を取り扱い、評価されているノードに入ったのか、出たのか、または影響がなかったのかを判定する。列1は、ビューポートポインタによって受け渡される遷移ブロックにより表されるノードの辺を指す。列2は、ビューポートの辺を指し、列3は、ビューポートのその辺が、ノードの遷移ブロックを受け渡したときに移動していた方向を指す。いずれかの出力列4または5は、部分的にまたは完全にビュー内に入っているときにそのことをノードに通知すべきかどうかに応じて選択される。例えば、いくつかの実装では、部分的にビューに入っているビデオウィンドウをズーミング可能GUI内にロードすると表示が崩れることがあるため、完全にビュー内に入ってからのみ、ストリーミングビデオウィンドウなどのアプリケーションに通知することが望ましい場合がある。
表の出力が入または出を示している場合、ノード監視アルゴリズムは、ノードを後処理リストに追加する。表1の出力列は、以下の規則に基づいて値が埋められる。ノードがすべての次元において交差する場合、入通知は、後処理ステップで送られる。ノードがビュー内に入っており、現在は、1つまたは複数の次元が交差を停止している場合、出通知が送られる。後処理リスト内のノードの個数を減らすために、遷移ブロック通知コードは、ノードをリストに追加する前に他の次元との交差がないかチェックする。これにより、次元の総数、例えば3つまたはそれ以上のうちから1つまたは2つの次元のみが交差する場合に後処理ステップが不要になる。ユーザインターフェイスオブジェクト(例えば、アプリケーション)側が、GUIにおけるそのビューポートステータスを通知されることを望んでいる場合、これは、ノード監視アルゴリズムに機能を登録する。アプリケーションがビュー内に入るか、または出ると、ノード監視アルゴリズムは、そのアプリケーションの登録された機能を、発生したイベントを示すパラメータを付けて呼び出す。それとは別に、通知は、メッセージ受け渡しを使用して実行することができる。この場合、それぞれのアプリケーションは、イベントキューを持つ。アプリケーションは、イベントキューとの通信方法をノード監視アルゴリズムに知らせる。例えば、キューのアドレスを指定することが可能である。次いで、ノード監視機能が遷移を検出すると、これは、通知の原因を格納したデータ構造体を作成し、それをアプリケーションのキュー内に入れる。
アプリケーションのメモリ管理にノード監視通知を使用することに加えて、このアルゴリズムは、さらに、本発明によるズーミング可能GUIの他の機能にも使用できる。例えば、ノード監視アルゴリズムは、例えば、オーディオ出力フォーカスを現在表示されているアプリケーションに切り替えることにより、ユーザのビューフォーカスに基づいてアプリケーション挙動を変更することができる。ノード監視アルゴリズムの他のアプリケーションでは、倍率レベルが変化したときに、より解像度の高い複合画像のロードおよびアンロードを行う。これは、解像度がそのディスプレイによりマッチするより少ないオブジェクトをレンダリングさせることによりグラフィックスレンダラに対する計算負荷を低減する。ノード監視アルゴリズムにカメラのビューポートを監視させることに加えて、さらに、アニメーションの後に行き着く場所をビューポートに知らせるナビゲーションコードを監視させることも有益である。これにより、ビュー内に入ろうとしているコンポーネントの通知を早期に行い、さらに、本発明の例示的な実施形態によるズーミング可能GUIに、パニングアニメーションのせいで飛び越えられるノードに通知を送ることを回避させることができる。
ノード監視アルゴリズムの動作をさらによく理解できるように、図12(a)、12(b)、13(a)、および13(b)を参照しつつ一実施例について説明することにする。図12(a)および12(b)は、2つの異なる倍率レベルのズーミング可能GUIの一部を示している。図12(a)の低い倍率レベルでは、円、三角形、および楕円形の3つのノードが見える。図12(b)では、ビューは、楕円および円が部分的にしか見えず、三角形は、ビューから完全に外れているほどズームインされている。これらのノードは、例えば、効率的なイベント通知に依存し、したがって、本発明の例示的な実施形態によりノード監視アルゴリズムにより追跡されるアプリケーションまたはユーザインターフェイスコンポーネントを表すことができる。この実施例では、それぞれのノードに対する有界な四角形は、図12(a)および12(b)に明示されているが、当業者であれば、有界な四角形は、典型的に、GUI上には表示されないことを理解するであろう。それぞれの有界な四角形のそれぞれの辺は、図12(a)および12(b)においてラベルが付けられており、これらのラベルは、有界な四角形の辺と上述の遷移ブロックデータ構造体との間の対応関係を示すために使用される。
図13(a)は、図12(a)のズームアウトされたビューの水平次元に対する例示的なノード監視データ構造体を示している。そこでは、ノードの有界な四角形のそれぞれの辺は、遷移ブロックを使用して表される。水平遷移ブロックは、GUI画面上で左から右に現れる順序で図13(a)に示されている。例えば、円の左辺CLeftが、最初に来て、次いで、三角形の左辺TLeftが続き、というように、楕円の右辺ERightが来るまで続く。リストの両端には、空のセンチネル遷移ブロックがマークとして置かれる。また、図13(a)に示されているのは、それぞれのノードに対する領域ブロックと有界な四角形の水平遷移ブロックへの対応するポインタである。図13(a)の底部には、現在のビューからちょうど外れている遷移ブロックへのポインタを含むビュー境界データ構造体がある。ズームアウトされたビューの場合、すべてのノードは、完全に見えており、したがって、遷移ブロックはすべて、ビュー境界データ構造体により指されている遷移ブロックの間にある。
図13(b)は、図12(b)のズームインされたビューに対するノード監視データ構造体を示している。そこで、データ構造体のビュー境界部分は、三角形の右辺TRightおよび楕円の右辺ERightに対する遷移ブロックを指すように変化していることがわかるが、それは、これら有界な四角形の2辺が現在の(ズームインされた)ビューをちょうど外れているためである。
これらの例示的なデータ構造体およびGUIシーンが与えられると、ズーム遷移が発生している間のノード監視アルゴリズム内の関連する処理は、以下のように説明することができる。ノード監視アルゴリズムは、ビューの左辺から始めて、左辺にあるビューをちょうど外れている遷移ブロックに到達するまでビュー左辺ポインタを右に移動する。図13(b)に示されているように、ビュー左辺ポインタは、最初に、CLeft遷移ブロックを受け渡す。この実施例の場合、円ノードは、ビュー内で全部は見えないときに通知を必要とするズーミング可能GUIに関連するアプリケーションまたは他のユーザインターフェイスオブジェクトを表すものと仮定している。ノード監視アルゴリズムにこれらの入力を与えた場合に、表1は、円ノードが水平次元に対する出通知を受け取ることを示している。もちろん、ノード監視アルゴリズムは、典型的には、すべての次元から通知を集めてから、冗長な出通知を送ることを回避するようノードに通知する。次に、ビュー左辺ポインタは、三角形の左辺TLeftを受け渡す。三角形ノードがそのビューを完全に出るときについて通知を要求した場合、ノード監視アルゴリズムは、表1に関して、通知が必要ないことを指示する。しかし、ビューポインタがTRightを受け渡す場合、表1は、三角形がそのビュー全体から出ており、通知されなければならないことを示している。ビューポインタは、円の有界な四角形の右辺CRightがまだビュー内に見えているため、ここで停止する。
右辺からのノード監視アルゴリズムの処理も類似している。ビュー右辺ポインタは、楕円の右辺Erightの左に移動する。楕円が完全または部分的通知を要求しているかどうかに応じて、ノード監視アルゴリズムは、表1に従って、通知を楕円に送ることも送らないこともある。垂直次元は、類似のデータ構造体および上および下境界四角形値を使用して類似の方法で処理することができる。当業者であれば、さらに、より正確な通知が必要な場合に複数の境界四角形を使用することで非四角形ノードを近似することができることも理解するであろう。さらに、本発明では、ノード監視アルゴリズムにより、他の次元、例えば第3の幾何学的(深さまたはスケール)次元、さらには時間、コンテンツ格付け(アダルト、PG-13など)およびコンテンツタイプ(ドラマ、コメディーなど)の非幾何学的次元を通る移動を追跡し処理することができることも考察している。アルゴリズムは、使用している次元の数に応じて、より正確に、境界セグメント、四角形、およびn次元超立方体の交差点を検出する。
上述のノード監視アルゴリズムに加えて、本発明の例示的な実施形態では、本発明の例示的な実施形態によるズーミング可能GUIにおいて使用することができる解像度整合性のある意味論的ズーミングアルゴリズムを実現する。意味論的ズーミングとは、ズーミング可能GUI内のコンポーネントの詳細を、そのコンポーネントの倍率レベルに応じて、追加、削除、または変更することである。例えば、後述の映画ブラウザインターフェイスでは、ユーザが映画の画像に十分近くズームした場合に、これは、映画メタデータおよび再生コントロールを表示するように変化する。倍率レベルの計算は、表示デバイス上でコンポーネントが使用するピクセルの個数に基づく。ズーミング可能GUIは、例えば映画メタデータおよび再生コントロールがないビューから映画メタデータおよび再生コントロールがあるビューへの切り替えが生じるべきときにそのことを示す閾値倍率レベルを格納することができる。
テレビジョンおよびコンピュータディスプレイは、広範囲にわたる表示解像度を有する。モニタによっては高解像度過ぎて、低解像度ディスプレイだと読み取り可能なグラフィックスおよびテキストが小さくて全く読み取ることができないものもある。さらに、このことは、意味論的ズーミングを、特にHDTVなどの高解像度ディスプレイ上で使用するアプリケーションにとって問題になる。このような環境では、表示されるピクセルの個数に基づいてレンダリングする意味論的ズーミングコードは、より詳細なビューが読み取り可能になる前に画像を変更する。意味論的ズーミングがコンポーネントビューを変更させる閾値をプログラムにより修正する操作は、1つの解像度についてしか働かない。
望ましい結果は、意味論的ズーミングは、すべてのモニタ解像度にわたって矛盾なく実行されることである。1つの解決策では、高解像度モニタで低解像度表示モードを使用し、解像度がすべての表示で同じになるようにすることである。しかし、高解像度モニタのユーザは、意味論的ズーミングが期待通りまだ働く場合にその最良の解像度でグラフィックスがレンダリングされるのを好む。したがって、本発明の例示的な実施形態では、すでに説明されている意味論的ビューに関する問題を引き起こすことなく異なるすべての解像度の表示をサポートする意味論的ズーミング技術を実現する。これは、例えば、シーングラフの内側に仮想ディスプレイを作成することにより達成できる。これは、埋め込まれた仮想カメラノード1200を使用し、表示解像度を補正するロジックを追加することにより図14に示されている。仮想カメラノード1200は、サイズがユーザの視野距離およびモニタサイズにマップされるビューポートを定義する。例えば、大きな仮想カメラビューポートは、ユーザがモニタに十分近い位置に座っているか、または多くの細部を再現できる十分に大きな解像度のモニタを有することを示す。それとは別に、小さなビューポートは、ユーザが、モニタから離れており、より大きなフォントおよび画像を必要とすることを示す。ズーミング可能GUIコードでは、ユーザの好ましい視聴条件を使用し、意味論的ズーミング遷移のベースをこの仮想カメラで見えるコンポーネントの倍率レベルに置くことができる。
表示デバイス1204にアタッチされている主カメラノード1202は、仮想カメラ1200が示すすべてを表示するように構成されたビューポートを有する。グラフィックス画像およびテキストは、この主カメラ1202までピクセルにマッピングされないため、仮想カメラで品質が喪失は生じない。これの結果、高解像度モニタは、より高い画質の画像を表示し、表示を読み取りにくくする意味論的ズーミング変化をトリガしない。
本発明の例示的な一実施形態によれば、このプロセスは、以下のように進む。シーングラフ内のそれぞれのカメラおよびノードは、関連する変換行列(T1からTn)を有する。これらの行列は、そのノードの局所座標系を表示に向かう次のノードの局所座標系に変換する。図では、T1は、座標をそのビューポートから表示座標に変換する。同様に、T2は、その局所座標系をカメラのビューポートに変換する。葉ノード1206がディスプレイ上に何かをレンダリングする必要がある場合、変換行列
A=T1T2...Tn
を計算する。
この計算は、シーングラフを横断している最中に実行することができる。意味論的ズーミングをサポートするように行うコンポーネント変更は、仮想カメラ1200に基づいているため、
B=T4T5...Tn
の計算が実行される。
典型的には、T1からT3は、モニタの解像度を問い合わせてシーングラフを検査することにより前もって決定することができる。したがってAからBを決定することは、これらの行列の逆行列を求め、
B=(T1T2T3)-1A
のように乗算することにより行える。
前もってT1からT3を計算すると問題のある場合、例えば、グラフィックスAPIが追加の変換を隠す場合については、ディスプレイにレンダリングするために使用するはずだった変換行列をインターセプトするロジックを仮想カメラに追加することができる。次いで、このインターセプトされた変換は、意味論的ズーミング閾値を計算するため上述のように逆変換され乗算される。
本発明の例示的な実施形態によるズーミング可能インターフェイスの強みの1つは、インターフェイスをナビゲートしている間にコンテキストを保持することができるという点である。インターフェイスコンポーネントはすべて、ズーミング可能なワールド内に存在するように見え、ユーザは、それらのどれかに到達するために、ただパニングとズーミングを行うだけでよい。上述の意味論的ズーミング技術は、ズームまたは倍率レベルに応じてコンポーネントの外観を変更する。図15(a)および15(b)は、コンポーネントのズームアウトバージョン(図15(a))が写真であり、ズームインバージョン(図15(b))がその同じ写真とともにいくつかのコントロールおよび細部を含むコンポーネントの意味論的ズーミングの一実施例を示している。このいくつかのより詳細な実施例を以下に示す。意味論的ズーミングに関連する難題の1つは、ビュー間の変化は、いきなり発生することがあり、アルファブレンドなどの遷移技術では、2つのこのようなビューの間で遷移が生じたときに視覚的に満足のゆく結果が得られない。
したがって、本発明の例示的な実施形態は、コンポーネントのすべてのビュー内にいくつかの共通画像またはテキストを用意し、意味論ズーミングが実行されたときに遷移効果用の焦点を与える。例えば、図15(a)および15(b)では、共通要素は写真である。ズームアウトバージョンとズームインバージョンとの間の遷移効果は、例えば、上述のノード監視アルゴリズムを以下のように使用することでトリガすることができる。最初に、ノード監視機能への登録を実行し、主カメラのビューポートがコンポーネントのズームアウトバージョンの倍率レベルからズームインバージョンの倍率レベルに遷移する場合のイベントを受け取るようにできる。次いで、イベントが発生したら、ズームアウトバージョンにおけるそれらの位置からズームインバージョンにおけるそれらの位置に縮小し、平行移動する(複数の)共通要素を示すアニメーションを表示することができる。その一方で、カメラのビューポートは、そのコンポーネント内にズームインし続ける。
本発明によるグラフィカルユーザインターフェイスのこれらの機能は、図16〜20に関して後述する他の例示的な実施形態を検討すればなおいっそう明らかになるであろう。そこでは、起動GUI画面1400には、メディアグループ表現として動作する複数の編成オブジェクトが表示される。ホームビデオ、映画、TV、スポーツ、ラジオ、音楽、およびニュースの純粋に例示的なメディアグループ表現は、もちろん、多いまたは少ない異なるメディアグループ表現を含むこともありえる。ユーザによりこれらのアイコンの1つが作動すると、次いで、この例示的な実施形態によるGUIは、それぞれ特定のカテゴリまたはジャンルにグループ化された複数の画像を表示する。例えば、図16の「映画」アイコンがユーザにより作動された場合、図17のGUI画面が表示されることができる。そこでは、多数の、例えば120またはそれ以上の、選択オブジェクトが表示される。これらの選択オブジェクトは、(複数の)特定のグループ、例えば、アクション、クラシック、コメディー、ドラマ、ファミリ、およびニューリリースに分類することができる。当業者であれば、提供するカテゴリを増減することが可能であることを理解するであろう。この例示的な実施形態では、メディアアイテムイメージは、それぞれの映画選択に関連付けられているカバーアートとすることができる。図17のブロックのサイズが小さすぎて選択アイテム画像のこの比較的大きなグループを詳細に示すことができないが、実装では、画像の倍率のレベルは、テキストの一部または全部が小さすぎて容易に読み取れない場合でも、関連する画像により映画が識別できる程度である。
次いで、カーソル(図17に示されていない)を映画画像のグループ上に置き、入力デバイスを作動させてそれらのグループのうちの1つに対する選択指示を出すことができる。この実施例では、ユーザは、ドラマグループを選択し、次いで、グラフィカルユーザインターフェイスが図18に示されているように画像のドラマグループのズームバージョンを表示する。前の実施形態と同様に、遷移効果は、さらに、図17のGUI画面から図18のGUI画面へのGUIシフトとして表示することもでき、例えば、GUIで、ズームの最中またはズームの前に図17のGUI画面の中心から画像のドラマグループの中心までビューをパニングできる。図18のドラマグループのズームバージョンは、ドラマグループ内の全個数の画像のサブセットしか表示しないが、このズームバージョンは、代わりに、選択されたグループ内の画像のすべてのを含むことができることに留意されたい。GUI画面の与えられたズームインバージョンにおける選択されたグループ内のイメージすべてを表示するかどうかの選択は、例えば、グループ内のメディアアイテムの個数および特定のズームレベルに対するメディアアイテムの最低の所望の倍率レベルに基づくようにできる。本発明によるGUIのこの後者の特性は、システム設計者/サービスプロバイダにより予め決定することができるか、またはGUIのソフトウェア設定を介してユーザカスタマイズ可能なものとすることができる。例えば、グループ内のメディアアイテムの個数および最小および/または最大倍率レベルは、サービスプロバイダまたはエンドユーザのいずれかまたは両方により構成可能なものとすることができる。このような機能により、例えば、視力の弱いユーザは、表示されているメディアアイテムの倍率レベルを上げることができる。逆に、特に視力のよいユーザは、倍率のレベルを下げて、これにより、一度にGUI画面に表示されるメディアアイテムの個数を増やし、ブラウズ時間を短縮することができる。
本発明によるグラフィカルユーザインターフェイスで使用することができる例示的な一遷移効果は、本明細書では、「shoe-to-detail」ビュー効果と呼ばれる。作動すると、この遷移効果は、ズームアウト画像を取り出し、同時に、ズームアウト画像を縮小して、より小さなビュー、つまり次に高いレベルの倍率に変換する。図17のGUI画面で使用される倍率レベルから図18のGUI画面で使用されるより大きな倍率への遷移があると、図18のズームインバージョンで表示されている画像についてGUIにより付加的細部が露わにされる。GUIは、それらの細部が現在選択されているズームレベルでうまく表示されるかどうかに基づいてズームレベル毎に細部を選択的に露わにするか、または隠す。肉眼に見えるかどうかに関係なく細部を解像しようとする、カメラズームとは異なり、本発明の例示的な実施形態では、全画像を表示するときから差し控えられている細部を持つ画像のバージョンを表示するときまでの遷移点を指定する構成可能なズームレベルパラメータを備えている。遷移点は、画像の内部解像度独立の表示、むしろ、TV/モニタ212の解像度に基づきうる。この方法で、本発明によるGUIは、メディアシステムで使用されている表示デバイスの解像度に関係なく一貫している。
この例示的な実施形態では、特定の画像に対する倍率の付加的量は、カーソルを特定の画像の上に通すことにより与えることができる。この特徴は、図19で見ることができ、そこでは、カーソルは映画「Apollo 13」の画像上に移動し重なっている。図19には示されていないが、例えば、このような付加的な倍率により、倍率の低いレベルにある図18のGUI画面内の対応する画像と比較して関連するメディアアイテムのカバーアート上に現れる「Houston, we have a problem」という引用をより読みやすくすることが可能である。例えば、入力デバイス上のボタンを押すことにより、この画像をユーザ選択すると、ズームがさらに行われ、図20に示されている細部が表示されるようにできる。これは、すでに説明されているように、意味論的ズーミングのもう1つの実施例となっているが、それは、さまざまな情報およびコントロール要素が図20のGUI画面に存在しているためであり、これらは図19のGUI画面では利用できなかったのである。例えば、とりわけ、映画の上映時間、価格、および俳優情報を含む、映画「Apollo 13」に関する情報が表示される。当業者であれば、他の種類の情報もここに表示できることを理解するであろう。さらに、このGUI画面は、例えば、映画を購入する、次回予告を見る、または前のGUI画面に戻るためのボタンコントロールオブジェクトを含むGUIコントロールオブジェクトを含む(これは入力デバイス上のZOOM OUTボタンを押すことにより遂行することも可能である)。また、ハイパーリンクを使用することにより、ユーザは、例えば、図20のGUI画面の右下コーナに示されている関係する映画に関連するGUI画面、またはこの映画の俳優に関連する情報へジャンプすることもできる。この実施例では、「映画関係文献」という見出しの下にある映画タイトルの一部または全部を、入力デバイスを介してユーザにより作動されたときに、指示されている映画に関して図20の画面に対応するGUI画面をGUIに表示させるハイパーリンクとして実装することができる。
遷移効果は、さらに、ユーザがハイパーリングを作動させたときに使用することもできる。ハイパーリングは、非常に高い倍率レベルで生成することができるため、リンクされているメディアアイテムに単にジャンプするだけでは、ユーザは、メディアアイテム選択「地図」内の自分の場所を見失う可能性がある。したがって、本発明の例示的な実施形態では、遷移効果を実現して、ハイパーリンクが作動されたときに地理的位置に対するユーザの感覚を保持するのを補助する。この目的のために使用することができる例示的な一遷移効果は、ホップ遷移である。遷移効果の初期段階では、GUIは、ハイパーリンクによりポイントされているアイテムの方向にズームアウトし、パニングする。ズームアウトおよびパニングは、目的画像および開始画像が両方ともユーザにより視聴可能になるまで継続する。図20の実施例をもう一度使用すると、ユーザが「Saving Private Ryan」に対するハイパーリンクを選択した場合、ハイパーリンクホップ効果の第1の段階は、「Saving Private Ryan」および「Apollo 13」の画像が両方とも、ユーザに見えるようになるまで「Saving Private Ryan」の画像へズームアウトおよびパニングをすることを含む。この時点で、遷移効果は、目的画像に向かって弧状に上へ移動している視覚的印象をユーザに与えている。目的画像が視野に入ると、遷移効果の第2の段階で、円弧の他方の半分、目的画像にズームインおよびパニングする視覚的印象をユーザに与える。ホップ時間、つまり、この遷移効果の段階1および2の両方が表示される時間量は、2つのハイパーリンクされた画像アイテムの間にあるものとして固定することができる。それとは別に、ホップ時間は、例えば、GUI上で移動する距離に基づいて変化しうる。例えば、ホップ時間は、HopTime=A log(ズームインされたスケールレベル/ホップ頂点スケールレベル)+B(ハイパーリンクされたメディアアイテムの間の距離)+Cとパラメータ化することができ、ただし、A、B、およびCは、適当に選択された定数値である。
図9〜13(b)に関して上で説明されているノード監視アルゴリズムも、図19の例示的なGUI画面に示されているズームレベルと図20の例示的なGUI画面との間の遷移を補助するために使用することができる。選択された画像の他のズームレベルバージョンでは見えないテキストおよび/またはコントロール要素を含むGUI画面のレンダリングは、低倍率レベルの画像に比べて大きな計算量および/メモリ容量を必要とする場合がある。したがって、ノード監視アルゴリズムは、本発明の例示的な実施形態では、ズームインされる特定のメディアアイテムをより迅速に識別するためにGUIのナビゲーションコードを監視することにより図20に示されているようなGUI画面のプリロードを補助することができる。
本発明の例示的な実装に含まれているのは、画面位置および意味論ベースのナビゲーションコントロールである。これらのコントロール領域は、ユーザがカーソルを、図21に示されているようにそれらのコントロールが適切である画面上のコントロールに関連付けられた領域の近く、またはその中に位置決めすると現れる。例えば、映画を再生する場合、早送り、巻き戻し、一時停止、停止、などのいわゆるトリック機能は、意味論的に適切である。この例示的な実施形態では、それらの機能に割り当てられた画面領域は、右下コーナであり、カーソルがその領域の近く、または中に置かれると、それらのトリック機能に対するアイコンの集合が現れる。次いで、これらのアイコンは、関与する機能が明確に完了したか、カーソルが画面上のどこか別のところに再配置されると消える。また、同じ技術を使用して、テキスト検索およびホーム画面選択などの他のナビゲーション機能に対応することができる。この例示的な実装では、これらのコントロールは、すべての画面上で意味論的に関係しており、それらに割り当てられた領域は、右上コーナである。カーソルがその領域の近く、または中に置かれると、これらのナビゲーションコントロールに対するアイコン集合が現れる。次いで、これらのアイコンは、この機能がアクティブ化されるか、カーソルが画面上のどこか別のところに再配置されると消える。ユーザが学習できるように、関連するコントロールアイコンを、最初に、関連する画面の一部または全部に短時間(例えば、5秒間)、適宜現れるようにし、不慣れなユーザにその存在を知らせることができることに留意されたい。
本発明によるズーミング可能なグラフィカルユーザインターフェイスのいくつかの実施例を取り上げて、このようなインターフェイスを使用する例示的なフレームワークおよびインフラストラクチャについて説明することにする。図22は、さまざまな高レベルアプリケーション1900、例えば、映画、テレビジョン、音楽、ラジオ、およびスポーツに関連するズーミング可能なインターフェイスがプリミティブ1902(図の中では、「原子」と呼ばれる)によりサポートされるフレームワーク図を示している。この例示的な実施形態では、プリミティブ1902は、POINT、CLICK、ZOOM、HOVER、およびSCROLLを含むが、当業者であれば、他のプリミティブ、例えば、PANおよびDRAGをこのグループに含めることができることを理解するであろう。上述のように、POINTおよびCLICKプリミティブは、カーソル位置を決定し、例えばユーザがハンドヘルド入力デバイス上のZOOM INまたはZOOM OUTボタンを作動させたときのイベントをトリガするように動作する。これらのプリミティブは、ナビゲーションを簡素化し、上-下-右-左のボタンの繰り返しアクションを不要にする。上に示されているように、ZOOMプリミティブは、可能な選択の概要を与え、ユーザに自分の選択を絞り込むときのコンテキストを与える。この概念により、インターフェイスは、多数のメディア選択および任意の表示サイズに合わせてスケーリングすることができる。SCROLLプリミティブでは、例示的なハンドヘルド入力デバイス上のスクロールホイール入力デバイスからの入力を処理し、例えば、直線的メニューナビゲーションを高速化するために使用することができる。HOVERプリミティブは、ポインタの下にある選択部分を動的に拡大し(および/または選択部分の内容を変更し)、これによりユーザはコミットなしで潜在的選択項目をブラウズすることができる。前述のプリミティブの動作はそれぞれ、多数の異なる方法で本発明によりGUIにおいて作動させることができる。例えば、POINT、CLICK、HOVER、SCROLL、およびZOOMはそれぞれ、ユーザによって実行されうる異なる身振りに関連付けることができる。この身振りは、自由空間ポインタであろうと、トラックボールであろうと、タッチパッドであろうと、入力デバイスを介してシステムに伝達することができ、また適切なプリミティブの作動に翻訳することができる。同様に、プリミティブのそれぞれを、それぞれの音声コマンドに関連付けることができる。
低レベルプリミティブ1902と高レベルアプリケーション1900との間に、本発明によるズーミング可能GUIに関連付けられた画像を生成することに関わるさまざまなソフトウェアおよびハードウェアインフラストラクチャ1904がある。図22に示されているように、このようなインフラストラクチャ1904は、ハンドヘルド入力デバイス/ポインタ、アプリケーションプログラムインターフェイス(API)、ズーミング可能GUI画面、開発者ツールなどを含むことができる。
前述の例示的な実施形態は、純粋に例示することを目的としている。ズームレベルの数とともに、それぞれのレベルでユーザに与えられる特定の情報およびコントロールは変えることができる。当業者であれば、本発明は、ユーザが映画および音楽などのメディアアイテムを容易に検索し、ブラウズし、編成し、再生することができるようにズーミング可能なインターフェイスを使用してメディアアイテムの大きな集合および小さな集合を提示する画期的技術をもたらすことを理解するであろう。本発明によるグラフィカルユーザインターフェイスでは、類似の選択が1つにまとめられるように仮想表面上にメディアアイテム選択を編成する。最初に、このインターフェイスは、表面のズームアウトビューを提示し、ほとんどの場合、実際の選択は、このレベルでは見えず、むしろ、そのグループ名のみが見える。ユーザが徐々にズームインしてゆくと、メディアアイテムグループまたは選択に関するさらに詳しい内容が露わになる。それぞれのズームレベルで、ユーザが選択のグループ、個別の選択を行うか、または仮想表面の他の部分に進み、他の関係するメディアアイテムをブラウズすることができるように異なる複数のコントロールが用意される。本発明の例示的な実施形態によるグラフィカルユーザインターフェイスのズーミングは、任意の深さまで入れ子にされた画像のカテゴリだけでなくカテゴリのカテゴリをも含むことができる。メディアアイテムは、局所的に格納されているか、放送事業者により放送されるか、コンテンツプロバイダからの直接接続を介して受信されるか、またはピア接続に基づくコンテンツを含むことができる。メディアアイテムは、日時情報がGUIのあるレベルで与えられるスケジューリングフォーマットで提供することができる。さらに、本発明の例示的な実施形態によるフレームワークおよびGUIは、選択対象のアイテムがユーザに販売されるテレビジョン商取引にも適用することもできる。
分散ソフトウェア構成
上述のGUI画面とともにそのようなシステムに関連する他のユーザインターフェイス機能を生成するために使用することができるソフトウェアを開発するさまざまな方法が多数ある。本発明の例示的な実施形態は、リッチズーミング可能ユーザインターフェイス(ZUI)をZUIの実装および維持に関連する複雑さを低減しつつレンダリングする環境を備える。「シーン」および「ブリック」という用語は、本発明の例示的な実施形態によるZUI構成について説明する際に以下で使用される。シーンとは、ナビゲーションが変わる毎にユーザが利用できるZUIコンポーネントの集合体のことである。ブリックとは、パッケージングされたZUIコンポーネント、例えば、ボタンまたは画像を表示する(およびそれに関連する機能を処理する)ために使用されるような単純なソフトウェアパッケージ、またはより複雑なものとして、シーンまたはシーンの集合を生成するために使用されるソフトウェアパッケージのことである。
図23は、シーンまたはブリックの設計からそのシーンのレンダリングまたは編集までの例示的なデータフローを示している。そこでは、UI設計ツール2000は、ブリックまたはシーンを構成するためのビジュアルプログラミング環境を備え、その実施例を以下で取り上げる。典型的には、アーティストまたはアプリケーション開発者は、UI設計ツール2000を使用し、ブリック2002またはシーン2004のいずれかを保存する。ブリック2002およびシーン2004は、ブリックライブラリ2006に格納されている通常使用されるUIコンポーネントまたはビットマップ化されたアートワーク、例えば、ユーザインターフェイス内に表示される選択可能メディアアイテムとして上で説明されているムービーカバーなどのマルチメディアリソース2008を参照することができる。この例示的なフレームワーク内で、シーンローダ2010(またはツールキットバックエンド)は、シーンファイルまたはバイトストリームを読み込み、任意の参照されているブリック2002またはマルチメディアリソース2008内で動的にリンクする。この結果、例えば、TV画面上にユーザインターフェイスを生成する際に処理するZSDコンパイラ2012またはローカルシーンレンダラ2014のいずれかに対するシーングラフが構成される。
本発明の例示的な実施形態によれば、ブリックおよびシーンは、スケーラブルベクトルグラフィックス(SVG)として知られるプログラミング言語を使用して生成することができる。SVGは、拡張マークアップ言語(XML)で二次元グラフィックスを記述する際に使用するように設計された言語である。SVGは、W3C Recommendationにより2003年1月14日に発布された「Scalable Vector Graphics (SVG) 1.1 Specification」で規定されており、これは、http://www.w3.org/TR/2003/REC-SVG11-20030114/に掲載されており、その開示は参照により本明細書に組み込まれている。とりわけ、SVGは、ベクトルグラフィック形状(例えば、直線と曲線からなる経路)、画像、およびテキストの3種類のグラフィックオブジェクトを定めている。グラフィックオブジェクトは、グループ化し、スタイル化し、変換し、すでにレンダリングされているオブジェクト内に組み込むことができる。機能集合には、入れ子になった変換、クリッピング経路、アルファマスク、フィルタ効果、およびテンプレートオブジェクトが含まれる。SVGで利用可能な機能の多くは、上述のようなユーザインターフェイスを作成するためのブリックおよびシーンを生成するのに使用することができる。しかし、ブリック構成体を含む、ある種のZUI機能を提供するために本発明の例示的な実施形態により、SVG言語の拡張が開発されている。
より具体的には、シーンおよびブリック記述は、ECMAScript言語(JavaScript(登録商標)の標準化バージョン)を使用するスクリプティングをサポートする。スクリプティングは、機能の中でもとりわけ、シーン間ナビゲーション、アニメーション、データベースクエリ、およびメディアコントロールをシーンおよびブリック機能に追加する。スクリプティングサポートの一コンポーネントは、この機能を実現するために使用されるアプリケーションプログラミングインターフェイス(API)である。このAPIは、本明細書では、ZUIオブジェクトモデル(ZOM)と呼ばれ、ZOMのいくつかの態様について以下で説明する。本発明の例示的な実施形態によりZOMを実装する一態様は、SVG言語において規定されている要素と属性の両方への拡張を含むようにSVGプログラミング言語を拡張することを伴い、そのいくつかの実施例は、ブリックおよびシーンに関連する機能について以下で取り上げる。そこでは、「zui:name」という形態で示される要素名または属性名により、SVGの要素または属性拡張を識別する。
<zui:brick>
zui:brickタグは、他のZML/SVGファイルをシーン内の指定された位置に挿入する。新しい変数コンテキストが、ブリックについて作成され、ユーザは、子zui:variableタグを使用してシーン内に変数を渡すことができる。本発明の例示的な実施形態による修正されたSVGのこの機能は、ズーミング可能なユーザインターフェイスにおいて複数のシーンにまたがって使用可能な(カスケードの)パラメータ化されたグラフィックの性質で特徴付けられるズーミング可能なインターフェイスにおいて使用する柔軟なプログラミング要素を実現する。ブリック実装の詳細な実施例は、図24〜26および対応するソフトウェアコードを参照しつつ以下に示されている。
Figure 2008527540
<zui:scene>
SVGへのこの拡張は、システム側でシーンを現在のシーンの子として配置すべきであることを指定するために使用される。
Figure 2008527540
<zui:scene-swap>
SVGへのこの拡張は、シーン遷移に対するシーンスワップ遷移効果をセットアップする。
Figure 2008527540
<zui:variable>
SVGへのこの拡張は、現在のスコープ内の指定変数を指定値に設定する。変数スコープは、zui:sceneおよびzui:brickタグにより自動的に作成される。
Figure 2008527540
例えば、テレビジョン用のズーミング可能なユーザインターフェイスを生成する際に特に有用なプログラミング構成体を実現するためにSVGへの先に説明された拡張を使用することは、図24〜26に関して以下で示される純粋に例示を目的とした実施例を考察することによりさらによく理解されるであろう。図24は、音楽選択に関連する例示的なユーザインターフェイスの第1のズーミング可能な表示レベルを示している。そこでは、GUI画面に、6つのグループ(音楽棚)が表示され、それぞれのグループは、カテゴリ別にグループ化された25個の選択可能音楽アイテムを含む(5×5音楽カバーアート画像)。それぞれのグループは、タイトルホバー効果を含むブリックとして実装され、例えば、図24に示されているように、ユーザのカーソル(図に示されていない)は、「Rock & Pop」というタイトルのグループ上に置かれ、そのグループのタイトルとそのグループの要素が、GUI画面上に示されている他の5つのグループに関してわずかに拡大して表示される。このGUI画面を生成するために、このブリックに関連付けられたソフトウェアコードは、以下の例示的なソフトウェアコードの強調表示された部分により例示されているように、タイトル別に並べ替えられたRockのジャンルを持つユーザの音楽コレクションへのクエリである「music」という名前の変数を渡される。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg height="720" id="svg" onload="music_shelf_system_onload(evt)" width="1280" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:zi="http://ns.hcrest.com/ZUIIllustratorExtensions/1.0" xmlns:zui="http://ns.hcrest.com/ZUIExtensions/1.0" zui:top="true">
<script language="javascript" xlink:href="./music_shelf.js"/>
<g id="bkgd">
<image height="720" id="musicbkgd" preserveAspectRatio="xMidYMid meet" transform="matrix (1.000, 0.000, 0.000, 1.000, 1, 0 ) " width="1280" xlink:href="../background/hdtv/music_hdtv.png" zui:layer="background"/>
<text fill="#ffffff" font-family="HelveticaNeue LT 87 Heavy Condensed" font-size="38" id="glob_121" transform="matrix (0.984, 0.000, 0.000, 1.000, 16, 0 )" x="1020" y="103">
<![CDATA [AIl Music]]>
</text>
<zui:brick height="306" id="svg_123" transform="matrix(0.660 ,0.000 ,0.000 ,0.669 ,245 ,129) " width="262" xlink:href="./brick_shelf.svg" zi:cursorControl="true">
<zui:variable id="var_0" name="music" value="com.hcrest.music.mds:albums (genres contains 'Rock &amp; Pop' , @sort= 'title')"/>
</zui:brick>
<zui:brick height="306" id="glob_124" transform="matrix(0.660, 0.000, 0.000, 0.669, 522, 129)" width="262" xlink:href="./brick_shelf.svg">
<zui:variable id="var_26" name="music" value="com.hcrest.music.mds:albums(genres contains 'Jazz Vocal' , @sort='title')"/>
</zui:brick>
<zui:brick height="306" id="glob_170" transform="matrix(0.660, 0.000, 0.000, 0.669, 245, 391 ) " width="262" xlink:href="./brick_shelf.svg">
<zui:variable id="var_78" name="music" value="com.hcrest.music.mds:albums(genres contains 'International', @sort='title')"/>
</zui:brick>
<zui:brick height="306" id="glob_169" transform="matrix(0.660, 0.000, 0.000, 0.669, 522, 391)" width="262" xlink:href="./brick_shelf.svg">
<zui:variable id="var_104" name="music" value="com.hcrest.music.mds:albums(genres contains 'Blues' ,@sort='title’)"/>
</zui:brick>
<zui:brick height="306" id="glob_168" transform="matrix(0.660, 0.000, 0.000, 0.669, 799, 391)" width="262" xlink:href="./brick_shelf.svg">
<zui:variable id="var_130" name="music" value="com.hcrest.music.mds:albums (genres contains 'Country', @sort='title')"/>
</zui:brick>
<zui:brick height="365" id="svg_0" transform="matrix(0.660, 0.000, 0.000, 0.660, 799, 127)" width="350" xlink:href="../brick_shelf_soundtrackv2.svg">
<zui:variable id="var_51" name="music" value="com.hcrest.music.mds:albums(genres contains 'Soundtracks', @sort='title')"/>
</zui:brick>
</g>
<g id="Layer_3">
<zui:brick height="720" id="playlistBrick" transform="matrix(1.000, 0.000, 0.000 ,1.000, 0, -56)" width="1280" xlink:href="../playlistBrick/playlist_brick.svg" zui:layer="playlistOverlay">
<zui:variable id="var_156" name="playlistGroup" value="'music'"/>
<zui:variable id="var_157" name="playlistType" value="'music'"/>
<zui:variable id="var_158" name="cover_art_field" value="'album.image.uri'"/>
<zui:variable id="var_159" name="title_field" value="'title'"/>
<zui:variable id="var_160" name="watch_uri_field" value="'uri'"/>
</zui:brick>
<g id="screw_you_button_6_state_andjoe">
<g id="new_slideshow">
<image height="67" id="new_slideshow_on" preserveAspectRatio="xMidYMid meet" transform="matrix(0.342, 0.000, 0.000, 1.221, 1071, 376)" width="257" xlink:href="../playlistBrick/images/create_playlist_normal_over.png"/>
<image height="65" id="new_slideshow_off" preserveAspectRatio="xMidYMid meet" transform="matrix(0.342, 0.000, 0.000, 1.221, 1071, 377)" width="257" xlink:href="../playlistBrick/images/create_playlist_normal.png"/>
</g>
</g>
<g id="createplaylist" zi:p6Base="createplaylist-off" zi:p6Down="createplaylist-down" zi:p6Label="true" zi:p60ver="createplaylist-over" zi:p6Sel="createplaylist-sel" zi:p6SelDown="createplaylist-sel_down" zi:p6SelOver="createplaylist-sel_over">
<image height="226" id="createplaylist-sel_down" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463)" visibility="hidden" width="124" xlink:href="./images/createplaylist-over.png"/>
<image height="226" id="createplaylist-sel_over" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463)" visibility="hidden" width="124" xlink:href="./images/createplaylist-over.png"/>
<image height="226" id="createplaylist-sel" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463) " visibility="hidden" width="124" xlink:href="./images/createplaylist-off.png"/>
<image height="226" id="createplaylist-down" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463)" visibility="hidden" width="124" xlink:href="./images/createplaylist-over.png"/>
<image height="226" id="createplaylist-over" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463)" visibility="hidden" width="124" xlink:href="./images/createplaylist-over.png" />
<image height="226" id="createplaylist-off" preserveAspectRatio="xMidYMid meet" transform="matrix(0.734, 0.000, 0.000, 0.734, 1081, 463)" width="124" xlink:href="./images/createplaylist-off.png"/>
</g>
</g>
</svg>
それぞれのグループ内のそれぞれの要素(カバーアート画像)は、さらに、本発明の例示的な実施形態によるブリックとしてコーディングされる。そのため、図25に示されているように、ユーザが「Rock&Pop」グループ内の25個の要素のうちの1つの上でカーソルを一時停止すると、その要素(この実施例では、アルバムカバー「Parachutes」の画像)が拡大される。このGUI画面を実装するための例示的なブリックコードを以下に示す。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg height="365" onload="brick_shelf_system_onload(evt)" width="350" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:zi="http://ns.hcrest.com/ZUIIllustratorExtensions/1.0" xmlns:zui="http://ns.hcrest.com/ZUIExtensions/1.0">
<script language="javascript" xlink:href="./brick_shelf.js"/>
<g id="Layer_l">
<zui:brick height="46" id="svg24" transform="matrix(1.305, 0.000, 0.000, 1.239, 277, 290)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_0" name="this" value="music[24]"/>
</zui:brick>
<zui:brick height="46" id="svg23" transform="matrix(1.305, 0.000, 0.000, 1.239, 210, 290)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_l" name="this" value="music[23]"/>
</zui:brick>
<zui:brick height="46" id="svg22" transform="matrix(1.305, 0.000, 0.000, 1.239, 144, 290)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_2" name="this" value="music[22]"/>
</zui:brick>
<zui:brick height="46" id="svg21" transform="matrix(1.305, 0.000, 0.000, 1.239, 77, 290)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_3" name="this" value="music[21]"/>
</zui:brick>
<zui:brick height="46" id="svg20" transform="matrix(1.305, 0.000, 0.000, 1.239, 11, 290)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_4" name="this" value="music[20]"/>
</zui:brick>
<zui:brick height="46" id="svgl9" transform="matrix( 1.305, 0.000, 0.000, 1.239, 278, 228)" width="47" xlink:href="./aIbumCoverEffect.svg">
<zui:variable id="var_5" name="this" value="music[19]"/>
</zui:brick>
<zui:brick height="46" id="svgl8" transform="matrix(1.305, 0.000, 0.000, 1.239, 210, 228)" widlh="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_6" name="this" value="music[18]"/>
</zui:brick>
<zui:brick height="46" id="svgl7" transform="matrix(1.305, 0.000, 0.000, 1.239, 144, 228)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_7" name="this" value="music[17J"/>
</zui:brick>
<zui:brick height="46" id="svgl6" transform="matrix( 1.305, 0.000, 0.000, 1.239, 77, 228)" width="47" xlink:href="./aIbumCoverEffect.svg">
<zui:variable id="var_8" name="this" value="music[16]'7>
</zui:brick>
<zui:brick height="46" id="svgl5" transform="matrix(1.305, 0.000, 0.000, 1.239, 11, 228)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_9" name="this" value="music[15]"/>
</zui:brick>
<zui:brick height="46" id="svgl4" transform="matrix( 1.305, 0.000, 0.000, 1.239, 278, 165)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var__10" name="this" value="music[14]"/>
</zui:brick>
<zui:brick height="46" id="svgl3" transform="matrix(1.305, 0.000, 0.000, 1.239, 210, 165)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_11 " name="this" value="music[13]"/>
</zui:brick>
<zui:brick height="46" id="svgl2" transform="matrix(1.305, 0.000, 0.000, 1.239, 144, 165)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_12" name="this" value="music[12]"/>
</zui:brick>
<zui:brick height="46" id="svgl1" transform="matrix(1.305, 0.000, 0.000, 1.239, 77, 165)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_13" name="this" value="music[ll]"/>
</zui:brick>
<zui:brick height="46" id="svgl0" transform="matrix(1.305, 0.000, 0.000, 1.239, 1 1, 165)" width="47" xlink:hreF="./albumCoverEffect.svg">
<zui:variable id="var_14" name="this" value="music[10]"/>
</zui:brick>
<zui:brick height="46" id="svg9" transform="matrix(1.305, 0.000, 0.000, 1.239, 278, 101)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_15" natne="this" value="music[9]"/>
</zui:brick>
<zui:brick height="46" id="svg8" transform="matrix(1.305, 0.000, 0.000, 1.239, 210, 101)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_16" name="this" value="music[8]"/>
</zui:brick>
<zui:brick height="46" id="svg7" transform="matrix(1.305, 0.000, 0.000, 1.239, 144, 101)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_17" name="this" value="music[7]"/>
</zui:brick>
<zui:brick height="46" id="svg6" transform="matrix(1.305, 0.000, 0.000, 1.239, 77, 101)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_18" name="this" value="music[6]"/>
</zui:brick> 0.000, 1.239, 1 1, 101)" width="47"
<zui:brick height="46" id="svg4" transform="matrix(1.305, 0.000, 0.000, 1.239, 278, 36)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_20" name="this" value="music[4]"/>
</zui:brick>
<zui:brick height="46" id="svg3" transform="matrix(1.305, 0.000, 0.000, 1.239, 210, 36)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_21" name="this" value="music[3]”/>
</zui:brick>
<zui:brick height="46" id="svg2" transform="matrix(1.305, 0.000, 0.000, 1.239, 144, 36)" width="47" xlink:href="./albumCoverEfFect.svg">
<zui:variable id="var_22" name="this" value="music[2]"/>
</zui:brick>
<zui:brick height="46" id="svg1" transform="matrix(1.305, 0.000, 0.000, 1.239, 77, 36)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_23" name="this" vaIue="music[l]"/>
</zui:brick>
<zui:brick height="46" id="svg0" transform="matrix(1.305, 0.000, 0.000, 1.239, 1 1, 36)" width="47" xlink:href="./albumCoverEffect.svg">
<zui:variable id="var_24" name="this" value="music[0]"/>
</zui:brick>
<g id="more" visibility="hidden" zi:p6Base="more-off' zi:p6Down="more-down" zi:p6Label="true" zi:p60ver="more-over" zi:p6Sel="more-sel" zi:p6SelDown="more-seI_down" zi:p6SelOver="more-sel_over">
<image height="84" id="more-sel_down" preserveAspectRatio="xMidYMid meet" transform="matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" visibility="hidden" width="213" xlink:href="../movielink/images/homescreen/more-over.png"/>
<image height="84" id="more-sel_over" preserveAspectRatio="xMidYMid meet" transform="matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" visibility="hidden" width="213" xlink:href="../movielink/images/homescreen/more-over.png"/>
<image height="84" id="more-sel" preserveAspectRatio="xMidYMid meet" transform- ' matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" visibility="hidden" width="213" xlink:href="../movielink/images/homescreen/more-off.png"/>
<image height="84" id="more-down" preserveAspectRatio- 'xMidYMid meet" transform="matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" visibility="hidden" width="213" xlink:href="../movielink/images/homescreen/more-over.png"/>
<image height="84" id="more-over" preserveAspectRatio="xMidYMid meet" transform="matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" visibility="hidden" width="213" xlink:href;="../movielink/images/homescreen/more-over.png"/>
<image height="84" id="more-off" preserveAspectRatio- 'xMidYMid meet" transform="matrix(0.274, 0.000, 0.000, 0.274, 281, 9)" width="213" xlink:href="../movielink/images/homescreen/more-off.png"/>
</g>
<zui:text-rect fill="#ffffff” font-family="HelveticaNeue LT 67 Medium Condensed" font-size="24" height="23" id="genre" pointer-events="none" width="235" x="10" y="9" zui:metadata="music[O].genres[O]" zui:text-allcaps="original" zui:text-justification=”left">
<![CDATA[Genre]]>
</zui:text-rect>
<view id="top" viewBox="(-71, -30, 493, 302)" zui:transition="hcrest_view"/>
<a id="top_bounds" xlink:href="#top">
<rect height="302" id="top_rect_l" width="493" x="-71" y="-30"/>
</a>
<view id="bottom" viewBox="(-71, 97, 493, 302)" zui:transition="hcresl_view"/>
<a id="bpttom_bounds" xlink:href="#bottom">
<rect height="302" id="bottom_rect_l" width="493" x="-71" y="97”/>
</a>
<rect height="188" id="autopan_up" stroke="#ffOOOO" visibility="hidden" width="399" x="-24" y="-23"/>
<rect height="167" id="autopan_down" stroke="#OOffOO" visibility="hidden" width="399" x="-24" y="222"/>
</g>
<zui:scene height="48" id="trans_xx_25" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_26" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_27" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_28" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_29" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_30" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_31" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_32" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_33" width="47" x="8" xlink:href=”music_detail.svg” y="37"/>
<zui:scene height="48" id="trans_xx_34" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_35" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_36" width="47" x="8" xlink:href="music_detail.svg" y="37"/>
<zui:scene height="48" id="trans_xx_37" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_38" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
<zui:scene height="48" id="trans_xx_39" width="47" x="8" xlink:href="music_detail.svg" y="37”/>
</svg>
上の実施例の太字のコードは、親SVGブリック(music_shelf.svg)においてセットアップされた変数musicの25番目の要素を指す。前の音楽クエリは、最大25までの要素を返す。次いで、音楽要素(この実施例ではアルバム)は、「this」という変数を使用してalburnCoverEffect.svgと呼ばれる子ブリックに渡される。上記の2つのコードスニペット、および図24および25の対応するGUI画面(シーン)は、ズーミング可能なグラフィカルユーザインターフェイスを生成する際に使用する本明細書で説明されている、本発明の例示的な実施形態によるSVGへの再利用可能な拡張に関連する2つの有益な特性を例示するために使用されている。第1に、SVGブリックは、GUI画面からGUI画面へ(シーンからシーンへ)再利用可能なコードを与えるプログラミング構成体をもたらす。このコンテキストでは、図24のGUI画面を生成するために使用されるブリックコードは、図25のGUI画面を生成するために再利用される。さらに、これらのブリックは、生成されるグラフィック表示コンテンツの少なくとも一部が、メタデータから描画されるという意味でパラメータ化され、これは、時間とともに変化しうる。これは、同じプログラムコードを使用することで、例えば、時間とともに変化する可能性のある、オンデマンドムービーを選択するユーザインターフェイスを生成するために使用することができること、また本発明によるインターフェイスの所定のズームレベルで描画されるユーザインターフェイスのコンテンツも、それに応じて、時間とともに変化しうることを意味する。
ブリックコード自体は、例えば、ビジュアルプログラミングインターフェイスを使用して生成することができ、その一例は、図26に示されており、音楽要素2600(アルバムカバー画像ブリック)がコーディングされている。このツールキット機能に関連するある種の例示的コードを以下に示す。
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg height="46" onload="albumCoverEffect_system_onload(evt)" width="47" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns: zi="http://ns.hcrest.com/ZUIIllustratorExtensions/1.0" xmlns:zui="http://ns.hcrest.com/ZUIExtensions/1.0">
<script language="javascript" xlink:href="./albumCoverEffeet.js"/>
<g id="layer">
<a id="anchor_0" xlink:href="zuichild:trans_0">
<g id="cover">
<image height="150.00" id="image" ρreserveAspectRatio="xMidYMid meet" transform="matrix(0.313, 0.000, 0.000, 0.307, 0.000, -0.050)" width="150.00" xlink:href="../placeholders/cdcover.png" zui:metadata="this.image.uri"/>
<g id="title">
<rect fill="#000000 " height="15" id="rect_0" width="47" x="0" y="31" />
<zui:text-rect fill="#ffffff" font-family="HelveticaNeue LT 67 Medium Condensed" font-size="6" height="14" id="textrect_0" width="45" x="l" y="32" zui:metadata="this.title" zui:text-allcaps="original" zui:text-justification="left">
<![CDATA[album title line two] ] >
</zui:text-rect>
</g>
</g>
</a>
</g>
<zui:scene height="46" id="trans_0" transition="trans_0_transition" width="47" x="0" xlink:href="music_detail.svg" y="0">
<zui:variable name="this" value="this" usage="musicDetail"/>
</zui:scene>
<zui:transition id="trans_0_transition" inherits="hcrest_placement_swap_effect">
<zui:scene-swap cover="cover"/>
</zui:transition>
</svg>
albumCoverAffect.jsも参照されたい。このファイルは、SVGファイルの付随ファイルである。このJavaScript(登録商標)は、実際にタイトルホバー効果を作成するものである。
document.include("../scripts/Hoverzoom.js");
document.include("../scripts/Cursor.js");
function albumCoverEffect_user_onload_pre(evt) {
createCursorController(document.getElementByld("cover"));
createHoverzoomTitleEffect(document.getElementByld("cover"), 0.400000, 250.000000, document.getElementByld("title"));
}
// @Toolkit-begin (pseudo-tag for Toolkit-generated code) //
////////////////////////////////////////////////////////////
!!! The prior function albumCoverEffect_user_onload_pre is what actually creates the title hover effect.
/**
* AUTO GENERATED CODE : DO NOT EDIT
*/
function albumCoverEffect_system_onload (evt) {
if ( "albumCoverEffect_user_onload_pre" in this) {
albumCoverEffect_user_onload_pre (evt);
} if ( "albumCoverEffect_user_onload_post" in this ) {
albumCoverEffect_user_onload_post (evt);
}
}
// @Toolkit-end (pseudo-tag for Toolkit-generated code) //
//////////////////////////////////////////////////////////
上記ソフトウェアコード例の太字部分には、「カバー」と呼ばれる要素がある。カバー要素は、GUI画面上の特定の位置においてこのブリックにより描画されるアルバムカバーに関連する画像メタデータである。なお、そこでは「zui:metadata='this.image.uri'」と書かれているプログラム行に留意されたい。これは、注目するアルバムである第1のコード例(親SVG)においてセットアップされる、つまり、アルバムは、このブリック内に渡され、関連するカバーアートは、この変数により参照される。
前記の例示的な実施形態では、SVGプログラミング言語の拡張に基づきユーザインターフェイス構成要素として使用するコンテキストにおいてブリックを説明しているが、ブリックは、分散ソフトウェア設計を容易にするシステム構成要素としてより一般的に使用することができる。例えば、図27に示されているシステムを考察する。そこでは、ソフトウェアシステム2700は、メタデータ2702(例えば、映画、ショッピング、音楽などに関連するデータ)とテレビジョン2704およびリモコンデバイス2706などのエンドユーザデバイスとの間の制御および対話のための完全なコンテンツ配信フレームワークを提供する。より一般的に、メタデータは、例えば、他のデータの受信、作成、アクセス、および/または修正の方法、その日時、およびその実行者、他のデータのフォーマット方法、他のデータのコンテンツ、品質、状態、履歴、および他の特性のうちの1つまたは複数を記述することができる、特定のデータセットに関する情報である。ブリックは、図27の例示的なシステムにおいて、システムに関連する特定のアプリケーションに適用されるフレームワークレベルよりも高い関連するロジックのすべてを具現化する、利用可能なソフトウェア構成体として事前に定義されたブリックモデルに基づきブリックエンジンにより作成される。このロジックをモジュール化するために、図28に示されているように、異なるレベルのブリック、例えば、アプリケーション、アプレット、意味論的および要素的なものを開発することができる。これらの異なる種類のそれぞれのブリックについて、いくつかの実施例とともに、さらに詳しく説明する。
最高レベルにあるのは、アプリケーションブリックである。図27のシステム実施例では、アプリケーションは、メタデータタイプ、例えば、音楽をエンドユーザに配信する音楽アプリケーション、オンデマンドムービーをエンドユーザに配信する映画アプリケーションなどに対応する。アプリケーション映画ブリックは、エンドユーザと映画メタデータとの間の完全な対話を記述するミニアプリケーションとして働くユーザが映画メタデータをブラウズ/探索/検索するためのエントリ階層を備える。同様に、映画アプリケーションブリックは、エンドユーザと音楽メタデータとの間の完全な対話を記述する。そのため、アプリケーションブリックは、本質的に、図27の例示的なシステムに対する、特定のタイプのメタデータに関連付けられた分散クラスの定義であり、関連するソースメタデータ2702を識別し、分割するための特定のメカニズムを備える。アプリケーションブリックが生成されると、これは、新しいパラメータを受け渡すことによりカスタマイズされるそのアプリケーションブリックの独立したインスタンスを作成することにより再利用することができる。例えば、とりわけ、メタデータ構文解析、ユーザインターフェイスの生成、およびユーザ要求を処理するために映画アプリケーションブリックが作成された後、CinemaNowによりオンデマンドで提供される映画に関して、そのブリックの他のインスタンスは、異なるパラメータをそのブリックの他のインスタンスに受け渡すことにより他のプロバイダ(例えば、Movielink)による映画の提供を処理するために使用することができる。そのため、アプリケーションブリックは、最上位レベルのメタデータカテゴリを完全に操作する自給自足型のシステム規模の構成体としてみなすことができる。図16に例示されている異なる機能性アイコンはそれぞれ、異なるアプリケーションブリックに関連付けることができる。
図28の層の中でレベルを1つ下ると、アプリケーションブリックは、複数のアプレットブリックからなる。アプレットブリックは、第2レベルメタデータカテゴリを完全に操作するか、またはメタデータ固有の機能を完全に表す自給自足型のシステム規模のソフトウェア構成体である。このコンテキストでは、第2レベルメタデータは、高レベルメタデータ領域のコンテキスト内で利用可能なメタデータの種類を指し、例えば、映画の高レベルメタデータについては、第2レベルメタデータは、映画タイトル、映画スター、上演時間などを含むことができる。メタデータ固有の機能は、特定の高レベルメタデータに結び付けられた機能、例えば、映画のブラウズ/再生、またはショッピングメタデータに対するショッピングカートのブラウズ/カートに入れる機能を意味する。例えば、特定のアプリケーションに関連付けられた書棚でいっぱいのナビゲーション画面は、書棚ナビゲーションアプレットブリックを使用して定義することができる。このナビゲーションアプレットブリックは、より高いレベルのアプリケーションブリックに適した方法で編成された関連メタデータのすべてをマップする。例えば、特定の映画プロバイダにより提供される提供物はすべて、映画ナビゲーションアプレットブリックで定義されているように利用可能なメタデータに従って書棚のレイアウトとして示すことができる。同じ映画ナビゲーションアプレットブリックの他のインスタンスを使用して、類似のユーザインターフェイス画面を生成し、異なる映画プロバイダによって提供される提供物について、対話を処理することができる。アプレットブリックは、関連するメタデータ(アプリケーションブリックによりすでに編成されている)とインターフェイスのさまざまな態様を制御するユーザインターフェイスのシーンレイアウト、例えば、書棚次元、カバーアート次元などとの間のリンクを設定する。アプレットブリックは、さらに、このレベルのユーザとシステムとの間の機能的対話、例えば、書棚がその表示領域上で一時停止されているカーソルに反応する仕方も制御することができる(例えば、図24を参照)。
それぞれのアプレットブリックは、複数の意味論的ブリックで構成することができ、これらは、システムに関連付けられている特定の意味論的対話を完全にカプセル化する自給自足型のシステム規模の構成体として動作することが意図されている。例えば、アプレットブリックは、特定のメタデータオントロジーに関連付けることができ、例えば、図24のようなナビゲーション書棚ユーザインターフェイス画面では、意味論的ブリックは、特定の書棚、例えば、図25に示されているようなものについて同じことをしうる。そのため、意味論的ブリックは、アイテム(例えば、カバーアート画像)サイズ設定の詳細、カバーアート詳細、意味論的ホバー詳細(つまり、図25に示されている結果を生み出すために特定のカバーアート画像上でユーザがカーソルを一時停止するときにホバーズームを生成する方法)、タイトル詳細などを含むことができる。
意味論的ブリックの以下の実施例を考察する。特に、特定の人に関する情報を表示するためにブリックエンジンにより意味論的ブリックがインスタンス化されていることを考える(例えば、インターフェイスを使用して選択できる映画の中の俳優)。この意味論的ブリックは、システムのユーザに対し、この意味論的ブリックの属性である、名前、誕生日、略歴、および関連する作品、例えばその人が主演した映画などの情報を表示する。略歴は、さらに、スクロール可能なテキストボックスを含む(図28で参照されている最低順序の要素ブリックを使用して作成することができる)。この意味論的ブリックは、上述の属性をサポートする任意の一般的メタデータタイプについて再利用することができる。また、この意味論的ブリックは、関連する作品のサムネール画像を表示することができることに留意されたい。しかし、意味論的ブリックは、さらに、ユーザがサムネールをクリックしてそのビューに入る場合に、そのシーンに到達するまでの待ち時間が短縮されるように、それぞれのサムネールに関連付けられている大きな画像をプリキャッシュするという機能を定義することも可能である。これは、作成者がミュージシャンか、音楽グループか、俳優か、ディレクターか、または著者かに応じて「person」クラスが異なるインスタンス化を有するという点でOOクラスと類似のものであるとみなすことができる。しかし、この意味論的ブリックは、関連する作品のカバーアートを示すだけでよい場合があり、したがって、名前、誕生日、略歴、およびカバーアートをサポートする任意の種類の一般メタデータでこのブリックを再利用することができる。関連する作品があるが、その作品を表すためにカバーアートが利用できない場合、ブリックは、代わりに、呼ばれたときにユーザインターフェイス上にプレースホルダ画像を表示するように構造化することが可能である。実際、メタデータタイプに応じて異なる種類のプレースホルダ画像を使用することが可能である(例えば、映画リールまたは書籍のように見える)。これは、ブリックのエラー処理機能を示している。
上述のように、要素ブリックは、プリミティブ対話をカプセル化する自給自足型のシステム規模の構成体である。要素ブリックの実施例は、テキストボックス、ボタン、画像、スクロールリストなどである。
上述の例示的な実施形態は、あらゆる点に関して、本発明を制約するのではなく、例示することを目的としている。そのため、本発明は、当業者であれば本明細書に含まれる説明から導き出せる詳細な実装の多くの変更形態が可能である。このような変更形態および修正形態はすべて、付属の請求項で定められているとおり、本発明の範囲および精神に含まれると考えられる。本出願の説明で使用されるいかなる要素、動作、または指示も、そのようなものとして明示されていない限り、本発明にとって重要または本質的であると解釈すべきではない。また、本明細書で使用されているように、英文中の冠詞「a(1つの、という場合がある)」は、1つまたは複数のアイテムを含むことが意図されている。
エンターテインメントシステム用の従来のリモコンユニットを示す図である。 エンターテインメントシステム用の従来のグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な実施形態(ディスプレイとリモコンの両方)が実装可能な例示的なメディアシステムを示す図である。 図3のシステムコントローラをさらに詳しく示す図である。 本発明の例示的な一実施形態によるメディアシステム用のグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な一実施形態によるメディアシステム用のグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な一実施形態によるメディアシステム用のグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な一実施形態によるメディアシステム用のグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な一実施形態による例示的なデータ構造体を示す図である。 本発明の例示的な一実施形態による図9のデータ構造体を使用して作成される例示的なGUIの一部のバージョンにおいてズームアウト(a)・ズームイン(b)した図である。 本発明の例示的な一実施形態によりGUI表示を生成するために使用される双方向連結順序付きリストを示す図である。 本発明の例示的な一実施形態によるノード監視アルゴリズムの動作を例示するために使用される他の例示的なGUIの一部のバージョンにおいてズームアウト(a)・ズームイン(b)した図である。 本発明の例示的な一実施形態による図12(a)のビューから図12(b)のビューまでGUIが遷移するときのノード監視アルゴリズムの動作を例示するために使用される例示的なデータ構造体を示す図である。 本発明の例示的な一実施形態による図12(a)のビューから図12(b)のビューまでGUIが遷移するときのノード監視アルゴリズムの動作を例示するために使用される例示的なデータ構造体を示す図である。 分解能に一致するズーミングで使用する仮想カメラを含む本発明の他の例示的な実施形態によるデータ構造体を示す図である。 本発明の例示的な一実施形態による意味論的ズーミングを示す例示的なGUIの一部のバージョンにおいてズームアウト(a)・ズームイン(b)した図である。 本発明の例示的な他の実施形態によるズーミング可能なグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な他の実施形態によるズーミング可能なグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な他の実施形態によるズーミング可能なグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な他の実施形態によるズーミング可能なグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な他の実施形態によるズーミング可能なグラフィカルユーザインターフェイスを示す図である。 本発明の例示的な実施形態により実現することができる例示的なオーバーレイコントロールの集合体を示す図である。 本発明によりズーミング可能なグラフィカルユーザインターフェイスを実装するための例示的なフレームワークを示す図である。 本発明の例示的な一実施形態によるズーミング可能なグラフィカルユーザインターフェイスを生成することに関連するデータフローを示す図である。 本発明の例示的な実施形態によりブリックを使用して描画されるGUI画面を示す図である。 本発明の例示的な実施形態によりブリックを使用して描画される第2のGUI画面を示す図である。 本発明の例示的な実施形態によりブリックを作成するために使用可能なツールキット画面を示す図である。 本発明の例示的な一実施形態により分散ソフトウェア設計を容易にするシステム構成要素としてシステムブリックが使用されるシステムを示す図である。 本発明の例示的な一実施形態により異なる種類のブリックの階層を示す図である。
符号の説明
2 ジャンル
3 ジャンル
100 エンターテインメントシステム
134 無線I/Oコントロールデバイス
200 メディアシステム
210 入出力(I/O)バス
212 テレビジョン/モニタ
214 ビデオカセットレコーダ(VCR)
216 デジタルビデオディスク(DVD)レコーダ/再生デバイス
218 オーディオ/ビデオチューナ
220 コンパクトディスクプレーヤ
222 マイクロホン/スピーカシステム
224 ビデオカメラ
226 無線I/Oコントロールデバイス
228 システムコントローラ
230 有線放送
232 衛星放送
234 放送テレビジョンネットワーク
236 電話網
238 ケーブルモデム
300 プロセッサ
302 メモリ
304 ディスプレイコントローラ
306 デバイスコントローラ
308 データ記憶デバイス
310 I/Oインターフェイス
312 バス
500 形状
502 テキスト
504 写真
508 選択ポインタ(カーソル)
512 グループ
515 未選択ジャンル
516 形状
520 アルバムカバーの画像
524 アーティスト情報
528 アルバムカバー
530 アルバム
532 トラック
534 コントロール
536 アルバム
538 隣接アルバム
550 点
552 点
900 カメラノード
902 層ノード
904 表示デバイス
1100 領域ブロック
1102および1104 遷移ブロック
1106 ビュー境界ブロック
1200 仮想カメラノード
1202 主カメラノード
1204 表示デバイス
1400 起動GUI画面
1900 高レベルアプリケーション
1902 プリミティブ
1904 ソフトウェアおよびハードウェアインフラストラクチャ
2000 UI設計ツール
2002 ブリック
2004 シーン
2006 ブリックライブラリ
2008 マルチメディアリソース
2010 シーンローダ
2012 ZSDコンパイラ
2014 ローカルシーンレンダラ
2600 音楽要素
2700 ソフトウェアシステム
2702 メタデータ
2704 テレビジョン
2706 リモコンデバイス

Claims (14)

  1. グラフィカルユーザインターフェイス上に情報を表示する方法であって、
    第1の倍率レベルで第1の複数の画像を表示するステップと、
    前記複数の画像の部分集合を識別する第1の選択指示を受け取るステップと、
    第2の倍率レベルで前記複数の画像の前記選択された部分集合の第1のズームされたバージョンを表示するステップとを含み、
    前記第1および第2の表示するステップは両方とも、少なくとも1つの再利用可能なソフトウェアコードブロックを実行することにより実行される方法。
  2. 前記少なくとも1つの再利用可能なソフトウェアコードブロックは、スケーラブルベクトルグラフィックス(SVG)言語で書かれている請求項1に記載の方法。
  3. 前記少なくとも1つの再利用可能なソフトウェアコードブロックを生成するために使用される前記SVG言語は、ブリック構成体を含むように修正され、前記ブリック構成体は、
    識別(id)値、ピクセル単位で対応するノードの幅を指定する幅値、ピクセル単位で対応するノードの高さを指定する高さ値、変換値、ポインタイベント値、可視属性、およびブリックとしてロードするSVGファイルへのURLを属性として有する請求項2に記載の方法。
  4. 前記少なくとも1つの再利用可能なソフトウェアコードブロックは、複数の選択可能なアイテムを前記第1の複数の画像として含む棚を描画するために使用される請求項1に記載の方法。
  5. 前記第1の複数の画像は、前記少なくとも1つの再利用可能なソフトウェアコードブロックにパラメータとして渡される画像データを使用して前記ユーザインターフェイス上に描画される請求項4に記載の方法。
  6. 前記パラメータは、映画および音楽のうちの1つに関連付けられているメタデータである請求項5に記載の方法。
  7. メタデータ処理システムに関連付けられている分散ソフトウェア構成の方法であって、
    それぞれがそれぞれの高レベルメタデータカテゴリとのユーザ対話を定義する複数の第1の種類のシステム規模のソフトウェア構成体を実現するステップと、
    少なくとも1つの第2の種類の低レベルのシステム規模のソフトウェア構成体を実現するステップとを含み、前記複数の第1の種類のシステム規模のソフトウェア構成体はそれぞれ、前記第2の種類の低レベルのシステム規模のソフトウェア構成体のうちの1つまたは複数からなる方法。
  8. 前記少なくとも1つの第2の種類の低レベルのシステム規模の構成体は、第2のレベルのメタデータカテゴリとのシステム対話を定義するか、またはメタデータ特有の機能を定義する請求項7に記載の方法。
  9. 前記高レベルメタデータカテゴリは、映画であり、前記第2のレベルのメタデータカテゴリは、映画タイトルおよび映画スターの名前を含む請求項7に記載の方法。
  10. 前記第2の種類の低レベルのシステム規模の構成体は、スケーラブルベクトルグラフィックス(SVG)言語の修正形態を使用して構成されるブリックである請求項7に記載の方法。
  11. 分散ソフトウェア構成を有するメタデータ処理システムであって、
    さまざまな種類のメタデータを前記メタデータ処理システムに供給するメタデータ供給源と、
    それぞれがそれぞれの高レベルメタデータカテゴリとのユーザ対話を定義する複数の第1の種類のシステム規模のソフトウェア構成体と、
    少なくとも1つの第2の種類の低レベルのシステム規模のソフトウェア構成体とを備え、前記複数の第1の種類のシステム規模のソフトウェア構成体はそれぞれ、前記第2の種類の低レベルのシステム規模のソフトウェア構成体のうちの1つまたは複数からなるメタデータ処理システム。
  12. 前記少なくとも1つの第2の種類の低レベルのシステム規模の構成体は、第2のレベルのメタデータカテゴリとのシステム対話を定義するか、またはメタデータ特有の機能を定義する請求項11に記載のメタデータ処理システム。
  13. 前記高レベルメタデータカテゴリは、映画であり、前記第2のレベルのメタデータカテゴリは、映画タイトルおよび映画スターの名前を含む請求項11に記載のメタデータ処理システム。
  14. 前記第2の種類の低レベルのシステム規模の構成体は、スケーラブルベクトルグラフィックス(SVG)言語の修正形態を使用して構成されるブリックである請求項11に記載のメタデータ処理システム。
JP2007550447A 2005-01-05 2006-01-05 ユーザインターフェイス用の分散ソフトウェア構成 Pending JP2008527540A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US64140605P 2005-01-05 2005-01-05
PCT/US2006/000257 WO2006074267A2 (en) 2005-01-05 2006-01-05 Distributed software construction for user interfaces

Publications (1)

Publication Number Publication Date
JP2008527540A true JP2008527540A (ja) 2008-07-24

Family

ID=36648159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007550447A Pending JP2008527540A (ja) 2005-01-05 2006-01-05 ユーザインターフェイス用の分散ソフトウェア構成

Country Status (6)

Country Link
US (1) US20060176403A1 (ja)
EP (1) EP1834491A4 (ja)
JP (1) JP2008527540A (ja)
KR (1) KR20070093084A (ja)
CN (1) CN101233504B (ja)
WO (1) WO2006074267A2 (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207346A1 (en) 2009-01-09 2010-07-14 Sony Corporation Display device and display method
JP2013254528A (ja) * 2010-01-28 2013-12-19 ▲華▼▲為▼▲終▼端有限公司 コンポーネント表示処理方法およびユーザデバイス
JP2014160330A (ja) * 2013-02-19 2014-09-04 Nec Personal Computers Ltd 情報処理方法、情報処理装置、及びプログラム
JP2014531646A (ja) * 2011-09-09 2014-11-27 マイクロソフト コーポレーション セマンティックズームアニメーション
US9229918B2 (en) 2010-12-23 2016-01-05 Microsoft Technology Licensing, Llc Presenting an application change through a tile
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9535597B2 (en) 2011-05-27 2017-01-03 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
US10579250B2 (en) 2011-09-01 2020-03-03 Microsoft Technology Licensing, Llc Arranging tiles

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100619071B1 (ko) * 2005-03-18 2006-08-31 삼성전자주식회사 메뉴 표시 장치 및 그 방법과 이를 수행하기 위한프로그램이 기록된 기록매체
JP3974624B2 (ja) * 2005-05-27 2007-09-12 松下電器産業株式会社 表示装置
US8543420B2 (en) * 2007-09-19 2013-09-24 Fresenius Medical Care Holdings, Inc. Patient-specific content delivery methods and systems
US8850478B2 (en) * 2005-12-02 2014-09-30 Hillcrest Laboratories, Inc. Multimedia systems, methods and applications
US8924889B2 (en) * 2005-12-02 2014-12-30 Hillcrest Laboratories, Inc. Scene transitions in a zoomable user interface using a zoomable markup language
US7536654B2 (en) * 2006-02-06 2009-05-19 Microsoft Corporation Photo browse and zoom
KR100746874B1 (ko) * 2006-03-16 2007-08-07 삼성전자주식회사 이동 단말기에서 터치패드를 이용한 서비스 제공 장치 및방법
JP2007304666A (ja) 2006-05-08 2007-11-22 Sony Computer Entertainment Inc 情報出力システム及び情報出力方法
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US7956849B2 (en) 2006-09-06 2011-06-07 Apple Inc. Video manager for portable multifunction device
US7886267B2 (en) * 2006-09-27 2011-02-08 Symantec Corporation Multiple-developer architecture for facilitating the localization of software applications
US8015581B2 (en) 2007-01-05 2011-09-06 Verizon Patent And Licensing Inc. Resource data configuration for media content access systems and methods
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080201695A1 (en) * 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering
KR100869885B1 (ko) * 2007-11-13 2008-11-24 에스케이 텔레콤주식회사 모바일 단말기의 웹 페이지를 브라우징하는 무선인터넷서비스 시스템 및 그 방법
US8745513B2 (en) * 2007-11-29 2014-06-03 Sony Corporation Method and apparatus for use in accessing content
US20090144776A1 (en) * 2007-11-29 2009-06-04 At&T Knowledge Ventures, L.P. Support for Personal Content in a Multimedia Content Delivery System and Network
US20090183068A1 (en) * 2008-01-14 2009-07-16 Sony Ericsson Mobile Communications Ab Adaptive column rendering
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
KR101475939B1 (ko) * 2008-07-02 2014-12-23 삼성전자 주식회사 이미지 처리 장치의 제어 방법과 이미지 처리 장치, 이미지파일
US8698741B1 (en) 2009-01-16 2014-04-15 Fresenius Medical Care Holdings, Inc. Methods and apparatus for medical device cursor control and touchpad-based navigation
US20100192181A1 (en) * 2009-01-29 2010-07-29 At&T Intellectual Property I, L.P. System and Method to Navigate an Electonic Program Guide (EPG) Display
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9142044B2 (en) * 2009-05-26 2015-09-22 Oracle International Corporation Apparatus, systems and methods for layout of scene graphs using node bounding areas
US9076264B1 (en) * 2009-08-06 2015-07-07 iZotope, Inc. Sound sequencing system and method
US20110078718A1 (en) * 2009-09-29 2011-03-31 Google Inc. Targeting videos for advertisements by audience or content
US10799117B2 (en) 2009-11-05 2020-10-13 Fresenius Medical Care Holdings, Inc. Patient treatment and monitoring systems and methods with cause inferencing
US8632485B2 (en) * 2009-11-05 2014-01-21 Fresenius Medical Care Holdings, Inc. Patient treatment and monitoring systems and methods
WO2011059157A1 (en) * 2009-11-16 2011-05-19 Lg Electronics Inc. Provinding contents information for network television
US9219946B2 (en) 2009-11-16 2015-12-22 Lg Electronics Inc. Method of providing contents information for a network television
KR101636714B1 (ko) 2009-12-08 2016-07-20 엘지전자 주식회사 영상표시장치 및 그 동작방법
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
CN102339197A (zh) * 2010-07-26 2012-02-01 鸿富锦精密工业(深圳)有限公司 具有日期和时间调整功能的嵌入式系统及其调整方法
US9377876B2 (en) * 2010-12-15 2016-06-28 Hillcrest Laboratories, Inc. Visual whiteboard for television-based social network
USD655716S1 (en) * 2011-05-27 2012-03-13 Microsoft Corporation Display screen with user interface
CN102394053B (zh) * 2011-06-20 2013-08-14 深圳市茁壮网络股份有限公司 一种纯单色图片显示方法及装置
CN102331933A (zh) * 2011-09-30 2012-01-25 南京航天银山电气有限公司 嵌入式软件界面实现方法及系统
KR101383840B1 (ko) * 2011-11-17 2014-04-14 도시바삼성스토리지테크놀러지코리아 주식회사 리모트 컨트롤러와, 이를 이용한 제어 시스템 및 제어 방법
US10382287B2 (en) * 2012-02-23 2019-08-13 Ajay JADHAV Persistent node framework
GB201210167D0 (en) * 2012-06-08 2012-07-25 Macat Internat Ltd A system and method for assembling educational materials
US9280575B2 (en) * 2012-07-20 2016-03-08 Sap Se Indexing hierarchical data
CN103021151B (zh) * 2012-11-21 2016-09-07 深圳先进技术研究院 服务系统及其电子设备及对多源遥控器进行响应的方法
CN103150089B (zh) * 2013-01-17 2015-12-02 恒泰艾普石油天然气技术服务股份有限公司 大幅面图形图像缩略图浏览和快速定位目标区域的方法
USD737311S1 (en) * 2013-02-23 2015-08-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
CL2013001361S1 (es) * 2013-02-23 2013-12-06 Samsung Electronics Co Ltd Dibujo industrial de configuracion de imagen ornamental aplicada a un visualizador de pantalla
USD737310S1 (en) * 2013-02-23 2015-08-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9208597B2 (en) * 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
USD751587S1 (en) * 2013-04-30 2016-03-15 Microsoft Corporation Display screen with graphical user interface
JP2016524868A (ja) * 2013-06-05 2016-08-18 トムソン ライセンシングThomson Licensing マルチスクリーンビューイングのためのコンテンツ配信用の方法および装置
US10212474B2 (en) 2013-06-05 2019-02-19 Interdigital Ce Patent Holdings Method and apparatus for content distribution for multi-screen viewing
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
USD755843S1 (en) * 2013-06-10 2016-05-10 Apple Inc. Display screen or portion thereof with graphical user interface
US9766789B1 (en) 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
USD792892S1 (en) * 2016-05-16 2017-07-25 Google Inc. Display screen with graphical user interface
USD815109S1 (en) * 2016-05-16 2018-04-10 Google Llc Display screen with graphical user interface
USD822677S1 (en) 2016-05-16 2018-07-10 Google Llc Display screen with graphical user interface
USD808995S1 (en) 2016-05-16 2018-01-30 Google Llc Display screen with graphical user interface
USD792427S1 (en) * 2016-05-16 2017-07-18 Google Inc. Display screen with animated graphical user interface
CN106569939B (zh) * 2016-10-28 2020-06-12 北京数科网维技术有限责任公司 一种控件脚本程序多国文字解析系统及多国文字解析方法
USD825586S1 (en) * 2016-11-11 2018-08-14 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD849757S1 (en) * 2016-12-13 2019-05-28 Samsung Electronics Co., Ltd. Display screen with animated graphical user interface
USD823865S1 (en) * 2017-03-10 2018-07-24 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD812072S1 (en) * 2017-03-29 2018-03-06 Sorenson Ip Holdings, Llc Display screen or a portion thereof with graphical user interface
USD822687S1 (en) * 2017-05-09 2018-07-10 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD823319S1 (en) * 2017-05-09 2018-07-17 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD822686S1 (en) * 2017-05-09 2018-07-10 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
CN107479780A (zh) * 2017-07-13 2017-12-15 北京微视酷科技有限责任公司 一种虚拟场景处理、下载方法及装置、vr设备
US20200045375A1 (en) * 2018-07-31 2020-02-06 Salesforce.Com, Inc. Video playback in a web-application using a resizable and repositionable window
US10901593B2 (en) * 2018-09-21 2021-01-26 Salesforce.Com, Inc. Configuring components in a display template based on a user interface type
US10768904B2 (en) * 2018-10-26 2020-09-08 Fuji Xerox Co., Ltd. System and method for a computational notebook interface
USD937294S1 (en) * 2019-02-18 2021-11-30 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD933681S1 (en) * 2020-03-26 2021-10-19 Denso International America, Inc. HVAC system display screen or portion thereof with graphical user interface
CN111768819B (zh) * 2020-06-04 2021-04-27 上海森亿医疗科技有限公司 动态显示或隐藏页眉页脚的方法、装置、设备和介质
USD957433S1 (en) * 2020-10-23 2022-07-12 Smith & Nephew, Inc. Display screen with surgical controller graphical user interface
USD957432S1 (en) * 2020-10-23 2022-07-12 Smith & Nephew, Inc. Display screen with surgical controller graphical user interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004102285A2 (en) * 2003-05-08 2004-11-25 Hillcrest Laboratories, Inc. A control framework with a zoomable graphical user interface for organizing, selecting and launching media items

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745402A (en) * 1987-02-19 1988-05-17 Rca Licensing Corporation Input device for a display system using phase-encoded signals
US5045843B1 (en) * 1988-12-06 1996-07-16 Selectech Ltd Optical pointing device
US5341466A (en) * 1991-05-09 1994-08-23 New York University Fractal computer user centerface with zooming capability
US5359348A (en) * 1992-05-21 1994-10-25 Selectech, Ltd. Pointing device having improved automatic gain control and information reporting
EP0609030B1 (en) * 1993-01-26 1999-06-09 Sun Microsystems, Inc. Method and apparatus for browsing information in a computer database
US5524195A (en) * 1993-05-24 1996-06-04 Sun Microsystems, Inc. Graphical user interface for interactive television with an animated agent
US6614914B1 (en) * 1995-05-08 2003-09-02 Digimarc Corporation Watermark embedder and reader
US5619249A (en) * 1994-09-14 1997-04-08 Time Warner Entertainment Company, L.P. Telecasting service for providing video programs on demand with an interactive interface for facilitating viewer selection of video programs
US5671342A (en) * 1994-11-30 1997-09-23 Intel Corporation Method and apparatus for displaying information relating to a story and a story indicator in a computer system
US5553221A (en) * 1995-03-20 1996-09-03 International Business Machine Corporation System and method for enabling the creation of personalized movie presentations and personalized movie collections
US6002394A (en) * 1995-10-02 1999-12-14 Starsight Telecast, Inc. Systems and methods for linking television viewers with advertisers and broadcasters
US6049823A (en) * 1995-10-04 2000-04-11 Hwang; Ivan Chung-Shung Multi server, interactive, video-on-demand television system utilizing a direct-access-on-demand workgroup
US5793438A (en) * 1995-11-13 1998-08-11 Hyundai Electronics America Electronic program guide with enhanced presentation
US5796395A (en) * 1996-04-02 1998-08-18 Wegener Internet Projects Bv System for publishing and searching interests of individuals
KR100188659B1 (ko) * 1996-06-28 1999-06-01 윤종용 방송에약녹화 시스템의 방송 프로그램 안내 표시장치및그방법
US6151059A (en) * 1996-08-06 2000-11-21 Starsight Telecast, Inc. Electronic program guide with interactive areas
US6191781B1 (en) * 1996-08-14 2001-02-20 Samsung Electronics, Ltd. Television graphical user interface that combines electronic program guide with graphical channel changer
US6016144A (en) * 1996-08-14 2000-01-18 Samsung Electronics Co., Ltd. Multi-layered television graphical user interface
US6195089B1 (en) * 1996-08-14 2001-02-27 Samsung Electronics Co., Ltd. Television graphical user interface having variable channel changer icons
US5835156A (en) * 1996-08-14 1998-11-10 Samsung Electroncis, Ltd. Television graphical user interface employing remote random access pointing device
US5955988A (en) * 1996-08-14 1999-09-21 Samsung Electronics Co., Ltd. Graphical user interface for establishing installation location for satellite based television system
US6057831A (en) * 1996-08-14 2000-05-02 Samsung Electronics Co., Ltd. TV graphical user interface having cursor position indicator
US6411308B1 (en) * 1996-08-14 2002-06-25 Samsung Electronics Co., Ltd. Television graphical user interface having variable channel control bars
US5978043A (en) * 1996-08-14 1999-11-02 Samsung Electronics Co., Ltd. TV graphical user interface that provides customized lists of programming
US6181333B1 (en) * 1996-08-14 2001-01-30 Samsung Electronics Co., Ltd. Television graphical user interface having channel and program sorting capabilities
US5940072A (en) * 1996-08-15 1999-08-17 Samsung Information Systems America Graphics decompression using system ROM indexing in TV set top box
US5790121A (en) * 1996-09-06 1998-08-04 Sklar; Peter Clustering user interface
US6037933A (en) * 1996-11-13 2000-03-14 Samsung Electronics Co., Ltd. TV graphical user interface for providing user access to preset time periods of TV program information
US6154723A (en) * 1996-12-06 2000-11-28 The Board Of Trustees Of The University Of Illinois Virtual reality 3D interface system for data creation, viewing and editing
US5982369A (en) * 1997-04-21 1999-11-09 Sony Corporation Method for displaying on a screen of a computer system images representing search results
US6397387B1 (en) * 1997-06-02 2002-05-28 Sony Corporation Client and server system
KR100317632B1 (ko) * 1997-07-21 2002-02-19 윤종용 메뉴 선택 제어방법
US6175362B1 (en) * 1997-07-21 2001-01-16 Samsung Electronics Co., Ltd. TV graphical user interface providing selection among various lists of TV channels
US6680694B1 (en) * 1997-08-19 2004-01-20 Siemens Vdo Automotive Corporation Vehicle information system
US6005578A (en) * 1997-09-25 1999-12-21 Mindsphere, Inc. Method and apparatus for visual navigation of information objects
US5912612A (en) * 1997-10-14 1999-06-15 Devolpi; Dean R. Multi-speed multi-direction analog pointing device
US6092076A (en) * 1998-03-24 2000-07-18 Navigation Technologies Corporation Method and system for map display in a navigation application
US6163749A (en) * 1998-06-05 2000-12-19 Navigation Technologies Corp. Method and system for scrolling a map display in a navigation application
US6268849B1 (en) * 1998-06-30 2001-07-31 United Video Properties, Inc. Internet television program guide system with embedded real-time data
JP2000029598A (ja) * 1998-07-13 2000-01-28 Matsushita Electric Ind Co Ltd 表示制御装置、表示制御方法及び表示制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US6295646B1 (en) * 1998-09-30 2001-09-25 Intel Corporation Method and apparatus for displaying video data and corresponding entertainment data for multiple entertainment selection sources
KR100301016B1 (ko) * 1998-10-27 2001-09-06 윤종용 온-스크린메뉴선택방법및그장치
KR20000027424A (ko) * 1998-10-28 2000-05-15 윤종용 방송되는 프로그램 타이틀을 표시하는 프로그램 가이드 제어방법
US6452609B1 (en) * 1998-11-06 2002-09-17 Supertuner.Com Web application for accessing media streams
US6577350B1 (en) * 1998-12-21 2003-06-10 Sony Corporation Method and apparatus for displaying an electronic program guide
US6429813B2 (en) * 1999-01-14 2002-08-06 Navigation Technologies Corp. Method and system for providing end-user preferences with a navigation system
US6426761B1 (en) * 1999-04-23 2002-07-30 Internation Business Machines Corporation Information presentation system for a graphical user interface
JP2001050767A (ja) * 1999-08-06 2001-02-23 Aisin Aw Co Ltd ナビゲーション装置および記憶媒体
US6349257B1 (en) * 1999-09-15 2002-02-19 International Business Machines Corporation System for personalized mobile navigation information
US6753849B1 (en) * 1999-10-27 2004-06-22 Ken Curran & Associates Universal remote TV mouse
US6803931B1 (en) * 1999-11-04 2004-10-12 Kendyl A. Roman Graphical user interface including zoom control box representing image and magnification of displayed image
US6421067B1 (en) * 2000-01-16 2002-07-16 Isurftv Electronic programming guide
US20010030667A1 (en) * 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US6385542B1 (en) * 2000-10-18 2002-05-07 Magellan Dis, Inc. Multiple configurations for a vehicle navigation system
US8117565B2 (en) * 2001-10-18 2012-02-14 Viaclix, Inc. Digital image magnification for internet appliance
US20030128390A1 (en) * 2002-01-04 2003-07-10 Yip Thomas W. System and method for simplified printing of digitally captured images using scalable vector graphics
US8046705B2 (en) 2003-05-08 2011-10-25 Hillcrest Laboratories, Inc. Systems and methods for resolution consistent semantic zooming
US20040268393A1 (en) * 2003-05-08 2004-12-30 Hunleth Frank A. Control framework with a zoomable graphical user interface for organizing, selecting and launching media items
CN102566751B (zh) * 2004-04-30 2016-08-03 希尔克瑞斯特实验室公司 自由空间定位装置和方法
US8418075B2 (en) * 2004-11-16 2013-04-09 Open Text Inc. Spatially driven content presentation in a cellular environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004102285A2 (en) * 2003-05-08 2004-11-25 Hillcrest Laboratories, Inc. A control framework with a zoomable graphical user interface for organizing, selecting and launching media items

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
EP2207346A1 (en) 2009-01-09 2010-07-14 Sony Corporation Display device and display method
US8635547B2 (en) 2009-01-09 2014-01-21 Sony Corporation Display device and display method
JP2013254528A (ja) * 2010-01-28 2013-12-19 ▲華▼▲為▼▲終▼端有限公司 コンポーネント表示処理方法およびユーザデバイス
US10698563B2 (en) 2010-01-28 2020-06-30 Huawei Device (Dongguan) Co., Ltd. Method and apparatus for component display processing
US10983668B2 (en) 2010-01-28 2021-04-20 Huawei Device Co., Ltd. Method and apparatus for component display processing
US9256446B2 (en) 2010-01-28 2016-02-09 Huawei Device Co., Ltd. Method and apparatus for component display processing
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
US10969944B2 (en) 2010-12-23 2021-04-06 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9864494B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US11126333B2 (en) 2010-12-23 2021-09-21 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9870132B2 (en) 2010-12-23 2018-01-16 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9229918B2 (en) 2010-12-23 2016-01-05 Microsoft Technology Licensing, Llc Presenting an application change through a tile
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9535597B2 (en) 2011-05-27 2017-01-03 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US11698721B2 (en) 2011-05-27 2023-07-11 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
US10579250B2 (en) 2011-09-01 2020-03-03 Microsoft Technology Licensing, Llc Arranging tiles
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
JP2014531646A (ja) * 2011-09-09 2014-11-27 マイクロソフト コーポレーション セマンティックズームアニメーション
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
JP2014160330A (ja) * 2013-02-19 2014-09-04 Nec Personal Computers Ltd 情報処理方法、情報処理装置、及びプログラム

Also Published As

Publication number Publication date
EP1834491A4 (en) 2010-06-02
WO2006074267A2 (en) 2006-07-13
KR20070093084A (ko) 2007-09-17
EP1834491A2 (en) 2007-09-19
CN101233504B (zh) 2010-11-10
US20060176403A1 (en) 2006-08-10
CN101233504A (zh) 2008-07-30
WO2006074267A3 (en) 2007-12-06

Similar Documents

Publication Publication Date Title
US20180113589A1 (en) Systems and Methods for Node Tracking and Notification in a Control Framework Including a Zoomable Graphical User Interface
US8046705B2 (en) Systems and methods for resolution consistent semantic zooming
US8924889B2 (en) Scene transitions in a zoomable user interface using a zoomable markup language
US8555165B2 (en) Methods and systems for generating a zoomable graphical user interface
US7834849B2 (en) Control framework with a zoomable graphical user interface for organizing selecting and launching media items
KR100994011B1 (ko) 미디어 항목들을 편성하고, 선택하며, 개시하기 위한주밍(zooming) 가능한 그래픽 유저 인터페이스를갖춘 제어 프레임워크
US8432358B2 (en) Methods and systems for enhancing television applications using 3D pointing
JP2008527540A (ja) ユーザインターフェイス用の分散ソフトウェア構成
US7386806B2 (en) Scaling and layout methods and systems for handling one-to-many objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110830