JPH11259304A - プラグインメディアデコ―ダ供給方法及び装置 - Google Patents
プラグインメディアデコ―ダ供給方法及び装置Info
- Publication number
- JPH11259304A JPH11259304A JP10343526A JP34352698A JPH11259304A JP H11259304 A JPH11259304 A JP H11259304A JP 10343526 A JP10343526 A JP 10343526A JP 34352698 A JP34352698 A JP 34352698A JP H11259304 A JPH11259304 A JP H11259304A
- Authority
- JP
- Japan
- Prior art keywords
- data
- plug
- computer
- class
- component
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4437—Implementing a Virtual Machine [VM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/4143—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a Personal Computer [PC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
- H04N21/8193—Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
(57)【要約】 (修正有)
【課題】プラグイン・ソフトウェア・デコーダを実現す
る。 【解決手段】メディア・アプリケーションを形成するた
め、オブジェクト・ベースのクラスファイルによって実
施され、メディアデータタイプは入力されるメディアデ
ータから判定され、対応するコーデック・オブジェクト
のクラス名を生成する。クラス・ローダがインテグレー
ションのためそのクラスファイルをメディア・アプリケ
ーションにロードする。クラスファイルが仮想マシンに
ロードされると、メディアデータタイプに適合するよう
にメディアデータのデコーディング/デコンプレッショ
ンを行うため、コーデックのクラス・インスタンスが作
成される。
る。 【解決手段】メディア・アプリケーションを形成するた
め、オブジェクト・ベースのクラスファイルによって実
施され、メディアデータタイプは入力されるメディアデ
ータから判定され、対応するコーデック・オブジェクト
のクラス名を生成する。クラス・ローダがインテグレー
ションのためそのクラスファイルをメディア・アプリケ
ーションにロードする。クラスファイルが仮想マシンに
ロードされると、メディアデータタイプに適合するよう
にメディアデータのデコーディング/デコンプレッショ
ンを行うため、コーデックのクラス・インスタンスが作
成される。
Description
【0001】
【技術分野】本発明はオブジェクト指向コンピュータ・
アプリケーションに関するものであり、特にネットワー
ク・メディア・アプリケーションに関するものである。
アプリケーションに関するものであり、特にネットワー
ク・メディア・アプリケーションに関するものである。
【0002】本特許書類の開示の一部には著作権保護を
必要とする内容が含まれている。著作権の所有者は特許
・商標庁のファイルまたは記録に記載されている特許書
類または特許開示の何人によるファクシミリ再生につい
ても異議を申し立てるものではないが、ただし、その他
の場合にはいかなる場合であっても全ての著作権を保留
する。
必要とする内容が含まれている。著作権の所有者は特許
・商標庁のファイルまたは記録に記載されている特許書
類または特許開示の何人によるファクシミリ再生につい
ても異議を申し立てるものではないが、ただし、その他
の場合にはいかなる場合であっても全ての著作権を保留
する。
【0003】
【従来の技術】インターネット(Internet)及びワールド
・ワイド・ウェブ(World Wide Web)のメディア配布能力
に対する関心が高まることによって、オーディオ,ビデ
オ,及び他の形態のメディアのためにMPEG−1,M
PEG−2,QuickTime,H.261,PCM,AU,及
びMIDIといったさまざまなマルチメディア・データ
コンプレッション及びエンコーディング・フォーマット
又はメディアタイプが開発されることになった。インタ
ーネット又は他のネットワークからダウンロードされる
マルチメディアコンテンツを表現するために1つ以上の
こうしたメディアタイプをサポートするメディア・アプ
リケーションが利用可能である。メディア・アプリケー
ションの能力を高めるためにユーザ・マシンにプラグイ
ン・デコーダをインストールして、特定のメディアタイ
プのデコンプレッション/デコーディングを容易にする
場合が多い。
・ワイド・ウェブ(World Wide Web)のメディア配布能力
に対する関心が高まることによって、オーディオ,ビデ
オ,及び他の形態のメディアのためにMPEG−1,M
PEG−2,QuickTime,H.261,PCM,AU,及
びMIDIといったさまざまなマルチメディア・データ
コンプレッション及びエンコーディング・フォーマット
又はメディアタイプが開発されることになった。インタ
ーネット又は他のネットワークからダウンロードされる
マルチメディアコンテンツを表現するために1つ以上の
こうしたメディアタイプをサポートするメディア・アプ
リケーションが利用可能である。メディア・アプリケー
ションの能力を高めるためにユーザ・マシンにプラグイ
ン・デコーダをインストールして、特定のメディアタイ
プのデコンプレッション/デコーディングを容易にする
場合が多い。
【0004】不都合なことに、プラグイン・デコーダの
インストールはユーザ・コンピュータ・システムにプラ
グインをインストールするのに必要な保存資源の面で重
荷になる。また、ユーザは見つけにくい場合の多いプラ
グイン・デコーダの位置を突き止めて所定のフォーマッ
トのメディア・データを見る前にユーザ・コンピュータ
・システムにインストールすることが必要になる。した
がって、メディア・アプリケーションの有用性はユーザ
が収集したインストールされるプラグイン・デコーダに
よってサポートされるメディア・フォーマットに制限さ
れる。多数の現行メディアタイプが存在し新規のメディ
アタイプが絶えず流入してくるので、全てのタイプのプ
ラグイン・デコーダをインストールするのは不可能であ
る。現在のメディア・アプリケーションの欠点をより分
かりやすく示すため、下記では先行技術によるネットワ
ーク化マルチメディア環境のサンプルについて図1に関
連して説明を行うことにする。
インストールはユーザ・コンピュータ・システムにプラ
グインをインストールするのに必要な保存資源の面で重
荷になる。また、ユーザは見つけにくい場合の多いプラ
グイン・デコーダの位置を突き止めて所定のフォーマッ
トのメディア・データを見る前にユーザ・コンピュータ
・システムにインストールすることが必要になる。した
がって、メディア・アプリケーションの有用性はユーザ
が収集したインストールされるプラグイン・デコーダに
よってサポートされるメディア・フォーマットに制限さ
れる。多数の現行メディアタイプが存在し新規のメディ
アタイプが絶えず流入してくるので、全てのタイプのプ
ラグイン・デコーダをインストールするのは不可能であ
る。現在のメディア・アプリケーションの欠点をより分
かりやすく示すため、下記では先行技術によるネットワ
ーク化マルチメディア環境のサンプルについて図1に関
連して説明を行うことにする。
【0005】図1においてユーザ・コンピュータ・シス
テム100はネットワーク105を介してサーバ106
に結合されている。サーバ106にはさまざまなデータ
タイプ(例えば、JPEG,PCM,MPEG1,Cine
pak 等)のメディア・データ・ライブラリを格納した持
続型保存装置107が含まれる。メディア・データには
それぞれデータタイプJPEG,PCM,及びMPEG
1のデータファイル108,109,及び110が含ま
れている。
テム100はネットワーク105を介してサーバ106
に結合されている。サーバ106にはさまざまなデータ
タイプ(例えば、JPEG,PCM,MPEG1,Cine
pak 等)のメディア・データ・ライブラリを格納した持
続型保存装置107が含まれる。メディア・データには
それぞれデータタイプJPEG,PCM,及びMPEG
1のデータファイル108,109,及び110が含ま
れている。
【0006】ユーザ・コンピュータ・システム100に
はハード・ドライブのような持続型保存資源101と、
システムRAMのような一時的記憶空間における実行空
間103が含まれている。持続型保存(資源)101に
はそれぞれJPEG,PCM,及びH.261データタ
イプに対応するインストールされたプラグイン・デコー
ダ111,112,及び113を含むプラグイン・ライ
ブラリ102が納められている。実行スペース103に
はJPEGデータファイル108’,及びJPEGメデ
ィア・データのデコーディング/デコンプレッションを
行うためのプラグインJPEGデコーダ111’が納め
られている。
はハード・ドライブのような持続型保存資源101と、
システムRAMのような一時的記憶空間における実行空
間103が含まれている。持続型保存(資源)101に
はそれぞれJPEG,PCM,及びH.261データタ
イプに対応するインストールされたプラグイン・デコー
ダ111,112,及び113を含むプラグイン・ライ
ブラリ102が納められている。実行スペース103に
はJPEGデータファイル108’,及びJPEGメデ
ィア・データのデコーディング/デコンプレッションを
行うためのプラグインJPEGデコーダ111’が納め
られている。
【0007】JPEGデータファイル108’はサーバ
106からダウンロードされたデータファイル108の
コピーである。プラグイン・デコーダ111’はJPE
Gデータの処理に適応するため、持続型保存資源101
からロードされたJPEGデコーダ111のコピーであ
る。ユーザ・コンピュータ・システム100は持続型保
存資源101にJPEG,PCM,及びH.261デー
タタイプのためのプラグイン・デコーダだけしかインス
トールされていないので、メディア・アプリケーション
104はJPEG,PCM,及びH.261メディア・
データのいずれかの表現に制限される。例えば、持続型
保存資源101にはMPEG1メディア・データのデコ
ーディング/デコンプレッションを行うためのプラグイ
ン(・デコーダ)がインストールされていないので、メ
ディア・アプリケーション104によってサーバ106
からのMPEG1データファイル110を提供すること
はできない。対応するプラグイン・デコーダがユーザ・
コンピュータ・システムにインストールされていないデ
ータタイプのメディア・データをデコーディングする機
構は存在しない。さらに、ユーザ・コンピュータ・シス
テム100にインストールされた未使用のプラグイン・
デコーダは保存資源の利用が非効率的であることを表し
ている。
106からダウンロードされたデータファイル108の
コピーである。プラグイン・デコーダ111’はJPE
Gデータの処理に適応するため、持続型保存資源101
からロードされたJPEGデコーダ111のコピーであ
る。ユーザ・コンピュータ・システム100は持続型保
存資源101にJPEG,PCM,及びH.261デー
タタイプのためのプラグイン・デコーダだけしかインス
トールされていないので、メディア・アプリケーション
104はJPEG,PCM,及びH.261メディア・
データのいずれかの表現に制限される。例えば、持続型
保存資源101にはMPEG1メディア・データのデコ
ーディング/デコンプレッションを行うためのプラグイ
ン(・デコーダ)がインストールされていないので、メ
ディア・アプリケーション104によってサーバ106
からのMPEG1データファイル110を提供すること
はできない。対応するプラグイン・デコーダがユーザ・
コンピュータ・システムにインストールされていないデ
ータタイプのメディア・データをデコーディングする機
構は存在しない。さらに、ユーザ・コンピュータ・シス
テム100にインストールされた未使用のプラグイン・
デコーダは保存資源の利用が非効率的であることを表し
ている。
【0008】ハード・ディスクのような持続型保存装置
が装備されていないディスクレス・クライアント及びネ
ットワーク・コンピュータ(NC)のようなシステムの
場合、メディアデコーダのプリ−インスタレーションは
サポートされない。プラグイン・アーキテクチャが可能
でなく、メディアのプレゼンテーションがメディア・ア
プリケーションそのものにビルトインされたデコーダに
よってサポートされる少数のデータタイプに制限される
可能性もある。新規のデータタイプに対するフレキシビ
リティが得られない。
が装備されていないディスクレス・クライアント及びネ
ットワーク・コンピュータ(NC)のようなシステムの
場合、メディアデコーダのプリ−インスタレーションは
サポートされない。プラグイン・アーキテクチャが可能
でなく、メディアのプレゼンテーションがメディア・ア
プリケーションそのものにビルトインされたデコーダに
よってサポートされる少数のデータタイプに制限される
可能性もある。新規のデータタイプに対するフレキシビ
リティが得られない。
【0009】
【発明の概要】プラグイン・メディアデコーダを実現す
るための方法及び装置について解説する。本発明の実施
例によれば、ネットワークからユーザ・コンピュータの
ユーザ・アプリケーションにメディア・データと共にソ
フトウェア・デコーダの透明性ダウンロードを可能にす
るプラグイン・デコーダ・アーキテクチャが得られる。
したがって、ネットワークを介してメディア・データと
共に対応するプラグイン・デコーダが得られる以上はユ
ーザ・アプリケーションによる新規のメディアタイプの
サポートが可能になる。ダウンロード・デコーダが非常
駐であり、ユーザ・アプリケーションを実行する時間だ
けアプリケーション・メモリ内に存在するので、持続型
保存装置の要件が軽減される。このアーキテクチャはユ
ーザ・コンピュータにインストール済みのプラグイン・
デコーダの利用もサポートする。
るための方法及び装置について解説する。本発明の実施
例によれば、ネットワークからユーザ・コンピュータの
ユーザ・アプリケーションにメディア・データと共にソ
フトウェア・デコーダの透明性ダウンロードを可能にす
るプラグイン・デコーダ・アーキテクチャが得られる。
したがって、ネットワークを介してメディア・データと
共に対応するプラグイン・デコーダが得られる以上はユ
ーザ・アプリケーションによる新規のメディアタイプの
サポートが可能になる。ダウンロード・デコーダが非常
駐であり、ユーザ・アプリケーションを実行する時間だ
けアプリケーション・メモリ内に存在するので、持続型
保存装置の要件が軽減される。このアーキテクチャはユ
ーザ・コンピュータにインストール済みのプラグイン・
デコーダの利用もサポートする。
【0010】本発明の実施例の1つはメディア・アプリ
ケーションを形成するため仮想マシンにおいて実行され
るオブジェクト・ベースのクラスファイルで実現され
る。メディア・データタイプは入力されるメディアデー
タから判定され、所定のメディアデータタイプに対応す
るコーデック(コーダ・デコーダ)・オブジェクトのク
ラス名を生成するために利用される。所定のクラス名に
関するコーデック・クラスファイルの位置を決定するた
めに、入力メディアデータの発信元位置を含むクラス・
パス・ベクトルにおいて得られる全ての位置についてサ
ーチが実行される。所望のコーデック・クラスファイル
位置を突き止めると、仮想マシンのクラス・ローダがイ
ンテグレーションのためそのクラスファイルをメディア
・アプリケーションにロードする。コーデック・クラス
ファイルがネットワークの向こう側のメディアデータの
発信元位置にある場合、クラス・ローダはネットワーク
からコーデック・クラスファイルをダウンロードする。
一旦、クラスファイルが仮想マシンにロードされると、
メディアデータタイプに適合するようにメディアデータ
のデコーディング/デコンプレッションするため、メデ
ィア・アプリケーション内においてコーデック・クラス
・インスタンスが作成される。
ケーションを形成するため仮想マシンにおいて実行され
るオブジェクト・ベースのクラスファイルで実現され
る。メディア・データタイプは入力されるメディアデー
タから判定され、所定のメディアデータタイプに対応す
るコーデック(コーダ・デコーダ)・オブジェクトのク
ラス名を生成するために利用される。所定のクラス名に
関するコーデック・クラスファイルの位置を決定するた
めに、入力メディアデータの発信元位置を含むクラス・
パス・ベクトルにおいて得られる全ての位置についてサ
ーチが実行される。所望のコーデック・クラスファイル
位置を突き止めると、仮想マシンのクラス・ローダがイ
ンテグレーションのためそのクラスファイルをメディア
・アプリケーションにロードする。コーデック・クラス
ファイルがネットワークの向こう側のメディアデータの
発信元位置にある場合、クラス・ローダはネットワーク
からコーデック・クラスファイルをダウンロードする。
一旦、クラスファイルが仮想マシンにロードされると、
メディアデータタイプに適合するようにメディアデータ
のデコーディング/デコンプレッションするため、メデ
ィア・アプリケーション内においてコーデック・クラス
・インスタンスが作成される。
【0011】
【実施例】本発明はプラグイン・メディアデコーダを実
現するための方法及び装置である。下記の説明におい
て、多数の特定の詳細を述べ、本発明の実施例をより徹
底して説明する。しかし、当業者には明らかなように本
発明はこうした詳細な説明がなくとも実施可能である。
本発明が曖昧にならないように、他の例に関する周知の
特徴については詳述しない。
現するための方法及び装置である。下記の説明におい
て、多数の特定の詳細を述べ、本発明の実施例をより徹
底して説明する。しかし、当業者には明らかなように本
発明はこうした詳細な説明がなくとも実施可能である。
本発明が曖昧にならないように、他の例に関する周知の
特徴については詳述しない。
【0012】メディアデータと共にネットワークからソ
フトウェア・デコーダをダウンロードし、メディア・ア
プリケーションにインテグレートしてメディアデータの
処理に利用できるようにする、プラグイン・デコーダ・
アーキテクチャが提供される。こうして、ネットワーク
を介してメディアデータと共に対応するプラグイン・デ
コーダが利用できる限り、メディア・アプリケーション
は新規のメディアタイプをサポートすることが可能にな
る。ダウンロード・プロセス及びユーザ・アプリケーシ
ョンに対するデコーダのインテグレーションはユーザに
とって透過性である。さらに、ダウンロードされるデコ
ーダは非常駐であり、ユーザ・アプリケーションの実行
持続時間だけアプリケーション・メモリ内に存在する。
したがって、プラグイン・デコーダの恒久インストール
のためのハード・ドライブにおけるスペースのような持
続型保存資源が必要になることはない。したがって、デ
ィスクレス・クライアント及びネットワーク・コンピュ
ータ(NC)はプラグイン・デコーダ・アーキテクチャ
によって得られるフレキシビリティを利用することが可
能になる。
フトウェア・デコーダをダウンロードし、メディア・ア
プリケーションにインテグレートしてメディアデータの
処理に利用できるようにする、プラグイン・デコーダ・
アーキテクチャが提供される。こうして、ネットワーク
を介してメディアデータと共に対応するプラグイン・デ
コーダが利用できる限り、メディア・アプリケーション
は新規のメディアタイプをサポートすることが可能にな
る。ダウンロード・プロセス及びユーザ・アプリケーシ
ョンに対するデコーダのインテグレーションはユーザに
とって透過性である。さらに、ダウンロードされるデコ
ーダは非常駐であり、ユーザ・アプリケーションの実行
持続時間だけアプリケーション・メモリ内に存在する。
したがって、プラグイン・デコーダの恒久インストール
のためのハード・ドライブにおけるスペースのような持
続型保存資源が必要になることはない。したがって、デ
ィスクレス・クライアント及びネットワーク・コンピュ
ータ(NC)はプラグイン・デコーダ・アーキテクチャ
によって得られるフレキシビリティを利用することが可
能になる。
【0013】プラグイン・デコーダ・アーキテクチャは
ダウンロードされずにユーザ・コンピュータ・システム
に局所的にインストールされた(持続型保存装置に保存
された)プラグイン・デコーダもサポートする。したが
って、インストールされたプラグイン・デコーダが存在
する場合にはそれを利用してダウンロード時間を最短に
できる。
ダウンロードされずにユーザ・コンピュータ・システム
に局所的にインストールされた(持続型保存装置に保存
された)プラグイン・デコーダもサポートする。したが
って、インストールされたプラグイン・デコーダが存在
する場合にはそれを利用してダウンロード時間を最短に
できる。
【0014】図2は本発明の実施例に従ってメディアデ
ータと共にプラグイン・デコーダの設備を示すネットワ
ーク環境のブロック図である。さまざまなデータタイプ
のメディアデータ,並びに実現される各タイプのメディ
アデータのデコーディング/デコンプレッションに用い
られる対応するデコーダを納めたサーバが設けられてい
る。ユーザ・コンピュータ・システムにはメディアデー
タを実現するためのメディア・アプリケーションが格納
されている。ユーザ・コンピュータ・システムには制限
された数のプラグイン・デコーダが設けられている。
ータと共にプラグイン・デコーダの設備を示すネットワ
ーク環境のブロック図である。さまざまなデータタイプ
のメディアデータ,並びに実現される各タイプのメディ
アデータのデコーディング/デコンプレッションに用い
られる対応するデコーダを納めたサーバが設けられてい
る。ユーザ・コンピュータ・システムにはメディアデー
タを実現するためのメディア・アプリケーションが格納
されている。ユーザ・コンピュータ・システムには制限
された数のプラグイン・デコーダが設けられている。
【0015】図2において、ユーザ・コンピュータ・シ
ステム100はネットワーク105を介してサーバ10
6に結合されている。サーバ106にはさまざまなタイ
プ(例えば、JPEG,PCM,H.261,MPEG
1,MPEG2,Cinepak,MIDI等)のメディアデ
ータ・ライブラリを納めた持続型保存装置107が含ま
れている。メディアデータにはそれぞれ、データタイプ
JPEG,PCM,及びH.261のデータファイル1
08,109,及び110が含まれている。持続型保存
装置107内にはそれぞれ、JPEG,PCM,及び
H.261メディアデータのデコーディング/デコンプ
レッションのためのデコーダ111,112,及び11
4を含む各データタイプ毎に対応するプラグイン・デコ
ーダも保存されている。
ステム100はネットワーク105を介してサーバ10
6に結合されている。サーバ106にはさまざまなタイ
プ(例えば、JPEG,PCM,H.261,MPEG
1,MPEG2,Cinepak,MIDI等)のメディアデ
ータ・ライブラリを納めた持続型保存装置107が含ま
れている。メディアデータにはそれぞれ、データタイプ
JPEG,PCM,及びH.261のデータファイル1
08,109,及び110が含まれている。持続型保存
装置107内にはそれぞれ、JPEG,PCM,及び
H.261メディアデータのデコーディング/デコンプ
レッションのためのデコーダ111,112,及び11
4を含む各データタイプ毎に対応するプラグイン・デコ
ーダも保存されている。
【0016】ユーザ・コンピュータ・システム100に
はハード・ドライブのような持続型保存装置101,及
びシステムRAMのような一時保存装置における実行ス
ペース103が含まれる。持続型保存装置101にはそ
れぞれ、データタイプPCM及びMPEG1に対応す
る、インストールされたプラグイン・デコーダ112及
び113を含むプラグイン・ライブラリ102が納めら
れている。実行スペース103にはJPEGデータファ
イル108’及びPCMデータファイル109’を含む
メディア・アプリケーション104が納められている。
アプリケーション104にはそれぞれ、JPEG及びP
CMメディアデータのデコーディング/デコンプレッシ
ョンを行うため、プラグイン・デコーダ111’及び1
12’も含まれる。
はハード・ドライブのような持続型保存装置101,及
びシステムRAMのような一時保存装置における実行ス
ペース103が含まれる。持続型保存装置101にはそ
れぞれ、データタイプPCM及びMPEG1に対応す
る、インストールされたプラグイン・デコーダ112及
び113を含むプラグイン・ライブラリ102が納めら
れている。実行スペース103にはJPEGデータファ
イル108’及びPCMデータファイル109’を含む
メディア・アプリケーション104が納められている。
アプリケーション104にはそれぞれ、JPEG及びP
CMメディアデータのデコーディング/デコンプレッシ
ョンを行うため、プラグイン・デコーダ111’及び1
12’も含まれる。
【0017】データファイル108’及び109’はサ
ーバ106からダウンロードされたデータファイル10
8及び109の非常駐コピーである。同様に、プラグイ
ンJPEGデコーダ111’はJPEGメディアデータ
の処理に適応するようにサーバ106からダウンロード
されたプラグインJPEGデコーダ111の非常駐コピ
ーである。プラグインPCMデコーダ112’は持続型
保存装置101からロードされたプラグインPCMデコ
ーダ112のコピーである。代わりに、PCMタイプの
メディアデータのためのプラグイン・デコーダ112が
ユーザ・コンピュータ・システム100とサーバ106
の両方にインストールされるので、プラグインPCMデ
コーダ112’はサーバ106からダウンロードするこ
とが可能である。アプリケーション104がシャット・
ダウンされると、プラグイン・デコーダ111’及び1
12’は実行空間103から削除される。
ーバ106からダウンロードされたデータファイル10
8及び109の非常駐コピーである。同様に、プラグイ
ンJPEGデコーダ111’はJPEGメディアデータ
の処理に適応するようにサーバ106からダウンロード
されたプラグインJPEGデコーダ111の非常駐コピ
ーである。プラグインPCMデコーダ112’は持続型
保存装置101からロードされたプラグインPCMデコ
ーダ112のコピーである。代わりに、PCMタイプの
メディアデータのためのプラグイン・デコーダ112が
ユーザ・コンピュータ・システム100とサーバ106
の両方にインストールされるので、プラグインPCMデ
コーダ112’はサーバ106からダウンロードするこ
とが可能である。アプリケーション104がシャット・
ダウンされると、プラグイン・デコーダ111’及び1
12’は実行空間103から削除される。
【0018】ユーザ・コンピュータ・システム100は
持続型保存装置101にデータタイプPCM及びMPE
G1のためのプラグイン・デコーダだけしかインストー
ルされていないので、先行技術のシステムではメディア
・アプリケーション104はデータタイプPCM又はM
PEG1のメディアの実現に制限されることになる。し
かし、プラグイン・デコーダがデータファイルの形でサ
ーバから得られる各データタイプ毎に実現されるので、
また、サーバからプラグイン・デコーダをダウンロード
するための機構が設けられているので、図2のシステム
によれば任意のタイプ(JPEG,PCM,H.261
等)のメディアデータの実現がサポートされる。
持続型保存装置101にデータタイプPCM及びMPE
G1のためのプラグイン・デコーダだけしかインストー
ルされていないので、先行技術のシステムではメディア
・アプリケーション104はデータタイプPCM又はM
PEG1のメディアの実現に制限されることになる。し
かし、プラグイン・デコーダがデータファイルの形でサ
ーバから得られる各データタイプ毎に実現されるので、
また、サーバからプラグイン・デコーダをダウンロード
するための機構が設けられているので、図2のシステム
によれば任意のタイプ(JPEG,PCM,H.261
等)のメディアデータの実現がサポートされる。
【0019】本発明の実施例の1つではオブジェクト・
クラスを利用し、オブジェクト指向環境においてプラグ
イン・デコーダを実施する。オブジェクト・クラスの理
解をより明確にするため、以下オブジェクト指向プログ
ラミングについて簡単な説明を行う。
クラスを利用し、オブジェクト指向環境においてプラグ
イン・デコーダを実施する。オブジェクト・クラスの理
解をより明確にするため、以下オブジェクト指向プログ
ラミングについて簡単な説明を行う。
【0020】[オブジェクト指向プログラミング]オブ
ジェクト指向プログラミングは所定の基本ビルディング
・ブロックを組み合わせてビルディング・ブロック間の
関係を作成することによりコンピュータ・プログラムを
作成する方法である。オブジェクト指向プログラミング
・システムにおけるビルディング・ブロックは"object'
s"(オブジェクト)と呼ばれる。オブジェクトはデータ
構造(instance variable:インスタンス変数)と、その
データを利用するか、あるいはそれに影響を与えること
が可能な操作(method:メソッド)を一緒にグループ化
したプログラミング単位である。したがって、オブジェ
クトはデータとそのデータに対して実行可能な1つ以上
の操作又は手順から構成される。データと操作を単一ビ
ルディング・ブロックに結合することは「カプセル化(e
ncapsulation)」と呼ばれる。
ジェクト指向プログラミングは所定の基本ビルディング
・ブロックを組み合わせてビルディング・ブロック間の
関係を作成することによりコンピュータ・プログラムを
作成する方法である。オブジェクト指向プログラミング
・システムにおけるビルディング・ブロックは"object'
s"(オブジェクト)と呼ばれる。オブジェクトはデータ
構造(instance variable:インスタンス変数)と、その
データを利用するか、あるいはそれに影響を与えること
が可能な操作(method:メソッド)を一緒にグループ化
したプログラミング単位である。したがって、オブジェ
クトはデータとそのデータに対して実行可能な1つ以上
の操作又は手順から構成される。データと操作を単一ビ
ルディング・ブロックに結合することは「カプセル化(e
ncapsulation)」と呼ばれる。
【0021】オブジェクトは「メッセージ(message)」
を受け取ると指示されたそのメソッドの1つを実行する
ことが可能である。メッセージはオブジェクトに所定の
メソッドを実行させる命令(command)又は指示(instruct
ion)である。メッセージはメソッド選択(名称)とオブ
ジェクトに送られる複数の引数(arguments)から構成さ
れる。メッセージは受け取ったオブジェクトに対してい
かなる操作を実行すべきかを伝える。
を受け取ると指示されたそのメソッドの1つを実行する
ことが可能である。メッセージはオブジェクトに所定の
メソッドを実行させる命令(command)又は指示(instruct
ion)である。メッセージはメソッド選択(名称)とオブ
ジェクトに送られる複数の引数(arguments)から構成さ
れる。メッセージは受け取ったオブジェクトに対してい
かなる操作を実行すべきかを伝える。
【0022】オブジェクト指向プログラミングの利点の
1つはメソッドを呼び出すやり方にある。メッセージが
オブジェクトに送られる際、メッセージはオブジェクト
に対して所定のメソッドをいかに実行するかを指示する
必要がない。必要なのはオブジェクトがメソッドを実行
するように要求することだけである。これによって、プ
ログラム開発が大幅に単純化される。
1つはメソッドを呼び出すやり方にある。メッセージが
オブジェクトに送られる際、メッセージはオブジェクト
に対して所定のメソッドをいかに実行するかを指示する
必要がない。必要なのはオブジェクトがメソッドを実行
するように要求することだけである。これによって、プ
ログラム開発が大幅に単純化される。
【0023】オブジェクト指向プログラミング言語は主
として「クラス(class)」方式をベースにしている。ク
ラス・ベースのオブジェクト指向プログラミング方式は
OOPSLA 86 Proceedings, September 1986, pp.214-223
における Lieberman による"Using Prototypical Obje
cts to Implement Shared Behavior in Object-Oriente
d Systems"に一般的な説明がある。
として「クラス(class)」方式をベースにしている。ク
ラス・ベースのオブジェクト指向プログラミング方式は
OOPSLA 86 Proceedings, September 1986, pp.214-223
における Lieberman による"Using Prototypical Obje
cts to Implement Shared Behavior in Object-Oriente
d Systems"に一般的な説明がある。
【0024】クラスは一般にクラスに関するインスタン
ス変数とメソッドの両方を含んでいるタイプのオブジェ
クトを定義する。オブジェクト・クラスはオブジェクト
の特定のインスタンスを作成するために利用される。オ
ブジェクト・クラスのインスタンスにはそのクラスのた
めに定義された変数及びメソッドが含まれている。オブ
ジェクト・クラスから同じクラスの複数のインスタンス
を作成することが可能である。オブジェクト・クラスか
ら作成される各インスタンスは同じタイプ又はクラスで
あると呼ばれる。
ス変数とメソッドの両方を含んでいるタイプのオブジェ
クトを定義する。オブジェクト・クラスはオブジェクト
の特定のインスタンスを作成するために利用される。オ
ブジェクト・クラスのインスタンスにはそのクラスのた
めに定義された変数及びメソッドが含まれている。オブ
ジェクト・クラスから同じクラスの複数のインスタンス
を作成することが可能である。オブジェクト・クラスか
ら作成される各インスタンスは同じタイプ又はクラスで
あると呼ばれる。
【0025】クラス階層はオブジェクト・クラスの定義
が1つ以上のサブクラスを備えるように定義することが
可能である。サブクラスはその親(parent's)(及び祖父
母(grandparent's)等)の定義を継承(inherits)する。
階層における各サブクラスはその親クラスによって指定
される役割を追加又は修正することが可能である。
が1つ以上のサブクラスを備えるように定義することが
可能である。サブクラスはその親(parent's)(及び祖父
母(grandparent's)等)の定義を継承(inherits)する。
階層における各サブクラスはその親クラスによって指定
される役割を追加又は修正することが可能である。
【0026】例を示すと、従業員(employee)オブジェク
ト・クラスには「名前(name)」及び「給与(salarly)」
インスタンス変数と、"set_salary"メソッドを含むこと
が可能である。従業員オブジェクト・クラスはある組織
における各従業員毎に生成又は具体化することが可能で
ある。各オブジェクト・インスタンスは「従業員」タイ
プと云われる。各従業員オブジェクト・インスタンスに
は「名前」及び「給与」インスタンス変数と"set_salar
y"メソッドが含まれている。各従業員オブジェクト・イ
ンスタンスにおける「名前」及び「給与」変数に関連し
た値にはその組織における従業員の名前と給与が含まれ
ている。従業員の従業員オブジェクト・インスタンスに
メッセージを送って"set_salary"メソッドを呼び出し、
従業員の給与(すなわち、従業員の従業員オブジェクト
における「給与」変数に関連した値)を修正することが
可能である。
ト・クラスには「名前(name)」及び「給与(salarly)」
インスタンス変数と、"set_salary"メソッドを含むこと
が可能である。従業員オブジェクト・クラスはある組織
における各従業員毎に生成又は具体化することが可能で
ある。各オブジェクト・インスタンスは「従業員」タイ
プと云われる。各従業員オブジェクト・インスタンスに
は「名前」及び「給与」インスタンス変数と"set_salar
y"メソッドが含まれている。各従業員オブジェクト・イ
ンスタンスにおける「名前」及び「給与」変数に関連し
た値にはその組織における従業員の名前と給与が含まれ
ている。従業員の従業員オブジェクト・インスタンスに
メッセージを送って"set_salary"メソッドを呼び出し、
従業員の給与(すなわち、従業員の従業員オブジェクト
における「給与」変数に関連した値)を修正することが
可能である。
【0027】オブジェクトはオブジェクト指向プログラ
ミング環境において関連するコード及び変数を含むモジ
ュールを指すために用いられる包括的な用語である。ソ
フトウェア・アプリケーションはオブジェクト指向プロ
グラミング言語を利用して書くことが可能であり、これ
によりプログラムの機能性がオブジェクトを利用して実
現されることになる。
ミング環境において関連するコード及び変数を含むモジ
ュールを指すために用いられる包括的な用語である。ソ
フトウェア・アプリケーションはオブジェクト指向プロ
グラミング言語を利用して書くことが可能であり、これ
によりプログラムの機能性がオブジェクトを利用して実
現されることになる。
【0028】ソフトウェア・アプリケーションの開発は
アプリケーションのコンポーネントに対してアプリケー
ション・プログラミング・インターフェイス(API)
を設定することによって、独立した区分的やり方で実施
可能である。APIは他のコンポーネントによってアク
セス可能な特定のコンポーネントのメソッド,及びメソ
ッドの呼び出し(invoke)を可能にするフォーマットを表
している。これらのメソッドの特定の実施は特定のコン
ポーネントの設計に関してのみ重要になる。各コンポー
ネントは個別にそれぞれのAPI及び任意の内部機能を
実施し、アプリケーションの他のコンポーネントのAP
Iとのインターフェイスをするように設計される。一般
に、これらの構成要素はアプリケーションを形成する1
つ以上のオブジェクトを含んでいる。
アプリケーションのコンポーネントに対してアプリケー
ション・プログラミング・インターフェイス(API)
を設定することによって、独立した区分的やり方で実施
可能である。APIは他のコンポーネントによってアク
セス可能な特定のコンポーネントのメソッド,及びメソ
ッドの呼び出し(invoke)を可能にするフォーマットを表
している。これらのメソッドの特定の実施は特定のコン
ポーネントの設計に関してのみ重要になる。各コンポー
ネントは個別にそれぞれのAPI及び任意の内部機能を
実施し、アプリケーションの他のコンポーネントのAP
Iとのインターフェイスをするように設計される。一般
に、これらの構成要素はアプリケーションを形成する1
つ以上のオブジェクトを含んでいる。
【0029】オブジェクト指向プログラミング言語の例
には C++及び Java(R)が含まれる。プログラムがマ
シン依存実行可能プログラム・コードにコンパイルされ
る大部分のプログラミング言語とは異なり、Java クラ
スはマシン依存仮想マシンによって実行されるマシンに
依存しないバイト・コード・クラスファイルにコンパイ
ルされる。仮想マシンによって基本的コンピュータ・ハ
ードウェアのマシンに依存しないバイト・コード・クラ
スとマシン依存命令セットとの間における抽象レベルが
得られる。クラス・ローダが必要に応じてバイト・コー
ド・クラスファイルをロードする役割を持ち、インター
プリタ又はジャスト・イン・タイム・コンパイラがバイ
ト・コードをマシン・コードに変換する。
には C++及び Java(R)が含まれる。プログラムがマ
シン依存実行可能プログラム・コードにコンパイルされ
る大部分のプログラミング言語とは異なり、Java クラ
スはマシン依存仮想マシンによって実行されるマシンに
依存しないバイト・コード・クラスファイルにコンパイ
ルされる。仮想マシンによって基本的コンピュータ・ハ
ードウェアのマシンに依存しないバイト・コード・クラ
スとマシン依存命令セットとの間における抽象レベルが
得られる。クラス・ローダが必要に応じてバイト・コー
ド・クラスファイルをロードする役割を持ち、インター
プリタ又はジャスト・イン・タイム・コンパイラがバイ
ト・コードをマシン・コードに変換する。
【0030】本発明の実施例は Java プログラミング言
語によって、Java Media Framework(JMF)を利用し
て構成されるメディア・アプリケーションとして実施さ
れる。このメディア・アプリケーション及び Java Medi
a Framework については下記においてさらに詳述する。
語によって、Java Media Framework(JMF)を利用し
て構成されるメディア・アプリケーションとして実施さ
れる。このメディア・アプリケーション及び Java Medi
a Framework については下記においてさらに詳述する。
【0031】[発明のマルチメディア実施例]Java Med
ia Framework(JMF)はHTTP(Hypertext Transf
er Protocol)プロトコルを介した QuickTime Cinepak
映画のようなさまざまなプロトコル及びフォーマットに
よるマルチメディアを再生するように設計された1組の
マルチメディアAPI及びインプリメンテーションであ
る。Java Media Frameworkは「プレイヤ(Player)」、す
なわち、マルチメディアデータを再生する単位の概念を
指定する。図3に示すように各JMFプレイヤ内にはメ
ディア処理パイプラインの3つの主段階、すなわち、パ
ーサ302,デコーダ304,及びレンダラ306の実
現が含まれている。パーサ302はネットワーク発信元
から受け取った特定プロトコル・ネットワーク・パケッ
ト・データ301からのメディアデータをコンプレスド
及び/又はエンコーデッド・メディアデータファイル又
はストリーム303に変換する。デコーダ(コーデッ
ク)304はコンプレスド及び/又はエンコーデッド・
メディアデータ303を原(デコンプレッション及びデ
コーデッド)メディアデータ305に変換して、レンダ
ラ306が利用できるようにする。レンダラ306は原
メディアデータ305をグラフィック用モニタ又はオー
ディオ用スピーカといった出力装置308に表示又は提
示するためのメディア出力307に加工する。
ia Framework(JMF)はHTTP(Hypertext Transf
er Protocol)プロトコルを介した QuickTime Cinepak
映画のようなさまざまなプロトコル及びフォーマットに
よるマルチメディアを再生するように設計された1組の
マルチメディアAPI及びインプリメンテーションであ
る。Java Media Frameworkは「プレイヤ(Player)」、す
なわち、マルチメディアデータを再生する単位の概念を
指定する。図3に示すように各JMFプレイヤ内にはメ
ディア処理パイプラインの3つの主段階、すなわち、パ
ーサ302,デコーダ304,及びレンダラ306の実
現が含まれている。パーサ302はネットワーク発信元
から受け取った特定プロトコル・ネットワーク・パケッ
ト・データ301からのメディアデータをコンプレスド
及び/又はエンコーデッド・メディアデータファイル又
はストリーム303に変換する。デコーダ(コーデッ
ク)304はコンプレスド及び/又はエンコーデッド・
メディアデータ303を原(デコンプレッション及びデ
コーデッド)メディアデータ305に変換して、レンダ
ラ306が利用できるようにする。レンダラ306は原
メディアデータ305をグラフィック用モニタ又はオー
ディオ用スピーカといった出力装置308に表示又は提
示するためのメディア出力307に加工する。
【0032】デコーダ(コーデック)は単一圧縮フォー
マットをデコーディングする役割を持つ Javaオブジェ
クトである。一例として、JPEG圧縮ビデオ・フレー
ムをデコーディングするJPEGデコーダがある。JM
Fプレイヤの特定の実現にはマルチメディアデータを見
るために用いられる、こうしたデコーダ・オブジェクト
のいくつかを含むことが可能である。
マットをデコーディングする役割を持つ Javaオブジェ
クトである。一例として、JPEG圧縮ビデオ・フレー
ムをデコーディングするJPEGデコーダがある。JM
Fプレイヤの特定の実現にはマルチメディアデータを見
るために用いられる、こうしたデコーダ・オブジェクト
のいくつかを含むことが可能である。
【0033】新規のデコーダをプラグインして、Java M
edia Framework を拡張する機構が提供される。この機
構には明定された Javaコーデック・オブジェクト・イ
ンターフェイスと、コーデックのロード及びインスタン
ス作成を行うサーチ機構が含まれている。明確なコーデ
ック・オブジェクト・インターフェイスの例が付録Aと
していくつかの関連APIの形で示されている。
edia Framework を拡張する機構が提供される。この機
構には明定された Javaコーデック・オブジェクト・イ
ンターフェイスと、コーデックのロード及びインスタン
ス作成を行うサーチ機構が含まれている。明確なコーデ
ック・オブジェクト・インターフェイスの例が付録Aと
していくつかの関連APIの形で示されている。
【0034】本発明の実施例において、サーチ機構は J
avaクラス名に周知のコーデック名をマッピングし、コ
ーデックをJMFプレイヤにインストールするため Jav
aクラス・ローダを利用できるようにする。Java クラス
・ローダを利用することによってコーデック・クラスを
インストールするためのフレキシブルなアプローチが得
られる。コーデック・クラスは Javaクラス・パス、す
なわち、クラス・パッケージに対するパス名のベクトル
で指定されるさまざまな発信元からサーチしインストー
ルすることが可能である。この機構によって、ネットワ
ークからダウンロードされるコーデック・クラス,並び
にユーザ・コンピュータ・システムに局所的及び永久的
にインストールされるコーデック・クラスのインテグレ
ーションが可能になる。ダウンロードされたコーデック
は性質が非常駐であるという特性を備えている。これは
ダウンロードされるコーデック・クラスが「オン・ザ・
フライ(on the fly)」式にダウンロードされ、プレイヤ
が実行する(所要)時間だけユーザ・コンピュータ・シ
ステムに存在することを意味する。
avaクラス名に周知のコーデック名をマッピングし、コ
ーデックをJMFプレイヤにインストールするため Jav
aクラス・ローダを利用できるようにする。Java クラス
・ローダを利用することによってコーデック・クラスを
インストールするためのフレキシブルなアプローチが得
られる。コーデック・クラスは Javaクラス・パス、す
なわち、クラス・パッケージに対するパス名のベクトル
で指定されるさまざまな発信元からサーチしインストー
ルすることが可能である。この機構によって、ネットワ
ークからダウンロードされるコーデック・クラス,並び
にユーザ・コンピュータ・システムに局所的及び永久的
にインストールされるコーデック・クラスのインテグレ
ーションが可能になる。ダウンロードされたコーデック
は性質が非常駐であるという特性を備えている。これは
ダウンロードされるコーデック・クラスが「オン・ザ・
フライ(on the fly)」式にダウンロードされ、プレイヤ
が実行する(所要)時間だけユーザ・コンピュータ・シ
ステムに存在することを意味する。
【0035】プレイヤは6つの状態、すなわち、"unrea
lized"(未認識),"realizing"(認識中),"realize
d"(認識済み),"prefetching"(先取り中),"prefet
ched"(先取り済み),及び"started"(起動済み)の1
つにある可能性がある。通常の操作では"started"の状
態になるまでは各状態を通って進む。プレイヤは最初に
作成された時"unrealized"状態にある。プレイヤはイン
スタンシエートされているが、まだ、そのメディアに関
して何も知らない。
lized"(未認識),"realizing"(認識中),"realize
d"(認識済み),"prefetching"(先取り中),"prefet
ched"(先取り済み),及び"started"(起動済み)の1
つにある可能性がある。通常の操作では"started"の状
態になるまでは各状態を通って進む。プレイヤは最初に
作成された時"unrealized"状態にある。プレイヤはイン
スタンシエートされているが、まだ、そのメディアに関
して何も知らない。
【0036】realize()メソッドがコールされるとプレ
イヤは"unrealized"状態から"realizing"状態に移行す
る。実行プレイヤはその資源要求の判断プロセス中にあ
る。"realizing"に、プレイヤはプレイヤが1回だけし
か獲得する必要のない資源を獲得する。これらには専用
資源以外の解析,デコーディング,及びレンダリング資
源が含まれる可能性がある。(専用資源は1回につき1
つのプレイヤによってしか利用することのできない特定
のハードウェア装置のような制限された資源であり、こ
うした資源は"prefetching"に獲得される)。
イヤは"unrealized"状態から"realizing"状態に移行す
る。実行プレイヤはその資源要求の判断プロセス中にあ
る。"realizing"に、プレイヤはプレイヤが1回だけし
か獲得する必要のない資源を獲得する。これらには専用
資源以外の解析,デコーディング,及びレンダリング資
源が含まれる可能性がある。(専用資源は1回につき1
つのプレイヤによってしか利用することのできない特定
のハードウェア装置のような制限された資源であり、こ
うした資源は"prefetching"に獲得される)。
【0037】プレイヤは"realizing"を終了すると"real
ized"状態に移行する。realized状態のプレイヤはそれ
が必要とする資源及び実現することになるメディアのタ
イプに関する情報を知っている。realized状態のプレイ
ヤはそのデータのレンダリング方法を知っており、した
がって、ビジュアルコンポーネント及び制御を提供する
ことができる。システム内におけるプレイヤと他のオブ
ジェクトとの接続は所定位置にあるが、そのプレイヤは
別のプレイヤの starting を阻止する資源を所有してい
ない。
ized"状態に移行する。realized状態のプレイヤはそれ
が必要とする資源及び実現することになるメディアのタ
イプに関する情報を知っている。realized状態のプレイ
ヤはそのデータのレンダリング方法を知っており、した
がって、ビジュアルコンポーネント及び制御を提供する
ことができる。システム内におけるプレイヤと他のオブ
ジェクトとの接続は所定位置にあるが、そのプレイヤは
別のプレイヤの starting を阻止する資源を所有してい
ない。
【0038】prefetch()メソッドがコールされると、プ
レイヤは"realized"状態から"prefetching"状態に移行
する。"prefetching"状態のプレイヤはそのメディアを
実現する準備を行っている。この状態の間にプレイヤは
メディアデータをプリロードし、専用資源を取得し、プ
レイヤがそれ自体がプレイするために必要になるそれ以
外の任意のものを取得する。プラグイン・コーデックが
本発明の実施例に従って獲得されるのは一般にこの状態
にある間である。
レイヤは"realized"状態から"prefetching"状態に移行
する。"prefetching"状態のプレイヤはそのメディアを
実現する準備を行っている。この状態の間にプレイヤは
メディアデータをプリロードし、専用資源を取得し、プ
レイヤがそれ自体がプレイするために必要になるそれ以
外の任意のものを取得する。プラグイン・コーデックが
本発明の実施例に従って獲得されるのは一般にこの状態
にある間である。
【0039】プレイヤは"prefetching"を終了すると、"
prefetched"状態に移行する。"prefetched"状態のプレ
イヤは"started"準備が整っており、"started"状態への
移行のためのstart()メソッドの呼び出しを待つ。"star
ted"状態の間にプレイヤのタイム・ベースのタイムとメ
ディアタイムがマッピングされ、メディアデータが提示
される。
prefetched"状態に移行する。"prefetched"状態のプレ
イヤは"started"準備が整っており、"started"状態への
移行のためのstart()メソッドの呼び出しを待つ。"star
ted"状態の間にプレイヤのタイム・ベースのタイムとメ
ディアタイムがマッピングされ、メディアデータが提示
される。
【0040】本発明の望ましい実施例によれば、上述
の"prefetching"状態の間にプレイヤは入力されたメデ
ィアデータをデコーディング/デコンプレッションする
ためのプラグイン・コーデック・オブジェクトを取得す
る。代わりに、"realizing"状態の間にプラグイン・コ
ーデック・オブジェクトを取得してもうぴ。プラグイン
・デコーダがメディア・アプリケーション内に配置さ
れ、インテグレートされるメソッドの実施例が図4のフ
ローチャートに例示されている。
の"prefetching"状態の間にプレイヤは入力されたメデ
ィアデータをデコーディング/デコンプレッションする
ためのプラグイン・コーデック・オブジェクトを取得す
る。代わりに、"realizing"状態の間にプラグイン・コ
ーデック・オブジェクトを取得してもうぴ。プラグイン
・デコーダがメディア・アプリケーション内に配置さ
れ、インテグレートされるメソッドの実施例が図4のフ
ローチャートに例示されている。
【0041】ステップ400において、メディアデータ
のデータタイプが、例えば、パーサによって抽出された
データ・ヘッダ情報から判定される。ステップ401に
おいて、このデータタイプ情報からコーデック・クラス
名を生成することが可能になる。これは標準化された命
名規則(naming convention)を利用すればより効率よく
扱うことができる。例えば、"video/cinepak"のデータ
タイプから適合するコーデック・クラス名を"media.cod
ec.video.cinepak.Codec"とすることが可能である。同
様に、"audio/pcm"タイプのメディアデータファイルは
コーデック・クラス"media.codec.audio.pcm.Codec"の
インスタンスによってデコーディング/デコンプレッシ
ョンすることが可能である。
のデータタイプが、例えば、パーサによって抽出された
データ・ヘッダ情報から判定される。ステップ401に
おいて、このデータタイプ情報からコーデック・クラス
名を生成することが可能になる。これは標準化された命
名規則(naming convention)を利用すればより効率よく
扱うことができる。例えば、"video/cinepak"のデータ
タイプから適合するコーデック・クラス名を"media.cod
ec.video.cinepak.Codec"とすることが可能である。同
様に、"audio/pcm"タイプのメディアデータファイルは
コーデック・クラス"media.codec.audio.pcm.Codec"の
インスタンスによってデコーディング/デコンプレッシ
ョンすることが可能である。
【0042】ステップ402において、クラス名を利用
してサーチの基礎としてクラス・パス・ベクトルを利用
する対応するクラスを求めるサーチが行われる。クラス
・パス・ベクトルには一般にメディアデータの発信元に
対する現在アクティブなパスを含む階層的に分散された
クラスファイルのリポジトリに関する1つ以上のパス名
が含まれている。サンプル・クラス・パスは例えば次の
通りである:ClassPath=.:/java/lib:/users/jsmith/c
lasses
してサーチの基礎としてクラス・パス・ベクトルを利用
する対応するクラスを求めるサーチが行われる。クラス
・パス・ベクトルには一般にメディアデータの発信元に
対する現在アクティブなパスを含む階層的に分散された
クラスファイルのリポジトリに関する1つ以上のパス名
が含まれている。サンプル・クラス・パスは例えば次の
通りである:ClassPath=.:/java/lib:/users/jsmith/c
lasses
【0043】パス"java/lib"においてクラス"media.cod
ec.audio.pcm.Codec"を求めるサーチを行うため、ディ
レクトリ"/java/lib/media/codec/audio/pcm"をサーチ
して、"Codec.class"ファイルの存在が確かめられる。
クラスが見つかるまで、各パス名が順番にサーチされ
る。したがって、メディアデータを提供するメディア・
サーバのパス名をサーチすることによって、サーバにお
ける所望のコーデック・クラスがうまく突き止められ
る。
ec.audio.pcm.Codec"を求めるサーチを行うため、ディ
レクトリ"/java/lib/media/codec/audio/pcm"をサーチ
して、"Codec.class"ファイルの存在が確かめられる。
クラスが見つかるまで、各パス名が順番にサーチされ
る。したがって、メディアデータを提供するメディア・
サーバのパス名をサーチすることによって、サーバにお
ける所望のコーデック・クラスがうまく突き止められ
る。
【0044】ステップ403ではコーデック・クラスが
ユーザ・コンピュータ・システムとサーバのいずれにお
いて見つかったかに応じてコーデック・クラスが持続型
保存装置からユーザ・コンピュータ・システムにロード
されるか、あるいはサーバからダウンロードされる。Ja
vaクラス・ローダはコーデック・クラスのバイト・コー
ド・ファイルのロード/ダウンロード,及び Java仮想
マシンへのコーデック・クラスのインテグレーションを
扱う。ステップ404ではコーデック・クラスのインス
タンスが、メディアデータの処理に用いるためプレイヤ
にリターンされる。
ユーザ・コンピュータ・システムとサーバのいずれにお
いて見つかったかに応じてコーデック・クラスが持続型
保存装置からユーザ・コンピュータ・システムにロード
されるか、あるいはサーバからダウンロードされる。Ja
vaクラス・ローダはコーデック・クラスのバイト・コー
ド・ファイルのロード/ダウンロード,及び Java仮想
マシンへのコーデック・クラスのインテグレーションを
扱う。ステップ404ではコーデック・クラスのインス
タンスが、メディアデータの処理に用いるためプレイヤ
にリターンされる。
【0045】本発明の実施例において、上記メソッドは
JMFプレイヤのようなメディア・アプリケーションに
関するプラグイン・コーデック・オブジェクト・インス
タンスの作成を容易にするため、コーデック・ファクト
リ・オブジェクトに組み込まれる。コーデック・ファク
トリ・インプリメンテーションの実施例が図5にブロッ
ク図で示されている。
JMFプレイヤのようなメディア・アプリケーションに
関するプラグイン・コーデック・オブジェクト・インス
タンスの作成を容易にするため、コーデック・ファクト
リ・オブジェクトに組み込まれる。コーデック・ファク
トリ・インプリメンテーションの実施例が図5にブロッ
ク図で示されている。
【0046】図5の実施例には CodecFactoryインスタ
ンス501を基準とするプレイヤ500が含まれてお
り、インスタンス501は、次に、 Classインスタンス
502を基準としている。CodecFactoryインスタンス5
01にはメソッドgetCodecClass()及びメソッドcreateC
odec()が含まれている。Classインスタンス502には
メソッドforName()及びメソッドnewInstance()が含まれ
ている。forName()メソッドは classoath503を利用し
て、指定されたクラス名のクラスを求めてサーチし、指
定のクラス名を備えたクラスに関する実行時 Class記述
子をリターンする。newInstance()メソッドは Classオ
ブジェクトによって表わされるクラスの新たに割り付け
られたインスタンスをリターンする。所定のクラスが仮
想マシンに既に存在しない場合にはそのロード/ダウン
ロードのため、newInstance()メソッドによってクラス
・ローダが呼び出される。
ンス501を基準とするプレイヤ500が含まれてお
り、インスタンス501は、次に、 Classインスタンス
502を基準としている。CodecFactoryインスタンス5
01にはメソッドgetCodecClass()及びメソッドcreateC
odec()が含まれている。Classインスタンス502には
メソッドforName()及びメソッドnewInstance()が含まれ
ている。forName()メソッドは classoath503を利用し
て、指定されたクラス名のクラスを求めてサーチし、指
定のクラス名を備えたクラスに関する実行時 Class記述
子をリターンする。newInstance()メソッドは Classオ
ブジェクトによって表わされるクラスの新たに割り付け
られたインスタンスをリターンする。所定のクラスが仮
想マシンに既に存在しない場合にはそのロード/ダウン
ロードのため、newInstance()メソッドによってクラス
・ローダが呼び出される。
【0047】入力メディアデータのデータタイプを判定
した後、ステップ1においてプレイヤ500はデータタ
イプに基づいてコーデック名を指定して CodecFactory
501の createCodec()メソッドを呼び出す。ステップ
2において、createCodec()メソッドは getCodecClas
s()メソッドを呼び出し、ステップ1からのコーデック
名を渡す。getCodecClass()メソッドは必要に応じて適
合するパッケージプリフィックス及びサフィックスでコ
ーデック名を制限し、ステップ3においてその制限クラ
ス名を利用して、Classインスタンス502の forNam
e()メソッドを呼び出す。
した後、ステップ1においてプレイヤ500はデータタ
イプに基づいてコーデック名を指定して CodecFactory
501の createCodec()メソッドを呼び出す。ステップ
2において、createCodec()メソッドは getCodecClas
s()メソッドを呼び出し、ステップ1からのコーデック
名を渡す。getCodecClass()メソッドは必要に応じて適
合するパッケージプリフィックス及びサフィックスでコ
ーデック名を制限し、ステップ3においてその制限クラ
ス名を利用して、Classインスタンス502の forNam
e()メソッドを呼び出す。
【0048】ステップ4において forName()メソッドは
ClassPathベクトル503を利用してサーバ・サイト5
04及びユーザ・サイト505(それぞれ、矢印4a及
び4bによって表示)をサーチし、指定のコーデック・
クラスを突き止める。ステップ5において、Classイン
スタンス502の forName()メソッドがコーデック・ク
ラスに関する Class記述子を CodecFactoryインスタン
ス501の getCodecClass()メソッドにリターンする。
ステップ6において、Class記述子が createCodec()メ
ソッドにリターンされる。
ClassPathベクトル503を利用してサーバ・サイト5
04及びユーザ・サイト505(それぞれ、矢印4a及
び4bによって表示)をサーチし、指定のコーデック・
クラスを突き止める。ステップ5において、Classイン
スタンス502の forName()メソッドがコーデック・ク
ラスに関する Class記述子を CodecFactoryインスタン
ス501の getCodecClass()メソッドにリターンする。
ステップ6において、Class記述子が createCodec()メ
ソッドにリターンされる。
【0049】ステップ7において、提示されたコーデッ
ク・クラスのインスタンスを作成するために createCod
ec()メソッドが Class 記述子において newInstance()
メソッドを呼び出す。ステップ8a(又は8b)におい
て、newInstance()メソッドはクラス・ローダを利用し
てサーバ・サイト504(又はユーザ・サイト505)
にアクセスし、ステップ9a(又は9b)における仮想
マシンへのコーデック・クラスのダウンロード(又はロ
ード)を容易にする。ステップ10において、newInsta
nce()メソッドはコーデック・クラス・インスタンスを
CodeFactoryインスタンス501の createCodec()メソ
ッドにリターンし、さらに、ステップ11において、cr
eateCodec()メソッドがコーデック・クラス・インスタ
ンスをプレイヤ500にリターンする。
ク・クラスのインスタンスを作成するために createCod
ec()メソッドが Class 記述子において newInstance()
メソッドを呼び出す。ステップ8a(又は8b)におい
て、newInstance()メソッドはクラス・ローダを利用し
てサーバ・サイト504(又はユーザ・サイト505)
にアクセスし、ステップ9a(又は9b)における仮想
マシンへのコーデック・クラスのダウンロード(又はロ
ード)を容易にする。ステップ10において、newInsta
nce()メソッドはコーデック・クラス・インスタンスを
CodeFactoryインスタンス501の createCodec()メソ
ッドにリターンし、さらに、ステップ11において、cr
eateCodec()メソッドがコーデック・クラス・インスタ
ンスをプレイヤ500にリターンする。
【0050】[コンピュータ実行環境の実施例(ハード
ウェア)]本発明の実施例は図6に示すコンピュータ6
00のような汎用コンピュータで実行されるコンピュー
タ読み取り可能プログラム・コードの形、あるいはこう
したコンピュータにおける仮想マシンによって実行可能
なバイト・コード・クラスファイルの形、をとるコンピ
ュータ・ソフトウェアとして実施可能である。キーボー
ド610及びマウス611が双方向システム・バス61
8に結合されている。キーボード及びマウスはユーザ入
力をコンピュータ・システムに導入し、そのユーザ入力
を中央演算処理装置(Central processing Unit:CP
U)613に伝達するためのものである。マウス611
及びキーボード610に加えて、又はそれらの代わり
に、他の適合する入力装置を利用することも可能であ
る。双方向システム・バス618に結合されたI/O
(入力/出力)装置619はプリンタ、A/V(オーデ
ィオ/ビデオ)I/O等に相当する。
ウェア)]本発明の実施例は図6に示すコンピュータ6
00のような汎用コンピュータで実行されるコンピュー
タ読み取り可能プログラム・コードの形、あるいはこう
したコンピュータにおける仮想マシンによって実行可能
なバイト・コード・クラスファイルの形、をとるコンピ
ュータ・ソフトウェアとして実施可能である。キーボー
ド610及びマウス611が双方向システム・バス61
8に結合されている。キーボード及びマウスはユーザ入
力をコンピュータ・システムに導入し、そのユーザ入力
を中央演算処理装置(Central processing Unit:CP
U)613に伝達するためのものである。マウス611
及びキーボード610に加えて、又はそれらの代わり
に、他の適合する入力装置を利用することも可能であ
る。双方向システム・バス618に結合されたI/O
(入力/出力)装置619はプリンタ、A/V(オーデ
ィオ/ビデオ)I/O等に相当する。
【0051】コンピュータ600にはキーボード61
0,マウス611,及びCPU613と共に、全てが双
方向システム・バス618に結合されたビデオ・メモリ
614,主メモリ615,及び大容量保存装置612が
含まれている。大容量保存装置612には磁気,光,又
は光磁気保存システムのような固定媒体及び取り外し可
能媒体の両方、あるいは他の利用可能な大容量保存テク
ノロジを含めることが可能である。バス618には例え
ば、ビデオ・メモリ614又は主メモリ615にアドレ
スするために32のアドレス・ラインを含むことができ
る。システム・バス618には例えば、CPU613,
主メモリ615,ビデオ・メモリ614,及び大容量保
存装置612の間でデータ転送を行うため、32ビット
・データ・バスも含まれる。代替案では別個のデータ・
ライン及びアドレス・ラインの代わりに、多重データ/
アドレス・ラインを利用することも可能である。
0,マウス611,及びCPU613と共に、全てが双
方向システム・バス618に結合されたビデオ・メモリ
614,主メモリ615,及び大容量保存装置612が
含まれている。大容量保存装置612には磁気,光,又
は光磁気保存システムのような固定媒体及び取り外し可
能媒体の両方、あるいは他の利用可能な大容量保存テク
ノロジを含めることが可能である。バス618には例え
ば、ビデオ・メモリ614又は主メモリ615にアドレ
スするために32のアドレス・ラインを含むことができ
る。システム・バス618には例えば、CPU613,
主メモリ615,ビデオ・メモリ614,及び大容量保
存装置612の間でデータ転送を行うため、32ビット
・データ・バスも含まれる。代替案では別個のデータ・
ライン及びアドレス・ラインの代わりに、多重データ/
アドレス・ラインを利用することも可能である。
【0052】本発明の実施例の1つでは、CPU613
は680X0プロセッサのような Motorola(R)のマイク
ロプロセッサ,又は80X86のような Intel(R)のマ
イクロプロセッサ又は Pentium(R)プロセッサ,又は Su
n Microsystems(R)の SPARC(R)マイクロプロセッサであ
る。しかし、他の適合するどのようなマイクロプロセッ
サ又はマイクロコンピュータを利用することが可能であ
る。主メモリ615はダイナミック・ランダム・アクセ
ス・メモリ(Dynamic Random Access Memory:DRA
M)から構成される。ビデオ・メモリ614はデュアル
・ポートのビデオ・ランダム・アクセス・メモリであ
る。ビデオ・メモリ614の一方のポートはビデオ増幅
器616に結合される。ビデオ増幅器616は陰極線管
(Cathode Ray Tube:CRT)ラスタ・モニタ617を
駆動するために利用される。ビデオ増幅器616は当該
技術において周知のところであり、任意の適合する装置
によって実施可能である。この回路要素はビデオ・メモ
リ614に保存されているピクセル・データをモニタ6
17による利用に適したラスタ信号に変換する。モニタ
617はグラフィック・イメージの表示に適したタイプ
のモニタである。
は680X0プロセッサのような Motorola(R)のマイク
ロプロセッサ,又は80X86のような Intel(R)のマ
イクロプロセッサ又は Pentium(R)プロセッサ,又は Su
n Microsystems(R)の SPARC(R)マイクロプロセッサであ
る。しかし、他の適合するどのようなマイクロプロセッ
サ又はマイクロコンピュータを利用することが可能であ
る。主メモリ615はダイナミック・ランダム・アクセ
ス・メモリ(Dynamic Random Access Memory:DRA
M)から構成される。ビデオ・メモリ614はデュアル
・ポートのビデオ・ランダム・アクセス・メモリであ
る。ビデオ・メモリ614の一方のポートはビデオ増幅
器616に結合される。ビデオ増幅器616は陰極線管
(Cathode Ray Tube:CRT)ラスタ・モニタ617を
駆動するために利用される。ビデオ増幅器616は当該
技術において周知のところであり、任意の適合する装置
によって実施可能である。この回路要素はビデオ・メモ
リ614に保存されているピクセル・データをモニタ6
17による利用に適したラスタ信号に変換する。モニタ
617はグラフィック・イメージの表示に適したタイプ
のモニタである。
【0053】コンピュータ600にはバス618に結合
された通信インターフェイス620を含むことも可能で
ある。通信インターフェイス620はネットワーク・リ
ンク621を介してローカル・ネットワーク622に結
合する2方向データ通信を提供する。例えば、通信イン
ターフェイス620が統合デジタル・サービス・ネット
ワーク(Integrated Services Digital Network:ISD
N)カード又はモデムである場合、ネットワーク・リン
ク621の一部を構成する対応するタイプの電話回線と
のデータ通信接続を提供する。通信インターフェイス6
20がローカル・エリア・ネットワーク(Local Area N
etwork:LAN)・カードである場合、ネットワーク6
21を介して互換性のあるLANとのデータ通信接続を
提供する。無線(wireless)リンクも可能である。こうし
た実施例の場合、通信インターフェイス620はさまざ
まなタイプの情報を表すデジタル・データ・ストリーム
を伝達する電気信号,電磁気信号,又は光信号の送受信
を行う。
された通信インターフェイス620を含むことも可能で
ある。通信インターフェイス620はネットワーク・リ
ンク621を介してローカル・ネットワーク622に結
合する2方向データ通信を提供する。例えば、通信イン
ターフェイス620が統合デジタル・サービス・ネット
ワーク(Integrated Services Digital Network:ISD
N)カード又はモデムである場合、ネットワーク・リン
ク621の一部を構成する対応するタイプの電話回線と
のデータ通信接続を提供する。通信インターフェイス6
20がローカル・エリア・ネットワーク(Local Area N
etwork:LAN)・カードである場合、ネットワーク6
21を介して互換性のあるLANとのデータ通信接続を
提供する。無線(wireless)リンクも可能である。こうし
た実施例の場合、通信インターフェイス620はさまざ
まなタイプの情報を表すデジタル・データ・ストリーム
を伝達する電気信号,電磁気信号,又は光信号の送受信
を行う。
【0054】ネットワーク・リンク621は一般に1つ
以上のネットワークを介した他のデータ装置とのデータ
通信を可能にする。例えば、ネットワーク・リンク62
1はローカル・ネットワーク622を介してホスト・コ
ンピュータ623又はインターネット・サービス・プロ
バイダ(Internet Service Provider:ISP)624に
よって操作されるデータ装置に対する接続を提供する。
ISP624はさらに、現在一般に「インターネット」
625と呼ばれる世界的規模のパケット・データ通信ネ
ットワークを介したデータ通信サービスを提供する。ロ
ーカル・ネットワーク622及びインターネット625
は両方とも、デジタル・データ・ストリームを伝送する
電気信号,電磁信号,又は光信号を利用する。各種ネッ
トワークを介した信号及びネットワーク・リンク621
における通信インターフェイス620を介した信号はコ
ンピュータ600に又は/コンピュータ600からデジ
タルデータを伝送し、情報を転送する搬送波の典型的な
形態である。
以上のネットワークを介した他のデータ装置とのデータ
通信を可能にする。例えば、ネットワーク・リンク62
1はローカル・ネットワーク622を介してホスト・コ
ンピュータ623又はインターネット・サービス・プロ
バイダ(Internet Service Provider:ISP)624に
よって操作されるデータ装置に対する接続を提供する。
ISP624はさらに、現在一般に「インターネット」
625と呼ばれる世界的規模のパケット・データ通信ネ
ットワークを介したデータ通信サービスを提供する。ロ
ーカル・ネットワーク622及びインターネット625
は両方とも、デジタル・データ・ストリームを伝送する
電気信号,電磁信号,又は光信号を利用する。各種ネッ
トワークを介した信号及びネットワーク・リンク621
における通信インターフェイス620を介した信号はコ
ンピュータ600に又は/コンピュータ600からデジ
タルデータを伝送し、情報を転送する搬送波の典型的な
形態である。
【0055】コンピュータ600はネットワーク,ネッ
トワーク・リンク621,及び通信インターフェイス6
20を介してプログラム・コードを含むメッセージを送
り、データを受け取ることができる。インターネットの
例ではサーバ626はインターネット625,ISP6
24,ローカル・ネットワーク622,及び通信インタ
ーフェイス620を介してアプリケーション・プログラ
ムに必要なコードを転送することが可能である。本発明
によれば、こうしたダウンロード・アプリケーションの
1つが本明細書に記載のソフトウェア・プラグイン・コ
ンポーネントを提供するための装置である。
トワーク・リンク621,及び通信インターフェイス6
20を介してプログラム・コードを含むメッセージを送
り、データを受け取ることができる。インターネットの
例ではサーバ626はインターネット625,ISP6
24,ローカル・ネットワーク622,及び通信インタ
ーフェイス620を介してアプリケーション・プログラ
ムに必要なコードを転送することが可能である。本発明
によれば、こうしたダウンロード・アプリケーションの
1つが本明細書に記載のソフトウェア・プラグイン・コ
ンポーネントを提供するための装置である。
【0056】受け取られたコードはCPU613によっ
て受け取られたまま実行され及び/又は後の実行に備え
て大容量保存装置612又は他の不揮発性保存装置に保
存されることが可能である。こうして、コンピュータ6
00は搬送波の形でアプリケーション・コードを取得す
ることが可能になる。
て受け取られたまま実行され及び/又は後の実行に備え
て大容量保存装置612又は他の不揮発性保存装置に保
存されることが可能である。こうして、コンピュータ6
00は搬送波の形でアプリケーション・コードを取得す
ることが可能になる。
【0057】上述のコンピュータ・システムは単なる例
示を目的としたものにすぎない。本発明の実施例はどの
ようなタイプのコンピュータ・システム又はプログラミ
ング又は処理環境においても実施することが可能であ
る。
示を目的としたものにすぎない。本発明の実施例はどの
ようなタイプのコンピュータ・システム又はプログラミ
ング又は処理環境においても実施することが可能であ
る。
【0058】以上のように、1つ以上の特定の実施例に
関連してプラグイン・メディアデコーダを実現するため
の方法及び装置の説明を行ってきた。本発明は請求項及
びその同等物の全範囲によって定義される。
関連してプラグイン・メディアデコーダを実現するため
の方法及び装置の説明を行ってきた。本発明は請求項及
びその同等物の全範囲によって定義される。
【0059】 [付録A] Class Hierarchy class java.lang.Object interface com.sun.media.Codec interface com.sun.media.CodecOutput class com.sun.media.Data interface com.sun.media.Format class com.sun.media.MediaCodec (implements com.sun.media.Codec) class com.sun.media.MediaFrameCodec class com.sun.media.MediaFormat (implements com.sun.media.Format) -------------------------------------------------------------------
【0060】 Interface com.sun.media.Codec public interface Codec Codecインターフェイスはエンコーデッド/コンプレスドオーディオ又はビデ オ・データをレンダリング・ノード又は装置が理解できるフォーマットに変換す るため、コーデックが実施する必要のある1セットのメソッドを宣言する。 -------------------------------------------------------------------
【0061】 [Method Index]・ checkFormat(Data) このメソッドはdecode()をコールして入力データが予定される現在の入力フォ ーマットと整合することを確認する前にフレームワークによって呼び出される。・ decode(Data) このメソッドは実際のデータ変換を実行する。・ getInputFormat() コーデックが予定している入力データのフォーマットをリターンする。・ getMaxScale() コーデックがサポート可能な最大スケーリング・ファクタをリターンする。・ getMinScale() コーデックがサポート可能な最小スケーリング・ファクタをリターンする。・ getOutputFormat() decode(...)のコール後にコーデックによって生じる出力のフォーマットをリ ターンする。・ getScale() 現在のスケーリング・ファクタをリターンする。・ initialize(CodecOutput) コーデックをイニシャライズする。・ SetScale(float) 現在のスケーリング・ファクタを設定する。
【0062】 [Method]・ initialize public abstract boolean initialize(CodecOutput output) コーデックをイニシャライズする。コーデックをその出力にコネクトする。 Parameters: output-output of the codec. Returns: true if it's successful.
【0063】・ decode public abstract boolean decode(Data inData) このメソッドは実際のデータ変換を行う。何らかの理由で変換が失敗する と、偽をリターンする。 Parameters: inData-input data. Returns: true if decoding is successful.
【0064】・ checkformat public abstract boolean checkFormat(Data inData) このメソッドは decode()がコールされて入力データが現在予定されている 入 力フォーマットに整合することを確認する前にフレームワークにより呼び出 される。 フォーマット変更を扱えるコードの場合、これはコーデックが入力データを 一瞥し、実際にそのデータを decode()でデコーディングするまでにデコー ディングフォーマットを変更することが可能になる箇所である。 Parameters: inData-the input data. Returns: true if the given data is of the expected input format; false if the give data does not have the right input format.
【0065】・ getInputFormat public abstract Format getInputFormat() コーデックが予定している入力データのフォーマットをリターンする。 See Also: decode
【0066】・ getOutputFormat public abstract Format getOutputFormat() decode(...)に対する呼び出し後、コーデックによって生じる出力のフォー マットをリターンする。 See Also: decode
【0067】・ getMinScale public abstract float getMinScale() コーデックがサポート可能な最小スケーリング・ファクタをリターンする。 Returns: the (linear)scaling factor.
【0068】・ getMaxScale public abstract float getMaxScale() コーデックがサポート可能な最大スケーリング・ファクタをリターンする。 Returns: the (linear)scaling factor.
【0069】・ getScale public abstract float getScale() 現在のスケーリング・ファクタをリターンする。 Returns: the (linear)scaling factor.
【0070】・ setScale public abstract float setScale(float scale) 現在のスケーリング・ファクタをセットする。 Returns: the (linear)scaling factor set. -------------------------------------------------------------------
【0071】 ------------------------------------------------------------------- Interface com.sun.media.CodecOutput public interface CodecOutput コーデックからのインターフェースを抽象化する。 -------------------------------------------------------------------
【0072】 [Method Index]・ decodeFailureUpdate(Data) "frame" のデコーディングが失敗したときコールされる。・ decodeUpdate(Data) "frame" のデコーディングがなされされるたときコールされる。・ getOutputBuffer(Format) デコーディングビットを保持するために出力バッファをゲットする。・ tryGetOutputBuffer(Format) getOutputBuffer のブロックされないバージョンをゲットする。
【0073】 [Methods}・ getOutputBuffer public abstract Data getOutputBuffer(Format fmt) 出力バッファにデコーディングビットを保持せよ。要求された出力バッファ が利用可能になるまでブロックする。 Parameters: fmt - specifies the format of the buffer requested. Returns: the buffer.
【0074】・ tryGetOutputBuffer public abstract Data tryGetOutputBuffer(Format fmt) getOutputBuffer のブロックされないバージョンをゲットする。 Parameters; fmt - specifies the format of the buffer requested. Returns: the buffer.
【0075】・ decodeUpdata "frame" のデコーディングがなされされるたときコールされる。 Parameters: decoded - the decoded "frame".
【0076】・ decodeFailureUpdate public abstract void decodeFailureUpdate(Data decoded) "frame" のデコーディングが失敗したときコールされる。 Parameters: decoded - the buffer to be returned back to the pool of buffers. -------------------------------------------------------------------
【0077】 Class com.sun.media.Data java.lang.Object | +----com.sun.media.Data
【0078】 ------------------------------------------------------------------- public abstract class Data extends Object オーディオ/ビデオ・データに関する基本クラス。 -------------------------------------------------------------------
【0079】 [Variable Index}・ duration・ EOM getLength() == EOM signifies the last chunk of data from the media.・ presentationTime
【0080】 [Constructor Index]・ Data()
【0081】 [Method Index]・ getBuffer() 内部バッファを回復する。・ getBufferSize()・ getDiscard() データを廃棄すべきか否かを指示する。・ getDuration()・ getFormat()・ getLength()・ getPresentationTime()・ setDiscard(boolean) データを廃棄すべきか否かをセットする。・ setDuration(long) データの存続期間をセットする。・ setFormat(Format) データのフォーマットをセットする。・ setLength(int) バイトアレイに保存されるデータの長さをマークする。・ setPresentationTime(long) メディアデータのこの特定のセグメントに関する提示時間を設定する。
【0082】 [Variables]・ presentationTime protected long presentationTime
【0083】・ duration protected long duration
【0084】・ EOM public static final int EOM getLength() == EOM signifies the last chunk of data from the media.
【0085】 [Constructors]・ Data public Data()
【0086】 [Methods]・ getFormat public abstract Format getFormat() Returns: the data format.
【0087】・ setFormat public abstract boolean setFormat(Format f) set data format.
【0088】・ getBuffer public abstract Object getBuffer() 内部バッファの回復。オブジェクトがリターンされる。byte[]又は int[]であ り 得る。"instanceof"が発見に用いられる。 Returns: the buffer object.
【0089】・ getBufferSize public abstract int getBufferSize() Returns: the size of the buffer.
【0090】・ getLength public abstract int getLength() Returns: the length of data stored in the byte array. EOM if it's the last chunk of data from the media.
【0091】・ setLength public abstract void setLength(int l) バイト・アレイに保存されるデータ長をマークする。 Parameters: 1 - length of the data.
【0092】・ getPresentationTime public long getPresentationTime() Returns: the presentation time of this particular segment of media data.
【0093】・ setPresentationTime public void setPresentationTime(long t) メディアデータのこの特定のセグメントに関する提示時間を設定する。 Parameters: t - the presentation time.
【0094】・ getDuration public long getDuration() Returns: the duration of this data.
【0095】・ setDuration public void setDuration(long duration) データの存続期間をセットする。 Parameters: duration - the media duration.
【0096】・ setDiscard public void setDiscard(boolean f) データを廃棄すべきか否かを設定する。
【0097】・ getDiscard public boolean getDiscard() データを廃棄すべきか否かを指示する。 -------------------------------------------------------------------
【0098】 Interface com.sun.media.Format public abstract interface Format フォーマットのネゴシエーションを可能にする操作。既定のセットから値をと ることが可能な属性の集合として、メディアデータを記述するのが普通である。 例えば、オーディオ・データはサンプル・レートが浮動少数点として表現される 場合が多い。特定の属性に関して可能性のある値の広い範囲にわたってメディア データを操作可能なものとして、メディア装置及びメディア処理を記述するのも 一般的である。したがって、オーディオ・レンダラは8000〜48000の範 囲の任意のサンプル・レートでオーディオ・データを受け入れることが可能であ る。フォーマット・インターフェイスによればメディアデータを記述するオブジ ェクト間におけるネゴシエーションを容易にする方法が得られる。 -------------------------------------------------------------------
【0099】 [Method Index]・ match(Format) 引数に適合するフォーマットをリターンする。
【0100】 [Methods]・ match public abstract Format match(Format other) 引数に適合するフォーマットをリターンする。このフォーマットが、フォー マットに適合するオブジェクトを見つけることができない場合、null がリ タ ーンされる。 Note: match is not commutative. Parameters: other - The format to attempt to match to. -------------------------------------------------------------------
【0101】 Class com.sun.media.MediaCodec java.lang.Object | +----com.sun.media.MediaCodec -------------------------------------------------------------------
【0102】 public abstract class MediaCodec extends Object implements Codec これはエンコーデッド/コンプレスドオーディオ又はビデオ・データをレンダリ ング・ノード又は装置が理解できるフォーマットに変換する、codecインターフ ェースのインプリメンテーション・ベース・クラスである。 -------------------------------------------------------------------
【0103】 [Constructor Index]・ MediaCodec()・ MediaCodec(CodecOutput)
【0104】 [Method Index]・ checkFormat(Data) このメソッドは、decode()をコールして、入力データが現在予定される入力 フォーマットと整合することを確認する前に、フレームワークによって呼び 出される。・ decode(Data) 入力されたビットをデコードする。・ decodeFailureUpdate(Data) "frame"のデコーディングが失敗したときにこれをコールする。・ decodeUpdate(Data) "frame"のデコーディングが行われ、そのデコードされ"frame"がレンダリン グ・ノードにおくときにこれをコールする。・ getInputFormat() コーデックを予定する入力データのフォーマットをリターンする。・ getMaxScale() コーデックがサポートできる最大スケーリング・ファクタをリターンする。・ getMinScale() コーデックがサポートできる最小スケーリング・ファクタをリターンする。・ getOutputBuffer(Format) ダウンストリーム・ノードからの出力バッファをゲットする。・ getOutputFormat() (...)をデコードするコールの後コーデックにより作り出された出力のフォ ー マットをリターンする。・ getScale() 現行スケーリングファクタをリターンする。・ initialize(CodecOutput)・ setScale(float) 現行スケーリングファクタをセットする。・ tryGetOutputBuffer(Format) getOutputBuffer の non-blocking version。
【0105】 [Constructors]・ MediaCodec public MediaCodec()
【0106】・ MediaCodec public MediaCodec(CodecOutput o)
【0107】 [Methods]・ initialize public boolean initialize(CodecOutput n)
【0108】・ decode public abstract boolean decode(Data inData) 入力ビットをデコーディングする。"frame"が完全にデコーディングされる と、 notifyFrame()をコールする。 Parameters: inData - input compressed data. Returns: whether the decoding is successful or not.
【0109】・ checkFormat public boolean checkFormat(Data inData) このメソッドは、decode()をコールして、入力データが現在予定される入力 フォーマットと整合することを確認する前に、フレームワークによって呼び 出される。フォーマット変更を処理可能なコーデックの場合、これは、コー デックが入力データを一瞥し、実際にそのデータをdecode(in,out)でデコー ディングする前にデコーディングフォーマットを変更することが可能になる 箇所である。 Parameters: inData - the input data. Returns: true if the given data is of the expected input format.
【0110】・ getInputFormat public abstract Format getInputFormat() コーデックが予定している入力データのフォーマットをリターンする。 See Also: decode
【0111】・ getOutputFormat public abstract Format getOutputFormat() decode(...)に対するコール後、コーデックによって生じる出力のフォーマ ットをリターンする。 See Also: decode
【0112】・ getMinScale public float getMinScale() コーデックがサポート可能な最小スケーリング・ファクタをリターンする。 Returns: the (linear) scaling factor.
【0113】・ getMaxScale public float getMaxScale() コーデックがサポート可能な最大スケーリング・ファクタをリターンする。 Returns: the (linear) scaling factor.
【0114】・ getScale public float getScale() 現在のスケーリング・ファクタをリターンする。 Returns: the (linear) scaling factor.
【0115】・ setScale public float setScale(float scale) 現在のスケーリング・ファクタを設定する。 Returns: the (lineas) scaling factor set.
【0116】・ getOutputBuffer protected Data getOutputBuffer(Format fmt) 下流ノードから出力バッファを取得する。これは、実際のコーデック・イン プリメンテーションのため MediaCodec のサブクラスによって用いられるユ ーティリティ・メソッドである。 Parameters: fmt - specifies the format of the buffer requested. Returns: the buffer.
【0117】・ tryGetOutputBuffer protected Data tryGetOutputBuffer(Format fmt) getOutputBufferの non-blocking バージョンである。これは、実際のコー デ ック・インプリメンテーションのため MediaCodec のサブクラスによって 用 いられるユーティリティ・メソッドである。 Parameters: fmt - specifies the format of the buffer requested. Returns: the buffer.
【0118】・ decodeUpdate protected void decodeUpdate(Data decoded) "frame"のデコーディングが行われ、デコーディングされた"frame"をレンダ リング・ノードにputする際にこれをコールする。これは実際のコーデック イ ンプリメンテーションのための MediaCodec のサブクラスにより用いられ る ユーティリティ・メソッドである。 Parameters: decoded - the decoded "frame".
【0119】・ decodeFailureUpdate protected void decodeFailureUpdate(Data decoded) "frame"のデコーディングが失敗すると、これをコールする。これは実際の コ ーデック・インプリメンテーションのため MediaCodec のサブクラスによ っ て用いられるユーティリティ・メソッドである。 Parameters: decoded - the buffer to be returned back to the renderer. -------------------------------------------------------------------
【0120】 Class com.sun.media.MediaFrameCodec java.lang.Object | +----com.sun.media.MediaCodec | +----com.sun.media.MediaFrameCodec -------------------------------------------------------------------
【0121】 public abstract class MediaFrameCodec extends MediaCodec 圧縮データの"frame"をデコンプレッションデータの"frame"にデコーディング するインプリメンテーション・クラスである。"frame"は"video frame"をあらわ さなくともよい。それは単なる論理的データ単位にすぎない。 -------------------------------------------------------------------
【0122】 [Constructor Index]・ MediaFrameCodec()・ MediaFrameCodec(CodecOutput)
【0123】 [Method Index]・ allowDropFrame(boolean) フレームをドロップする機構をオン/オフする。
【0124】・ decode(Data) コンプレスドデータの塊でフレーム・ワークをコールする。 ・ decode(Data, Data) デコーディング作業のためにこれを実現する。
【0125】 [Constructors]・ MediaFrameCodec public MediaFrameCodec()
【0126】・ MediaFrameCodec public MediaFrameCodec(CodecOutput o)
【0127】 [Methods]・ decode public abstract boolean decode(Data in, Data out) これを実施して、実デコーディング作業を行う。 Parameters: in - input compressed data. out - output compressed data. Returns: true if the decoding is successful.
【0128】・ allowDropFrame public void allowDropFrame(boolean on) フレームをドロップする機構をオン/オフする。ドロップ・フレームがオン の場合、システムは、フレームが提示されるには遅すぎると、フレームをド ロップする決定を下す。こうした場合、フレームは、decode()ファンクショ ンに到達しない。これを利用するか否かは、コーデック・ライタに委ねられ る。その利点は、コンピュータ集約コーデックの場合、ともかく提示されな ければ、遅延フレームを処理する必要がなくなるという点である。それによ って、かなりのCPUサイクルの節約になる。これは、ドロップ・フレーム をうまく処理することのできないコーデックの場合にはうまく機能しない。 Parameters: on - turn on/off the frame dropping code.
【0129】・ decode public boolean decode(Data inData) コンプレスドデータの塊でフレーム・ワークによってコールする。 Parameters: inData - input compressed data. Returns: true if the decoding is successful. Overrides: decode in class MediaCodec -------------------------------------------------------------------
【0130】 Class com.sun.media.MediaFormat java.lang.Object | +----com.sun.media.MediaFormat -------------------------------------------------------------------
【0131】 public abstract class MediaFormat extends Object implements Format -------------------------------------------------------------------
【0132】 [Constructor Index]・ MediaFormat()
【0133】 [Method Index]・ clone()・ getCodec()・ getDuration()・ match(Format)・ normalizeCodecName(String)
【0134】 [Constructors]・ MediaFormat public MediaFormat()
【0135】 [Methods]・ match public Format match(Format other)
【0136】・ clone public abstract Object clone() Overrides: clone in class Object
【0137】・ getDuration public abstract long getDuration()
【0138】・ getCodec public abstract String getCodec()
【0139】・ normalizeCodecName public static String normalizeCodecName(String codec) -------------------------------------------------------------------
【図1】先行技術のネットワーク化マルチメディア・シ
ステムのブロック図である。
ステムのブロック図である。
【図2】本発明の実施例によるネットワーク化マルチメ
ディア・システムのブロック図である。
ディア・システムのブロック図である。
【図3】メディア・アプリケーションにおけるメディア
処理パイプラインのブロック図である。
処理パイプラインのブロック図である。
【図4】本発明の実施例に従ってプラグイン・メディア
デコーダを実現するための方法に関するフローチャート
である。
デコーダを実現するための方法に関するフローチャート
である。
【図5】本発明の実施例に従ってコーデック・インスタ
ンスを作成するためのソフトウェア・オブジェクト装置
のブロック図である。
ンスを作成するためのソフトウェア・オブジェクト装置
のブロック図である。
【図6】本発明の実施例に適した実行環境をもたらすこ
との可能なコンピュータ・システムの実施例に関するブ
ロック図である。
との可能なコンピュータ・システムの実施例に関するブ
ロック図である。
【符号の説明】 100 ユーザ・コンピュータ・システム 101 持続型保存装置 102 プラグイン・ライブラリ 103 実行スペース 104 メディア・アプリケーション 105 ネットワーク 106 サーバ 108 データファイル 108’JPEGデータファイル 109 データファイル 109’PCMデータファイル 111 プラグインJPEGデコーダ 111’プラグイン・デコーダ 112 プラグインPCMデコーダ 112’プラグイン・デコーダ 113 プラグイン・デコーダ 301 特定プロトコル・ネットワーク・パケット・デ
ータ 302 パーサ 303 コンプレスド及び/又はコーデッドメディア・
データファイル又はストリーム 304 デコーダ 305 メディアデータ 306 レンダラ 307 メディア出力 308 出力装置 600 コンピュータ 610 キーボード 611 マウス 612 大容量保存装置 613 中央処理装置 614 ビデオ・メモリ 615 主メモリ 616 ビデオ増幅器 617 CRTラスタ・モニタ 618 双方向システム・バス 619 I/O装置 620 通信インターフェイス 621 ネットワーク・リンク 622 ローカル・ネットワーク 623 ホスト・コンピュータ 624 ISP 625 インターネット
ータ 302 パーサ 303 コンプレスド及び/又はコーデッドメディア・
データファイル又はストリーム 304 デコーダ 305 メディアデータ 306 レンダラ 307 メディア出力 308 出力装置 600 コンピュータ 610 キーボード 611 マウス 612 大容量保存装置 613 中央処理装置 614 ビデオ・メモリ 615 主メモリ 616 ビデオ増幅器 617 CRTラスタ・モニタ 618 双方向システム・バス 619 I/O装置 620 通信インターフェイス 621 ネットワーク・リンク 622 ローカル・ネットワーク 623 ホスト・コンピュータ 624 ISP 625 インターネット
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ジーザス デイビッド ライバス アメリカ合衆国 94123 カリフォルニア 州 サン フランシスコ,#204,ビーチ ストリート 1990 (72)発明者 アミス ヤマサニ アメリカ合衆国 94060 カリフォルニア 州 マウンテン ビュー,#18,ラサム ストリート 2245
Claims (21)
- 【請求項1】 発信元位置からネットワークに、アプリ
ケーションによって処理されるデータをダウンロードす
るステップと;前記データのデータタイプを判定するス
テップと;前記データタイプに関連したプラグイン・デ
コーダクラスを判定するステップと;前記プラグイン・
デコーダクラスのために前記発信元位置の持続型保存装
置をサーチするステップと;前記持続型保存装置から前
記アプリケーションに前記プラグイン・デコーダクラス
をロードするステップ;が含まれている:プラグイン・
デコーダを提供する方法。 - 【請求項2】 前記データタイプを判定する前記ステッ
プに前記データに関連したヘッダ情報を解析するステッ
プが含まれる請求項1の方法。 - 【請求項3】 前記プラグイン・デコーダクラスを判定
する前記ステップに前記データタイプからデコーダクラ
ス名を判定するステップが含まれる請求項1の方法。 - 【請求項4】 前記持続型保存装置をサーチする前記ス
テップに:クラス・パス・ベクトルから前記発信元位置
のパス名を判定するステップと;前記パス名に基づいて
前記持続型保存装置におけるディレクトリをサーチする
ステップ;が含まれる請求項1の方法。 - 【請求項5】 前記持続型保存装置をサーチし前記プラ
グイン・デコーダクラスをロードする前記ステップが、
ファクトリ・クラスのインスタンスの少なくとも1つの
メソッド内において実施されることと;前記少なくとも
1つの方法が前記アプリケーションによって呼び出され
る:請求項1の方法。 - 【請求項6】 第1のコンピュータにおいて実行される
アプリケーションと;前記アプリケーションに関するデ
ータ,及び前記データのデータタイプに関連したプラグ
イン・コンポーネントを含む第2のコンピュータにおけ
る持続型保存装置と;前記第2のコンピュータから前記
アプリケーションに前記プラグイン・コンポーネントを
ロードするように構成された前記第1のコンピュータに
おいて実行されるコンピュータ・コード;が含まれてい
るプラグイン・コンポーネントを提供するための装置。 - 【請求項7】 前記プラグイン・コンポーネントがコー
デックである請求項6の装置。 - 【請求項8】 前記アプリケーションが前記データから
前記データタイプを判定するように構成されている請求
項6の装置。 - 【請求項9】 前記アプリケーションが前記データタイ
プから前記プラグイン・コンポーネント名を判定する:
ように構成されている請求項8の装置。 - 【請求項10】 前記コンピュータ・コードが前記アプ
リケーションによって提供される前記名に基づいて前記
プラグイン・コンポーネントのために前記持続型保存装
置をサーチする:ように構成されている請求項9の装
置。 - 【請求項11】 前記コンピュータ・コードが前記第2
のコンピュータにおけるディレクトリのパス名を含むク
ラス・パス・ベクトルを利用して前記サーチを実施す
る;ように構成されている請求項10の装置。 - 【請求項12】 プラグイン・コンポーネントを提供す
るために実施されるコンピュータ読み取り可能プログラ
ム・コードを備えたコンピュータ利用可能メディアが含
まれており;前記コンピュータ・プログラム製品に、 コンピュータに、アプリケーションによって処理される
データを発信元位置からネットワークにダウンロードさ
せるように構成されたコンピュータ読み取り可能プログ
ラム・コードと;コンピュータに、前記データのデータ
タイプを判定させるように構成されたコンピュータ読み
取り可能プログラム・コードと;コンピュータに前記デ
ータタイプに関連したプラグイン・コンポーネントを判
定させるように構成されたコンピュータ読み取り可能プ
ログラム・コードと;コンピュータに前記発信元位置に
おける持続型保存装置のサーチを含む前記プラグイン・
コンポーネントを求めるサーチを行わせるように構成さ
れたコンピュータ読み取り可能プログラム・コードと;
コンピュータに前記プラグイン・コンポーネントを前記
アプリケーションにロードさせるように構成されたコン
ピュータ読み取り可能プログラム・コード;が含まれる
コンピュータ・プログラム製品。 - 【請求項13】 前記プラグイン・コンポーネントがコ
ーデックである請求項12に記載のコンピュータ・プロ
グラム製品。 - 【請求項14】 コンピュータに前記データタイプを判
定させるように構成された前記コンピュータ読み取り可
能プログラム・コードにコンピュータに前記データに関
連したヘッダ情報を解析させるように構成されたコンピ
ュータ読み取り可能プログラム・コードが含まれる:請
求項12のコンピュータ・プログラム製品。 - 【請求項15】 コンピュータに前記プラグイン・コン
ポーネントを判定させるように構成された前記コンピュ
ータ読み取り可能プログラム・コードにコンピュータに
前記データタイプからプラグイン・コンポーネント名を
判定させるように構成されたコンピュータ読み取り可能
プログラム・コードが含まれる:請求項12のコンピュ
ータ・プログラム製品。 - 【請求項16】 コンピュータに前記プラグイン・コン
ポーネントを求めてサーチさせるように構成された前記
コンピュータ読み取り可能プログラム・コードに、さら
に;コンピュータにクラス・パス・ベクトルから前記発
信元位置のパス名を判定させるように構成されたコンピ
ュータ読み取り可能プログラム・コードと;コンピュー
タに前記パス名に基づいて前記発信元位置における前記
持続型保存装置のディレクトリサーチさせるように構成
されたコンピュータ読み取り可能プログラム・コード;
が含まれている請求項12のコンピュータ・プログラム
製品。 - 【請求項17】 搬送波によって実施化され;プロセッ
サによる実行時にアプリケーションによって処理される
データを発信元位置からネットワークにダウンロードす
るステップと;前記データのデータタイプを判定するス
テップと;前記データタイプに関連したプラグイン・コ
ンポーネントを判定するステップと;前記発信元位置に
おける持続型保存装置のサーチを含む前記プラグイン・
コンポーネントを求めるサーチを行うステップと;前記
プラグイン・コンポーネントを前記アプリケーションに
ロードするステップを行うことによって;前記プロセッ
サによってプラグイン・コンポーネントが提供されるこ
とになる指示シーケンスを表した:コンピュータ・デー
タ信号。 - 【請求項18】 前記プラグイン・コンポーネントがコ
ーデックである請求項17のコンピュータ・データ信
号。 - 【請求項19】 前記データタイプを判定する前記ステ
ップに前記データに関連したヘッダ情報を解析するステ
ップが含まれる:請求項17のコンピュータ・データ信
号。 - 【請求項20】 前記プラグイン・コンポーネントを判
定するステップに:前記データタイプからプラグイン・
コンポーネント名を判定するステップが含まれる:請求
項17に記載のコンピュータ・データ信号。 - 【請求項21】 前記プラグイン・コンポーネントを求
める前記サーチステップに、さらに;クラス・パス・ベ
クトルから前記発信元位置のパス名を判定するステップ
と;前記パス名に基づいて前記発信元位置における前記
耐久性保存装置のディレクトリをサーチするステップが
含まれる:請求項17のコンピュータ・データ信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/958,622 | 1997-10-27 | ||
US08/958,622 US6216152B1 (en) | 1997-10-27 | 1997-10-27 | Method and apparatus for providing plug in media decoders |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11259304A true JPH11259304A (ja) | 1999-09-24 |
Family
ID=25501117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10343526A Pending JPH11259304A (ja) | 1997-10-27 | 1998-10-27 | プラグインメディアデコ―ダ供給方法及び装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US6216152B1 (ja) |
EP (1) | EP0911728A1 (ja) |
JP (1) | JPH11259304A (ja) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004038970A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | マルチメディアデータを利用するためのアプリケーションプログラミングインタフェース |
US6853960B2 (en) | 2002-04-22 | 2005-02-08 | Mitsubishi Denki Kabushiki Kaisha | Communications apparatus, communication system, plug-in module control method, and computer-readable recording medium where program for executing by computer is recorded |
JP2006025436A (ja) * | 1998-03-16 | 2006-01-26 | Intertrust Technologies Corp | メディア・コンテンツの連続制御および保護のための方法および装置 |
JP2006512689A (ja) * | 2003-01-02 | 2006-04-13 | トムソン ライセンシング | 受信サービスに関して行われる限定的実行決定並びに当該サービス及び関連する製品に関する情報メッセージの生成のための装置並びに方法 |
JP2006244471A (ja) * | 2005-03-04 | 2006-09-14 | Microsoft Corp | コマンドラインデータ型の検出および変換 |
JP2007509411A (ja) * | 2003-10-24 | 2007-04-12 | マイクロソフト コーポレーション | データ駆動型コマンドライン出力を提供する機構 |
JP2008542855A (ja) * | 2005-04-26 | 2008-11-27 | マイクロソフト コーポレーション | 音声/映像コーデックを抽象化するためのシステム |
JP2009528647A (ja) * | 2006-03-03 | 2009-08-06 | マイクロソフト コーポレーション | 配信コンテンツ用補助表示ガジェット |
JP2010288301A (ja) * | 2002-06-04 | 2010-12-24 | Qualcomm Inc | ポータブルデバイスにおけるマルチメディアレンダリングのためのシステム |
JP2012516506A (ja) * | 2009-01-29 | 2012-07-19 | クゥアルコム・インコーポレイテッド | デバイスへのオーディオ処理能力の動的供給 |
JP2012146023A (ja) * | 2011-01-07 | 2012-08-02 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
JP2012521157A (ja) * | 2009-03-16 | 2012-09-10 | マイクロソフト コーポレーション | 拡張可能なメディア形式を持つホスト型アプリケーションプラットフォーム |
JP2012521723A (ja) * | 2009-03-23 | 2012-09-13 | オンライブ インコーポレイテッド | 一時的デコーダ装置及び方法 |
JP2022539798A (ja) * | 2019-07-05 | 2022-09-13 | 上海交通大学 | メディア処理方法 |
Families Citing this family (189)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6216152B1 (en) * | 1997-10-27 | 2001-04-10 | Sun Microsystems, Inc. | Method and apparatus for providing plug in media decoders |
US6339782B1 (en) * | 1997-11-21 | 2002-01-15 | International Business Machines Corporation | Persistence mechanism and method for objects |
DE19806237B4 (de) * | 1998-02-16 | 2005-05-25 | Sennheiser Electronic Gmbh & Co. Kg | Transportables EDV-System zur Kommunikation mit mindestens einem zweiten EDV-Sysytem |
EP0955577B1 (en) * | 1998-05-04 | 2011-11-30 | International Business Machines Corporation | Method and device for creating an object in a non-persistent memory and/or keeping accessibility to said object |
DE69941142D1 (de) * | 1998-05-06 | 2009-09-03 | Sun Microsystems Inc | Verarbeitungsmaschine und verarbeitungsverfahren |
EP1039378A3 (en) | 1999-03-01 | 2004-04-21 | Canon Kabushiki Kaisha | Improvements in object-oriented computer processing |
US7283991B1 (en) * | 1999-03-11 | 2007-10-16 | Microsoft Corporation | Caching system for path search optimization |
EP1188291B1 (en) * | 1999-06-11 | 2005-04-27 | Microsoft Corporation | General api for remote control of devices |
WO2001011466A2 (en) * | 1999-08-11 | 2001-02-15 | Ethos Technologies, Inc. | Download manager |
US6463445B1 (en) * | 1999-08-27 | 2002-10-08 | Sony Electronics Inc. | Multimedia information retrieval system and method including format conversion system and method |
US7188186B1 (en) * | 1999-09-03 | 2007-03-06 | Meyer Thomas W | Process of and system for seamlessly embedding executable program code into media file formats such as MP3 and the like for execution by digital media player and viewing systems |
US6889100B1 (en) * | 1999-09-09 | 2005-05-03 | International Business Machines Corporation | Method and system for remote Java audio server in a heterogeneous distributed environment |
DE60023433T2 (de) * | 1999-12-23 | 2006-05-24 | Nortel Networks Ltd., St. Laurent | System und Verfahren zur dynamischen Modell-Ladung |
US7080386B2 (en) * | 2000-01-25 | 2006-07-18 | Texas Instruments Incorporated | Architecture with digital signal processor plug-ins for general purpose processor media frameworks |
KR100671920B1 (ko) * | 2000-04-20 | 2007-01-23 | 산요덴키가부시키가이샤 | 복호 장치 |
US7649943B2 (en) * | 2000-04-21 | 2010-01-19 | Microsoft Corporation | Interface and related methods facilitating motion compensation in media processing |
US6891893B2 (en) * | 2000-04-21 | 2005-05-10 | Microsoft Corp. | Extensible multimedia application program interface and related methods |
US6940912B2 (en) * | 2000-04-21 | 2005-09-06 | Microsoft Corporation | Dynamically adaptive multimedia application program interface and related methods |
US7634011B2 (en) | 2000-04-21 | 2009-12-15 | Microsoft Corporation | Application program interface (API) facilitating decoder control of accelerator resources |
AU2001263140A1 (en) * | 2000-05-17 | 2001-11-26 | Smart Modular Technologies, (Ma) | Fee management for programming of electronic devices |
US6883168B1 (en) | 2000-06-21 | 2005-04-19 | Microsoft Corporation | Methods, systems, architectures and data structures for delivering software via a network |
US6948135B1 (en) | 2000-06-21 | 2005-09-20 | Microsoft Corporation | Method and systems of providing information to computer users |
US7155667B1 (en) | 2000-06-21 | 2006-12-26 | Microsoft Corporation | User interface for integrated spreadsheets and word processing tables |
US6874143B1 (en) * | 2000-06-21 | 2005-03-29 | Microsoft Corporation | Architectures for and methods of providing network-based software extensions |
US7191394B1 (en) | 2000-06-21 | 2007-03-13 | Microsoft Corporation | Authoring arbitrary XML documents using DHTML and XSLT |
US7117435B1 (en) | 2000-06-21 | 2006-10-03 | Microsoft Corporation | Spreadsheet fields in text |
US7000230B1 (en) | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7624356B1 (en) | 2000-06-21 | 2009-11-24 | Microsoft Corporation | Task-sensitive methods and systems for displaying command sets |
US7346848B1 (en) | 2000-06-21 | 2008-03-18 | Microsoft Corporation | Single window navigation methods and systems |
US7743259B2 (en) | 2000-08-28 | 2010-06-22 | Contentguard Holdings, Inc. | System and method for digital rights management using a standard rendering engine |
US20030196109A1 (en) | 2000-08-28 | 2003-10-16 | Contentguard Holdings, Inc. | Method and apparatus for content transaction aggregation |
US20020026521A1 (en) * | 2000-08-31 | 2002-02-28 | Sharfman Joshua Dov Joseph | System and method for managing and distributing associated assets in various formats |
US6804707B1 (en) * | 2000-10-20 | 2004-10-12 | Eric Ronning | Method and system for delivering wireless messages and information to personal computing devices |
US7389361B2 (en) * | 2000-12-22 | 2008-06-17 | Research In Motion Limited | Web browser of wireless device having serialization manager for maintaining registry of converters that convert data into format compatible with user interface of the device |
US6785885B2 (en) * | 2000-12-28 | 2004-08-31 | Intel Corporation | Mechanism for automatically securing licensing for unlicenced codec |
EP1357457B1 (en) * | 2001-01-17 | 2019-08-21 | ContentGuard Holdings, Inc. | Device and method for managing use of content |
CN1714356B (zh) * | 2001-01-17 | 2010-04-07 | 康坦夹德控股股份有限公司 | 使用标准演示引擎作数字权限管理的系统及方法 |
US7665115B2 (en) * | 2001-02-02 | 2010-02-16 | Microsoft Corporation | Integration of media playback components with an independent timing specification |
US7249190B2 (en) * | 2001-02-09 | 2007-07-24 | Comlet Technologies, Llc. | Enhanced data exchange and presentation/communication system |
US7797431B2 (en) * | 2001-02-09 | 2010-09-14 | Willard Case | Enhanced data exchange and functionality control system and method |
US7308717B2 (en) * | 2001-02-23 | 2007-12-11 | International Business Machines Corporation | System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment |
US20030033443A1 (en) * | 2001-03-01 | 2003-02-13 | Nikolay Igotti | Virtual machine integration application program interface |
KR20010044634A (ko) * | 2001-03-13 | 2001-06-05 | 김형석 | 멀티 코덱 업그레이드가 가능한 '디지털 음향 녹음재생장치' 및 인터넷서버를 통한 서비스 방법 |
US7019741B2 (en) | 2001-03-23 | 2006-03-28 | General Electric Company | Methods and systems for simulating animation of web-based data files |
JP4420584B2 (ja) * | 2001-05-21 | 2010-02-24 | ソニー株式会社 | 携帯情報処理端末、情報処理方法、プログラム、および情報処理システム |
US8205193B2 (en) * | 2001-06-11 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | Runtime updating of virtual machine class files |
FR2826471A1 (fr) * | 2001-06-26 | 2002-12-27 | Canal Plus Technologies | Extension d'un logiciel dans un recepteur/decodeur de television numerique |
US7240120B2 (en) | 2001-08-13 | 2007-07-03 | Texas Instruments Incorporated | Universal decoder for use in a network media player |
DE60141583D1 (de) * | 2001-10-18 | 2010-04-29 | Sun Microsystems Inc | Verfahren zur Dateiverarbeitung mit einem Plug-in |
US20030109252A1 (en) * | 2001-12-10 | 2003-06-12 | Koninklijke Philips Electronics N.V. | System and method of codec employment in a cellular telephone |
US20040024580A1 (en) | 2002-02-25 | 2004-02-05 | Oak Technology, Inc. | Server in a media system |
US9122808B2 (en) | 2002-02-25 | 2015-09-01 | Csr Technology Inc. | Network interface to a video device |
US7269543B2 (en) | 2002-02-25 | 2007-09-11 | Zoran Corporation | System and method for providing network connectivity to a common embedded interface by stimulating the embedded interface |
US7610630B2 (en) * | 2002-03-05 | 2009-10-27 | Panasonic Corporation | Method of transferring information specifying a tool utilized for processing a content protected by IPMP |
JP4224250B2 (ja) * | 2002-04-17 | 2009-02-12 | パイオニア株式会社 | 音声認識装置、音声認識方法および音声認識プログラム |
US7203940B2 (en) * | 2002-04-29 | 2007-04-10 | Hewlett-Packard Development Company, Lp. | Automated installation of an application |
US20040083015A1 (en) * | 2002-06-04 | 2004-04-29 | Srinivas Patwari | System for multimedia rendering in a portable device |
EP1387279B1 (en) * | 2002-07-31 | 2008-05-14 | Texas Instruments Inc. | Cache coherency in a multi-processor system |
US7334043B2 (en) * | 2002-09-17 | 2008-02-19 | At&T Delaware Intellectual Property, Inc. | Extending functionality of workflow applications using instant messaging (IM) |
US8028023B2 (en) * | 2002-09-17 | 2011-09-27 | At&T Intellecutal Property I, L.P. | Extending functionality of instant messaging (IM) systems |
CN1726067B (zh) * | 2002-12-02 | 2010-10-13 | 阿尔卡特公司 | 游戏控制台适配器单元 |
CN100412843C (zh) * | 2002-12-23 | 2008-08-20 | 皇家飞利浦电子股份有限公司 | 可扩展的光盘播放机、播放设备、记录器和升级它们的方法 |
US7069553B2 (en) * | 2003-03-03 | 2006-06-27 | Computer Associates Think, Inc. | Universal deployment tool |
US7370066B1 (en) | 2003-03-24 | 2008-05-06 | Microsoft Corporation | System and method for offline editing of data files |
US7415672B1 (en) | 2003-03-24 | 2008-08-19 | Microsoft Corporation | System and method for designing electronic forms |
US7913159B2 (en) | 2003-03-28 | 2011-03-22 | Microsoft Corporation | System and method for real-time validation of structured data files |
US7296017B2 (en) | 2003-03-28 | 2007-11-13 | Microsoft Corporation | Validation of XML data files |
US7493614B2 (en) | 2003-03-31 | 2009-02-17 | Microsoft Corporation | System architecture and related methods for dynamically adding software components to extend functionality of system processes |
US7451392B1 (en) | 2003-06-30 | 2008-11-11 | Microsoft Corporation | Rendering an HTML electronic form by applying XSLT to XML using a solution |
US7197515B2 (en) * | 2003-06-30 | 2007-03-27 | Microsoft Corporation | Declarative solution definition |
KR101081729B1 (ko) * | 2003-07-07 | 2011-11-08 | 로비 솔루션스 코포레이션 | 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 |
EP1652043B1 (en) * | 2003-07-11 | 2017-01-25 | CA, Inc. | System and method for common storage object model |
US7406660B1 (en) | 2003-08-01 | 2008-07-29 | Microsoft Corporation | Mapping between structured data and a visual surface |
US7334187B1 (en) | 2003-08-06 | 2008-02-19 | Microsoft Corporation | Electronic form aggregation |
US7434215B2 (en) * | 2003-09-11 | 2008-10-07 | International Business Machines Corporation | Mechanism for loading plugin classes at an appropriate location in the class loader hierarchy |
US8302111B2 (en) | 2003-11-24 | 2012-10-30 | Time Warner Cable Inc. | Methods and apparatus for hardware registration in a network device |
US7266726B1 (en) | 2003-11-24 | 2007-09-04 | Time Warner Cable Inc. | Methods and apparatus for event logging in an information network |
TWI381317B (zh) * | 2003-12-08 | 2013-01-01 | Koninkl Philips Electronics Nv | 可擴展之光碟播放機 |
US8819072B1 (en) | 2004-02-02 | 2014-08-26 | Microsoft Corporation | Promoting data from structured data files |
US9213538B1 (en) | 2004-02-06 | 2015-12-15 | Time Warner Cable Enterprises Llc | Methods and apparatus for display element management in an information network |
US8078669B2 (en) * | 2004-02-18 | 2011-12-13 | Time Warner Cable Inc. | Media extension apparatus and methods for use in an information network |
US7536672B1 (en) * | 2004-03-05 | 2009-05-19 | Adobe Systems Incorporated | Management of user interaction history with software applications |
US7802262B1 (en) | 2004-03-05 | 2010-09-21 | Adobe Systems Incorporated | System and method for communicating state and title information between a browser and a rich internet application with browser forward and back button support |
US8015504B1 (en) | 2004-03-26 | 2011-09-06 | Adobe Systems Incorporated | System and method for communicating information over a network |
US7496837B1 (en) | 2004-04-29 | 2009-02-24 | Microsoft Corporation | Structural editing with schema awareness |
US7281018B1 (en) | 2004-05-26 | 2007-10-09 | Microsoft Corporation | Form template data source change |
US7774620B1 (en) | 2004-05-27 | 2010-08-10 | Microsoft Corporation | Executing applications at appropriate trust levels |
KR100608056B1 (ko) * | 2004-06-05 | 2006-08-02 | 삼성전자주식회사 | 멀티미디어 컨텐츠 재생 장치, 재생 방법, 생성 장치,생성 방법, 및 그 멀티미디어 컨텐츠를 저장한 저장 매체 |
JP4458250B2 (ja) * | 2004-06-21 | 2010-04-28 | パナソニック株式会社 | 情報コンテンツダウンロードシステムおよび機能ダウンロードシステム |
US20060026162A1 (en) * | 2004-07-19 | 2006-02-02 | Zoran Corporation | Content management system |
US7692636B2 (en) | 2004-09-30 | 2010-04-06 | Microsoft Corporation | Systems and methods for handwriting to a screen |
US8487879B2 (en) | 2004-10-29 | 2013-07-16 | Microsoft Corporation | Systems and methods for interacting with a computer through handwriting to a screen |
US7512699B2 (en) | 2004-11-12 | 2009-03-31 | International Business Machines Corporation | Managing position independent code using a software framework |
US7712022B2 (en) | 2004-11-15 | 2010-05-04 | Microsoft Corporation | Mutually exclusive options in electronic forms |
WO2006073578A2 (en) * | 2004-11-16 | 2006-07-13 | Broadramp, Inc. | System for rapid delivery of digital content via the internet |
US7721190B2 (en) | 2004-11-16 | 2010-05-18 | Microsoft Corporation | Methods and systems for server side form processing |
US7774753B1 (en) | 2004-11-18 | 2010-08-10 | Adobe Systems Incorporated | System and method for communicating data among two or more programs |
KR100735274B1 (ko) * | 2004-11-18 | 2007-07-03 | 삼성전자주식회사 | 트랜스코더를 구비한 분산형 멀티미디어 전송 네트워크의트랜스코딩 방법 및 장치 |
US7904801B2 (en) | 2004-12-15 | 2011-03-08 | Microsoft Corporation | Recursive sections in electronic forms |
US8204931B2 (en) | 2004-12-28 | 2012-06-19 | Sap Ag | Session management within a multi-tiered enterprise network |
US8281014B2 (en) * | 2004-12-28 | 2012-10-02 | Sap Ag | Session lifecycle management within a multi-tiered enterprise network |
US7937651B2 (en) | 2005-01-14 | 2011-05-03 | Microsoft Corporation | Structural editing operations for network forms |
US7634502B2 (en) * | 2005-01-24 | 2009-12-15 | Paul Colton | System and method for improved content delivery |
US7734686B2 (en) * | 2005-01-25 | 2010-06-08 | International Business Machines Corporation | Markup method for managing rich client code and experiences using multi-component pages |
KR100672054B1 (ko) * | 2005-01-31 | 2007-01-22 | 삼성전자주식회사 | 데이터 네트워크의 a/v 스트림을 ieee 1394네트워크로 중개하는 a/v 스트림 중개 시스템 및 그 방법 |
US7567565B2 (en) | 2005-02-01 | 2009-07-28 | Time Warner Cable Inc. | Method and apparatus for network bandwidth conservation |
EP1844612B1 (en) * | 2005-02-04 | 2017-05-10 | Barco NV | Method and device for image and video transmission over low-bandwidth and high-latency transmission channels |
US7725834B2 (en) | 2005-03-04 | 2010-05-25 | Microsoft Corporation | Designer-created aspect for an electronic form template |
US8010515B2 (en) | 2005-04-15 | 2011-08-30 | Microsoft Corporation | Query to an electronic form |
US8738787B2 (en) | 2005-04-20 | 2014-05-27 | Limelight Networks, Inc. | Ad server integration |
US8291095B2 (en) * | 2005-04-20 | 2012-10-16 | Limelight Networks, Inc. | Methods and systems for content insertion |
US8589562B2 (en) | 2005-04-29 | 2013-11-19 | Sap Ag | Flexible failover configuration |
US7853698B2 (en) * | 2005-04-29 | 2010-12-14 | Sap Ag | Internal persistence of session state information |
US8762547B2 (en) * | 2005-04-29 | 2014-06-24 | Sap Ag | Shared memory implementations for session data within a multi-tiered enterprise network |
US20060248199A1 (en) * | 2005-04-29 | 2006-11-02 | Georgi Stanev | Shared closure persistence of session state information |
US8024566B2 (en) * | 2005-04-29 | 2011-09-20 | Sap Ag | Persistent storage implementations for session data within a multi-tiered enterprise network |
WO2006126140A2 (en) * | 2005-05-27 | 2006-11-30 | Koninklijke Philips Electronics N.V. | Method and apparatus for processing data |
US8200975B2 (en) | 2005-06-29 | 2012-06-12 | Microsoft Corporation | Digital signatures for network forms |
KR100703354B1 (ko) * | 2005-08-11 | 2007-04-03 | 삼성전자주식회사 | 휴대단말기의 화상통화모드에서 영상데이터 전송방법 |
US8001458B1 (en) | 2005-11-14 | 2011-08-16 | Adobe Systems Incorporated | System and method for communicating state and title information between a browser and a rich Internet application |
US8001459B2 (en) | 2005-12-05 | 2011-08-16 | Microsoft Corporation | Enabling electronic documents for limited-capability computing devices |
US8707323B2 (en) * | 2005-12-30 | 2014-04-22 | Sap Ag | Load balancing algorithm for servicing client requests |
KR100763399B1 (ko) * | 2006-01-17 | 2007-10-05 | 엘지전자 주식회사 | 케이블 방송 시스템 및 코덱 방법 |
US7779343B2 (en) | 2006-01-30 | 2010-08-17 | Microsoft Corporation | Opening network-enabled electronic documents |
US20070201655A1 (en) * | 2006-02-03 | 2007-08-30 | Michael Shenfield | System and method for installing custom services on a component-based application platform |
US8718100B2 (en) | 2006-02-27 | 2014-05-06 | Time Warner Cable Enterprises Llc | Methods and apparatus for selecting digital interface technology for programming and data delivery |
US8170065B2 (en) * | 2006-02-27 | 2012-05-01 | Time Warner Cable Inc. | Methods and apparatus for selecting digital access technology for programming and data delivery |
US8458753B2 (en) | 2006-02-27 | 2013-06-04 | Time Warner Cable Enterprises Llc | Methods and apparatus for device capabilities discovery and utilization within a content-based network |
US7916755B2 (en) * | 2006-02-27 | 2011-03-29 | Time Warner Cable Inc. | Methods and apparatus for selecting digital coding/decoding technology for programming and data delivery |
KR100763206B1 (ko) * | 2006-04-03 | 2007-10-04 | 삼성전자주식회사 | 이용 가능한 코덱 정보를 제공하는 장치 및 그 방법 |
KR100818924B1 (ko) | 2006-05-03 | 2008-04-04 | 삼성전자주식회사 | 소프트웨어 모듈의 조합을 통해 dsp 코드를 생성하는장치 및 그 방법 |
KR100755714B1 (ko) | 2006-05-03 | 2007-09-05 | 삼성전자주식회사 | 코덱 업그레이드를 수행하는 장치 및 그 방법 |
US9058221B2 (en) * | 2006-05-05 | 2015-06-16 | Avaya, Inc. | Signal processing at a telecommunications endpoint |
US20070260615A1 (en) * | 2006-05-08 | 2007-11-08 | Eran Shen | Media with Pluggable Codec |
US9680686B2 (en) * | 2006-05-08 | 2017-06-13 | Sandisk Technologies Llc | Media with pluggable codec methods |
US20080005653A1 (en) * | 2006-06-30 | 2008-01-03 | Viswanathan Swaminathan | Method and apparatus for facilitating Java-based self-organizing media |
US20080134012A1 (en) * | 2006-11-30 | 2008-06-05 | Sony Ericsson Mobile Communications Ab | Bundling of multimedia content and decoding means |
US8370818B2 (en) | 2006-12-02 | 2013-02-05 | Time Warner Cable Inc. | Methods and apparatus for analyzing software interface usage |
US20080235746A1 (en) | 2007-03-20 | 2008-09-25 | Michael James Peters | Methods and apparatus for content delivery and replacement in a network |
US20080235580A1 (en) * | 2007-03-20 | 2008-09-25 | Yahoo! Inc. | Browser interpretable document for controlling a plurality of media players and systems and methods related thereto |
US20080252490A1 (en) * | 2007-04-10 | 2008-10-16 | Chiluk David R | Merging A Codec With A Digital Media File and Playing A Digital Media File On A Playback Device |
US8230417B1 (en) | 2007-06-08 | 2012-07-24 | Adobe Systems Incorporated | Combined application and execution environment install |
US8448161B2 (en) * | 2007-07-30 | 2013-05-21 | Adobe Systems Incorporated | Application tracking for application execution environment |
US8375381B1 (en) | 2007-07-30 | 2013-02-12 | Adobe Systems Incorporated | Management user interface for application execution environment |
US7930273B1 (en) | 2007-07-30 | 2011-04-19 | Adobe Systems Incorporated | Version management for application execution environment |
WO2009020640A2 (en) * | 2007-08-08 | 2009-02-12 | Swarmcast, Inc. | Media player plug-in installation techniques |
US8561116B2 (en) | 2007-09-26 | 2013-10-15 | Charles A. Hasek | Methods and apparatus for content caching in a video network |
US9071859B2 (en) | 2007-09-26 | 2015-06-30 | Time Warner Cable Enterprises Llc | Methods and apparatus for user-based targeted content delivery |
US8099757B2 (en) | 2007-10-15 | 2012-01-17 | Time Warner Cable Inc. | Methods and apparatus for revenue-optimized delivery of content in a network |
US8635360B2 (en) | 2007-10-19 | 2014-01-21 | Google Inc. | Media playback point seeking using data range requests |
WO2009075766A2 (en) | 2007-12-05 | 2009-06-18 | Swarmcast, Inc. | Dynamic bit rate scaling |
EP2086236A1 (en) * | 2008-01-31 | 2009-08-05 | Hewlett-Packard Development Company, L.P. | Method and system for accessing applications |
US8813143B2 (en) | 2008-02-26 | 2014-08-19 | Time Warner Enterprises LLC | Methods and apparatus for business-based network resource allocation |
US8645474B2 (en) * | 2008-02-29 | 2014-02-04 | Microsoft Corporation | Self-described rendering of data |
US9032464B2 (en) * | 2008-07-23 | 2015-05-12 | Centurylink Intellectual Property Llc | IPTV delivery system and method |
US8566869B2 (en) | 2008-09-02 | 2013-10-22 | Microsoft Corporation | Pluggable interactive television |
WO2010031069A2 (en) * | 2008-09-15 | 2010-03-18 | Realnetworks, Inc. | Secure media path system and method |
US20100070533A1 (en) * | 2008-09-16 | 2010-03-18 | James Skinner | Systems and Methods for In-Line Viewing of Files over a Network |
KR101485806B1 (ko) * | 2009-05-28 | 2015-01-23 | 삼성전자주식회사 | 원격 유저 인터페이스를 지원하는 홈 네트워크에서 이벤트 처리 방법 및 이를 위한 장치 |
US10038760B2 (en) * | 2009-06-01 | 2018-07-31 | International Business Machines Corporation | System and method to support codec delivery models for IMS networks |
WO2010141460A1 (en) | 2009-06-01 | 2010-12-09 | Swarmcast, Inc. | Data retrieval based on bandwidth cost and delay |
US9866609B2 (en) | 2009-06-08 | 2018-01-09 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
WO2011049413A2 (ko) * | 2009-10-23 | 2011-04-28 | 한양대학교 산학협력단 | 멀티미디어 컨텐츠 처리 방법 및 장치 |
WO2011087216A2 (ko) * | 2010-01-12 | 2011-07-21 | 한양대학교 산학협력단 | 멀티미디어 컨텐츠 처리 방법 및 장치 |
EP2381579A1 (en) * | 2010-04-20 | 2011-10-26 | Itron Metering Solutions UK Ltd | Method for compressing/decompressing data |
AU2011201674B1 (en) | 2011-04-14 | 2012-07-19 | Limelight Networks, Inc. | Advanced embed code |
CN102447965B (zh) * | 2011-08-25 | 2014-04-30 | 深圳市佳信捷技术股份有限公司 | 支持视频插件接入的视频快速平滑显示的方法及装置 |
US20130311859A1 (en) * | 2012-05-18 | 2013-11-21 | Barnesandnoble.Com Llc | System and method for enabling execution of video files by readers of electronic publications |
US9854280B2 (en) | 2012-07-10 | 2017-12-26 | Time Warner Cable Enterprises Llc | Apparatus and methods for selective enforcement of secondary content viewing |
CN103686164A (zh) | 2012-09-06 | 2014-03-26 | 腾讯科技(深圳)有限公司 | 自动适配硬件编解码的方法及系统及模块 |
CN102929656B (zh) * | 2012-09-28 | 2015-11-25 | 北京奇虎科技有限公司 | 使用浏览器中内置ActiveX插件的方法和客户端 |
US9632787B2 (en) * | 2012-10-23 | 2017-04-25 | Ca, Inc. | Data processing system with data characteristic based identification of corresponding instructions |
US9131283B2 (en) | 2012-12-14 | 2015-09-08 | Time Warner Cable Enterprises Llc | Apparatus and methods for multimedia coordination |
FR3011103A1 (fr) * | 2013-09-26 | 2015-03-27 | Orange | Chargement dynamique mis en œuvre lors d'une action sur un contenu |
DE102013018624A1 (de) | 2013-11-06 | 2015-05-07 | Unify Gmbh & Co. Kg | Verfahren zum sicheren und dynamischen Nachladen von zusätzlicher Software von einem WebRTC-Server in einen WebRTC-Client |
US20150286489A1 (en) * | 2014-04-04 | 2015-10-08 | Avid Technology, Inc. | Automatic detection and loading of missing plug-ins in a media composition application |
US9250891B1 (en) | 2014-10-28 | 2016-02-02 | Amazon Technologies, Inc. | Optimized class loading |
US9928058B1 (en) * | 2014-10-28 | 2018-03-27 | Amazon Technologies, Inc. | Optimized class loading |
US10687115B2 (en) | 2016-06-01 | 2020-06-16 | Time Warner Cable Enterprises Llc | Cloud-based digital content recorder apparatus and methods |
US10911794B2 (en) | 2016-11-09 | 2021-02-02 | Charter Communications Operating, Llc | Apparatus and methods for selective secondary content insertion in a digital network |
US11109290B2 (en) | 2017-08-04 | 2021-08-31 | Charter Communications Operating, Llc | Switching connections over frequency bands of a wireless network |
US10966073B2 (en) | 2017-11-22 | 2021-03-30 | Charter Communications Operating, Llc | Apparatus and methods for premises device existence and capability determination |
US10939142B2 (en) | 2018-02-27 | 2021-03-02 | Charter Communications Operating, Llc | Apparatus and methods for content storage, distribution and security within a content distribution network |
US11716558B2 (en) | 2018-04-16 | 2023-08-01 | Charter Communications Operating, Llc | Apparatus and methods for integrated high-capacity data and wireless network services |
US11129213B2 (en) | 2018-10-12 | 2021-09-21 | Charter Communications Operating, Llc | Apparatus and methods for cell identification in wireless networks |
US11129171B2 (en) | 2019-02-27 | 2021-09-21 | Charter Communications Operating, Llc | Methods and apparatus for wireless signal maximization and management in a quasi-licensed wireless system |
US11374779B2 (en) | 2019-06-30 | 2022-06-28 | Charter Communications Operating, Llc | Wireless enabled distributed data apparatus and methods |
US11182222B2 (en) | 2019-07-26 | 2021-11-23 | Charter Communications Operating, Llc | Methods and apparatus for multi-processor device software development and operation |
US11026205B2 (en) | 2019-10-23 | 2021-06-01 | Charter Communications Operating, Llc | Methods and apparatus for device registration in a quasi-licensed wireless system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5504892A (en) * | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
US5630066A (en) * | 1994-12-20 | 1997-05-13 | Sun Microsystems, Inc. | System and method for locating object view and platform independent object |
US5692183A (en) * | 1995-03-31 | 1997-11-25 | Sun Microsystems, Inc. | Methods and apparatus for providing transparent persistence in a distributed object operating environment |
US5842014A (en) * | 1995-06-14 | 1998-11-24 | Digidesign, Inc. | System and method for distributing processing among one or more processors |
US5664182A (en) * | 1995-09-18 | 1997-09-02 | Actuate Software Corporation | Persistent storage of report objects |
US5793954A (en) * | 1995-12-20 | 1998-08-11 | Nb Networks | System and method for general purpose network analysis |
US5794232A (en) * | 1996-03-15 | 1998-08-11 | Novell, Inc. | Catalog services for distributed directories |
US5787019A (en) * | 1996-05-10 | 1998-07-28 | Apple Computer, Inc. | System and method for handling dynamic changes in device states |
US5928323A (en) * | 1996-05-30 | 1999-07-27 | Sun Microsystems, Inc. | Apparatus and method for dynamically generating information with server-side software objects |
US5881230A (en) * | 1996-06-24 | 1999-03-09 | Microsoft Corporation | Method and system for remote automation of object oriented applications |
US5809145A (en) * | 1996-06-28 | 1998-09-15 | Paradata Systems Inc. | System for distributing digital information |
US5809507A (en) * | 1996-07-01 | 1998-09-15 | Sun Microsystems, Inc. | Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework |
US5809250A (en) * | 1996-10-23 | 1998-09-15 | Intel Corporation | Methods for creating and sharing replayable modules representive of Web browsing session |
US5913033A (en) * | 1996-12-20 | 1999-06-15 | International Business Machines Corporation | Apparatus and method for retrieving information using standard objects |
US6006241A (en) * | 1997-03-14 | 1999-12-21 | Microsoft Corporation | Production of a video stream with synchronized annotations over a computer network |
US5903728A (en) * | 1997-05-05 | 1999-05-11 | Microsoft Corporation | Plug-in control including an independent plug-in process |
US6216152B1 (en) * | 1997-10-27 | 2001-04-10 | Sun Microsystems, Inc. | Method and apparatus for providing plug in media decoders |
-
1997
- 1997-10-27 US US08/958,622 patent/US6216152B1/en not_active Expired - Lifetime
-
1998
- 1998-10-27 EP EP98120318A patent/EP0911728A1/en not_active Withdrawn
- 1998-10-27 JP JP10343526A patent/JPH11259304A/ja active Pending
-
2001
- 2001-03-09 US US09/802,473 patent/US6654765B2/en not_active Expired - Lifetime
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006025436A (ja) * | 1998-03-16 | 2006-01-26 | Intertrust Technologies Corp | メディア・コンテンツの連続制御および保護のための方法および装置 |
JP4616095B2 (ja) * | 1998-03-16 | 2011-01-19 | インタートラスト テクノロジーズ コーポレイション | メディア・コンテンツの連続制御および保護のための方法および装置 |
US6853960B2 (en) | 2002-04-22 | 2005-02-08 | Mitsubishi Denki Kabushiki Kaisha | Communications apparatus, communication system, plug-in module control method, and computer-readable recording medium where program for executing by computer is recorded |
JP2010288301A (ja) * | 2002-06-04 | 2010-12-24 | Qualcomm Inc | ポータブルデバイスにおけるマルチメディアレンダリングのためのシステム |
JP2004038970A (ja) * | 2002-06-28 | 2004-02-05 | Microsoft Corp | マルチメディアデータを利用するためのアプリケーションプログラミングインタフェース |
JP4652674B2 (ja) * | 2002-06-28 | 2011-03-16 | マイクロソフト コーポレーション | マルチメディアデータを利用するためのアプリケーションプログラミングインタフェース |
JP2006512689A (ja) * | 2003-01-02 | 2006-04-13 | トムソン ライセンシング | 受信サービスに関して行われる限定的実行決定並びに当該サービス及び関連する製品に関する情報メッセージの生成のための装置並びに方法 |
JP2007509411A (ja) * | 2003-10-24 | 2007-04-12 | マイクロソフト コーポレーション | データ駆動型コマンドライン出力を提供する機構 |
JP2006244471A (ja) * | 2005-03-04 | 2006-09-14 | Microsoft Corp | コマンドラインデータ型の検出および変換 |
US8566806B2 (en) | 2005-03-04 | 2013-10-22 | Microsoft Corporation | Command-line data-type discovery and conversion |
JP2008542855A (ja) * | 2005-04-26 | 2008-11-27 | マイクロソフト コーポレーション | 音声/映像コーデックを抽象化するためのシステム |
JP2009528647A (ja) * | 2006-03-03 | 2009-08-06 | マイクロソフト コーポレーション | 配信コンテンツ用補助表示ガジェット |
JP2012516506A (ja) * | 2009-01-29 | 2012-07-19 | クゥアルコム・インコーポレイテッド | デバイスへのオーディオ処理能力の動的供給 |
JP2014099893A (ja) * | 2009-01-29 | 2014-05-29 | Qualcomm Incorporated | デバイスへのオーディオ処理能力の動的供給 |
JP2012521157A (ja) * | 2009-03-16 | 2012-09-10 | マイクロソフト コーポレーション | 拡張可能なメディア形式を持つホスト型アプリケーションプラットフォーム |
JP2012521723A (ja) * | 2009-03-23 | 2012-09-13 | オンライブ インコーポレイテッド | 一時的デコーダ装置及び方法 |
JP2012146023A (ja) * | 2011-01-07 | 2012-08-02 | Fuji Xerox Co Ltd | 画像処理装置及びプログラム |
JP2022539798A (ja) * | 2019-07-05 | 2022-09-13 | 上海交通大学 | メディア処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US6216152B1 (en) | 2001-04-10 |
EP0911728A1 (en) | 1999-04-28 |
US20020007357A1 (en) | 2002-01-17 |
US6654765B2 (en) | 2003-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11259304A (ja) | プラグインメディアデコ―ダ供給方法及び装置 | |
US7065752B2 (en) | Method and apparatus compilation of an interpretative language for interactive television | |
US6181713B1 (en) | Selectable depacketizer architecture | |
US6980979B2 (en) | Method and apparatus for customizing Java API implementations | |
JP4165683B2 (ja) | 複合データ構造の永続的表現の生成 | |
US6530080B2 (en) | Method and apparatus for pre-processing and packaging class files | |
AU2002236916A1 (en) | A method and apparatus for the compilation of an interpretative language for interactive television | |
KR100438143B1 (ko) | 한 바이트 코드와 연속화 된 객체들 흐름을 적시에 공급하는 방법과 장치 | |
US6928648B2 (en) | Method and apparatus for a mobile multimedia java framework | |
JPH1069394A (ja) | オブジェクト指向言語プログラム由来の中間コードデータストリーム、またはマルチメディアデータストリームの処理システム及び方法 | |
JP2003504754A (ja) | 個々のクラスローダを実装するための方法および装置 | |
WO2010107622A2 (en) | Hosted application platform with extensible media format | |
JP2002532009A (ja) | トランスポート・ストリームに埋め込まれたバイトコードの配信のための方法およびその装置 | |
US20020073218A1 (en) | Stream device management system for multimedia clients in a broadcast network architecture | |
US6516354B2 (en) | Method and apparatus for efficient representation of variable length identifiers in a distributed object system | |
US7490315B2 (en) | Persistent representations for complex data structures as interpreted programs | |
Peng et al. | Digital television application manager | |
JP2008515322A (ja) | Mhpアプリケーションの起動時間を減少させるシステム及び方法 | |
Antoniazzi et al. | An open software architecture for multimedia consumer terminals | |
CN1190211A (zh) | 面向对象的多媒体结构 | |
CN117793174A (zh) | 基于Netty的声明式长连接双向非阻塞通信方法及系统 | |
JP2001306326A (ja) | データ処理システム及びデータ処理方法、並びに、ソフトウェア記憶媒体 | |
Standard | DTV APPLICATION SOFTWARE ENVIRONMENT LEVEL 1 (DASE-1) PART 3: PROCEDURAL APPLICATIONS AND ENVIRONMENT |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051026 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060816 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081202 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090519 |