JPH08510344A - マルチメディア同期システム - Google Patents

マルチメディア同期システム

Info

Publication number
JPH08510344A
JPH08510344A JP6525382A JP52538294A JPH08510344A JP H08510344 A JPH08510344 A JP H08510344A JP 6525382 A JP6525382 A JP 6525382A JP 52538294 A JP52538294 A JP 52538294A JP H08510344 A JPH08510344 A JP H08510344A
Authority
JP
Japan
Prior art keywords
clock
time
multimedia
current time
objects
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.)
Granted
Application number
JP6525382A
Other languages
English (en)
Other versions
JP3599738B2 (ja
Inventor
ミルネ,スティーブ,エイチ.
デンマン,マチュー,エル.
チンデル,ジェイムズ,マイケル
トブラス,ジョン,チルコット
ディルツ,マイケル,ラッセル
エデルマン,ブラッドレイ,アラン
Original Assignee
タリジェント インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by タリジェント インコーポレイテッド filed Critical タリジェント インコーポレイテッド
Publication of JPH08510344A publication Critical patent/JPH08510344A/ja
Application granted granted Critical
Publication of JP3599738B2 publication Critical patent/JP3599738B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234318Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into objects, e.g. MPEG-4 objects
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/967Visual or iconic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Electric Clocks (AREA)
  • Digital Computer Display Output (AREA)
  • Studio Circuits (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 種々のマルチメディアイベントのタイミングを同期させるための方法およびシステムが開示されている。クロックオブジェクトは記憶装置内で定義され、現在時間の内部または外部のソースに関連付けられる。クロックオブジェクトを表示器上に表示することが可能である。しかし、それらが一度定義されると隠匿することが可能である。オーディオ、ビジュアルまたは他のマルチメディアイベントで表される1以上のマルチメディアオブジェクトが定義され、特別のクロックオブジェクトまたは複数のクロックオブジェクトにリンクされる。次にプロセッサはマルチメディアプロジェクトを関連のクロックオブジェクトまたは複数のクロックオブジェクトに同期させる。最後に種々のマルチメディアイベントがクロックに同期して実行される。コントロールオブジェクトは記憶装置上で定義され、マルチメディアオブジェクトに関連付けられる。それ故に、マウスもしくはマルチメディアオブジェクトを特別な時間位置に位置付けるためのまたはマルチメディアの再生速度を調整するための他のポインティングデバイスを介して直接的にコントロールオブジェクトを操作することができる。

Description

【発明の詳細な説明】 マルチメディア同期システム 著作権所有表記 本特許出願の一部には著作権保護の対象となる内容が含まれている。著作権者 は米国特許商標局の特許ファイルまたは記録のままでの何人の特許文書または特 許開示事項のファクシミリ複製を妨げるものではないが、そうでない場合は、一 切の著作権を留保する。 関連特許出願の相互参照 本特許出願は特許出願、すなわち、発明の名称が“Object Oriented Framewor k System”、Debra L.Orton,David B.Goldsmith,Christopher P.Moeller、 およびAndrew G.Heningerによるものであり、1992年12月23日に出願され、被譲 渡人がTaligentである特許出願の関連出願であり、この出願の開示事項を本明細 書の一部とする。 発明の分野 本発明は、一般にコンピュータシステムの改善に関 わり、さらに詳しくは種々のマルチメディアのイベントのタイミングを同期させ るためのシステムに関する。 発明の背景 マルチメディアは恐らくコンピュータシステムに対して最も急速に成長してい るアプリケーションである。ユーザはますますコンピュータを使用してグラフィ ック、サウンドおよびイメージ情報をエンドユーザに提供しようとしている。ユ ーザはマルチメディアのプレゼンテーションを取り扱うための人間工学的なイン ターフェースをますます要求している。過去においては、システムクロックはあ る時刻でサウンドの再生を開始するために、あるいは、特定の時刻にコンピュー タのディスプレイ上に情報を提供するためにしばしば使用される。けれどもミュ ージックやサウンドのプレゼンテーションを、説明用のマルチメディアプレゼン テーションとしての情報の表示と同期させるツールは可能とはなっていなかった 。 本発明の同期能力を有していない現在のマルチメディアシステムとしてはアッ プル(Apple)社のQuicktimeおよびマイクロソフト(Microsoft)社のVideo for Windows(“NEWMEDIA”3月号の“It's Showtime”pp.36-42、1993に記載)を 例として挙げる ことができる。従来技術が直面する同期の問題を解決するという重要性について は“IEEE Spectrum”3月号,“Interactive Multimedia”,pp.22-31(1993) および“The Technology Framework”,IEEE Spectrum,pp.32-39(1993)にお いて議論されている。論文は、本発明の同期能力でのみ効果的に提供されるマル チメディアの実施可能性についての重要性を指摘している。 発明の概要 したがって、本発明の第1の目的は、記憶装置(Storage)およびディスプレ イを有するコンピュータを使用してマルチメディアのプレゼンテーションを行う 過程において種々のマルチメディアのイベントを同期させるシステムおよび方法 を提供することにある。クロックオブジェクトは記憶装置上で定義づけられ、現 時点の内/外部のソース(source)と関連づけられる。クロックオブジェクトは ディスプレイ上で表示可能であり、一度それらのリンクが定義されると隠匿する ことも可能となる。オーディオ、ビジュアルさもなくば他のマルチメディアイベ ントに代表される1以上のマルチメディアオブジェクトは定義され、特別なクロ ックオブジェクトまたは複数のクロックオブジェクトにリンクされる。それ故、 プロセッサはマルチメ ディアオブジェクトを関連のクロックオブジェクトに同期させる。 図面の簡単な説明 第1図は好適実施例に従ったパーソナルコンピュータシステムのブロック図で ある。 第2図は好適実施例に従ったクロックオブジェクトを示す図である。 第3図は好適実施例に従ったシステムタイマーを示す図である。 第4図は好適実施例に従ってクロックオブジェクトへ時間を入力するための外 部ソースを示す図である。 第5図は好適実施例に従ったマスタークロックオブジェクトおよびスレーブク ロックオブジェクトを示す図である。 第6図は好適実施例に従ってクロックオブジェクトの階層を駆動するタイムソ ースを示す図である。 第7図は好適実施例に従ったタイムベースシーケンスを示す図である。 第8図は好適実施例に従ったタイムベースメディアプレイヤーを示す図である 。 第9図は好適実施例に従ってマスタークロックに外部的に同期するマルチメデ ィアプレイヤーを示す図で ある。 第10図は好適実施例に従って別のクロックオブジェクトに対してマスターとし て交互に動作する他のクロックオブジェクトおよびこの他のクロックオブジェク トに対してマスターとして動作するクロックオブジェクトを示す図である。 第11図は好適実施例に従ったオーディオおよびビデオシーケンスの同期を示す 図である。 第12図は好適実施例に従ってビデオプレーヤー(スレーブ)に同期するオーデ ィオプレーヤー(マスター)を示す図である。 第13図は好適実施例に従ってオーディオシーケンス、すなわち、ビデオシーケ ンスを2倍の早さで動作するように同期させたオーディオシーケンスを示す図で ある。 第14図はコンピュータディスプレイ、すなわち、ビデオシーケンスを好適実施 例に従ってオーディオシーケンスの2倍の早さに同期させたコンピュータディス プレイを示す図である。 第15図は好適実施例に従ってマスターおよびスレーブとして動作するプレーヤ ーオブジェクトを示す図である。 第16図は好適実施例に従ったジョグ/シャトルのノブを示す図である。 第17A図は好適実施例に従って複数のマルチメディ ア上でマスターとして動作するジョグ/シャトル ノブオブジェクトを示す図で ある。 第17B図および第17C図は好適実施例に従ったシャトルおよびジョグのノブのフ ローチャートである。 第18図は好適実施例においてコンピュータディスプレイ上に現れる時のクロッ ク階層を示す図である。 第19図は好適実施例に従って別のクロックを通じてタイムソースに間接的に連 結されたクロックを示す図である。 第20図は好適実施例に従ったSetTime関数のロジックを示す詳細フローチャー トである。 第21図は好適実施例に従ったTickleWakeups関数のロジックを示す詳細フロー チャートである。 第22図は好適実施例に従った現タイム取得オペレーションのロジックを示す詳 細フローチャートである。 第23図は好適実施例に従ったディレイおよびアラーム処理のロジックを示す詳 細フローチャートである。 第24図は好適実施例に従ったSync TO My Time処理を示す詳細フローチャート である。 第25図は好適実施例に従ったオーディオプレイヤーを示す図である。 第26図は好適実施例に従ったマスターとしてのオーディオプレイヤーを示す図 である。 第27図は好適実施例に従ってクロックに従属するオーディオプレイヤーを示す フローチャートである。 第28図は好適実施例に従った日の出のイメージのシーケンスを示す図である。 第29図は好適実施例に従ったグラフィックプレイヤーに関連するロジックを示 すフローチャートである。 第30図は好適実施例に従ったMIDIシーケンスおよびMIDIトラックフォーマット を示す図である。 第31図は好適実施例に従ってドライバーを通じてシーケンスを実行するMIDIプ レイヤーを示す図である。 第32図は好適実施例に従ったMIDIプレイヤーの詳細ロジックを示すフローチャ ートである。 第33図は好適実施例に従った空のデスクトップを示す図である。 第34図は好適実施例に従って選択されたクロックオブジェクトを定義する表示 画面を示す図である。 第35図は好適実施例に従った種々のクロックおよびマルチメディアオブジェク トを示す図である。 第36図は好適実施例に従って互いにリンクされたクロックオブジェクトおよび マルチメディアオブジェクトを示す図である。 第37図は好適実施例に従ってオーディオオブジェク トに同期させたビジュアルオブジェクトを示す図である。 発明の詳細な説明 本発明はIBM社製PS/2やAPPLE社製Macintoshコンピュータのようなパーソナル コンピュータに内在するオペレーティングシステムに関連して好適に実施される 。代表的なハードウェア環境を第1図に示す。それは本発明に従ったワークステ ーション、すなわち、通常のマイクロプロセッサーのような中央演算処理ユニッ ト10およびシステムバス12を介して相互接続された多数の他のユニットを有する ワークステーションの典型的なハードウェアの配置を示す。第1図に示すワーク ステーションはランダムアクセスメモリ(RAM)14、リードオンリメモリ(ROM) 16、ディスクユニット20のような周辺機器をバスに接続するためのI/Oアダプタ ー、キーボード24とマウス26とスピーカー26とマイクロフォン28および/または タッチスクリーン装置(不図示)のような他のユーザインターフェース機器とを バスに接続するためのユーザインターフェースアダプター22、ワークステーショ ンをデータ処理ネットワークに接続するための通信アダプター34およびバスを表 示器38へ接続するためのディスプレイアダプター36を含んでいる。ワークステー ションはAPPLE System/t operating systemのようなオペレーティングシステムをその中に内蔵 する。 好適実施例において本発明はプログラミング技術を支援するオブジェクトを使 用してC++プログラミング言語で実現される。当業者であれば理解しようがObjec t-OrientedProgramming(OOP)は実在するソフトウェアであり、データ構造およ びデータ上のオペレーション(data structures and operations on the data) から成る。併せ、これらの要素はその特徴、すなわち、そのデータ要素およびそ の働きを示し、操作機能を示す特徴によってオブジェクトが実世界のものいずれ かを仮想的にモデル化することができるようにする。この方法でオブジェクトは 人およびコンピュータのように具体的な物のモデルを作成することができ、また 、数のような抽象的な概念または幾何学的な概念のモデルを作成することができ る。オブジェクトテクノロジーの恩恵で3つの基本的な原理:カプセル化、多形 性(polymorphism)、継承性(inheritance)が生じる。 オブジェクトはそのデータ構造およびその機能を働かせるアルゴリズムを隠匿 あるいはカプセル化する。これらの実現の細部を表面化する代わりにオブジェク トは外部情報なしでそれらの抽象概念をきれいに表現するインタフェースを提供 する。多形性はカプセル化をさらに1ステップ進める。その考えは多くの形を1 つのインタフェースというものである。ソフトウェアの要素は別の構成要素(co mpronent)がなにかを正確に知らないでもその構成要素を要求することができる 。その要求を受け取る構成要素はそれを判断し、どのようにして要求を実行する かをその変数およびデータに従って計算を行う。第3の原理は継承性であり、そ れによりデベロッパー(developers)は既存のデザインおよびコードを再使用す ることができる。この能力によりデベロッパーはデータ消去状態からソフトウェ アを作成することが避けられる。むしろ継承を通じてデベロッパーは動作を引き 継ぐサブクラスを受け継ぎ、それを特別のニーズに合致するようにカストマイズ することができる。 従来技術のアプローチではオブジェクトを階層化し、手続き環境下ではライブ ラリをクラス化する。マーケット上の多数のアプリケーションのフレームワーク はこのデザインアプローチを採用している。このデザインにおいてはモノリシッ クのオペレーティングシステムのトップに1以上のオブジェクト層がある。この アプローチはカプセル化、多形性、継承の3つ全ての原理を使用し、手続きプロ ブラミング技法について大幅に改善されているがこのアプローチには制限がある 。これらの困難性はデベロッパーにとっては彼ら自身のオブジェクトを再使用す ることは容易であるが他のシステムからのオブジェクトを使用すること は難しくデベロッパーは手続きのオペレーテーティングシステムコール(proced ural Operating System calls)を以て下位の非オブジェクト層にさらに到達す る必要がある。 オブジェクト指向言語の別の解釈はアプリケーション開発に対するフレームワ ークアプローチである。フレームワークの最も理にかなった定義の1つがイリノ イ大学のRalph E.JohnsonおよびPurdueのVincent F.Russoから発せられている 。彼らの論文、Reusing Object-Oriented Designs,University of Illinois te ch report UIUCDCS91-1696において、彼らは次のような定義、すなわち、“抽象 的なクラスは共同で1組の責務を実行する1組のオブジェクトのデザインである 。したがって、フレームワークは定義されたコンピュータ処理の責務を共同で実 行する1組のオブジェクトクラスである。”を提唱している。プログラミングの 見地からすると、フレームワークはワーキングアップリケーションの予め組み立 てられた構造を提供するオブジェクトクラスを連結した欠くことの出来ないグル ープ群である。たとえば、ユーザインターフェースフレームワークはウィンドウ 、スクロールバー、メニュー等の描画をサポートし、デフォルトを提供する。フ レームワークはオブジェクト技術を基礎にしているので、この動作は継承され、 デベロッパーがフレームワークを拡張できないようにし、専門 知識の特別な領域での問題をカストマイズできないようにする。プログラマーは 元のコードを変更せず、むしろソフトウウェアを拡張するので、これは、伝統的 なプログラミングを超える大きな利点である。加えて、フレームワークはアーキ テクチャをガイドし、モデル化を行うので、デベロッパーはコードの階層を通し てやみくもに作業せず、同時に所定の動作を提供してそれらを問題領域(proble m domain)に対して無縁なもとする。 ビジネスの見地からすると、フレームワークは専門知識を特別な知識領域にお いてカプセル化または具体化する方法と見られる。会社の開発組織、独立のソフ トウェアベンダー(ISV)およびシステムインテグレーターは特別なエリア、す なわち、製造、会計あるいは通貨取引のような特別なエリア内で専門知識を獲得 する。この専門知識は彼らのコード内で具体化される。フレームワークによって 組織は組織のコード内でそれを具体化することによりその専門知識の共通特徴を 掴まえパッケージ化する。第1に、これによってデベロッパーは専門知識を使用 するアプリケーションを作成または拡張することができ、1度解決された問題、 ビジネスルールおよびデザインを一貫して実施、使用することができる。また、 フレームワークおよびフレームワークを背景として具体化された専門知識は、縦 断的なマーケット、すなわち、製造、会計あるい は、バイオ技術のような専門知識をパッケージ化、再販売、展開し、技術を促進 化するための流通メカニズムを有するマーケットでは含み資産を持つ。 歴史的には、フレームワークはコンピュータ処理のプラトホーム上のメインス トリーム概念として最近出現しただけのものである。この転移はC++のようなオ ブジェクト指向言語の利用に助けられている。伝統的にはC++は商的に設置され たパーソナルコンピュータよりもむしろUNIXシステムおよび研究者のワークステ ーション上で見受けられた。数多くの大学および研究プロジェクトを今日の商業 的なフレームワークおよびクラスライブラリに対して先駆者足らしめたのがC++ およびSmalltalk他、のような他のオブジェクト指向言語である。これらのいく つかの例はスタンフォード大学からのInterViews,カーネギーメロン大学のthe Andrew toolkitおよびチューリッヒ大学のET++frameworkに存在する。 あなたがたが関連するシステムがどのレベルかおよびあなた方が解決しようと する問題がどのような種類かに応じて多種のフレームワークがある。フレームワ ークの種類の範囲はユーザインターフェースの開発を支援するアプリケーション フレームワークから通信、印刷、ファイルシステムサポート、グラフィックス等 のような基本的なシステムソフトウェアサービスを提供する低レベルのフレーム ワークにわたってい る。アプリケーションフレームワークの商的な例では名前をいくつか挙げるとMa cApp(Apple)、Bedrock(Symantec)、OWL(Borland)、NeXTStep App Kit(Ne XT)およびSmalltalk-80 MVC(ParcPlace)がある。 フレームワークでのプログラミングは他種のシステムに慣れたデベロッパーに とっては新しい思考法を要する。事実、これまでの伝来的な感覚ではまったく“ プログラミング”のようではない。DOSまたはUNIXのような古いスタイルのオペ レーティングシステムではデベロッパー自身のプログラムが全ての構造を与える 。オペレーティングシステムはシステムコールすなわち、デベロッパーのプログ ラムはサービスを必要とする時に呼出し(call)、サービスが供給された時に制 御をリターンするようなシステムコールを通じてサービスを供給する。 フレームワークを使用するとこれが逆転する。デベロッパーはフロー制御に対 してもはや責を負わない。デベロッパーは実行フローの見地からプログラミング タスクを前以って理解しなくてはならない。むしろ、思考はオブジェクトの責務 という見地にならなければならない。それらオブジェクトはタスクが実行する時 にフレームワークによって決定処理を実行しなければならない。デベロッパーに より書かれるルーチンはデベロッパーが書かなかった、デベロッパーがこれまで に見たことがないようなコードにより活性化される。 制御フローにおけるこのフリップフロップは手順的なプログラミングだけしか経 験していないデベロッパーにとっては意味ありげな心理学的なバリヤーに成り得 る。けれども一度でもこれを理解すると、フレームワークプログラミングは他の タイプのプログラミングよりも作業が少なくなる。 アプリケーションプログラムがデベロッパーに組立機能を与えるのと同じ方法 で好適実施例に含まれるもののようなシステムフレームワークはシステムレベル サービスを与えることにより同じ概念を導入している。それらをサブクラス/オ ーバーライドに用いてシステムプログラマーのようなデベロッパーはカストマイ ズされた解決(solutions)を作成する。たとえば、オーディオ、MIDI、アニメ ーション等のような新しく多様な機器をサポートするための土台を提供するマル チンメディアフレームワークを考える。新しいある種の機器をサポートする必要 があるデベロッパーはデバイスドライバー(device driver)を書かなければな らない。フレームワークでこれを行うためにはデベロッパーはその新しい機器に 対して規定する動作および特徴を提供する必要があるのみである。 この場合におけるデベロッパーはマルチメディアフレームワークにより呼び出 されるあるメンバー関数のためにあることを実行する。デベロッパーにとって速 効的な利益は機器の各カテゴリーに必要な総称コード はマルチメディアフレームワークにより既に与えられている点にある。これはデ バイスドライバーの開発者にとって書き込み、テストおよびデバッグするコード が少ないことを意味する。システムフレームワークを使用する別の例ではSCSI機 器、NuBusカードおよびグラフィック機器のための分離I/Oフレームワークを持つ べきであろう。継承する機能があるので、各フレームワークはその機器のカゴリ ーに見られる共通の機能をサポートする。他のデベロッパーはそれ故全種類の機 器へのこれら結合インターフェースに依存できた。 好適実施例ではフレームワークの概念を採り入れそれを全体システムに適用し ている。商業的なまたは会社のデベロッパー、システムインテグレーターあるい はOEMにとってこれは、MacAppのようなフレームワークに関して明らかにされた 全利点を、テキストおよびユーザインタフェースのような物のためのアプリケー ションレベルで取り込むことが可能となるのみならず、グラフィックス、マルチ メディア、ファイルシステム、I/O、テスト等のようなサービスのためのシステ ムレベルでも取り込むことが可能となる。 好適実施例のアーキテクチャーにおけるアプリケーションの作成は本質的には フレームワークのプロトコルに固着するドメインの特定のパズル(domain-speci fic puzzle)を書くようなものである。このよう にして、プログラミングの全体概念が変化している。多数のAPI階層を呼び出す ためのコードを何行も書く代わりに、この環境内の前から存在するフレームワー クからクラスを受け継ぐことによりおよび新しい動作を加えることによりおよび /または所望の受け継いだ動作を無効化することによりソフトウェアは開発され る。 したがって、デベロッパーのアプリケーションは他のフレームワークアプリケ ーションで書かれたおよび分割されたコードの集積となる。デベロッパーは他人 の各仕事に基づいて構築することができるので、これはパワフルな概念である。 これによりデベロッパーは柔軟性を以て必要の多少に応じてカストマイズするこ とができる。いくつかのフレームワークはまさにそのまま使用するであろう。い くつかのケースではカストマイズの量は最小となるであろうし、デベロッパーが 挿入するパズルピース(puzzle piece)は小さくなる。他のケースでは、デベロ ッパーは大きい修正を行い、完全に新しい何かを作成するかもしれない。 好適実施例では第1図に示すようにソフトウェアクロックはタイムベース(ti me base)に対して応答する。一方、RAM14に内蔵され、CPU10の制御の下にある かまたはバス12または通信アダプター34を介して外部的に装着されるマルチメデ ィアプレイヤーは以下のクロックに対して応答する。セントラルプレイヤーが システムの全ての処理を整理し管理する必要はない。このアーキテクチャーは柔 軟性を与え、付加される新しいメディアとして増大の拡張性に対処する。本発明 の好適実施例の革新的なシステムおよび方法により以下の特徴が生じる。 ・プレイヤーはアプリケーションが要求するどのような正確さのレベルに対し ても同期を維持する必要があるごとにクロックでチェックを行う。 ・多数のクロックを互いに同期させることができ、クロックの間のリニアーな 時間関係を用いてシーケンスのオフセットおよびスピードを互いに関連づける。 ・多数のタイムソース どのクロック(故にどのプレイヤー)もシステムクロックだけでなく、外部の タイムソース(例としてビデオテープからのタイムコード)あるいはユーザ動作 (ソフトウェアシャトルノブ、ジョグノブ、他のコントローラのような)に対し ても同期させることができる。 ・クロックは時間の後戻りをすることができる。 ・クロックは多数のアドレススペースを拡大することができる。 用語の定義 ソフトウェアクロックとは? 第2図に示すようにソフトウェアクロックは以下の機能を実行するオブジェク トである。 ・クロックは、タイムオブジェクト(time object)200により表される現在時 間を持つ。タイムオブジェクトは、時間のあるポイントをピコ秒で測定する浮動 小数点数である。メンバー関数は現在時間をセッティングし、現在時間を得る。 メンバーファンクションはあるオブジェクトを動作させる関数である。現在時間 もまた、値を減少させることができその場合、クロックは上述したように後戻り する。 ・遅れ:クロックはある時間、いわゆるディレイ時間までスレッド(thread) が到達することをブロックすることができる。もしもクロックが前進する場合は クロックの現在時間がディレイ時間以上になった時はスレッドはブロックされな い。もしクロックが後進する場合、クロックの現在時間がディレイ時間以下の時 にスレッドはブロックされない。 ・アラーム:クロックは、ある時間、いわゆるアラーム時間に到達すると、IP C(Interprocess Communication)メッセージをポートに送信することができる 。もし、クロックが前進する場合、クロックの 現在時間がアラーム時間以上になるとIPCメッセージが送信される。もし、クロ ックが後進する場合、クロックの現在時間がアラーム時間以下となった時にIPC メッセージが送信される。 ・マルチタイムソース(multiple time sources):通常、クロックの時間は システムタイマーに基づいてリアルタイムで進む。システムタイマーは第3図に おいてタイムソースオブジェクト300により表されている。しかしながら、クロ ックもまた、第4図に示すようにビデオテープレコーダ(VTR)からコンピュー タへ入力するSociety of Motion Picture and Engineers(SMPTE)タイムコード のような別のタイムソースに同期するとができる。クロックの現在時間はVTRか ら到来するタイムコードに従う。VTRがスピードアップするとクロックも追従し てスピードアップする。VTRがスローダウンすると、クロックも追従してスロー ダウンする。VTRが後進すると、クロックも追従して後進する。クロックはVTRに 追従したままである。 タイムソースは、まさに、クロックのように現在時間を持つ。リニアな関数が タイムソースの現在時間とクロックの現在時間との間の相関関係を定めるのに使 用される。 tclock=a・ttimesource+b ここで、tclockはクロックの現在時間である。 ttimesourceはタイムソースの現在時間である。 aはタイムソースの現在時間に対するクロックの現在時間の比率を決定する浮 動小数点数である。 bはクロックの現在時間のオフセットを決定するタイムオブジェクトである。 この関数をクロック関数と呼ぶことにする。 ・同期:複数のクロックもまた互いに同期させることができる。マスタークロ ックおよびスレーブクロックの2つのクロックが与えられると、ちょうどタイム ソースのようにクロック関数が定められる。 tslave=a・tmaster+b ここで、tslaveはスレーブクロックの現在時間である。 tmasterはマスタークロックの現在時間である。 aはマスタークロックの現在時間に対するスレーブクロックの現在時間の比率 を定める浮動小数点数である。 bはマスタークロックの現在時間に対するスレーブクロックのオフセットを定 めるタイムオブジェクトである。 たとえば、第5図ではクロック510(スレーブ)はクロック500(マスター)に 同期している。スレーブクロックはまた、別のクロックに対してはマスターに成 りうる。これらの2つのルール故にクロックの任意のツリー構造を作成すること ができる。第6図はソフトウェアクロックの階層を駆動するタイムソースを示 す。 2つのクロックメンバー関数が、クロックを互いに同期させるために与えられ る。それらはスレーブクロック上で呼び出される。1つをSyncToKeepMyTime( ) であり、クライアントがマスタークロックおよび速度を規定できるようにし、オ フセット、すなわち、同期の瞬間に、フレーブクロックの現在時間の値を変化さ せないようにするオフセットを計算できるようにする。 加えて、メンバー関数SetRate( )を使用してマスターに対するスレーブクロッ クの相対速度を直接的に設定することができる。 異なるアドレススペースに存在するクロックオブジェクトおよびタイムソース オブジェクトの事例も互いに同期させることができる。 スタートおよびストップ:クロックは停止することができる。その場合、その 現在時間はそのマスターの変化の有無にかかわらず変化しない。停止したクロッ クは再スタートすることができクロックは引き続きそのマスターに追従する。速 度は変化しない。クロック停止以前と同様の状態となる。クロックがスタートし た時点ではその現在時間はクロックが停止したときと同じなので、オフセットは 変化する。 設定速度:クロック関数の速度をいずれかの浮動小数点値に設定することがで きる。速度が変化すると き、クロックの現在時間は変化しないのでオフセットは変化する。 タイムベース・メディアシーケンス(time-based media sequence)とは? タイムベース・メディアシーケンスは、抽象的なベースクラス、すなわち、オ ーディオ、ビデオ、アニメーションあるいはミュージカル・インスツルメント・ ディジタル・インターフェース(MIDI)データさもなくば時間的に変化するいず れかの他のデータのクリップを表わすために使用することができる抽象的なベー スクラスである。それは時間0で始まり、タイムオブジェクトにより表わされる 継続時間である。第7図は3秒の継続時間のタイムベース・メディアシーケンス の例である。タイムベース・メディアシーケンスのサブクラスは、オーディオ、 ビデオ、アニメーションおよびMIDIシーケンスを実行するために用いられる。 タイムベース・メディアプレイヤーとは? タイムベース・メディアプレイヤー(以後、プレイヤーと称す)はタイムメデ ィアシーケンスを再生または記録するために用いられる抽象的なベースクラスで ある。このクラスはオーディオ、ビデオおよびMIDI用のプレイヤーを作成するた めにサブクラス化される。第8図はタイムベース・メディアプレイヤーの一例を 示す。プレイヤーは関連ソフトウェアクロックオブジェクトを有する。ソフトウ ェアクロックの現在時間800はプレイヤーの再生位置を表わす。再生位置810はテ ープレコーダ上の再生ヘッドに類似しており、プレイヤーのクロックはデフォル トクロックかまたはシステムタイマーのようなタイムソースに同期する。このよ うなプレイヤーは内部的に同期すると言われる。けれどもプレイヤーのクロック は別のタイムソースまたは別のプレイヤーのクロックを含むクロックに同期させ ることができる。このようなプレイヤーは外部的に同期すると言われる。 第9図において、プレイヤー900は外部的にマスタークロック900に同期してい る。マスタークロック910はスレーブクロックとの同期に応じてプレイヤー900の 再生位置を決定する。 たとえば、プレイヤーのクロックは、 tplayer=l・tmaster+0 のようにマスタークロックに同期する。もし、マスタークロックがスローダウン すると、プレイヤーの再生も応じてスローダウンする。もし、マスタークロック がスピードアップすると、プレイヤーもスピードアップする。あらゆる場合にお いて、プレイヤーはマ スターに同期したままである。 外部的に同期する場合、再生の間、再生位置がいつもそのクロックの現在時間 に反映するようにすることはプレイヤーの責任である。同様のことが記録に関し ても言える。 プレーヤーのクロックは、また、外部クロック、すなわち、革って、別のクロ ックに対してマスターになり得る外部クロックに対するマスタークロックとして も用いられる。 第10図において、プレイヤーAのクロック1000は、クロックX1010、すなわち 、代わってプレイヤーBのクロック1020に対してマスターとして動作するクロッ クX1010に対してマスターとして動作する。プレイヤーA1000が再生を行っている とき、クロックX1010およびプレイヤーB1020の双方はプレイヤーAのクロックに 追従する。プレイヤーAが停止すると、そのクロックは動かない。また、クロッ クXおよびプレイヤーBのクロックも動かない。内部に同期するとき、クロック の現在位置が再生位置に常に反映するようにすることはプレイヤーの責任である 。 タイムベース・メディアシーケンスの同期 マスターおよびスレーブプレイヤー 第11図に示すようにオーディオおよびビデオシーケンスを互いに同期させるた め2つのプレイヤーのクロックは第12図に示すように互いに同期させられる。ビ デオプレイヤーは常にオーディオプレイヤーに追従する。もし、オーディオプレ イヤーがスピードアップすると、ビデオプレイヤーもスピードアップする。もし オーディオプレイヤーがスローダウンすると、ビデオもスローダウンする。もし 、オーディオが停止すると、ビデオもストップする。オーディオが後進し始める とビデオも応じて後進する。このようにしてオーディオおよびビデオだけでなく 、2つのどのようなタイムベース・メディアプレイヤーでも同期させられる。 共通クロックへのプレイヤーの同期 第13図に示すようにオーディオシーケンスの2倍の速さでビデオシーケンスを 再生するようなオーディオシーケンスの1秒後でビデオシーケンスをスタートす るためには第14図で示すようにそれらのクロックを単一のマスタークロックに同 期するように2つのプレイ ヤーは作成されなければならない。任意の個数のタイムベース・メディアシーケ ンスを単一のマスタークロックに同期させることができる。 ディジィーチェーン結合のプレイヤー 第15図に示すようにプレイヤーはマスターおよびスレーブの双方となることが 可能である。このようなプレイヤーは外部的に同期させられ、そしてそれ故にス レーブのように動作しなければならない。マスターのように動作することは余分 な努力なしに同時に実現される。スレーブ1520はマスター/スレーブプレイヤー 1510のクロックに単純に結合可能である。複数のプレイヤーを互いにディジィー チェーン結合することができる。 ソフトウェア ジョグ/シャトル ノブ 速度コントローラ ジョグ/シャトル ノブは、収集のタイムベース・メディアシーケンスの再生 の速度を制御するために用いられる。シャトルモードのときは、ノブの位置が再 生の速度を制御する。ジョグモードのときは、ノブが再生位置を制御する。ソフ トウェア ジョブ/シャトル ノブはソフトウェアクロックの使用を実現でき る。ジョブ/シャトル ノブの絵画表現は第16図に示すようにコンピュータスク リーン上に描かれ、マウスで制御される。ジョグモードにあるときは、スクリー ン上のコントローラノブ1610の位置はシーケンス中の時間位置に変換することが できる。タイムソースは時間位置を表わすのに用いられる。ノブが新しい位置に セットされたときはいつでもタイムソースの現在時間は、シーケンス中の時間位 置に対応してセットされる。 クロックオブジェクトはタイムソースに従属する。そのため、1以上のプレイ ヤーをクロックオブジェクトに同期させることにより第17A図に示すようなノブ により決定される位置に追従する。シャトルモードであるとき、クロックオブジ ェクトはシステムタイムソースに従属する。スクリーン上のノブの位置は再生速 度に変換することができる。ユーザがスクリーン上のノブの位置を変更する毎に 対応速度がクロック上でセットされる。クロックの速度のセッティングにより全 ての同期しているプレイヤーは対応してその速度を変更する。 第17B図は好適実施例におけるシャトル制御処理に関連の詳細なロジックにつ いてのフローチャートである。マウスボタンの押下が機能ブロック1700において 検出されると、判断ブロック1702でテストが実行されて、マウスカーソルが第16 図の1610で示すように、 シャトルコントローラ上のノブ上に位置しているかを判定する。もし、カーソル がそのように位置している場合、機能ブロック1704でシャトルクロック速度が0 にセットされ、シャトルクロックは現在時間0にセットされる。機能ブロック17 06でプレイヤーはシャトルクロックに従属し、プレイヤーは機能ブロック1708で スタートし、処理はターミナル1710で完了する。 機能ブロック1720でマウス位置の変化が検出されると、正午12時と、ノブ位置 との間の角度が“度”の単位で機能ブロック1722で計算され、テストが判定ブロ ック1724でテストが実行されて角度が負であるか判定される。もし、そうであれ ば機能ブロック1728でSIGN=1、角度∂=−∂がセットされ、制御は判定ブロッ ク1730に進む。もし、機能ブロックでテストが偽となったときはSIGNは1にセッ トされる。次に、判定ブロック1730でテストが実行され∂≧0度および<80度で あるかの判定がなされる。RATEがSIGN*≧/80度に設定され、制御は機能ブロッ ク1742に進み、シャトルクロック速度がRATEと同じ値に設定される。もし、そう でないときは、別のテストが判定ブロック1736で実行され、∂が≧80度および< 100のときはRATEがSIGN*1.0にセットされ、制御機能ブロック1742に進み、シャ トルクロック速度がRATEと同じ値に設定される。もし、そうでないときはRATEは SIGN*1+(∂−100度)/80°と同じ値に設定され、制御がファンク ションブロック1742に進み、RATEと同じ値にシャトルクロック速度が設定される 。 マウスボタンが機能ブロック1744でアップしていると、次に、プレイヤーは機 能ブロック1746で停止し、プレイヤーは機能ブロック1748でプレイヤーの内部ク ロックに縦続する。 第17C図は本発明に従ったジョグモード処理のロジックを詳細化したフローチ ャートである。マウスボタンの押下が機能ブロック1750で検出されると、テスト が判定ブロック1752で実行され、マウスカーソルがノブ上にあるかが判定される 。もし、そうでないならば、処理はターミナル1762で放棄される。マウスがノブ 上にあるときは、次に、ファンクションブロック1754でジョブタイムソースの現 在時間が0にセットされる。最後のノブ位置が正午に等しくセットされる。度の 単位の時間が2秒/360度の値に等しく機能ブロック1756でセットされ、プレイヤ ーは機能ブロック1758でジョグタイムソースに縦続し、プレイヤーは機能ブロッ ク1760でスタートする。 機能1764でマウスボタンの位置が変化すると、現在のノブの位置が機能ブロッ ク1766で計算される。最後のノブ位置および現在のノブ位置の間Δが機能ブロッ ク1768で計算され、機能ブロック1770でTIME DELTAが計算され、ジョグタイムソ ースの現在時間がTIME DELTAの値に等しく設定される。 機能ブロック1774でマウスボタンがアップしていると、次に、機能ブロック17 76でプレイヤーはストップし、プレイヤーは機能ブロック1780でプレイヤーの内 部ブロックに縦続するよう設定される。 タイムソースおよびクロックオブジェクトの実施 タイムソースの実行 タイムソースおよびそれに全てのクロックが同期しているセットは、クロック 階層と呼ばれる。第18図はクロック階層の図であり、好適実施例ではコンピュー タディスプレイ上に現われる。タイムソースはその現在時間を供給し、アラーム およびディレイを実施しなければならない。アラームおよびディレイは、ウェイ クアップと呼ばれる。IPCメッセージ(アラーム)またはスレッドのブロック解 除(ディレイ)はウェイクアップ起動(firing a wake up)と呼ばれる。タイム ソースはクロック階層中のいずれかのクロック上にセットされたいずれかおよび 全てのウェイクアップの起動に応答する。 クロック階層中の各クロックのために、タイムソースは直接関数(direct fun ction)、すなわち、タイムソースの現在時間からクロックの現在時間への変換 に用いられる直接関数を保持する。直接関数の形態 は、 tclock=a・ttimesource+b ここでtclockはクロックの現在時間である。 ttimesourceはタイムソースの現在時間である。 aはタイムソースの現在時間に対するクロックの現在時間の相対速度を決定す る浮遊小数点数である。 bはタイムソースの現在時間に対する相対的なクロックの現在時間のオフセッ トを決定するタイムオブジェクトである。 逆直接関数は、他方向、すなわち、クロックの現在時間からタイムソースの現 在時間: ttimesource=(tclock−b)/a への変換に用いられる。 クロックが間接的に1以上のクロックを通じてタイムソースに結合されると、 直接関数を代数学的な数値代入によりこれまでどおりに計算することができる。 たとえば、第19図のクロックY1900を考える。クロックX1910は式: tclockx=ax・ttimesource+bx を有するタイムソース1920と比較した関数である。 クロックY1900のクロックX1910に対する関数は、 tclocky=ay・tclockx+by である。 クロックY1900の直接関数を代入により計算するこ とができる。 tclockky=ay・(ax・ttimesource+bx)+by =(ay・ax)・Ttimesource+(ay・bx+by) =a・ttimesource+b ここで、 a=ay・ax b=ay・bx+by タイムソースには駆動、非駆動の2種類のタイプがある。駆動タイムソースは 、クライアントの現在時間のセッティングにより絶えず更新される。これは、駆 動タイムソースのSetTime( )メンバー関数を呼び出すことにより実現される、Se tTime( )の実行処理は第20図に示すフローチャート中に示されている。ターミナ ル2000で処理が始まり、ここで、新しい現在時間を記憶する機能ブロック2010で パラメータ“new time”がSetTime( )に渡される。 タイムソースの方向は、判定ブロック2020で“newtime”をタイムソースの古 い現在時間と比較することで決定される。もし、大であればタイムソースは前進 し、制御は判定ブロック2040に渡される。もし、小であれば、タイムソースは後 進し、制御は判定ブロック2030に渡される。もし、等しい場合、タイムソースの 方向は変化しない。“Next time”は次回のウェイクアップを起動する必要があ る時間である。もし、タ イムソースが前進している場合、“new time”が現在時間以下のときは、ウェイ クアップは遅れる。もし、タイムソースが後進している場合、“next time”が 現在時間以上のときにウェイクアップは遅れる。“ticklewakeups”と記載され た機能ブロク2050は全てのアラームを起動し、ディレイが遅れる。ウェイクアッ プの起動は以下のタイムースウェイクアップリストのセクションにおいてより詳 細に説明する。処理はターミナルブロック2060で完了する。 非駆動のタイムソースは現在時間がどうなっているかを常時、述べる必要は無 い。それは、基本オペレーティングシステムがたえず現在時間の情報を得るシス テムタイマーのようなタイムソースのために用いられる。非駆動のタイムソース は現在時間を検出する方法を知って承知しており、それはメンバー関数GetNextT ime( )、すなわち、アラームまたはディレイを起動すべき“NEXT TIME”を返す 関数を有している。GetNextTime( )は新しいアラームまたはディレイがタイムソ ースに負荷されたときはいつでも呼び出される。新しいアラームまたはディレイ を起動する必要があるときは、タイムソースのTickleWakeUps( )メンンバー関数 、それは遅れているウェイクアップのいずれかを起動するが、そのメンバー関数 を呼び出すことができる。これにより駆動タイムソースに必要とされたような、 Settime( )の常時呼び出しを必要としない タイムソースをインプリメンター(implementor)が作成することができる。 タイムソースの現在時間の取得 タイムソースはその現在時間を非常に迅速に入手することができる。なぜなら ば、駆動タイムソースの場合、それは、内部データ構造内に保存された値を有す るからであり、さもなくば、非駆動のタイムソースの場合、それは基本オペレー ティングシステムを照会することができるからである。 ウェイクアップの取扱い 2種のウェイクアップ、すなわち、ディレイおよびアラームはタイムソースに より同様に取扱われる。タイムソースはクロックからウェイクアップのためにウ ェイクアップ時間と呼ばれるある時間で起動するように要請を受ける。ウェイク アップタイムは要求のクロックのタイムベースからタイムソースの逆直接関数を 使用するローカルタイムベースに変換される。タイムソースはウェイクアップが 遅れており、起動する必要があるかをチェックする。ウェイクアップが遅れてい れば、タイムソースがそれを起動し、さもなくばタイムソースはウェイクアップ リストと呼ばれる時間順 のウェイクアップのリストにウェイクアップを加える。 タイムソースのウェイクアップリスト ウェイクアップは除去されたり付加されたりするので、ウェイクアップリスト が変化するときはいつでもタイムソースのGetNextTime( )方法が呼び出され、そ れはウェイクアップを起動する必要がある次回の時間(NEXT TIME)を計算する 。タイムソースが駆動タイムソースであるならば、そのSetTime( )メンバー関数 は、1以上のウェイクアップが遅れる場合はいつでもTickleWakeups( )を呼び出 す。TiclkeWakeups( )はウェイクアップリストを通り抜けて、遅れている全ての ウェイクアップを起動する。ウェイクアップが起動すると、それはリストからも 除去される、。TickleWakeUps( )を次に呼び出す時間がいつかを検出するために 、その次にその時間でタイマーをオフにセットするために、非駆動のタイムソー スのGetNextTime( )メンバー関数を無効化することができる。タイマーがオフに なると、タイムソースはTickleWakeups( )を呼び出す。 第21図はTickleWakeups( )関数の詳細論理を示す。処理はターミナル2102で始 まり、直ちに、機能ブロック2104に進みここで変数CHANGEDが偽にセットされ る。次に、機能ブロック2120で最初のウェイクアップが得られ、判定ブロック21 60でテストが実行されてウェイクアップの要否が判定される。ウェイクアップが 要であればウェイクアップが機能ブロック2150で起動され、次回のウェイクアッ プを機能ブロック2140で取得し、変数CHANGEDは真にセットされ、および制御は 判定ブロック2160に戻って次のウェイクアップを待つ。 判定ブロック2160でウェイクアップが必要でない場合は、変数CHANGEDが判定 ブロック2170でテストされる。変数CHANGEDが真であれば機能ブロック2180でNEX T TIMEが取得される。もし偽であれば制御は終了のためにターミナル2190に渡さ れる。 ソフトウェアクロックの実現 ソフトウェアクロックの現在時間の取得 クロック用の現在時間を取得するためにクロック手順は最初にそのクロック階 層用のタイムソースから現在時間を取得する。次にそれは直接関数を取得し、第 22図のフローチャートに示すようにソースの現在時間からクロックの現在時間に 変換する。処理は2200で始まり、直ちに機能ブロック2210に進んでクロック階層 用のタイムソースを取得する。次に、機能ブロック 2220でタイムソースの時間が取得され、機能ブロック2230で直接関数が取得され る。最後に機能ブロック2240で現在時間を結果として得るために直接関数がタイ ムソースの時間に対して適用され、ターミナル2250に戻る。 クロックおよびタイムソースは異なるアドレススペースに在るので、タイムソ ースの混在時間およびクロックの直接関数の双方は2つのアドレススペースに分 割されてメモリ内に格納される。セマフォがダイレクト関数およびタイムソース の時間を分割メモリから読出すときにそれらが変化しないよう用いられる。 ソフトクロック上のディレイのセッティング ディレイには2つのタイプがある。1つはクロックのメンバー関数がDelayUnt il( )と呼ばれ、クロックの現在時間が所定の値に到達するまでクライアントの タスクを阻止する。第2は、クロックのメンバー関数がDelayFor( )と呼ばれ、 所定長さの時間が経過するまでクライアントのタスクを阻止する。第2の形態の ディレイは実質的にはクロックの現在時間+所定長さの経過時間で規定される第 1の形態と同じである。 クロック上でディレイさせるために、クロックはディレイさせたい(またはデ ィレイさせるための)時間をクロック階層用タイムソースに送る。タイムソー スはクロック用逆直接関数を使用してそれをタイムソースに対してはローカルな 時間に変換する(およびもし、現在時間がディレイのため(delay for)、およ びディレイまでではない場合は現在時間を付加する)。その要求は(すでにウェ イクアップ処理の項で述べたように)ウェイクアップリストに加えられ、ウェイ クアップが起動するまで呼び出し側が阻止される。 ソフトウェアクロック上のアラーム のセッティング クロック上のアラームのセッティングは呼び出し側が阻止されない点を除いて クロック上のディレイのセッティングと同様である。 第23図はディレイおよびアラームの双方を実施する方法を示すフローチャート である。処理は2300で始まり、ここで入力時間およびレシーバー(receiver)が 入力される。機能ブロック2310で直接関数が取得され、直接関数の逆を機能ブロ ック2320で適用し、判定ブロック2340でテストが実行されてディレイが“delayf or”のタイプであるかの判定が行われる。もしそうであれば機能ブロック2342で 現在時間が取得され、現在時間に時間が加えられて、制御は機能ブロック2346に 移行する。 もし“delay for”でないときは次に、機能ブロック2346で時間とレシーバー とを用いてウェイクアップが作成される。次に、判定ブロック2350で別のテスト が実行されて、ウェイクアップ用か判定がなされる。もしそうでないときは、機 能ブロック2352でウェイクアップはウェイクアップリストに加えられ、GetNextT imeが2372に実行され、制御はターミナル2370に戻りキャンセルされる。処理は ターミナル2392で完了する。もし、判定ブロック2350でウェイクアップが要の場 合は、次に、ウェイクアップがディレイのときに機能ブロック2354でタスクの阻 止を解除し、ウェイクアップは機能ブロック2360で取り除かれる。もしウェイク アップがアラームの場合は、次に、メッセージを機能ブロック2356で送り、機能 ブロック2360でウェイクアップを除去し、処理をターミナル2392で完了する。 クロックの同期 クロックの同期はソフトウェアクロックおよびタイムソースの双方において実 施される。2つのソフトクロックメンンバー関数がクロックを同期させるために 、クライアントにより使用される。両者はマスターにスレーブクロックを同期さ せるために、スレーブクロック上で呼び出される。1つのメンバー関数は、 SyncTo( )と呼ばれ、クライアントがマスタークロックまたはタイムソース、速 度およびオフセットを規定できるようにする。第2のSyncToKeepMyTime( )はク ライアントがマスタークロックおよび速度を規定できるようにするが、オフセッ トは計算するので、スレーブクロックの現在時間は同期時点では値が変化しない 。 SyncToKeepMyTime( ) SyncToKeepMyTime( )によりクライアントは、マスタークロックおよび速度を 規定できるがオフセットは計算するので、スレーブクロックの現在時間は同期時 点では変化しない。第24図はSyncToKeepMyTime( )の詳細論理を示す。処理は240 0で始まり、直ちに、判定ブロック2420に進み、マスタークロックが同じクロッ ク階層に在るかを判定する。もしそうでなければ、機能2410でタイムソース間の 以後の同期は保持状態になり、判定ブロックでテストが実行され、マスターがス レーブクロックに対して、現在、スレーブとなっているかを判定する。もし、そ うであれば機能ブロック2454を経由してエラーが返され、制御はターミナル2499 に進む。 もし、そうでなければ、機能ブロック2432で現在時間をスレーブクロック用に 取得し、クロックについての全ての情報を機能ブロック処理がターミナル2499で 終了する前に機能ブロック2452で、タイムソースの間で同期が行われる。 もし、判定ブロック2420において、マスタークロックが同じタイムソースに在 るときは次に判定ブロック2460で別のテストが実行され、マスターが現在スレー ブクロックに対して、現在、スレーブであるかが判定される。もし、そうでなけ れば、機能ブロック2462でスレーブクロックについての現在時間を取得する。ス レーブクロックについての関数を現在時間に基づいて計算し、機能ブロック2466 で速度を供給する。機能ブロック2468で直接関数を計算し、機能ブロック2470で クロックウェイクアップを再計算する。テストを判定ブロック2472で実行し、方 向が変化したかを判定する。もし、そうであれば、機能ブロック2474で全ウェイ クアップを起動する。もし、そうでなければ、処理がターミナル2499で終了する 前に機能ブロック2476で全スレーブクロックについての処理が繰り返される。 新しいクロック関数は以下のように計算する。マスターに関する同期の前のス レーブクロックの関数: tslave=aoribinal・tmaster+boriginal 新しい速度anewでマスターに同期した後のスレーブクロックの関数 tslave=anew・tmaster+bnew ここでbnewはtnewslave=tslave等であり、 bnew=tmaster・(as−anew)+boriginal SYNCTO( ) SyncTo( )によりクライアントはマスタークロックまたはタイムソース、速度 、およびオフセットを規定できる。処理は第24図に示された論理にとても似てい る。クロックの新しい関数はSyncTo( )の場合、次のように計算される。マスタ ー同期する前のスレーブクロックの関数: tslave=aoriginal・tmaster+boriginal 新しい速度anewおよびオフセットbnewでマスターに同期した後のスレーブクロ ックの関数: tslave=anew・tmaster+bnew クロックは他のどのクロックにも異なるクロック階層のクロックでさえも同期 させることができる。 オーディオプレイヤーの実施 オーディオシーケンスオブジェクトはディジタル化したサウンドのサンプルセ グメントを有する。それは、オーディオサンプルを検索し、格納するメンバー関 数を有する。 オーディオプレイヤーはオーディオストリームを再 生するので、それをスピーカー上で聞くことができる。これは、一定周期でオー ディオストリームからデータを読み込み、それをオーディオ出力ポートに書き込 むことによりなされる。 読取り周期はデジタルアナログ変換器(DAC)により決定される。DACはディジ タルオーディオサンプルを、スピーカーに接続したオーディオ増幅器により音に 変換することができるアナログの電気信号に変換する。それは1秒あたりN個の ディジタルオーディオサンプルを変換する。NはDACのサンプル速度と呼ばれる 。DACは変換を待つオーディオサンプル用の内部バッファを有する。オーディオ プレイヤーは、ホストプロセッサ内で動作し、オーディオシーケンスから読出さ れたサンプルをDACのバッファに充填する。このバッファの容量が半分になると 、DACはホストプロセッサを中断させる。オーディオプレイヤーは次にオーディ オシーケンスから読取ったオーディオサンプルのバッチを再び充填する。この処 理を第25図に示す。 第26図に、マスターとしてのオーディオプレイヤーを示す。これはオーディオ プレイヤーのクロックを、スピーカーにより現在、再生されているサンプルの時 間に常時反映させることにより、実現される。たとえば、T時点でオーディオシ ーケンスの開始から88200番目のサンプルがスピーカー上で再生されている場 合、DACのサンプル速度およびオーディオシーケンスは共に44,100サンプル/秒 であり、それ故、オーディオプレイヤーのクロックは時間で2秒になるにちがい ない。これはDACにより駆動されるタイムソースにより達成される。DACがバッフ ァ フルのサンプルを出力するときはいつでもホストプロセッサは中断する。ホ ストプロセッサは最後の中断以後、変換されたサンプル量に相当する時間までタ イムソースの現在時間をインクリメントする。これは、 〈インクリメント時間〉 =〈最後の中断以後の時間〉/〈DACサンプル速度〉 により決定される。 オーディオプレイヤーはそのソフトウェアクロックをDACタイムソースに同期 させる。線形関数は次に式に従う。 taudioplayerclock=l・tDAC time source+b ここでbは、シーケンスの再生が開始したとき、taudioplayerclockとなるよ うにセットされる。これは、クロックのSetTime関数を用いて達成される。 スレーブとしてのオーディオプレイヤー オーディオプレイヤーは外部クロックに同期させることができる。この場合、 オーディオプレイヤーは、スピーカーにより再生するサンプルが外部クロックの 現在時間に対応するようにしなければならない。たとえば、所定の時点で外部ク ロックオブジェクトの現在時間が2秒の場合、それ故、オーディオシーケンスに ついて、44,100サンプル速度と想定してオーディオシーケンス中の88,200番目の サンプルが、スピーカーにより再生する時点とならなければならない。この処理 は以下のように達成される。オーディオプレイヤーは、DACから、オーディオデ ータがさらに必要であると指示するDACからの割込み要求(interruput)を待つ 。このプレイヤーはそのクロックの現在時間を調べ再生速度のスピードアップま たはスローダウン、さもなくば、正しいサンプルをスピーカーから再生できるよ うにオーディオシーケンス中の新しい位置へジャンプする必要があるかを決定す る。オーディオシーケンスサンプルの速度をサンプル出力前のDACのサンプル速 度に変換するためにはデジタル処理のアルゴリズムを用いる。 好適実施例に従って、オーディオプレイヤーの従属に関連する詳細論理を第27 図に示す。処理は2700で始まり、ここでDACの割込み要求が発生するまで待機状 態が入力される。DACの割込み要求が発生すると、制御は機能ブロック2710に進 み、ここでクロック時間が得られる。次に、機能ブロック2720でDACに対するク ロック速度が計算され、テストが2730で実行されてクロック速度が高すぎるか判 定される。もし、であれ ば、次に、クロック速度が最高速度にセットされる。もし、そうでないときは、 機能ブロック2750で所望の位置が計算される。機能ブロック2750は、その処理は 問題を含んでいるので、より一層の説明を要する。それはオーディオストリーム の所望の位置の計算である。この位置はプレイヤーが出力する次のサンプルを定 める。この値の計算は、DACによりもたらされるディレイ故に重要である。プレ イヤーはDACにサンプルを出力するとそれはDAC内部のバッファに入れられる。サ ンプルはDACのバッファのこれまでの全サンプルが空になるまで、スピーカーで 再生されない。幸いにもこのディレイは計算することができる。それは、 DACのディレイ =<DAC内部バッファ内のサンプル数>/DACのサンプル速度 オーディオシーケンスサンプルはクロック速度により定まる速度で出力される 。これはDACのクロック位置に比例した外部クロックから導き出される。所望の 位置を決定するために、DACのディレイは減じられるが、そうする前に、オーデ ィオストリームのタイムベースへそれ変換しなければならない。これは次のよう になされる。 オーディオシーケンスのディレイ(delayaudio sequence) =(DACのディレイ(delayDAC)・クロック速度(clockRate) オーディオストリームの所望の位置は次のように計 算される。 所望の位置(desiredPosition) =<シーケンス内の次のサンプルの位置> −オーディオのディレイ(delayaudio sequence) 次に、判定ブロック2760で所望の位置が実際の位置と比較され、それが実際の 位置から離れすぎているかが判定される。もし、そうであれば、機能ブロック27 70でオーディオシーケンスは所望の位置へシークされる。いずれのケースにおい ても、次に、機能ブロック2780でサンプルはオーディオストリームから読出され 、クロック速度に変換され、出力バッファに書込まれる。 グラフィックプレイヤーの実施 グラフィックシーケンスオブジェクトはグラフィックオブジェクトの集積であ る。グラフィックシーケンス内のブラフィックオブジェクトはデジタル化された ビデオフレーム、レンダリングされたアニメーションフレーム、さもなくば時間 関連の他のグラフィックオブジェクトであろう。グラフィックシーケンスは格納 および検索のための個々のグラフィックをアクセスさせるメンバー関数を持つ。 各グラフィックは、持続時間を持ち、それ故、シーケンスはグラフィックオブジ ェクト構成要素の持続時間の合計となる持続時間を 持つ。グラフィックシーケンスも、また、個々のグラフィックオブジェクトに対 してそのシーケンスの中で時間をマッピングするメンバー関数を与える。各グラ フィックオブジェクトの持続時間を下のフレームで表した日の出のイメージのシ ーケンスの例を第28図に示す。 グラフィックプレイヤーはグラフィックシーケンスをそのグラフィック出力ポ ート、それは、グラフィックインプットポートと接続されているが、そのグラフ ィックポートを通して、再生する。プレイヤーは他のクロックを(マスターとし て)駆動するか、または(スレーブとして)駆動される。プレイヤーはそのクロ ック上の時間に応じてグラフィックシーケンスの中のグラフィックオブジェクト を順序付ける。クロックは時間0からグラフィックが再生される持続時間に相当 する時間までの範囲に制限される。プレイヤーは現在のフレームのクロック上の 持続時間が経過するまでディレイする。プレイヤーは次に、クロック上の現在時 間をチェックし、時間をマッピングし、グラフィックオブジェクトを出力ポート に書込むシーケンスの中のグラフィックオブジェクトを取得する。 プレイヤーは常時クロック上の現在時間を、出力ポートに書込みすべきグラフ ィックオブジェクトが選択されたときに、使用する。これによりもし、動作がス ローであるときに、自動的に低下を実現できる。も し、書込みのグラフィックオブジェクトがその持続時間よりも長い時間を要する 場合、1以上のフレームが効果的にスキップされる。クロックの方の変化も同様 である。グラフィックプレイヤーに関連の詳細論理を第29図のフローチャートに 示す。処理はターミナル2900で始まり、直ちに、機能ブロック2910に進み、次の グラフィックオブジェクトのための時間までディレイ処理を入れる。ディレイの 後、クロック時間が機能ブロック2920で取得され、グラフィックオブジェクトが 機能ブロック2930で出力ポートに書込まれる。テストが機能ブロック2940で実行 されてストップメンバー関数が呼び出されたかが判定される。もしそうであれば 、処理はターミナル2960で終了する。そうでなければテストが機能ブロック2950 で実行されて、最後のフレームがおよびクロックがスレーブとなっていないかが 判定される。そうでなければ制御は機能ブロック2910に進み、そうであれば処理 はターミナル2960で終了する。 なお、プレイヤーのクロックが別のクロックに同期している場合、そのため、 プレイヤーが明らかに停止するまで表示処理のループを実行し続けることに注意 されたい。けれども、もし、クロックが同期していない場合、シーケンスの中の 最後のグラフィックが書込まれると、ループは終了する。 MIDIプレイヤーの実施 ミディ(midi)シーケンスオブジェクトはMIDIイベントの集積である。そのメ ンバー関数は再生を制御し、MIDIイベントの時間上のトラックにアクセスする。 MIDIシーケンスおよびMIDIトラックのフォーマットを第30図に示す。 MIDIプレイヤーは出力ポートすなわち、MIDIシンセサイザーの最終的な出力の ためのMIDIドライバーのそれを含むいずれの入力ポートと接続できる出力ポート を通じてミディ(midi)シーケンスを再生する。プレイヤーはソフトウェアクロ ックに従ってイベントを出力するとそれらが電流になる。ホストプロセッサが遅 くなるならば処理は時間の流れの前進および後進の双方で適切に実行し、減少方 針を考慮に入れる。第31図はドライバーからシンセサイザーまでを通じてシーケ ンスを再生するMIDIプレイヤーを示す。 MIDIプレイヤーは同期の関係においてスレーブまたはマスターあるいは双方と してベースクラスのタイムベースメディアプレイヤーから継承したSyncToおよび SyncToSelfのメンバー関数を使用することによりその役目を果たすことができる 。実施の詳細は変化がなく、2つの特別ケースを持つ時間上のイベントループに 従う。第1の特別ケースは時間の方向切替えを取扱う。ディレイの終了の後、プ レイヤーは時間をチェッ クして特別ケースが発生したかを判定する第1の特別ケースはディレイが早いと きに生じる。これは、以下のフローチャートのメインループ中の最初の判定箇所 に示されている。検出されたときには、プレイヤーは方向を切替えるので、“次 ”は現在の反対となる。第2の特別ケースはプロセッサのオーバロードに関する 。ホストプロセッサがもはや続行できなくなると、減少方針が適用される。シー ケンスの最後が到着したときか、あるいは前者のケースのイベントの最後でまた は後者のケースのイベントの最初でプレイヤーは停止する。 MIDIプレイヤーの詳細化論理のフローチャートを第32図に示す。処理はターミ ナル3200で始まり、直ちに機能ブロック3210に進んで次のMIDIイベントまでディ レイに入る。次のMIDIイベントの実行用意ができると、機能ブロック3220でクロ ック時間が取得される。テストが判定ブロック3230で実行され、イベントが早い かどうかが判定される。もし、そうであれば方向が切替えられ、制御は機能ブロ ック3210に進む。もし、そうでなければ次に、別のテストが判定ブロック3242で 実行され、イベントが遅いかどうかが判定される。もし、イベントが遅い場合、 次に、減少処理がキャッチアップに適用され、制御は機能ブロック3210に戻る。 もし、イベントが遅くはない場合、イベントは機能ブロック3260で出力され、テ ストが判定ブロック 3270で実行されイベントの最後が完了し、およびクロックオブジェクトがスレー ブとなっていないかが判定される。もし、イベントの最後が完了し、クロックは スレーブとなっていない場合、次に処理はターミナル3280で終了する。多くのイ ベントがある場合、制御は機能ブロック3210に進み、次のイベントを処理する。 表示画面 第33図から第37図までは好適実施例に従った表示画面の図である。第33図は何 もないデスクトップ画面、すなわち、ユーザーがソフトウェアクロックの定義お よびそれとマルチメディアオブジェクトとの同期を開始するデスクトップ画面で ある。第34図は好適実施例における選択クロックオブジェクト定義画面の図であ る。ユーザーはクロックオブジェクト定義を符号3410のメニューバーから選択す る。特に、クロックメニューアイテム3420が第1図に示すマウスおよび符号3420 の図形に示すようなプルダウンメニューを使用して選択される。第35図は、好適 実施例において、第34図に示されるメニュー選択を使用する種々のクロックオブ ジェクトおよび定義されたマルチメディアオブジェクトの図である。 実際のマルチメディアプレゼンテーションにおいて 現れるような、スライドバーオブジェクト3510、ジョブ/シャトルコントローラ 3520、クロックオブジェクト3530およびアニメーションマルチメディアオブジェ クト3540が全て示されている。 第36図は、好適実施例における互いにリンクした種々のクロックオブジェクト およびマルチメディアオブジェクトを示す。カーソルを線分のようなゴムバンド の幾何学図形にカーソルを合わせ、クロックオブジェクト3610を別のクロック36 20に結合するかまたはマルチメディアオブジェクト3630および3640に結合してリ ンクが作成される。 第37図は好適実施例に従ってオーディオオブジェクトと同期するビジュアルオ ブジェクトを示す図である。ビジュアルクロックオブジェクト3710がオーディオ クロックオブジェクト3720に同期してアニメーションマルチメディアオブジェク ト3730により示されるミュージックおよび表示の関連マルチメディアプレゼンテ ーションを制御する。
【手続補正書】特許法第184条の8 【提出日】1995年3月20日 【補正内容】 請求の範囲 1.表示器上でのマルチメディアプレゼンテーションをコンピュータのメモリ( 14,20)内で、オブジェクト指向アプリケーションプログラムのオブジェクトと して管理し、表示し、前記マルチメディアプレゼンテーションはテキスト、オー ディオMIDIおよびグラフィックデータを含む装置において、 前記メモリ内に現在時間を格納するクロックオブジェクト(1500,2400〜2499 )と、 前記メモリ内に内在する複数のメディアプレイヤーオブジェクト(200,300,90 0,1020,150,,1510,1520,1610,3540,3520,3730)であって、前記メディアプレイ ヤーオブジェクトの各々はマスターコントロール信号に応答する関連プレイヤー クロック手段(800)であって、再生位置を示すプレイヤーの時間値、再生に関 する情報を発生し、該情報は複数のセクション(820)としてアレンジされ、前 記複数のセクションの各々は特異なプレイヤー時間値(800)に対応する関連プ レイヤークロック手段および前記プレイヤー時間値に対しておよび前記プレイヤ ーの時間値に対応の複数のディジタル情報セクションの再生の1つに関する情報 に対して応答する手段を有する複数のメディアプレイヤーオブジェクトと、 前記メディアプレイヤーオブジェクトおよび前記ク ロックオブジェクトを前記表示器38上で表示する表示手段と、 前記複数のプレイヤークロック手段(2400〜2499)の各々、すなわち、前記複 数のプレイヤークロック手段(1510〜1520)の各々の前記プレイヤー時間値が、 複数のプレイヤークロック手段(1500)の別のものの時間値に相対して、および 前記情報セクションを再生するための前記クロックオブジェクトの前記現在時間 に相対して調整可能な速度で変化するような複数のプレイヤークロック手段(24 00〜2499)の各々についてのマスターコントロール信号を発生する前記マルチメ ディアプレイヤーオブジェクトの各々に関連する前記現在時間(300)およびプ レイヤー時間値(510,2440,2720)に応答する手段と を具えたことを特徴とする装置。 2.アイコン操作を通じて同期を開始する手段を有することを特徴とする請求の 範囲第1項に記載のシステム。 3.前記メディアプレイヤーオブジェクトはオーディオサウンドを発生するため のデジタルサウンド情報に応答するオーディオオブジェクトを含むことを特徴と する請求の範囲第1項に記載のシステム。 4.前記メディアプレイヤーオブジェクトはオーディオサウンドを発生するため のデジタルサウンド情報に応答するMIDIオブジェクトを含み、前記同期手段は複 数の前記メディアプレイヤーオブジェクトの各々および前記クロックオブジェク トを持つMIDIオブジェクトを前記クロックオブジェクトに同期させる手段を含む ことを特徴とする請求の範囲第1項に記載のシステム。 5.前記メディアプレイヤーオブジェクトは、前記表示器上でイメージを発生す るためのグラフィック情報に応答するグラフィックオブジェクトを含み、前記同 期手段は前記複数のメディアプレイヤーオブジェクトの各々および前記グラフィ ックオブジェクトを前記クロックオブジェクトに同期させる手段を含むことを特 徴とする請求の範囲第1項に記載のシステム。 6.前記メディアプレイヤーオブジェクトは前記現在時間を変更するための入力 に応答するコントロールオブジェクトを含み、前記同期手段は前記複数のメディ アプレイヤーオブジェクトの各々およびジョグコントロールオブジェクトを前記 クロックオブジェクトに同期させる手段を含むことを特徴とする請求の範囲第1 項に記載のシステム。 7.カーソル位置およびボタン押下を介してコントロールオブジェクトを調整す る手段を含むことを特徴とする請求の範囲第6項に記載のシステム。 8.前記コントロールオブジェクトの操作に基づき、現在時間を前進または後進 させる外部手段を含むことを特徴とする請求の範囲第6項に記載のシステム。 9.前記複数のメディアプレイヤーオブジェクトの少なくとも1つは前記コンピ ュータに対して外部にあることを特徴とする請求の範囲第1項に記載のシステム 。 10.表示器上でのマルチメディアプレゼンテーションをコンピュータのメモリ( 14,20)内で、オブジェクト指向アプリケーションプログラムのオブジェクトと して管理し、表示し、前記マルチメディアプレゼンテーションはテキスト、オー ディオMIDIおよびグラフィックデータを含む方法において、 前記メモリ(14,20)内に内在する現在時間(300)に関連するクロックオブジ ェクト(1500,2400〜2499)を作成するステップと、 前記メモリ内に内在する複数のメディアプレイヤーオブジェクトの各々を発生 するステップであって、前記メディアプレイヤーの各々は、マスターコントロー ル信号を受け取るための、および前記マスターコントロール信号に基づいて再生 位置(810)を表わすプレイヤー時間値を発生するための関連プレイヤークロッ ク(800)、再生のための複数セクションにアレンジされた情報および前記プレ イヤー時間値に対応する複数セクションの1つを再生するメカニズムを有してい るステップと、 前記プレイヤークロック(1510〜1520)の別の前記プレイヤー時間値に相対し 、および前記情報を再生するための前記クロックオブジェクトの前記現在時間( 300)に相対したプログラムされた速度で前記複数のプレイヤークロックが変化 するような複数のプレイヤークロック(2400〜2499)の各々のためのマスターコ ントロール信号を発生することにより複数のメディアプレイヤーを互いに、およ び前記クロックオブジェクトに同期させるステップとを具えたことを特徴とする 方法。 11.前記複数のメディアプレイヤーオブジェクトの各々を前記クロックオブジェ クトに同期させるステップを有することを特徴とする請求の範囲第10項に記載の 方法。 12.前記複数のメディアプレイヤーオブジェクトの少なくとも一つはコンピュー タに対して外部にあること を特徴とする請求の範囲第10項に記載の方法。 13.前記クロックオブジェクトを前記表示器上に表示し、前記表示器上に前記複 数のメディアプレイヤーオブジェクトの少なくとも1つを表示し、幾何学図形を 介して前記表示器上の前記クロックオブジェクトおよび前記メディアプレイヤー オブジェクトを結合することにより、前記表示されたクロックオブジェクトを前 記複数のメディアプレイヤーオブジェクトの少なくとも1つにリンクさせるステ ップを含むことを特徴とする請求の範囲第10項に記載の方法。 14.前記メディアプレイヤーオブジェクトは前記現在時間を変化させるための入 力に応答するコントロールオブジェクトを含み、前記同期手段は複数のメディア プレイヤーオブジェクトの各々および前記ジョグコントロールオブジェクトを前 記クロックオブジェクトに同期させるステップを有することを特徴とする請求の 範囲第10項に記載の方法。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI G06F 17/00 9168−5L G06F 15/20 Z 17/30 9168−5L 15/21 Z 17/60 9194−5L 15/40 370G H04N 5/265 9194−5L 15/401 320B 9469−5E 1/04 351Z (81)指定国 EP(AT,BE,CH,DE, DK,ES,FR,GB,GR,IE,IT,LU,M C,NL,PT,SE),OA(BF,BJ,CF,CG ,CI,CM,GA,GN,ML,MR,NE,SN, TD,TG),AT,AU,BB,BG,BR,BY, CA,CH,CN,CZ,DE,DK,ES,FI,G B,HU,JP,KP,KR,KZ,LK,LU,LV ,MG,MN,MW,NL,NO,NZ,PL,PT, RO,RU,SD,SE,SK,UA,UZ,VN (72)発明者 チンデル,ジェイムズ,マイケル アメリカ合衆国 94020 カリフォルニア 州 ラ ホンダ ピー.オー.ボックス 243 (72)発明者 トブラス,ジョン,チルコット アメリカ合衆国 94087 カリフォルニア 州 サニーベイル アリソン ウエイ 819 (72)発明者 ディルツ,マイケル,ラッセル アメリカ合衆国 95070 カリフォルニア 州 サラトガ ベイラー アベニュ 18430 (72)発明者 エデルマン,ブラッドレイ,アラン アメリカ合衆国 95014 カリフォルニア 州 クパチーノ ホームステッド ロード 20800 ナンバー 32イー 【要約の続き】 ジェクトを操作することができる。

Claims (1)

  1. 【特許請求の範囲】 1.マルチメディアプレゼンテーションのためのコンピュータシステムであって 、 (a)記憶装置と (b)ディスプレイと (c)前記記憶装置の中に内蔵され、関連の現在時間を持ち、前記ディスプレ イ上に表示可能なクロックオブジェクトと、 (d)前記記憶装置の中に内蔵され、前記ディスプレイ上に表示可能な複数の マルチメディアオブジェクトと、 (e)前記マルチメディアオブジェクトを前記クロックオブジェクトに同期さ せるプロセッサと を具えたことを特徴とするコンピュータシステム。 2.アイコン操作を通じて同期を開始する手段を有することを特徴とする請求の 範囲第1項に記載のシステム。 3.前記クロックオブジェクト上でダブルクリックにより同期を開始する手段を 有することを特徴とする請求の範囲第2項に記載のシステム。 4.同期をドロップ起動する手段を有することを特徴 とする請求の範囲第2項に記載のシステム。 5.前記複数のマルチメディアプロジェクトを前記クロックオブジェクトに同期 させることを特徴とする請求の範囲第1項に記載のシステム。 6.複数のクロックオブジェクトを単一のクロックオブジェクトに同期させる手 段を有することを特徴とする請求の範囲第1項に記載のシステム。 7.同期の粒状度を調整する手段を有することを特徴とする請求の範囲第1項に 記載のシステム 8.前記現在時間を取得する外部手段を有することを特徴とする請求の範囲第1 項に記載のシステム。 9.前記現在時間を取得する複数の外部手段を有することを特徴とする請求の範 囲第1項に記載のシステム。 10.前記現在時間を強制的に後進させる手段を有することを特徴とする請求の範 囲第1項に記載のシステム。 11.前記クロックオブジェクトは複数のアドレスス ペースを拡大可能であることを特徴とする請求の範囲第1項に記載のシステム。 12.前記ディスプレイ上で2つの前記オブジェクトを連結する幾何学図形を通し て前記クロックオブジェクトを前記マルチメディアオブジェクトにリンクさせる ステップを有することを特徴とする請求の範囲第1項に記載のシステム。 13.前記幾何学図形は直線の線分であることを特徴とする請求の範囲第12項に記 載のシステム。 14.記憶装置およびディスプレイを有するコンピュータ上でマルチプレゼンテー ションを同期させる方法において、 (a)前記記憶装置に内蔵する現在時間と関連し、前記ディスプレイ上に表示 可能なクロックオブジェクトを作成するステップと、 (b)前記記憶装置に内蔵し、前記ディスプレイに表示可能な複数のマルチメ ディアオブジェクトを作成するステップと、 (c)前記複数のマルチメディアオブジェクトの少なくとも1つを前記クロッ クオブジェクトに同期させるステップと を具えたことを特徴とする方法。 15.アイコン操作を通じて同期を開始するステップを有することを特徴とする請 求の範囲第14項に記載の方法。 16.前記クロックオブジェクト上でダブルクリックにより同期を開始するステッ プを有することを特徴とする請求の範囲第15項に記載の方法。 17.同期をドロップ起動するステップを有することを特徴とする請求の範囲第15 項に記載の方法。 18.前記複数のマルチメディアプロジェクトを前記クロックオブジェクトに同期 させるステップを有することを特徴とする請求の範囲第14項に記載の方法。 19.複数のクロックオブジェクトを単一のクロックオブジェクトに同期させるス テップを有することを特徴とする請求の範囲第14項に記載の方法。 20.同期の粒状度を調整するステップを有することを特徴とする請求の範囲第14 項に記載の方法。 21.前記現在時間を外部装置から取得するステップを有することを特徴とする請 求の範囲第14項に記載の方法。 22.前記現在時間を得るために複数の外部タイムソースを問いただすステップを 有することを特徴とする請求の範囲第14項に記載の方法。 23.前記現在時間を強制的に後進させるステップを有することを特徴とする請求 の範囲第14項に記載の方法。 24.前記クロックオブジェクトは複数のアドレススペースを拡大可能であること を特徴とする請求の範囲第14項に記載の方法。 25.前記ディスプレイ上で2つの前記オブジェクトを連結する幾何学図形を通し て前記クロックオブジェクトを前記マルチメディアオブジェクトにリンクさせる ステップを有することを特徴とする請求の範囲第14項に記載の方法。 26.前記幾何学図形は直線の線分であることを特徴とする請求の範囲第25項に記 載の方法。
JP52538294A 1993-05-10 1994-01-06 マルチメディア同期システム Expired - Lifetime JP3599738B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6077193A 1993-05-10 1993-05-10
US08/060,771 1993-05-10
PCT/US1994/000141 WO1994027234A1 (en) 1993-05-10 1994-01-06 Multimedia synchronization system

Publications (2)

Publication Number Publication Date
JPH08510344A true JPH08510344A (ja) 1996-10-29
JP3599738B2 JP3599738B2 (ja) 2004-12-08

Family

ID=22031643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52538294A Expired - Lifetime JP3599738B2 (ja) 1993-05-10 1994-01-06 マルチメディア同期システム

Country Status (8)

Country Link
US (1) US5553222A (ja)
EP (1) EP0695446B1 (ja)
JP (1) JP3599738B2 (ja)
CN (1) CN1109695A (ja)
AU (1) AU5992094A (ja)
CA (1) CA2139386A1 (ja)
DE (1) DE69405388T2 (ja)
WO (1) WO1994027234A1 (ja)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689641A (en) 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US7185054B1 (en) 1993-10-01 2007-02-27 Collaboration Properties, Inc. Participant display and selection in video conference calls
US6594688B2 (en) 1993-10-01 2003-07-15 Collaboration Properties, Inc. Dedicated echo canceler for a workstation
US5577258A (en) * 1994-07-13 1996-11-19 Bell Communications Research, Inc. Apparatus and method for preprocessing multimedia presentations to generate a delivery schedule
KR0138845B1 (ko) * 1994-12-13 1998-06-01 양승택 엠핵(mheg)엔진에서의 멀티미디어 정보 동기 제어기 및 그 제어방법
GB2298951B (en) * 1995-03-17 1999-10-27 Olivetti Res Ltd Addition of time information
IL114432A (en) * 1995-07-03 1999-08-17 Wiernik Ady Multi-media method
JP3471526B2 (ja) * 1995-07-28 2003-12-02 松下電器産業株式会社 情報提供装置
US5764241A (en) * 1995-11-30 1998-06-09 Microsoft Corporation Method and system for modeling and presenting integrated media with a declarative modeling language for representing reactive behavior
US6125236A (en) * 1995-12-05 2000-09-26 Intel Corporation Method and apparatus for providing user control of multimedia parameters
US5805118A (en) * 1995-12-22 1998-09-08 Research Foundation Of The State Of New York Display protocol specification with session configuration and multiple monitors
IL117133A (en) 1996-02-14 1999-07-14 Olivr Corp Ltd Method and system for providing on-line virtual reality movies
US5889519A (en) * 1996-03-26 1999-03-30 International Business Machines Corp. Method and system for a multimedia application development sequence editor using a wrap corral
US6898620B1 (en) 1996-06-07 2005-05-24 Collaboration Properties, Inc. Multiplexing video and control signals onto UTP
US6064379A (en) * 1996-06-24 2000-05-16 Sun Microsystems, Inc. System and method for synchronizing presentation of media stream playlists with real time
US5920325A (en) * 1996-11-20 1999-07-06 International Business Machines Corporation Prioritization of background display during animation
US5889515A (en) * 1996-12-09 1999-03-30 Stmicroelectronics, Inc. Rendering an audio-visual stream synchronized by a software clock in a personal computer
US6262776B1 (en) 1996-12-13 2001-07-17 Microsoft Corporation System and method for maintaining synchronization between audio and video
US5968120A (en) * 1997-05-02 1999-10-19 Olivr Corporation Ltd. Method and system for providing on-line interactivity over a server-client network
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US6253207B1 (en) * 1997-09-25 2001-06-26 Lucent Technologies Inc. Method and apparatus for transporting multimedia information over heterogeneous wide area networks
WO1999026228A1 (en) * 1997-11-18 1999-05-27 Tridium Research, Inc. Method and apparatus for phase-locking a plurality of display devices and multi-level driver for use therewith
US6317760B1 (en) 1998-01-14 2001-11-13 Microsoft Corporation Extensible ordered information within a web page
US6697632B1 (en) 1998-05-07 2004-02-24 Sharp Laboratories Of America, Inc. Multi-media coordinated delivery system and method
US6349286B2 (en) * 1998-09-03 2002-02-19 Siemens Information And Communications Network, Inc. System and method for automatic synchronization for multimedia presentations
US6976208B1 (en) * 1998-11-03 2005-12-13 International Business Machines Corporation Progressive adaptive time stamp resolution in multimedia authoring
US6178403B1 (en) 1998-12-16 2001-01-23 Sharp Laboratories Of America, Inc. Distributed voice capture and recognition system
US6351736B1 (en) * 1999-09-03 2002-02-26 Tomer Weisberg System and method for displaying advertisements with played data
AU2001271951A1 (en) * 2000-07-18 2002-01-30 Shape Of Time, Inc. Method and system for real-time cross-protocol multi-media control
FR2812957B1 (fr) * 2000-08-14 2003-01-31 Cit Alcatel Procede de memorisation de donnees dans un fichier multimedia utilisant des bases de temps relatives
JP2002232807A (ja) * 2001-02-07 2002-08-16 Nec Corp 複数メディア連動システム及びその連動方法
US7064766B2 (en) 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
US7619633B2 (en) 2002-06-27 2009-11-17 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7443401B2 (en) * 2001-10-18 2008-10-28 Microsoft Corporation Multiple-level graphics processing with animation interval generation
US6919891B2 (en) 2001-10-18 2005-07-19 Microsoft Corporation Generic parameterization for a scene graph
US7391791B2 (en) * 2001-12-17 2008-06-24 Implicit Networks, Inc. Method and system for synchronization of content rendering
US7260257B2 (en) * 2002-06-19 2007-08-21 Microsoft Corp. System and method for whiteboard and audio capture
JP2004094618A (ja) * 2002-08-30 2004-03-25 Fujitsu Ltd コンテンツ配信方法及びそのシステム
US7088374B2 (en) * 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7486294B2 (en) * 2003-03-27 2009-02-03 Microsoft Corporation Vector graphics element-based model, application programming interface, and markup language
US7466315B2 (en) * 2003-03-27 2008-12-16 Microsoft Corporation Visual and scene graph interfaces
US7417645B2 (en) * 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US10613817B2 (en) 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US8020023B2 (en) 2003-07-28 2011-09-13 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US7511718B2 (en) * 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
JP4342356B2 (ja) * 2004-03-22 2009-10-14 任天堂株式会社 ゲームシステム、ゲーム装置、およびゲームプログラム
US9374607B2 (en) 2012-06-26 2016-06-21 Sonos, Inc. Media playback system with guest access
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
CN100369406C (zh) * 2004-04-28 2008-02-13 温州天鹰科技有限公司 智能数字网络语言学习系统
US8797926B2 (en) 2004-06-04 2014-08-05 Apple Inc. Networked media station
US8443038B2 (en) 2004-06-04 2013-05-14 Apple Inc. Network media device
US10972536B2 (en) 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US20070110074A1 (en) * 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US7440474B1 (en) * 2004-09-15 2008-10-21 Avaya Inc. Method and apparatus for synchronizing clocks on packet-switched networks
DE102004051251B3 (de) 2004-10-21 2006-03-02 Thomas, Götz, Dipl.-Ing. Sternförmiger Dekorationsartikel sowie Zuschnitte und Verfahren zu seiner Herstellung
US7519845B2 (en) * 2005-01-05 2009-04-14 Microsoft Corporation Software-based audio rendering
US8015306B2 (en) * 2005-01-05 2011-09-06 Control4 Corporation Method and apparatus for synchronizing playback of streaming media in multiple output devices
US7378540B2 (en) * 2005-10-21 2008-05-27 Catalytic Distillation Technologies Process for producing organic carbonates
US20080282052A1 (en) * 2005-11-18 2008-11-13 Xiang Ma Operating Media Devices in Pre-Os Environment
US7559027B2 (en) * 2006-02-28 2009-07-07 Palm, Inc. Master multimedia software controls
US20080036911A1 (en) * 2006-05-05 2008-02-14 Robert Noory Method and apparatus for synchronizing a graphics signal according to a reference signal
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US12167216B2 (en) 2006-09-12 2024-12-10 Sonos, Inc. Playback device pairing
JP5255196B2 (ja) * 2006-10-19 2013-08-07 任天堂株式会社 ゲーム機、無線モジュール、ゲームシステムおよびゲーム処理方法
US8212805B1 (en) 2007-01-05 2012-07-03 Kenneth Banschick System and method for parametric display of modular aesthetic designs
US8321593B2 (en) * 2007-01-08 2012-11-27 Apple Inc. Time synchronization of media playback in multiple processes
US20090010283A1 (en) * 2007-07-03 2009-01-08 Arcadyan Technology Corporation Synchronization method of electronic apparatuses
KR100907531B1 (ko) * 2007-10-01 2009-07-14 한국전자통신연구원 Smmd 기반 미디어 서비스를 위한 미디어와 멀티디바이스 동기 제어 시스템 및 방법
US8639830B2 (en) * 2008-07-22 2014-01-28 Control4 Corporation System and method for streaming audio
US8139489B2 (en) * 2008-08-06 2012-03-20 International Business Machines Corporation Robust jitter-free remote clock offset measuring method
DE102009028645B4 (de) * 2009-08-19 2014-04-03 Raumfeld Gmbh Verfahren und Anordnung zur Synchronisation von Datenströmen in Netzwerken sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
CN102045217B (zh) * 2009-10-22 2014-12-10 中国移动通信集团公司 多媒体业务质量监控方法及系统
US8533355B2 (en) 2009-11-02 2013-09-10 International Business Machines Corporation Techniques for improved clock offset measuring
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US9563971B2 (en) 2011-09-09 2017-02-07 Microsoft Technology Licensing, Llc Composition system thread
US9344292B2 (en) 2011-12-30 2016-05-17 Sonos, Inc. Systems and methods for player setup room names
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
US20140149606A1 (en) * 2012-11-23 2014-05-29 Samsung Electronics Co., Ltd. Server, multimedia apparatus and control method thereof for synchronously playing multimedia contents through a plurality of multimedia devices
US9510055B2 (en) 2013-01-23 2016-11-29 Sonos, Inc. System and method for a media experience social interface
KR102145742B1 (ko) 2013-06-12 2020-08-19 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
CN104464767B (zh) * 2013-09-17 2018-03-20 惠州超声音响有限公司 同步多个播放装置的音频播放的方法及音频播放系统
WO2015046919A1 (en) * 2013-09-27 2015-04-02 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals
US9654545B2 (en) 2013-09-30 2017-05-16 Sonos, Inc. Group coordinator device selection
US9288596B2 (en) 2013-09-30 2016-03-15 Sonos, Inc. Coordinator device for paired or consolidated players
US9720576B2 (en) 2013-09-30 2017-08-01 Sonos, Inc. Controlling and displaying zones in a multi-zone system
US20150095679A1 (en) 2013-09-30 2015-04-02 Sonos, Inc. Transitioning A Networked Playback Device Between Operating Modes
US9300647B2 (en) 2014-01-15 2016-03-29 Sonos, Inc. Software application and zones
US20150220498A1 (en) 2014-02-05 2015-08-06 Sonos, Inc. Remote Creation of a Playback Queue for a Future Event
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9679054B2 (en) 2014-03-05 2017-06-13 Sonos, Inc. Webpage media playback
US10587693B2 (en) 2014-04-01 2020-03-10 Sonos, Inc. Mirrored queues
US20150324552A1 (en) 2014-05-12 2015-11-12 Sonos, Inc. Share Restriction for Media Items
US20150356084A1 (en) 2014-06-05 2015-12-10 Sonos, Inc. Social Queue
US9874997B2 (en) 2014-08-08 2018-01-23 Sonos, Inc. Social playback queues
US9667679B2 (en) 2014-09-24 2017-05-30 Sonos, Inc. Indicating an association between a social-media account and a media playback system
US10645130B2 (en) 2014-09-24 2020-05-05 Sonos, Inc. Playback updates
WO2016049329A1 (en) 2014-09-24 2016-03-31 Sonos, Inc. Social media queue
US9959087B2 (en) 2014-09-24 2018-05-01 Sonos, Inc. Media item context from social media
WO2016049342A1 (en) 2014-09-24 2016-03-31 Sonos, Inc. Social media connection recommendations based on playback information
US9723038B2 (en) 2014-09-24 2017-08-01 Sonos, Inc. Social media connection recommendations based on playback information
US9860286B2 (en) 2014-09-24 2018-01-02 Sonos, Inc. Associating a captured image with a media item
US9690540B2 (en) 2014-09-24 2017-06-27 Sonos, Inc. Social media queue
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US10303422B1 (en) 2016-01-05 2019-05-28 Sonos, Inc. Multiple-device setup
US9886234B2 (en) 2016-01-28 2018-02-06 Sonos, Inc. Systems and methods of distributing audio to one or more playback devices
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
US11297369B2 (en) 2018-03-30 2022-04-05 Apple Inc. Remotely controlling playback devices
US10993274B2 (en) 2018-03-30 2021-04-27 Apple Inc. Pairing devices by proxy
US10783929B2 (en) 2018-03-30 2020-09-22 Apple Inc. Managing playback groups
US10614857B2 (en) 2018-07-02 2020-04-07 Apple Inc. Calibrating media playback channels for synchronized presentation
US12549945B2 (en) 2020-09-25 2026-02-10 Sonos, Inc. Intelligent setup for playback devices

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59116787A (ja) * 1982-12-24 1984-07-05 株式会社日立製作所 デイスプレイ表示方式
US4641253A (en) * 1984-06-06 1987-02-03 Maximus, Inc. Process for synchronizing computer video with independent audio
US4893256A (en) * 1986-04-04 1990-01-09 International Business Machines Corporation Interactive video composition and presentation systems
US4792949A (en) * 1987-03-26 1988-12-20 Siemens Transmission Systems, Inc. Service channel circuit for multiplexed telecommunications transmission systems
US4987492A (en) * 1987-09-28 1991-01-22 Stults Robert A User interface control for communication system
JP2602847B2 (ja) * 1987-09-29 1997-04-23 株式会社日立製作所 マルチメディアメールシステム
JP3002471B2 (ja) * 1988-08-19 2000-01-24 株式会社日立製作所 番組配信装置
US5033804A (en) * 1990-02-12 1991-07-23 Faris Sadeg M Multimedia workstation
US5170252A (en) * 1990-04-09 1992-12-08 Interactive Media Technologies, Inc. System and method for interconnecting and mixing multiple audio and video data streams associated with multiple media devices
US5307456A (en) * 1990-12-04 1994-04-26 Sony Electronics, Inc. Integrated multi-media production and authoring system
US5333299A (en) * 1991-12-31 1994-07-26 International Business Machines Corporation Synchronization techniques for multimedia data streams
US5339413A (en) * 1992-08-21 1994-08-16 International Business Machines Corporation Data stream protocol for multimedia data streaming data processing system

Also Published As

Publication number Publication date
CA2139386A1 (en) 1994-11-24
EP0695446B1 (en) 1997-09-03
CN1109695A (zh) 1995-10-04
DE69405388D1 (de) 1997-10-09
WO1994027234A1 (en) 1994-11-24
US5553222A (en) 1996-09-03
EP0695446A1 (en) 1996-02-07
JP3599738B2 (ja) 2004-12-08
DE69405388T2 (de) 1998-03-19
AU5992094A (en) 1994-12-12

Similar Documents

Publication Publication Date Title
JPH08510344A (ja) マルチメディア同期システム
US5680639A (en) Multimedia control system
US5655144A (en) Audio synchronization system
US5530859A (en) System for synchronizing a midi presentation with presentations generated by other multimedia streams by means of clock objects
USRE37418E1 (en) Method and apparatus for synchronizing graphical presentations
US7336280B2 (en) Coordinating animations and media in computer display output
US6421692B1 (en) Object-oriented multimedia [data routing system] presentation control system
CN101223555B (zh) 用于动画间的平滑过渡的方法和系统
KR100938036B1 (ko) 그래픽 표시 애니메이션 시스템, 표시 요소 애니메이션화 방법, 애니메이션 동작 적용 방법, 및 컴퓨터 판독가능 매체
US5511002A (en) Multimedia player component object system
EP0714530B1 (en) Object-oriented midi system
JP3378759B2 (ja) スペーサ・ツールを使用したマルチメディア・アプリケーション開発シーケンス・エディタのための方法およびシステム
JP3476462B2 (ja) 同期クロック及びメディアプレーヤー
EP0714531B1 (en) Object-oriented video system
US5544297A (en) Object-oriented audio record/playback system
JPH1031662A (ja) 同期ツールを使用したマルチメディア・アプリケーション開発シーケンス・エディタのための方法およびシステム
JPH1031663A (ja) 時間事象指定機能を使用したマルチメディア・アプリケーション開発シーケンス・エディタのための方法およびシステム
JPH08508596A (ja) ランタイム・ローダ
JPH08508355A (ja) 並行フレームワーク・システム
JPH08509824A (ja) 共同作業システム
HK1084755A (en) Coordinating animations and media in computer display output
JPH1031661A (ja) マルチメディア・アプリケーション開発シーケンス・エディタのための方法およびシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040915

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080924

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090924

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100924

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110924

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110924

Year of fee payment: 7

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D04

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120924

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130924

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term