以下では、添付図面を参照して本発明の望ましい実施形態について説明する。
図1は、本発明による記録媒体に記録されたデータの種類を示す図である。図1を参照するに、本発明による記録媒体100は、動映像データ110、プログラミング機能のためのアプリケーションデータ120(以下、アプリケーションデータと略称する)、及びシステムデータ130を含む。
動映像データ110は、動映像の再生のための再生モードのデータであって、コアモードまたは映画モードデータとも言う。動映像データは、圧縮符号化されたAVデータと、AVデータの再生を制御するためのナビゲーションデータとを含む。これにより、記録媒体のナビゲーションデータを参考としてAVデータを再生し、ユーザは、高画質映画のような動映像を視聴できる。
一方、アプリケーションデータ120は、ユーザとのインタラクティブ機能を提供するためのプログラム機能を有するデータであって、フルモードデータまたはプログラムモードデータとも言う。動映像を利用したゲーム機能、動映像の一部を再生しつつディレクタのコメントを表示する機能、動映像の一部を再生しつつその他の付加情報を表示する機能、または動映像を再生しつつチャットできる機能などを提供する多様なアプリケーションが提供されうる。または、記録媒体に記録された映画と関連して、ウェブページまたは他のデータベースなどに保存された映画俳優に関する最近情報、映画と関連したイベント開催情報またはアップデートされたサブタイトルなどの関連した情報を入手して映画と共に再生してもよい。
アプリケーションデータは、動映像と共にアプリケーションプログラムを実行するために、後述する動映像情報を再生するプレゼンテーションエンジンに対するAPI(アプリケーション プログラム インターフェース)関数を含んでもよい。このようなアプリケーションデータは、Cまたはジャバ(Java(登録商標))のようなプログラミング言語で作成され、本発明では、特に、xletのようなジャバアプリケーション中心に説明する。
一方、システムデータ130は、スタートアップ情報、タイトル情報を含む。スタートアップ情報は、記録媒体が再生装置によって再生されるとき、最初に再生されるデータの位置情報を知らせる。タイトル情報は、各タイトルの再生時に動作すべきデータのエントリ及び属性情報を表す。
前述したように、本発明による記録媒体は、動映像データ110に加えてプログラミング可能なアプリケーションデータ120を含むことによって、動映像の再生以外にユーザとの多様なインタラクティブ機能を提供できる。特に、記録媒体に記録された動映像データ以外にも外部のデータベースから新たなコンテンツをダウンロードされて再生でき、さらに、ダウンロードされたデータを管理して次の再生にも利用できる。
本発明では、記録媒体に記録された動映像データと共に、ネットワークを介して外部のデータベースからダウンロードされた新たなコンテンツを適切に連結して再生する方法及び装置を中心に説明する。
図2は、図1に示す記録媒体100に記録されたマルチメディアデータの構造を説明するための図である。図2を参照するに、本発明による記録媒体100に記録されたマルチメディアデータは4層構造からなっていることが分かる。各層は、マルチメディア映像の記録単位であるクリップ200、マルチメディア映像の再生単位であるプレイリスト220、マルチメディア映像を再生するためのナビゲーション命令語を含むムービーオブジェクト230、及び最初に再生されるムービーオブジェクト及びそれぞれのタイトルを指定するインデックステーブル240を含む。
クリップ200は、高画質映画のためのAVデータストリームと該当AVデータストリームとの属性を一つのオブジェクトとして具現したものである。AVデータストリームをクリップAVストリーム205と呼び、AVデータストリームの属性情報をクリップインフォメーション210と呼ぶ。プレイリスト220は、前述したクリップの再生区間の集合であって、各再生区間をプレイアイテム222という。ムービーオブジェクト230は、ナビゲーション命令語プログラムからなり、このようなナビゲーション命令語は、プレイリストの再生を開始するか、ムービーオブジェクト間の転換あるいはユーザの選好によってプレイリストの再生を管理する。インデックステーブル240は、複数のタイトルとメニューとを定義するための最上位層のテーブルであって、全てのタイトルとメニューとの開始位置情報を含んでいて、タイトル検索やメニューコールのようなユーザ入力を通じて選択されたタイトルやメニューを再生できる。また、インデックステーブル240は、記録媒体が再生装置に挿入された時、自動実行される最初再生されるタイトルやメニューの開始位置情報も含む。
このうち、マルチメディア映像が圧縮符号化されたクリップAVストリーム205の構造を説明すれば、次の通りである。図3は、図2に示すクリップAVストリーム205の構成を示す図である。
図3を参照するに、本発明による記録媒体には、ビデオストリーム302、オーディオストリーム304、サブタイトルを提供するプレゼンテーショングラフィックストリーム306、及びユーザとの相互作用のためのメニューを提供するインタラクティブグラフィックストリーム308が多重化されたAVデータストリーム205が記録されている。AVデータストリーム205をメインストリームという。
図4は、図1に示すデータを記録した記録媒体のディレクトリ構造を示す図である。
図2及び図4を参照するに、本発明による記録媒体に記録されたマルチメディアデータと関連したファイルのディレクトリ構造が示されている。ルートディレクトリ410下位に高画質動映像データ110が保存されたBDMVディレクトリ415には、インデックステーブル240、ムービーオブジェクト230、プレイリスト220、クリップインフォメーション210、クリップAVストリーム205、及びその他のデータのためのディレクトリがそれぞれ設けられている。
具体的に、インデックステーブル240は、index.bdmv420というファイル名として保存され、ナビゲーションデータを含むムービーオブジェクト230は、MovieObject.bdmv430というファイル名として記録される。また、動映像の再生単位であるプレイリスト220は、PLAYLISTというディレクトリ440下位に5桁の数字とmplsという拡張子とから構成されたファイル名として記録され、クリップインフォメーション210は、CLIPINFディレクトリ450下位に5桁の数字とclpiという拡張子とから構成された名称のファイル(例:451、452、453)形態として記録され、クリップAVストリーム205は、STREAMというディレクトリ460下位に5桁の数字とm2tsという拡張子とから構成された名称のファイル(例:461、462、463)形態として記録される。特に、クリップAVストリームファイルに対応するクリップインフォメーションファイル451、452、453と、該当クリップAVストリームファイル461、462、463とは、同じ5桁の数字からなる名称を有し、拡張子だけ異なる。また、テキストサブタイトル用のフォントファイルのようなその他のデータは、AUXDATAディレクトリ470下に保存される。
本発明によって前述したデータがいずれもダウンロード可能であるが、説明の便宜上、クリップAVストリームファイル、クリップインフォメーションファイル、及びプレイリストに限定して説明する。アプリケーションデータ120に含まれるダウンロード用のジャバアプリケーションを実行すれば、ネットワークを介して外部のデータベースからファイルをダウンロードされて、記録媒体に記録された動映像データ110と共に再生できる。この時、クリップAVストリームファイル、クリップインフォメーションファイル、及びプレイリストのうち一つのファイルのみをダウンロードして記録媒体内の対象ファイルを代替するか、あるいはクリップAVストリームファイル、クリップインフォメーションファイル、及びプレイリストを一つの単位でダウンロードして記録媒体内のファイルに追加できる。ダウンロードされたデータは、後述するローカルストレージに保存される。記録媒体内のファイルと容易に連結するために、ローカルストレージには、図4に示す記録媒体内のディレクトリ構造と同じディレクトリ構造を有するようにダウンロードされたデータが保存されることが望ましい。
以下では、本発明によって前述したデータ構造を有する記録媒体を再生する再生装置について説明する。図5は、本発明の望ましい実施形態による再生装置のブロック図である。
図5を参照するに、本発明による再生装置500は、図1に示す記録媒体100に記録された動映像データ110及びアプリケーションデータ120に加えて、ネットワークを介して外部のデータベースからダウンロードされた動映像データやアプリケーションデータを共に再生できることを特徴とする。
本発明による再生装置500は、読出部510、バッファ部518、及び再生部528を備える。特に、再生部528には、アプリケーションデータ120の再生を制御するアプリケーション管理者533が含まれる。読出部510は、図1で説明した記録媒体500だけでなく、ネットワークを介して外部のデータベース502から動映像データ、アプリケーションデータ、及び/またはシステムデータなどをダウンロードされうる。本発明による再生装置500は、外部のデータベースからダウンロードされた各種データ、すなわちコンテンツを保存するローカルストレージ501を含む。
さらに具体的に、読出部510は、記録媒体500またはローカルストレージ501から動映像データ、アプリケーションデータ、及びシステムデータを読み取って各種類別にバッファ部518にバッファリングする。ローカルストレージ501は、ネットワークを介して外部データベース502からダウンロードされた動映像データ、アプリケーションデータ、及び/またはシステムデータを保存する装置である。
バッファ部518は、バッファリングされるデータの種類によって、アプリケーションデータバッファ520、ナビゲーションデータバッファ521、AVデータバッファ522、及びシステムバッファ523を備える。
再生部528は、バッファリングされたデータを再生するためのエンジンである。バッファリングされたデータの種類によって、アプリケーションデータはプログラムエンジン530で、ナビゲーションデータはナビゲーションエンジン531で、AVデータはプレゼンテーションエンジン532でそれぞれ再生される。
特に、アプリケーション管理者533は、システムデータを解析して、最初に再生されるべきモード(コアモードまたはフルモード)およびデータを決定し、再生中にモード間の転換やユーザのタイトル検索要請によって要請されたタイトルを再生できるように各種エンジン530ないし532を制御する。また、アプリケーション管理者533は、ユーザの入力を処理するためのユーザ入力受信部及び処理部(図示せず)を通じてユーザの入力を各モードの再生エンジン530ないし532に伝達する。さらに、アプリケーション管理者533は、ダウンロード用のアプリケーションまたはローカルストレージ管理用のアプリケーションを利用して、ネットワークを介して外部のデータベースからアプリケーションデータをダウンロードする過程を管理し、ダウンロードされたアプリケーションデータをローカルストレージに適切に保存するようにローカルストレージを管理する。もちろん、ダウンロード及びローカルストレージを管理するモジュールをアプリケーション管理者と別途に備えるように具現してもよい。
プレゼンテーションエンジン532は、AVデータをデコーディングして再生し、ナビゲーションエンジン531の制御を受ける。プログラムエンジン530は、プログラム機能を提供するアプリケーションデータを実行させ、またAPIを通じてプレゼンテーションエンジンを制御する。これにより、動映像を再生しつつ関連付加情報をディスプレイする例のように、動映像を利用した多様なアプリケーションを提供できる。
本発明による再生装置は、アプリケーション管理者の制御を受けて、記録媒体からデータを読み込んで再生できるだけでなく、ネットワークを介して外部のデータベースからダウンロードされてローカルストレージ501に保存されたデータを読み込んで再生できる。
これにより、記録媒体で提供するアプリケーションに、製作者が予想できなかったエラー及び誤動作が含まれた場合の動映像データやアプリケーションデータの交替が可能である。また、記録媒体の製作時には予想できなかった追加機能を提供するアプリケーションやアップデートされた動映像を提供することも可能である。
以下では、ネットワークを介して外部のデータベースからデータをダウンロードしてローカルストレージに保存することをダウンロードといい、システムメモリ(図6)においてローカルストレージ200に保存された各種データを記録媒体200に記録された各種データと連結(binding:以下、バインディングという)することをアップデートという。再生装置500は、外部のデータベースから動映像データ110だけでなく、アプリケーションデータ120及びシステムデータ130をダウンロードして記録媒体に記録されたデータと共に再生できるが、説明の便宜上、動映像データに限定して説明する。
図6は、図5に示す再生装置500の追加構成要素のブロック図である。図6を参照するに、再生装置500は、ダウンロードされたデータを再生するために、図5で説明したアプリケーション管理者533、533以外にファイル入出力管理者610とシステムメモリ630とをさらに含む。
ファイル入出力管理者610は、記録媒体100とネットワークを介して外部のデータベース604からダウンロードされたデータが保存されたローカルストレージ602とからデータを読み出してアプリケーション管理者に伝達し、ローカルストレージ501にデータを記録する。
アプリケーション管理者533は、アップデートAPIを利用してローカルストレージ501に保存されたデータを記録媒体100に記録されたデータとバインディングして、仮想のファイルシステム及びディレクトリ構造を生成し、これをシステムメモリ630に保存する。バインディング情報は、前述したナビゲーションエンジンとプログラムエンジンとによって参照される。バインディング情報の具体的な例は後述する。
システムメモリ630は、記録媒体100から読み出されたデータファイルとローカルストレージ501から読み出されたデータファイルとのバインディング情報を利用して生成された、仮想のファイルシステム及びディレクトリ構造を保存する揮発性メモリである。応用例によって、システムメモリの代わりにワーキングメモリが使われることもある。
以下、図5及び図6に示す再生装置の構造に基づいて、記録媒体とダウンロードされたローカルストレージのデータファイルを連結して再生する過程を具体的に説明する。
図7は、本発明の一実施形態であって、記録媒体に記録されたデータとダウンロードされたデータとを共に再生するためのメタ情報のデータ構造を示す図である。図7を参照するに、バインディング情報としてメタ情報を使用する例が示されている。ダウンロード用のジャバアプリケーションによって外部のデータベースから動映像データをダウンロードする時、示されたメタ情報も共にダウンロードしてローカルストレージ501に保存される。メタ情報は、図4に示すデータファイルとは違って、隠しファイルの形態で保存されることが望ましく、ルートディレクトリ410内に存在せず、ローカルストレージ501内のメタ情報用の別途の保存空間に保存されることが望ましい。
また、図7を参照するに、メタ情報700は、ダウンロード単位情報702、ファイル属性情報704、使用目的情報706、及び連結情報708を含む。
ダウンロード単位情報702は、ダウンロード用のジャバアプリケーションによってダウンロードされるファイルの束についての情報である。すなわち、個々ファイル単位でダウンロードするか、あるいは関連したファイルを束ねて一度にダウンロードするかに関する情報である。例えば、図4に示すように、プレイリストファイル、クリップインフォメーションファイル、またはクリップAVデータファイルなどをファイル単位に一つずつダウンロードしてもよいが、一つの動映像に関連したプレイリストファイル、クリップインフォメーションファイル、及びクリップAVデータファイルなどをダウンロード単位として一度にダウンロードしてもよい。
ファイル属性情報704は、ダウンロードされるファイル名、サイズ、バージョン、保存位置、製作者、またはその他の付加情報などを含みうる。特に、重複されるダウンロードを防止するために、該当ファイルのバージョン情報が含まれることが望ましい。
使用目的情報706は、ダウンロードされるファイルが使われる目的を記述した情報であって、例えば、韓国語用のテキストサブタイトル、英語用のテキストサブタイトル、最新バージョンの予告編動映像データ、登場人物の最新近況を紹介する動映像データのようにダウンロードされるファイルの使用目的に関する情報を含みうる。これにより、関連したデータのダウンロードをユーザが容易に選択できる。
連結情報708は、ローカルストレージ501内にダウンロードされたデータファイルが連結されるべき記録媒体100内のファイル名情報を言う。
以下では、メタ情報700を利用して記録媒体100のデータとローカルストレージ501内にダウンロードされたデータとを連結する過程を説明する。図8は、メタ情報700を利用して記録媒体100に記録されたデータとローカルストレージ501内にダウンロードされたデータとを共に再生する方法を説明するフローチャートである。
図6及び図8を参照するに、アップデートAPIを利用してアップデート動作が実行される(802段階)。アップデート動作は、システムメモリ630でローカルストレージ501に保存された各種データを記録媒体100に記録された各種データとバインディングすることをいう。アップデート動作は、記録媒体が再生装置に挿入されて最初に再生を開始する場合に、図6に示すアプリケーション管理者533によって自動的に実行されうる。または、ダウンロード用のジャバアプリケーションがダウンロードを完了した場合、アプリケーション管理者533にアップデート動作を行うようにアップデートAPIを呼び出すことで実行される。
まず、アプリケーション管理者533は、図6に示すファイル入出力管理者610を通じてローカルストレージ501を検索してダウンロードされたデータの存否を確認する(804段階)。
ダウンロードされたデータがあれば、アプリケーション管理者は、ローカルストレージ501上の別途の空間に保存されたメタ情報を読出し(806段階)、読み出されたメタ情報を解析して、ローカルストレージに保存されたダウンロードされたデータファイルの種類、バージョン、属性、該当データファイルがバインディングされる記録媒体100内のデータファイルに関する情報などを得る(808段階)。
次に、解析されたメタ情報に基づいて、ローカルストレージ501に保存されたダウンロードされたデータファイルと記録媒体100に記録されたデータファイルとをバインディングして、システムメモリ630上に仮想ディレクトリを生成する(810段階)。
以上のアップデート動作が完了すれば、システムメモリ630上の仮想のディレクトリを利用して、動映像データを再生するか、またはアプリケーションを実行する。これにより、記録媒体100に記録されたデータと共にダウンロードされたデータも円滑に再生できる。すなわち、ナビゲーションエンジン及びプログラムエンジンが仮想のディレクトリ構造が保存されたシステムメモリを参照して、記録媒体に記録されたデータだけでなくダウンロードされたデータを共に再生できる。
また、再生装置が提供するシステムメニューやまたはローカルストレージ管理用のジャバアプリケーションも、前述したメタ情報700を使用してローカルストレージを管理できる。特に、前述したメタ情報には、以後にダウンロード用のジャバアプリケーションによって新たにダウンロードが進む場合、重複ダウンロードを防止するために、属性情報の一つにバージョン情報を含むことが望ましい。
図9、図10A及び図10Bは、本発明の他の実施形態であって、記録媒体に記録されたデータとダウンロードされたデータとを共に再生するためのファイルの命名規則を説明する図である。図9を参照するに、記録媒体に記録されたデータファイルを代替するために、一つのファイルのみダウンロードする場合の例が示されている。本発明による記録媒体100に記録されたデータファイル名は、図4で説明したように、5桁の数字と拡張子とからなっている。したがって、ダウンロードされるファイル名は、最初の5桁に連結情報として代替しようとする記録媒体100に記録されたデータファイル名902を使用し、下線(_)以後に重複ダウンロードを避けるために、5桁のバージョン情報904を使用する。また、拡張子906は、代替しようとするデータファイルの拡張子と同一なものを使用することが望ましい。
一方、図10A及び図10Bは、新たなテキストサブタイトル、メニュー、オーディオストリームのようなデータファイルをダウンロードする場合の例を示す。
まず、図10Aを参照するに、クリップAVデータファイルやクリップインフォメーションファイルのようなデータファイルがダウンロードされた場合のファイルの命名規則が示される。
ダウンロードされるデータファイル名は、最初5桁のうち前の2桁は、ダウンロードされるストリームのタイプ1002を表すことが望ましい。例えば、ダウンロードされるファイル名の前の2桁が91であれば、メニュー用、92であれば、テキストサブタイトル用など、クリップAVデータストリームの用途によってストリームのタイプを決定することである。
また、5桁のうち最後の3桁は、該当クリップAVデータストリームの識別子1004を使用することが望ましい。例えば、ユーザにデータファイルに関するさらに詳細な情報を提供するために、英語、韓国語、日本語など、言語別に指定された識別子を使用できる。
そして、下線(_)以後には、重複ダウンロードを避けるために5桁のストリームバージョン情報1006を使用する。また、拡張子1008は、クリップAVストリームの場合、m2tsが使われ、クリップインフォメーションファイルの場合、clpiが使われる。特に、クリップAVストリーム205に対応するクリップインフォメーションファイルの場合、拡張子の前部が同じファイル名が使われ、拡張子のみm2tsとclpiとに異なる。
一方、図10Bを参照するに、プレイリストファイルのようなデータファイルがダウンロードされた場合のファイルの命名規則が示される。
ダウンロードされるデータファイル名は、図10Aの場合と同様に、最初5桁のうち前の2桁は、ダウンロードされるストリームのタイプ1012を示し、最後の3桁は、該当プレイリストのストリームの識別子1014を示す。
但し、図10Aに示すクリップAVストリームファイルやクリップインフォメーションファイルとは違って、ローカルストレージに保存されるプレイリストは、メインビデオストリーム(図3参照)のプレイリストと連結されなければならない。したがって、プレイリストの場合には、図10Bに示すように別途のファイル名規則を適用することが望ましい。すなわち、ファイル名の最初5桁は、図10Aで説明したように、ダウンロード単位の概念を維持してローカルストレージ管理時に利用するために、関連したクリップファイル名と同一にし、下線(_)以後の5桁は、記録媒体内に記録された連結されるべきプレイリストの名称を使用することが望ましい。また、拡張子1008は、mplsが使われる。
前述したファイルの命名規則によって、ダウンロードされるファイル名を解析すれば、図8で説明したバインディング情報を解析することができる。
図11は、ファイルの命名規則を利用して、記録媒体に記録されたデータとダウンロードされたデータとを共に再生する方法を説明するフローチャートである。図11及び図6を参照するに、アップデートAPIを利用してアップデート動作が実行される(1102段階)。
まず、アプリケーション管理者533は、図6に示すファイル入出力管理者610を通じてローカルストレージ501を検索して、ダウンロードされたデータの存否を確認する(1104段階)。
ダウンロードされたデータがあれば、アプリケーション管理者は、ローカルストレージ501からダウンロードされたデータファイルを読み出す(806段階)。その後、図9ないし図10Bで説明したファイルの命名規則に基づいて、読み出されたデータファイル名を解析して、ローカルストレージに保存されたダウンロードされたデータファイルの種類、バージョン、属性、該当データファイルがバインディングされる記録媒体100内のデータファイルに関する情報などを得る(1108段階)。
次に、解析された情報に基づいてローカルストレージ501に保存されたダウンロードされたデータファイルと記録媒体100に記録されたデータファイルとをバインディングして、システムメモリ630上に仮想ディレクトリを生成する(1110段階)。
以上のアップデート動作が完了すれば、システムメモリ上の仮想のディレクトリを利用して、動映像データを再生するか、またはアプリケーションを実行する。これにより、記録媒体に記録されたデータと共にダウンロードされたデータも円滑に再生できる。
図12は、図11に示す方法によって再生される過程を説明する図である。図12を参照するに、図9ないし図10Bに示すファイルの命名規則を利用して、記録媒体に記録されたデータファイルとローカルストレージのダウンロードされたデータとをバインディングして、システムメモリに仮想のディレクトリ構造を生成する一例を示す。まず、記録媒体1202には、01000.mplsというプレイリストファイル、02000.clpiというクリップインフォメーションファイル、及び02000.m2tsというクリップAVデータファイルが記録されている。
一方、ローカルストレージ1204内には、外部のデータベースからダウンロードされた新たなテキストサブタイトルデータとして、92004_01000.mplsというプレイリスト、92004_00000.clpiというクリップインフォメーションファイル、及び92004_00000.m2tsというクリップAVデータファイルが保存されている。図10Aで説明したように、最初5桁のうち前の2桁が92であるので、ファイルの使用目的がテキストサブタイトル用であるということが分かる。ローカルストレージに保存された各ファイルは、92004という最初5桁の名称が同一なので、三つのファイルが一つのダウンロード単位であることが分かる。また、ダウンロードされたプレイリストファイルの場合、下線(_)以後に01000という5桁の数字を有するので、追加されるべきメインストリームのプレイリストが01000.mplsであることが分かる。したがって、アプリケーション管理者は、前述したファイルの命名規則によって、システムメモリ1206上にプレイリストファイルとして01000.mplsファイルを生成し、クリップインフォメーションファイルとしては、92004.clpiファイルを追加し、クリップAVデータファイルとしては、92004.m2tsファイルを追加する。このように、前述したファイルの命名規則によってシステムメモリ上には、記録媒体に記録されたデータとローカルストレージに保存されたダウンロードされたデータとに関する仮想ディレクトリが生成されて、両者を共に円滑に再生できる。
以上の説明は、本発明の一実施形態に過ぎず、当業者は、本発明の本質的な特性から逸脱しない範囲で変形された形態で具現できる。したがって、本発明による実施形態に限定されず、特許請求の範囲に記載された内容と同等な範囲内にある多様な実施形態が含まれるように解釈されねばならない。