IPA


開発成果一覧へ





2004年度第1回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM


  鵜飼 文敏 (日本ヒューレット・パッカード株式会社 ヒューレットパッカード研究所 主幹研究員)



2.採択者氏名


 代表者

中村 健一(東京大学大学院 農学生命科学研究科)

共同開発者

藤森 智行(工学系研究科)



3.プロジェクト管理組織


  日本エンジェルズ・インベストメント株式会社



4.委託金支払額


  5,562,071



5.テーマ名


  マルチメディアアプリケーション用高品位組版ライブラリ



6.関連Webサイト


 http://sourceforge.net/projects/sdlpango

 http://sourceforge.jp/projects/fonthypo



7.テーマ概要


 
近年PC用のモニタの高解像度が進んでいるが、ソフトウェアはまだ高解像度の画面への表示に対応しきれていない。現在のPCの文字表示は、多くの点で印刷物の文字に劣っている。モニタの高解像度・高精細化が進み、印刷なみの品質を表現可能になった場合にそなえて、モニタに表示する場合にも印刷物レベルの高品位な組版を実現するためのライブラリを開発する。また、アプリケーション独自に用意したフォントを扱いやすくするために、フォントのアプリケーション組み込みを支援するツールを開発した。



8.採択理由

 GNOME において国際化されたテキストのレイアウトおよびレンダリングのフレームワークである Pango に日本語特有のレイアウトをサポートするという提案で、これにより Pango を利用する多くのアプリケーションにおいて日本語をより美しくレイアウトできるようになることが期待できます。また、 Simple DirectMedia Layer (SDL) からも Pango が利用できるようにすることで、より広い応用が考えられます。


9.開発目標


 高品位な組版を実現するためのライブラリとして、Pango拡張およびSDL_Pangoの開発をおこなう。
 SDL(Simple DirectMedia Layer)はマルチメディアアプリケーション用のフレームワークであるが、文字のレイアウト処理に関しては基本的な機能しか用意されていない。PangoはGNOME/GTK+の文字表示ライブラリであり、多言語に対応しており様々なレイアウト処理をおこなうことができる。
 本プロジェクトではSDLを用いたアプリケーションが Pangoの提供するレイアウト機能を利用できるようにするSDL_Pangoを開発する。
 Pangoでは様々なレイアウト処理が実装されているが、日本語特有の組版機能が実装されていない。本プロジェクトではPangoに高品位な日本語組版機能で利用できるように改良および拡張モジュールを実装する。W3C CSS3 TextModule (W3C CR)とJIS X 4051-1995(日本語文書の行組版方法)の重なり合う範囲を努力目標とした。
 さらに、SDL_Pangoをもちいたマルチメディアアプリケーションを開発する時に、そのアプリケーションの中だけで使用しているグリフのみをフォントファイルから抜きだしてアプリケーションに埋めこむためのフォントサブセット化ツールの開発をおこなう。



10.進捗概要


 2004年9月に http://sourceforge.net/projects/sdlpango で SDL_Pango 0.1.1 を公開した。
 20004年10月頃から http://sourceforge.jp/projects/fonthypo のCVSリポジトリでフォントサブセット化ツールのソースを公開しはじめた。
 2004年12月には http://sourceforge.net/projects/sdlpango で SDL_Pango 0.1.2 を公開した。



11.成果


 SDL_Pangoは、PangoのFreeTypeバックエンドの出力をSDLサーフェイスに転写するというコアとなる機能とそれを支える部分からできている。ドキュメント整備のために、GNOME / GTK+にならってDoxygenを利用し、各APIについてPangoと同等のドキュメントを用意した。SDL_Pangoに関しては、http://sourceforge.net/projects/sdlpango にて開発成果が公開されている。

 

図.2.3.4.1 OpenGLテクスチャに出力した例

 

 Pangoの拡張に関しては、本プロジェクトでは以下の3点を実装することになった。
 ● ルビ
  ・ 拡張属性(pango_attr_type_register()で登録される属性)および書式指定タグの拡張をおこなった。
 ● 約物スペーシング
  ・JIS X 4051-1995(日本語文書の行組版方法)に規定されている表を実装した
 ● 両端揃え
 また、以下の機能に関してはそれぞれ以下の理由から実装するにいたらなかった。
 ● 縦書き
  ・ FreeType自体に縦書き対応機能が組み込まれてまだ間もなく、参考となる先行実装が見当たらないため、プロジェクトの残りの期間で完成させることに不安があった。また、Pango本家で近く実装が予定されており、重複する可能性があった。
 ● 割注
  ・調査の結果、Pangoの設計では非常に困難と判明した。割注は行の中に行が入る、入れ子的な構造をもつが、Pangoはそうした入れ子構造を想定していない。

図 2.3.4.2. JIS X 4051-1995規格票から抜粋

 

図 2.3.4.3.拡張前の出力例

 

図 2.3.4.4.拡張後の出力例

 

 フォントサブセット化ツールは、オープンソースソフトウェアであるTTX/fonttoolsを利用しフォントをXMLに変換したものと、アプリケーションで利用するPangoの書式指定タグつきのテキストを表現したXMLから、サブセット化したXML表現のフォントを生成するツールとして開発した。市場に流通している商用フォントには、フォントをアプリケーションに埋め込む際に、再編集不可能なものにすることを求めるものが多い。そのため本ツールでは、文字コードとグリフの対応をシャッフルによって断ち切ることで、サブセット化されたフォントを再編集不可能なものにするようにしている。実行速度は不十分ながらも、製品に応用可能なフォントサブセット化ツールが開発できた。フォントサブセット化ツールは、リリースはされていないが CVSリポジトリが http://sourceforge.jp/projects/fonthypo/ にて公開されている。

 



12.プロジェクト評価


 SDL_Pangoおよびフォントサブセット化ツールは目標としていたものを開発し公開はできた。
 SDLにはSDL_ttfというライブラリがあるが、原始的な文字表示機能のみを提供するもので、多言語対応にも問題がある。多言語処理に対応したPangoをSDLでのテキストレンダリングに利用できるようにしたことは有意義なことだと言えるだろう。
 フォントサブセット化ツールについては、CVSリポジトリとしての公開はされているが、期間内にリリースの状態にすることができなかった。
 このプロジェクト「マルチメディアアプリケーション用高品位組版ライブラリ」の中心と考えられるPangoの日本語拡張に関してはPangoに対する独自拡張にとどまっており、これをライブラリとして簡単に利用できるようにできておらず、Pangoにとりこまれるまでにやらなければいけないことはまだまだ残っているように思われる。また、当初の目標としてはW3C CSS3 Text Module (W3C CR)とJIS X 4051-1995(日本語文書の行組版方法)の重なり合う範囲ということだったが、その一部を実装するにとどまった。縦書きなどは、Pango本家で実装が予定されているとしても、本プロジェクトがそれをリードするような動きにならなかったのは残念である。また、割注に関して現在のPangoの設計では非常に困難であるのなら、これを実現するためにはPango自体がどのように変更されるべきかという提案があってもよかったと思う。



13.今後の課題


 既にある程度できているSDL_Pangoに関しては、これからSDL_Pangoを利用するアプリケーションが増えていくような普及活動をすることが求められる。利用するアプリケーションが増えるということは利用者・利用場面の増大を意味し、それによって発見された不具合の修正や、利用者からの提案・要望にこたえるようなさらなる改良・改善をしていくことが期待できる。ドキュメント、速度などの面でさらなる改良が必要とされるだろう。
 Pango拡張に関しては、Pangoモジュールとして実装をしなおしてPangoへのマージを目指すべきだろう。Pangoモジュールとしては実装が難しい点に関しては、Pango自体の改良を提案していくという方向で活動していくことがいいと思う。


  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004