(57)【特許請求の範囲】
【請求項１】
複数の要素と前記複数の要素のレイアウト情報とを含み、タグによりデータを区切ることでデータ構造を表現するマークアップ言語で記述された構造化文書に基づき画像を印刷装置に出力させる出力制御装置であって、
構造化文書を入力する入力手段と、
少なくとも１ページに対応した構造化文書を記憶するメモリと、
前記入力手段より入力した構造化文書をコマンドラインごとに解釈する解釈手段と、
前記解釈手段により要素を示すコマンドラインが解釈されるたびに前記構造化文書に含まれる複数の要素に対応して要素の属性値を示す複数のテーブルを記憶したリスト構造体を参照し、前記リスト構造体のうち参照されたテーブルが示す属性値に応じて、前記属性値または既に参照されているテーブルから継承された属性値を取得する取得手段と、
前記構造化文書に含まれる複数の要素のうち前記解釈手段により解釈されたコマンドラインが示す要素が、前記取得手段により取得された属性値に基づく属性で要素のレイアウト情報に基づき配置された画像を印刷装置に出力させる出力制御手段と、
を有し、
前記出力制御手段は、前記解釈手段による前記構造化文書の解釈が終了する前であっても前記入力手段により構造化文書が入力されて前記メモリに１ページに対応した構造化文書が記憶された場合に、要素が前記取得手段により取得された属性値に基づく属性で含まれる画像を出力させることを特徴とする出力制御装置。
【請求項２】
前記リスト構造体に含まれるテーブルが示す属性値の初期値は属性値の継承を示し、前記取得手段は、参照したテーブルが示す属性値が継承を示す属性値の場合に、継承を行って属性値を取得することを特徴とする請求項１に記載の出力制御装置。
【請求項３】
前記リスト構造体に含まれるテーブルが示す属性値の初期値は属性値の継承を示し、前記解釈手段により解釈されたコマンドラインで属性値が宣言された場合に、テーブルが示す属性値を前記宣言された属性値に更新することを特徴とする請求項１又は２に記載の出力制御装置。
【請求項４】
要素に対して属性値の継承を行う場合、前記要素の上位の要素から継承することを特徴とする請求項１乃至３の何れか１項に記載の出力制御装置。
【請求項５】
複数の要素と前記複数の要素のレイアウト情報とを含み、タグによりデータを区切ることでデータ構造を表現するマークアップ言語で記述された構造化文書に基づき画像を印刷装置に出力させる出力制御方法であって、
構造化文書を入力する入力工程と、
前記入力工程より入力した構造化文書をコマンドラインごとに解釈する解釈工程と、
前記解釈工程において要素を示すコマンドラインが解釈されるたびに前記構造化文書に含まれる複数の要素に対応して要素の属性値を示す複数のテーブルを記憶したリスト構造体を参照し、前記リスト構造体のうち参照されたテーブルが示す属性値に応じて、前記属性値または既に参照されているテーブルから継承された属性値を取得する取得工程と、
前記構造化文書に含まれる複数の要素のうち前記解釈工程において解釈されたコマンドラインが示す要素が、前記取得工程において取得された属性値に基づく属性で要素のレイアウト情報に基づき配置された画像を印刷装置に出力させる出力制御工程と、を有し、
前記出力制御工程では、前記解釈工程における前記構造化文書の解釈が終了する前であっても前記入力工程において構造化文書が入力されて１ページに対応した構造化文書がメモリに記憶された場合に、要素が前記取得工程において取得された属性値に基づく属性で含まれる画像を出力させることを特徴とする出力制御方法。
【請求項６】
前記リスト構造体に含まれるテーブルが示す属性値の初期値は属性値の継承を示し、前記取得工程では、参照したテーブルが示す属性値が継承を示す属性値の場合に、継承を行って属性値を取得することを特徴とする請求項５に記載の出力制御方法。
【請求項７】
前記リスト構造体に含まれるテーブルが示す属性値の初期値は属性値の継承を示し、前記解釈工程において解釈されたコマンドラインで属性値が宣言された場合に、テーブルが示す属性値を前記宣言された属性値に更新することを特徴とする請求項５又は６に記載の出力制御方法。
【請求項８】
要素に対して属性値の継承を行う場合、前記要素の上位の要素から継承することを特徴とする請求項５乃至７の何れか１項に記載の出力制御方法。
【請求項９】
請求項５乃至８の何れか１項に記載の出力制御方法をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルデータ放送や、インターネットを始めとするデータ通信において配信されるコンテンツを印字する技術に関するものである。
【０００２】
【従来の技術】
従来、XHTMLなどのマークアップ言語で記述したコンテンツの解釈実行および印字処理は、大規模な資源を駆使できるコンピュータ等で行なわれていた。このケースでは、まず、コンテンツ単位で継承マップを先行して一括構築し、しかる後に、印字データを作成する方式が採られていた。
【０００３】
また、デジタルデータ放送を受信し、テレビ画面に放送の表示を行う画像情報処理装置において、データ放送画面を構成するＢＭＬファイルを解析し、印刷機能を備える技術が存在している（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特開２００３−０３７８１２号公報
【０００５】
【発明が解決しようとする課題】
デジタルテレビ、携帯電話やデジタルカメラ等も、マークアップ言語で記述したコンテンツを取り扱うことが多くなってきている。ところが、このような機器では資源が限られているため、例えば、コンテンツを印字データに変換するに当たり、コンテンツ全体の印字データを保持することが困難である。
【０００６】
本発明は、上記問題点に鑑みてなされたものであり、コマンドの解釈とコンテンツ等の情報の出力制御を並行して実行することを可能とし、出力制御装置側の処理負担を軽減することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の出力制御装置は、複数の要素と前記複数の要素のレイアウト情報とを含み、タグによりデータを区切ることでデータ構造を表現するマークアップ言語で記述された構造化文書に基づき画像を印刷装置に出力させる出力制御装置であって、構造化文書を入力する入力手段と、少なくとも１ページに対応した構造化文書を記憶するメモリと、前記入力手段より入力した構造化文書をコマンドラインごとに解釈する解釈手段と、前記解釈手段により要素を示すコマンドラインが解釈されるたびに前記構造化文書に含まれる複数の要素に対応して要素の属性値を示す複数のテーブルを記憶したリスト構造体を参照し、前記リスト構造体のうち参照されたテーブルが示す属性値に応じて、前記属性値または既に参照されているテーブルから継承された属性値を取得する取得手段と、前記構造化文書に含まれる複数の要素のうち前記解釈手段により解釈されたコマンドラインが示す要素が、前記取得手段により取得された属性値に基づく属性で要素のレイアウト情報に基づき配置された画像を印刷装置に出力させる出力制御手段と、を有し、
前記出力制御手段は、前記解釈手段による前記構造化文書の解釈が終了する前であっても前記入力手段により構造化文書が入力されて前記メモリに１ページに対応した構造化文書が記憶された場合に、要素が前記取得手段により取得された属性値に基づく属性で含まれる画像を出力させることを特徴とする。
本発明の出力制御方法は、複数の要素と前記複数の要素のレイアウト情報とを含み、タグによりデータを区切ることでデータ構造を表現するマークアップ言語で記述された構造化文書に基づき画像を印刷装置に出力させる出力制御方法であって、構造化文書を入力する入力工程と、前記入力工程より入力した構造化文書をコマンドラインごとに解釈する解釈工程と、前記解釈工程において要素を示すコマンドラインが解釈されるたびに前記構造化文書に含まれる複数の要素に対応して要素の属性値を示す複数のテーブルを記憶したリスト構造体を参照し、前記リスト構造体のうち参照されたテーブルが示す属性値に応じて、前記属性値または既に参照されているテーブルから継承された属性値を取得する取得工程と、前記構造化文書に含まれる複数の要素のうち前記解釈工程において解釈されたコマンドラインが示す要素が、前記取得工程において取得された属性値に基づく属性で要素のレイアウト情報に基づき配置された画像を印刷装置に出力させる出力制御工程と、を有し、前記出力制御工程では、前記解釈工程における前記構造化文書の解釈が終了する前であっても前記入力工程において構造化文書が入力されて１ページに対応した構造化文書がメモリに記憶された場合に、要素が前記取得工程において取得された属性値に基づく属性で含まれる画像を出力させることを特徴とする。
【０００８】
【発明の実施の形態】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
図１は、本発明の一実施形態に係る印字システムの構成を概略的に示したブロック図である。まず、本実施形態に係る印字システムは、チューナ（STB）１０、メモリカード１２、表示装置１１、及び、プリンタコントローラ（SCB）２１とプリンタエンジン２２を含むプリンタ２０によって構成される。
【０００９】
さらに、チューナ１０は、BML/P（印字用のBroadcast Markup Language）で表現されるコンテンツを、IEEE1394 Interface上で動作する、DPP(Direct Print Protocol)およびDPC(Direct Print Command Set)によって、プリンタコントローラ２１に転送する。プリンタコントローラ２１は、パッケージ化してあるBML/Pコンテンツを、複数のファイルに分離し、Parser(ここでは、字句解析・構文解析・意味解析を含む)の働きにより、印字可能ファイルに変換する。さらに、印字コマンド列に変換し、プリンタエンジン２２に出力する。
【００１０】
ここで、前述のように、BML/Pコンテンツを、予めチューナにて画像とレイアウト表現部をマルチパート化してからプリンタコントローラ２１に転送しても良いが、レイアウト表現部のみをプリンタコントローラ２１に送り、プリンタコントローラ２１がレイアウト表現部で参照しているファイルをチューナ１０に要求して、取得することもできる。
【００１１】
図２は、本実施形態において適用するIEEE1394 Interfaceプロトコル・スタックを説明するための図である。
IEEE1394のリンク層のからアシンクロナス転送モードを用い、トランザクション、セッッション層の上にDPP(direct print protocol)/DPC(direct print command)を搭載したものである。
【００１２】
図３は、本実施形態におけるDPP/DPCパケットを用いた“Send”データ構造を模式的に示した図である。また、図４は、本実施形態におけるDPP/DPCパケットのヘッダー各要素に対する意味付けを示した図である。
本実施形態ではsend data=“image”として利用する。図３中の“padding”とは、マルチパート化したコンテンツのバイト総数が４の倍数バイトでない場合に00hで埋めることである。
【００１３】
図５は、本実施形態におけるチューナ（STB）内部でのデータ処理フローを示した図である。
ここで、コンテンツデータはMPEG-2方式により他のメディアと共に多重化され、さらに単一搬送波でPSKデジタル変調後、アンテナから送信される。“Block-01”では、受信した電波RFをチューナで選局・復調し、多重化ストリームであるMPEG-2 TS packetを得る。
【００１４】
続く“Block-02”では、多重化ストリームからPIDフィルタリング処理／PSI分析処理に基づき、データ放送コンテンツを他のメディアから分離する。“Block-03”では、前分離されたデータ放送コンテンツだけを含むTSパケットをDSM-CC方式で定義される１周期分のデータ列としてカルーセルバッファにて一時保存する。“Block-04”では、カルーセルバッファで一時保存したデータ列（複数のDII+DDB）から、複数のフアイルを得て、チューナ内のフラッシュメモリ等の記憶装置に蓄える。すなわち、送出側が、一体（マルチパート）化した「モジュール」を再び、▲１▼静止画jpeg▲２▼図形png▲３▼文字text▲４▼制御コードtextを分離する。BMLブラウザソフトウェアは前記フアイルを順次読み出し、画面表示やリモコンとのデータの受け渡しおよび、印字の起動を行う。
【００１５】
図６は、本実施形態に係るデジタルテレビチューナ（STB）のシステム構成を模式的に示した図である。
ハードウェアはCPUを始めとしたメモリ、チューナ・フロントエンド処理およびInterface制御用デバイス群からなる。STBシステム LSI base hardwareはシステム全体の制御用ロジックを集積したLSIチップセットある。オペレーティングシステムはデバイスドライバ、カーネル、ライブラリから構成されるソフト群である。デバイスドライバはインタフェースのリンク層・下位プロトコルを制御する。カーネルはタスクの制御、タスク間通信、資源の管理を行う。ライブラリはファイルシステムやインタフェースの上位プロトコルを制御するモジュールの集合である。ミドルウエアはデジタルテレビチューナに必須のアプリケーションで、ブラウザ（表示プログラム）など常駐ソフト群から成る。
【００１６】
図７は、本実施形態におけるプリント専用API（Application Programming Interface）を説明するための図である。
アプリケーションはAPIで定義された「手続き」を用いて、ミドルウエア層と共同して、各機種依存の制御を担当する。たとえば、BML/PコンテンツとのAPIとして図６に示すようにDOM(document object model)を利用する。
【００１７】
図８は、デジタルテレビ放送のチューナ内部におけるBML/Pコンテンツのファイル構成を示した図である。
なお、ここでは、「モジュール」を複数の独立したフアイルを含む「フォルダ」に近い意味で用いている。以下にBML/Pコンテンツのファイル構成を説明する。
【００１８】
まず、放送される一つの番組を“イベント”と呼ぶ。イベント(ここでは、“AfternoonTea”)は複数のモジュールから構成される。モジュール名は“16進文字列4桁”で表現される。特別の番号“0x0000”で区別されるモジュールは、番組群のうち最初に起動され、通常は全体のメインメニュー（複数のフアイルを含む）を収容する。
【００１９】
次に、モジュール番号“0x0000”の中には“startup.bml”と言う名前のフアイルが必ず存在する。表示ブラウザ（ソフト）はこのフアイルを最初に処理する。ところで、イベント全体に対する最大サイズの規定はないが、１モジュールの最大は約１MBである。また、１イベントあたりの最大モジュール数は256個である。チューナに実装するRAMのサイズは最小２MBと規定されているので、放送するコンテンツのサイズもそれ以下である必要がある。
【００２０】
図９は、図８のモジュール群から印字用モジュール（ここでは、9999番）だけを書き出した図である。
このモジュールは、１個の「プリント用レイアウト情報」（ここでは、print.bml）と複数の付属する「画像ファイル」から成る。なお、印字用モジュールは全体で約300KBを最大の目安としている。また、このモジュール中にはxxxx.bmlが一個のみ存在することになっている。
【００２１】
図１０は、マルチパート化したファイルの一構成例を示した図である。以下に、前記複数のファイルからなるモジュールが１つにまとめられた（マルチパート化した）状態について説明する。
マルチパート化は電子メールなどでもよく利用される技術で、RFC1521（MIME）で規定されている。本実施形態における主な構成要素とその配列を説明する。まず、それぞれのファイルを区切るための文字（boundary）を定義する。次にモジュール全体のサイズが示される。さらに“Boundary”に続き、リソースリスト“resourceList”という情報が付加される。“resouceList”にはモジュールに含まれる全てのファイルの情報（メディアの型、ファイルの長さ、符号化方式、ファイルの名前等）が含まれる。さらに、“boundary”、ファイルの長さ、ファイルの名前など、さらに実ファイルデータの繰り返しとなる。
【００２２】
図１１は、デジタルテレビによるプリント実行処理を簡略化して示した図である。以下に、プリント実行のシーケンスを説明する。
プリンタの電源onで待機状態となったとき“online”がチューナに対して通知される。続いて、アプリケーションは、BML/Pのマルチパート化したコンテンツを準備する。
【００２３】
次に、チューナは、前記コンテンツを1394 i/f Boardに予め定めるデータ・パケット形式で出力する。もし印刷実行中に不具合があった場合には、プリンタはチューナに対してエラーを通知する。通知を受けたチューナはその内容に対応するメッセージを表示する。エラーが復旧したとき、プリンタからチューナに対して“online”が通知される。
【００２４】
図１２は、デジタルデータ放送における著作権保護に関する一実施形態を説明するための図である。
まず、デジタルデータ放送によって配信されるコンテンツのうち、著作権および技術上の観点から「印字も可能」としてユーザに通知されたものであれば、ユーザの操作指示により、該データが印字装置に出力可能である。
【００２５】
次に、著作権保護に関する第１の実施形態について説明する。
放送されたコンテンツは、一旦そのチューナ固有のファイルフォーマットに基づき、内部に一時記憶される。この記憶領域はチューナ内部に固定される媒体にのみマップされていて、ユーザが取り外しできない構造になっている。チューナはこのデータに基づき表示・画面制御用データを作成する。
【００２６】
一方、ユーザが印字を指示したコンテンツは、著作権取り扱い判定・課金処理(セキュリティ シールド)で予め定める手段にて予めダウンロードされていた判定情報(SRM: System Renew-ability Messages)に基づき、選別・加工されバッファに転送される。
【００２７】
ここで「加工」とは、画像データの解像度変換や不正・偽造防止用ウォーターマークの付加などを含む。印字用コンテンツは最終的にバッファに蓄えられる。このバッファ領域はチューナ内部に固定される媒体、或いは、ユーザが取り外しできるメモリカードにマップされる。なお、前記シールドを通過したファイル名は履歴として保存し、課金情報として利用する。前記バッファの内容は削除・重ね書きができる。一般にプリンタにファイル出力した時点でバッファの内容は削除される。
【００２８】
次に、著作権保護に関する第２の実施形態である、セッションによる方法について説明する。
印刷命令が実行された後、チューナ側からプリンタに対してセッションを張る。セッションが張られた後は、プリンタ側からのファイル要求に応じて、チューナはファイルを転送する。全てのファイル転送が終了したら、プリンタ側から速やかにセッションを切断する。このように、セッションを張らないクライアントからのファイル要求は行えない。
【００２９】
さらに、著作権保護に関する第３の実施形態である、名前空間による方法について説明する。
“印刷用APIで指定された名前空間以下のファイルへのアクセスのみ許す"というような名前空間による制限も課す。例えば、print(“~/0003/new.bml”)という命令を実行した場合、0003モジュールのファイルにしかアクセスを許さない。
【００３０】
また、print(“arib-file://mydirectory/mysubdirectory/recipie.bml”)という命令の場合は“arib-file://mydirectory/mysubdirectory/”以下に格納されているファイルにしかアクセスできない。
【００３１】
図１３は、本実施形態で用いた、印字レイアウト用マークアップ言語BML/PとBMLとの関係を説明する図である。まず、BML/PとBMLとの違いを説明する。
BML/PはBMLマルチメディア符号化方式に基づき、デジタルテレビチューナが出力する、印字コンテンツのレイアウトを表現する。すなわち、BML1.0 における<element・property・value>およびCSS2.0におけるselector [property・value]のうちから、簡易な構成の出力デバイスでも処理可能なものを抽出している。BML/Pでは、ol/ul/liや簡易はテーブル要素をBML拡張機能として搭載している。逆に、BMLで使えたスクリプトやイベントハンドラ、あるいはDOMインタフェースは使えない。本実施形態では、チューナおよびBML/Pパーサ搭載のプリンタコントローラとプリンタエンジンの構成となっている。
【００３２】
次に、XML系コンテンツを印字に応用する場合に想定される制限事項について説明する。
XML系コンテンツは、表示系の表現形式として発展・普及してきたが、最近印字にも応用しようとの動きがある。特にプリンタドライバを用いない、非PCプリンタ系にとってソリューションの候補となる。だだし、表示系と印字系の間の溝を、いかにして埋めるかが課題であった。たとえば、表示系ではスクロールという概念はあるがページの区切りはなない。一方印字系ではその逆でスクロールという概念はなく、ページのボックスの概念を適用する必要がある。
【００３３】
なお、印字用コンテンツはSTB内部のアプリケーションソフトウエアの働きにより表示コンテンツに変換すれば表示可能である。逆に表示用コンテンツを印字用に加工もできる。一般に、表示用の画像は印字に必要な解像度を持たないため印字結果には制限が生じる。
【００３４】
さらに、本実施形態では、表現可能なコンテンツ・オブジェクトは「テキストと画像」の各要素の組み合わせを用いている。BMLは表示レイアウトの保持、とりわけオブジェクトの絶対位置の再現性が保たれると言う特徴を有する。BML/Pもその特性に準拠している。本実施形態では、最終的な媒体上のサイズはA4またはA3の縦または、横としている。
【００３５】
図１４は、本実施形態で用いた、印字範囲の指定について説明するための図である。以下は、BML/Pにおける、メディアの大きさや形、メディア上での位置指定について説明している。
BMLではブロック要素を画面上で配置する場合、左上を原点とし、ピクセル単位で与えたグリッド上でのXY座標(left・top)、縦(height)、横幅(width)の絶対位置で指定する。
【００３６】
一方、BML/Pでは、左上端を原点とするXY座標(left・top)、縦(height)、横幅(width)の絶対位置はmmを単位とし指定する。例えば、印字方向（オリエンテーション）及びメディアサイズは以下のように指定する。
出力メディアA4縦置きの場合は・・・@page[size: 210.1mm 297.1mm; portrait]
出力メディアA4横置きの場合は・・・@page[size: 297.1mm 210.1mm; landscape]
また、ブロック要素、例えばオブジェクトの場合は以下のようになる。
<object data=“xx.jpg”type=“image/jpg” style=“top:xxmm; left:xxmm; width:xxmm; hight:xxxmm;” />
【００３７】
図１５は、BML/PをXMLドキュメントとして、木構造で表現した図である。まず、BML/P文書の構造について以下に説明する。
“BML”が最上位に位置し、その下に“head”と“body”が配置される。“head”部分には“title”や“style”等が配置され、実際のコンテンツは“body”要素の下に位置することになる。ある要素の上に表される要素が親(ブロック)、その下は子(ブロック)となる。特定の場合を除き、属性は親（上位ブロック）から子（下位ブロック）に継承される。
【００３８】
ところで、本実施形態のような民生用機器においては、リソースの制限により、PCで用いられているような大型のパーサは導入できない。従って、小規模のパーサで処理可能なレイアウト表現である必要がある。そこで、BMLとの相互変換が容易なBML/Pを考案した。BML/Pのパーサが分担する機能は、記号表の管理や木構造の検索・処理とか、記号表やリスト構造体の検索・管理などである。ここで、字句解析には、「?」、「！」、「<>」、「</>」、「= 」、「“ ”」、「；」、「：」等を検索キーとしている。
【００３９】
図１６は、BML/Pの表現・記述例を示した図である。以下はプリンタ側の処理についてそのCSSスタイルシートの管理を説明したものである。
まず、属性値は親から子に「継承」される。スタイルの記述方法にはドキュメント全体の設定（リンク読み込み型スタイル）、ページ全体の設定（埋め込み型スタイル）、インラインの設定（インライン型スタイル）の三段階がある。同じ属性に対して異なる方法が設定されている場合、より小さい部分(ブロック)での設定が優先される。デバイス固有のスタイルは、ドキュメント木構造におけるルートのイニシャル値（既定値）として作用する。
【００４０】
さらに、属性値の継承を管理するには、各ノードに対する属性マップを予め作成し、実作業に備える。ここで、属性：属性値は各処理単位（ドキュメント）で完結し、その枠外（ボリューム）には継承しない。そこで、上記属性値のマップを用いてレイアウト情報を事前に作成する。次に、注目バンド幅（例＝１インチ幅、最小＝キャラクター1ライン、最大＝1ページ）にヒットする画像やキャラクターを切り出して、描画し印字バッフアに蓄える。上記印字バッフアのデータを印字エンジンに対応するフォマットに変換し、所定の形式・手順・プロトコルで送出する。
【００４１】
図１７は、第１の属性値の継承管理法について説明するための図である。
ここにおいて、先ずBML/Pのツリーを解釈して属性値を調べる方法がある。このやり方は、one pass逐次処理方式に比べ、理にかなった効率的な方法である。ただし、ドキュメントデータが全て揃うまで処理を待たなければならない。ただし、Object(画像など)であらかじめ、レイアウト・大きさが解決できれば実体のダウンロードは後でもかまわない。
【００４２】
Pass One(下準備)：
Node毎に属性名→値のMapを保持する。
1)各Nodeを順に辿ってゆき、
2)そのNodeに合致するCSSを検索してMapに格納
3)そのMapをインラインのスタイルで上書き
*Mapの中身は例えばFont:xx; Width:xx; Height:xx; Color:xxx;などである。以下に「下準備」で作成した構造体のリンク状態例を示した。
【００４３】
Pass Two(実作業)：
1)実際に描画するときには、必要な属性名をMapから検索する。
2)Mapから検索できたらその値を使えばよい。
3)見つからない場合はデフォルトスタイルシートを参照する。
4)もし、デフォルトスタイルの値が“Inherit”である場合は、親Nodeをたどり、その親Nodeに対して上記手順を繰り返す。
【００４４】
なお、ルートにたどり着いても“Inherit”のまま解決がつかない場合は、「埋め込みスタイル」を、さらには「デバイス固有のスタイル」を適用する。「デバイス固有のスタイル」は実装されるプラットフォーム・機器によって予め決められたものである。
【００４５】
図１８は、第２の属性値の継承管理法について説明するための図である。
この方式は、子nodeを描画するときには、必ず親nodeの情報は確定していることに注目した方式である。この方式に拠れば、ドキュメント情報が全て揃わななくとも処理を開始できる利点がある。ただし、テーブル要素などレイアウトに重大な結果をもたらすセレクタの処理等は注意が必要である。この場合は、事前に仕様の取り決め・制限を設ける。
【００４６】
属性値の有効範囲は値が宣言されたブロックの内側で有効となる。そのブロックで宣言されていない属性が参照された時は、デフォルトスタイルシートを参照する。もし、デフォルトが「inherit」となっていたら、宣言が最初に存在する外側のブロックの値を採用する。ここで、前記ブロックの「内側・外側」はドキュメントの木構造における、ノードの「下位・上位」に対応する。
【００４７】
以下に、本発明に一実施形態における継承の管理をリスト構造体で行う方法について説明する。
“scc_cont_tbl”はスタイル管理テーブル、“scc_tbl_xx”はスタイル登録テーブルをそれぞれ表す。すなわち、“scc_cont_tbl”は“scc_tbl”を管理するためのテーブルであり、“scc_tbl”へのリンクポインタや登録有効数などを記憶する。また、“tail_ptr”はリンクしているテーブルの最後のテーブルを示すポインタであり、“current_ptr”は現在処理中のブロック内で有効なテーブルのポインタであり、“number”は現在有効な登録テーブルの数をそれぞれ表す。
【００４８】
“scc_tbl_00”はデバイス固有のスタイルを記憶する。次の“scc_tbl_01”はドキュメントヘッダにおいて<style>・・・</style>で宣言する「埋め込Style」を記憶する。“scc_tbl_02”以降は「インライン スタイル」を記憶する。“nex_ptr”は各テーブルの前方リンクである。一方、“pre_ptr”は各テーブルの後方リンクである。“scc_tbl”の初期値は「inherit」で、Inlineで属性が宣言される度にその値を上書きする。もし、内側のブロックに処理対象が遷移して、新たにインラインスタイルが宣言されれば、その内容を含むテーブルをリンクする。外側のブロックに処理対象が遷移する時は、現在のブロックに対応するテーブルを削除する。そこで、属性値が新たに宣言されたなら、その内容を含むテーブルをリンクする。
【００４９】
以下では、プリンタ側の処理について、そのページレイアウトの管理を説明する。
プリンタが一度に受け入れることの出来るコンテンツの大きさは、コンテンツを保持できるメモリ容量に依存する。本実施形態では、プリンタは最低１ページ分のコンテンツを保持できるものとする。ところで、プリンタが上記保持容量を越えたとき、プリンタはその時点でページレイアウトを確定して、一旦印字する。しかる後に残りのコンテンツを受け入れてレイアウト処理を再開する。このケースではページ間でレイアウトの不連続が起きることがある。このレイアウトの不連続を改善するために、先行するページのレイアウト情報を後続するページに継承する。
【００５０】
図１９は、テーブル要素を実現するための実施形態を説明するための図である。
本実施形態では、テーブル外枠の幅をスタイルで指定できる。
例：<table style=“top:10mm; left:15mm; width:150;”/>
テーブル外枠の高さ指定もできる。
例：<table style=“top:10mm; left:15mm; width:150; hight:200;”/>
【００５１】
ただし、前記ケースでは、出力メディアがある特定の形態に規定されるため、本来の「様々なメディア合わせてオートで配置する機能」を使う利便性は得られない。この場合、コンテンツ製作者の責任で、結果を予め確認することが前提となる。また、セルサイズを個々に指定することは出来ない。
【００５２】
ところで、画像をセル内に配置する場合、予め画像サイズの指定があればそれに従う。無ければ、画像サイズは初期値であるセル幅均等割付を適用したセルサイズにフィティングされる。セルサイズが仮決定している状態で、そのセルサイズより大きい画像を配置するときは、画像のサイズを縮小する。
【００５３】
さらに、テーブルはそのページ内で完結させることを前提とする。もし、コンテンツ表現におけるテーブル要素の作用する範囲が複数ページにまたがっていて、かつ、レイアウトの処理中にプリンタのリソースが不足したときは、処理を中断し、その時点での作表・レイアウトを決定する。そのページの印字が完了し、前リソースが開放した時点で、残りの表を新たにレイアウトし、印字する。この場合、表のセルサイズが前記ケースの前後で変化することがある。この場合、ページ送り後のセルサイズは直前のサイズを初期値とすることにより、スタイルの不連続が緩和する。
【００５４】
また、本実施形態では、テーブルの途中で“page-brake”は適用しない。また、テーブルの入れ子の深さ（ネストレベル）は各プリンタのリソースに依存する。テーブルのセル幅・高さを自動決定する場合のルールはシステムで予め決めてある。コンテンツのレイアウトを表現する部分には、実体である画像データとその付加情報（画像データの大き、出力時のサイズ）を含む。ただし、テーブル外枠の大きさの指定があるときは、その外枠サイズを優先して適用する。
【００５５】
以上説明してきたように、本実施形態によれば、属性値の管理を、ページやコンテンツ全体を単位として一括して行うのではなく、コマンドライン単位に逐次行うため、コマンドの解釈と印字の実行を平行して行える。また、大きな継承マップを保持する必要が無いので、パーサのリソースが少なくても済む利点がある。
【００５６】
また、本実施形態によれば、印字データをプリンタエンジンの処理単位で形成できるため、ページやコンテンツ全体の印字データを保持する必要が無い。従って、印字データを保持するメモリも少なくて済む利点がある。さらに、本実施形態によれば、コンテンツが全て揃わなくとも印字データの作成を開始できるため、結果として、印字動作を早く開始できる利点がある。
【００５７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００５８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５９】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６０】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６１】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６２】
ここで、本発明の実施態様を以下に列挙する。
［実施態様１］情報を入力する入力手段と、
前記入力手段より入力した前記情報内のコマンドライン間における属性値の継承管理を行う管理手段と、
前記情報に含まれるコマンドライン及び前記管理手段による管理内容を解釈する解釈手段と、
前記解釈手段による解釈結果に基づいて、出力手段に対して前記情報の出力制御を行う出力制御手段とを有することを特徴とする出力制御装置。
【００６３】
［実施態様２］前記管理手段は、前記解釈手段が前記コマンドラインの解釈の度に参照し、或いは逐次有効な内容に更新するリスト構造体を含むことを特徴とする実施態様１に記載の出力制御装置。
【００６４】
［実施態様３］前記情報は、前記情報内のデータがタグによって区切られることでデータ構造を表現するマークアップ言語で記述され、画像ファイルと前記画像ファイルのレイアウト情報とを含むことを特徴とする実施態様１又は２に記載の出力制御装置。
【００６５】
［実施態様４］情報を入力する入力ステップと、
前記入力ステップにて入力された前記情報内のコマンドライン間における属性値の継承管理を管理手段において行う管理する管理ステップと、
前記情報に含まれるコマンドライン及び前記管理手段による管理内容を解釈手段にて解釈する解釈ステップと、
前記解釈手段による解釈結果に基づいて、出力手段に対して前記情報の出力制御を行う出力制御ステップとを含むことを特徴とする出力制御方法。
【００６６】
［実施態様５］実施態様４に記載の出力制御方法をコンピュータに実行させるためのプログラム。
【００６７】
［実施態様６］実施態様５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００６８】
【発明の効果】
本発明によれば、コマンドの解釈と印刷処理とを並行で処理することが可能となり、出力制御装置側の処理負担を軽減することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る印字システムの構成を概略的に示したブロック図である。
【図２】本発明の一実施形態において適用するIEEE1394 Interfaceプロトコル・スタックを説明するための図である。
【図３】本発明の一実施形態におけるDPP/DPCパケット Packetを用いた“Send”データ構造を模式的に示した図である。
【図４】本発明の一実施形態におけるDPP/DPCパケットのヘッダー各要素に対する意味付けを示した図である。
【図５】本発明の一実施形態におけるチューナ（STB）内部でのデータ処理フローを示した図である。
【図６】本発明の一実施形態に係るデジタルテレビチューナ（STB）のシステム構成を模式的に示した図である。
【図７】本発明の一実施形態におけるプリント専用API（Application Programming Interface）を説明するための図である。
【図８】デジタルテレビ放送のチューナ内部におけるBML/Pコンテンツのファイル構成を示した図である。
【図９】図８のモジュール群から印字用モジュール（ここでは、9999番）だけを書き出した図である。
【図１０】マルチパート化したファイルの一構成例を示した図である。
【図１１】デジタルテレビによるプリント実行処理を簡略化して示した図である。
【図１２】デジタルデータ放送における著作権保護に関する一実施形態を説明するための図である。
【図１３】本発明の一実施形態で適用した印字レイアウト用マークアップ言語BML/PとBMLとの関係を説明する図である。
【図１４】本発明の一実施形態で適用した印字範囲の指定について説明するための図である。
【図１５】  BML/PをXMLドキュメントとして、木構造で表現した図である。
【図１６】  BML/Pの表現・記述例を示した図である。
【図１７】第１の属性値の継承管理法について説明するための図である。
【図１８】第２の属性値の継承管理法について説明するための図である。
【図１９】テーブル要素を実現するための実施形態を説明するための図である。
【符号の説明】
１０  チューナ
１１  表示装置
１２  メモリカード
２０  プリンタ
２１  プリンタコントローラ
２２  プリンタエンジン
【図１】
0004428942.tif 000002
【図２】
0004428942.tif 000003
【図３】
0004428942.tif 000004
【図４】
0004428942.tif 000005
【図５】
0004428942.tif 000006
【図６】
0004428942.tif 000007
【図７】
0004428942.tif 000008
【図８】
0004428942.tif 000009
【図９】
0004428942.tif 000010
【図１０】
0004428942.tif 000011
【図１１】
0004428942.tif 000012
【図１２】
0004428942.tif 000013
【図１３】
0004428942.tif 000014
【図１４】
0004428942.tif 000015
【図１５】
0004428942.tif 000016
【図１６】
0004428942.tif 000017
【図１７】
0004428942.tif 000018
【図１８】
0004428942.tif 000019
【図１９】
0004428942.tif 000020