www - みる会図書館


検索対象: 月刊 C MAGAZINE 2001年12月号
33件見つかりました。

1. 月刊 C MAGAZINE 2001年12月号

プレステ 2- XBOXetc. NEW ケーム開発始動につき アルテイメットファイティングチャンビオンシップ (DC) ファイティングカップ ( N64 ) TOBAL2 ファイティングバイバース 2 玉繭物語 たのカで お問い合わせ・郵送先 〒 108-0073 東京都港区三田 3-1-4 中島ビル 2F 株式会社アンカー採用 C 係まで ■会社概要 。、既成観念にとらわれることなく、面白いと思ったらどんな事にもチャレンジしてみる。 、・本当の意味での「ゲーム」が創れる会社、それがアンカーです。 あなたの技術とアイデアを新作で活かしてみませんか。 ■職一種 / ゲームプログラマー ・雇用形態 / 社員または契約社員 ・資格 / 学歴不問 1 8 歳 ~ 30 歳位まで ( 実務経験者優遇 ) ・給与・待遇 / 月給 27 万円以上 ( 経験考慮 ) / 昇給年 1 回 ■休日 / 隔週休 2 日 ( 日、隔土 ) 、夏冬期、慶弔リフレッシュ休暇 ■応募方法 / 履歴書と職務経歴書、またはあなたのオリジナル作品を 下記までお送りください。 職務経歴書はその作品でどの部分に関わったかを明記してください。 オリジナル作品は動作環境等を明記してください。 書類 ( 作品 ) 審査を通過した方には面接の通知をいたします。 ホームページ 面接の通知は書類到着後 2 週間以内にいたします。 ご覧になツ くださし ・ご質問、お問い合わせはメールか電話で採用担当まで E-maiI: info@anchorinc.co.jp TeI : 03-3455-8405 弊社最新作 ー弊社企画作品 工ンターテイメント風穴をある ・ ANCHORåLIne- www: 日 n 「れ 0 「 in 〔 : に 0 」 p 第弊社関連作品 募集要項 Ma 朝 6 れ . dex 広告主のホームペーシを探すなら、こちら http://www.aqut.net/から アクアプラス アンカー 工クセルソフト . オーバス . http://leaf.aquaplus ℃ 0. jp/ http: 〃 www.ancho 「 inc. CO. jp/ .. 表 4 http://www.xlsoft.com/ http://www.opus. CO. jp/ フォレストエンターテイメント… http://www.fO 「 est-e. CO. jp/ .. 表 2 見開き http://www.mic 「 OSOft ℃ om/japan/ マイクロソフト .

2. 月刊 C MAGAZINE 2001年12月号

MONTHLY HEADLINE マイクロソフト / 「 XP デベロッパキャンペーン」を実施 マイクロソフトは , 「 Mic 「 0S0 れ Office xp Developer 」 ( 以下 : Office XP Developer) および「 Microsoft Developer Network オペ レーティングシステムサブスクリプション」 ( 以下 MSDN OS) 購入者を対象にキャッシュバックを行う「 XP デベロッパキャン ペーン」を 10 月 19 日より 12 月 31 日まで実施すると発表した。「 x P デベロッパキャンペーン」は , Office XP Developer と MSDN OS の両製品購入者にもれなく 20 , 000 円のキャッシュバックを 実施する。また , Office XP Deve pe 「のみの購入者にも 5 , 000 円のキャッシュバックを実施する。 ・キャンペーン期間 2001 年 10 月 19 日 ~ 2001 年 12 月 31 日 申し込み締切 : 2001 年 12 月 31 日 ( 月 ) ※当日消印有効 ・対象製品 ・ Microsoft Office XP Developer ・ Microsoft Office XP Developer アップグレード版 ・ MSDN オペレーティングシステムサブスクリプション ・ MSDN オペレーティングシステムサブスクリプション優 待パッケージ ※アカデミック版はキャンペーン対象外 ・ Office XP Developer および MSDN OS セット ・・・ 1 組あたり 20 , 000 円 ・・・ 1 本あたり 5 , 000 円 ・ Office XP Developer のみ ※ MSDN OS のみを購入した場合はキャッシュバック対象外 ・ http://www.microsoft.com/japan/ ・ http://www.microsoft.com/japan/office/developer/ W3C/ 「 XSLI. 0 」を正式勧告 Web の標準化団体である World Wide Web Consortium (W3C) は「 eXtensible Stylesheet Language (XSL)I. 0 」を 10 月 16 日に正 式勧告した。 XSL 1 .0 は , XML 文章をほかの文章形式へ変換し たり , 表示 / 印刷するときなどのスタイル ( 見栄え ) を決定する ための規格。スタイルシート言語とも呼ばれる。先に勧告され ていた XML 文章の変換のために使われる XSL Transformations (XSLT) と組版 ( 脚注や段など ) を指定する Formatting Objects ( FO ) の 2 つで構成されている。今回の勧告により , 出版物など さまざまな文章形式への普及が考えられる。 ・ http://www.w3.org/TR/2001/REC-xsl-20011015 / ・ h p : ″ www.w3.0 「 g / 2001 / 10/xsl-pressrelease/ OSDL/Linux の パフォーマンスを検証する新サービス「 ST 円を開発 OSDL は , データセンタやキャリアクラス向けの Linux の開発 を促進するため , オープンソース開発者向けに Linux のパフォ ーマンスを検証する新サービス「 STP(Scalable Test Platform) 」 の提供を 10 月 15 日より開始した。開発者はカーネルツリー , お よびサーバの設定などから検証方法を選ぶことで , Linux の機 能強化を簡単に検証できるようになる。このサービスは下記の OSDLWeb サイトから利用可能で , カーネルバッチやアップグ レードは OSDL の大規模なテストラボに送られ , 1 - Way から 16- Way までのシステムでさまざまなテストが行われる。検証テー タはすべてアーカイブとして保存され , ユーザはその結果を 0 SDL の Web サイトに掲載することもできる。 ・ http:″www. 0S引 .org/ R システムズ / 新たなプロファイルと O / S をサポート R システムズは , Bluetooth プロトコルスタック構築 / コード 生成を行う開発ツール日 AR MakeApp for Bluetooth プロトコル スタック」が , 「ヘッドセット・プロファイル」とクーラーや工 ンジンの燃料噴射など自動車の各機能を制御する車載アプリケ ーション用リアルタイム OS 「 OSEK(Offene Systeme und deren SchnittsteIIen fur die Elektronik im Kraftfahrzeug : 自動車工レ クトロニクス用オープンシステムおよび標準インタフェイス ) 」 を 10 月 1 日にサポートを開始した。ヘッドセット・プロファイ ルとは頭にかぶるヘッドセットとオーティオ機器間の音声転送 を扱う Bluetooth の仕様。このサポートによりへッドセットや 補聴器などで B luetooth を用いたアプリケーション開発が行え る。また , OSEK のサポートにより自動車メーカが提供する uetooth プロトコルスタックやそれらを利用するアプリケーシ ョンの開発に同製品を利用できる。 ・ http://www.iar.com/ メトロワークス / QNX SDK6.1 対応の C0deWarrior for QNX RTOS Ver. 2.1 を発売 メトロワークスは , QNX リアルタイム OS ( RTOS ) 用開発ツー ルの最新バージョン「 CodeWarrior for QNX RTOS Ver. 2.1 」 ( 以 下 CodeWarrior fo 「 QNX Ver. 2.1 ) を 9 月 28 日に発売した。「 Cod eWarrior for QNX Ver. 2.1 」は「 QNX SDK 6.1 fo 「 Windows 」に対 応し , GUI べースの統合開発環境上で QNX RTOS 用アプリケー ションのコーディング , コンパイル , デバッグが可能。 QNX プロセスおよびスレッドを認識するアプリケーションレベルの デバッガを提供し , QNX アプリケーション内のすべてのプロ セスとスレッドを確認できる。「 CodeWarrior for QNX Ver. 2.1 」の希望小売価格は 1 ライセンス 598 , 000 円 , 年間テクニカ ルサポートは 119 , 600 円。 ・ http://www.metrowerks.co.jp/ サン・マイクロシステムズ / Java 統合開発環境「 Fo e fo 「 Java 3.0 (Multi Language 版 ) 」を提供開始 サン・マイクロシステムズは , 前回お伝えした Java 統合開 発環境「 Fo e for Java 3.0 」の Mu は i Language 版の提供を同社の Web ページで開始した。なお , Web ページでは Web ブラウザか ら Forte fo 「 Java 3.0 をすぐに利用できるオンラインテモを公開 している。 ・ http://sun.co.jp/software/tools/ffj/ ・ http://sun.co.jp/software/tools/ffj/demo/ キュート /WonderWitch の新ライブラリが登場 家庭用携帯ゲーム機 Wonde 「 Swan 用プログラム開発キット 「 WonderSwan 」の新ライブラリが 9 月 28 日よりユーザ用に無償 公開され , ライブラリ関数の不具合修正 , 割り込み時に S 日 AM バンク切り替えを行うと OS のワークエリアやソフトファイル システムの内容を破壊してしまう問題への対応が行われた。ま た , ワンダーゲート用ライブラリ Wg にが一括アップデートプ ログラムに同梱されている。このほかに , 無償で配布されてい るコンパイラ「 Digi 回 Mars C / C + + 」用のスタートアップルーチ ンで exe2fbin の実行に失敗する不具合が , 一括アップデートプ ログラムとは別ファイルで修正されている。 ・ http://wonderwitch.qute.co.jp/ ・ http://www.digitalmars.com/ PrOducts Topic ・キャッシュバック金額 1 55 MONTHLY HEADLINE

3. 月刊 C MAGAZINE 2001年12月号

http://www.aaut.net/ 上 NET 0 [ アキュトネット 70 AQUTNET とは ? 2001 年 4 月 16 日にスタートした登録会員制アンケートサイトです。 オープン後 3 ヶ月で会員数 1 0 0 0 0 名を突破しました。 アンケートを使ってみんなの声を集め、新しいものやサービスに つなげていきます。アンケートに答えると NAGY ( = ポイント ) が 貯まり、貯まった N A G Y はプレゼントに交換できます。 もちろん、登録は無料。チャンスはたっぷり ! 今すぐ登録しよう ! ! AQUTNET キャラクター

4. 月刊 C MAGAZINE 2001年12月号

今がチャンス ! Office Fc, 0 ・ XP M icrosoft ′ヾック - 、第 " 20 , 000 もれなく P DeveIoper の両製品をご購入のうえ、キャンペーンにのお申し込みの方に 最新環境を一気に揃える、絶好のチャンスです。 20 , 000 円キャッシュバック。 今なら、セットでご購入されると、 MSDN OS と Office 実施中 ! キャンペーン XP デベロッ / 、一 やセットがおトク ! ・キャンペーン期間 : IO 月 19 日から 12 月 31 日まで バック もれなく さらに、 Office XP DeveIoper のみをご購入のうえ、キャンペーンにお申し込みの方に 5 , 000 円 XP デベロッパーキャンペーンに関する詳しい情報、お申し込み用紙は www.microsoft.com/japan/office/developer/ ヘアクセス Mic 「 80 負・ WindowsSXP Mic 「 0S0 代 Windowse XP 対応

5. 月刊 C MAGAZINE 2001年12月号

M icrosoft 最新開発環境へ、 Windows XP TM 開発者向けの Windows XP 環境がひと足先に入手できる ソフトウェア提供サービス、 MSDN@ オペレーティングシステム (OS)O Office XP ProfessionaI の全アプリケーションと 充実した開発ツールがワンバッケージになった、 Office この組み合わせが、最新の開発環境を実現します。 DeveIopero MSDN OS と Office XP DeveIoper を組み合わせると、こんな開発が可能に ・ XML や SOAP を利用したインターネット対応アプリケーションの開発 ・ Office XP と lnternet Explorer 6 で使える独自のスマートタグの開発 ・特別なライセンスによる複数のコンピュータ環境での開発および検証 * マイクロソフトの最新情報を無料でお届けします。 www.mic「osoft.com/japan/news te 「 / * 製品に関するお問い合わせ : インフォメーションセンター東京 ( 03 ) 5454-2300 大阪 ( 06 ) 6347-9300 *MicrOSOft 、 Windows 、 Windows ロゴ、 Office ロゴ、 MSDN は、米国 Microsoft Co 「 po 「 ation の米国及びその他の国における登録商標または商標です。 * 製品の仕様及びパッケージ内容は予告なく変更することがありますのでご了承ください。 * 本製品はオ - プン価格です。

6. 月刊 C MAGAZINE 2001年12月号

M02 丁 EAD Ⅱ NE Events Ruby Conference 2001 レポート プルであり , また irb という優れた対話的 2001 年 1 0 月 12 日と 1 3 日の 2 日間 , 米国 のプレゼンテーションがありました。 最初に話したのは「学習」についてです。 実行環境があるため , 試行錯誤しながら フロリダ州のタンパにて , Ruby Confer プログラミング言語に触れることができ ence 2001 が開催されました。 Ruby の プログラマは , 自分の知らない分野で使 ます。そのため , Ruby を使ってオブジ 開発者が世界中から集まる国際的なイベ われるプログラムを構築できなければな ェクト指向を教えた場合 , Java などに比 ントとしては初めての試みです。 りません。そこから Andy 氏は , プログ ラマの活動の中心は「学ぶこと」であると べ , オブジェクトに対する理解が進んだ , 筆者が米国入りしたのは前日の 1 1 日だ 位置づけ , プログラマが対象領域の理解 ったのですが , この日は WTC とペンタゴ とのことでした。 ンにハイジャックされた旅客機が突入す を深めるため , そのプロトタイプを構築 この後は , EmiI Ong 氏による Ruby の 並列計算への応用である「 M 円 Ruby 」 , るという前代未聞の事件からちょうど 1 する言語として Ruby が活躍する , と考 Avi Bryant 氏による一風変わった Web ア か月という日で , しかもフロリダは , そ えています。 プリケーション構築システム日 OWA 」 , の数日前に 2 人目の炭疽菌感染者が見つ このときに重要なことは , 対象領域へ Lyle J0hnson 氏による GUI ライブラリ「 F の理解が促進するにつれて , プロトタイ かり , 生物テロの話題の中心となった場 OX 」の Ruby バインティングである「 FXR プのほうもどんどん修正していかなけれ 所です。シカゴ・オヘア空港の入国審査 官には「フロリダに行くの ? 勇気あるわ ばならないということです。そのため , uby 」などの紹介が続きました。さらに ね」などと言われるほどでした。 簡単に変更することができ , しかも (UM Ken Rub0tzky 氏より , 日本語がわからな もっとも , カンファレンス自体はそん L などとは異なり ) 実際に動かして検証で い人のために , 日本語で書かれた Ruby のリソースを利用するための検索と自動 な不安はまったく感じさせない , 終始な きる Ruby を使うのが最適である , との 翻訳を紹介する「 Scouting Japanese Res ごやかな雰囲気で行われました。 ことでした。 これ以外にも自動化の話 ( Lucent の電 ouces 」といった講演がありました。 第 1 日目 舌端末の開発の際に 6K バイトの Ruby の ・開会 (Dave Thomas) コードで 150K バイトの C + + のコードを ・ Human Oriented Programming in Ru by/The Future of Ruby( まつもとゆき 『 Programming Ruby 』を書いた「 pragm 生成した話ほか ) など , さまざまな Ruby ひろ ) atic Programmer 」の 1 人で , Ruby コミュ の実践的な使い方が紹介されました。 夕食の後は , Ruby の作者 , Matz こと ニティを代表する人物でもある Dave Th まつもとゆきひろ氏によるキーノートス omas 氏による開催の言葉がありました。 ・ Using Ruby tO Teach 00 programmi ng(Pete McBreen) こでは , Ruby の歴史としてプラトン ピーチがありました。スピーチは 2 部構 Pete McBreen 氏は実際に Ruby を使っ から ( ! )Alan Kay を経て Matz( まつもと 成で , Ruby の思想的な背景を解き明か てオブジェクト指向プログラミングを教 す「 Human Oriented Programming in R 氏 ) へと至る「 Ruby 前史」的なものの披露 uby 」と , 今後の Ruby の予定を話す「 The えてみたのだそうで , その結果を踏まえ と , 今後の Ruby の飛躍の鍵として , Rite, Future 0f Ruby 」がありました。 ての発表でした。 Windows サポート , ドキュメンテーシ Java や C + + は , タイプとクラスが統一 前者では , 昔は機械が非常に高価だっ ョンといった項目をあげていました。 たために , 計算機言語も人間寄りではな されきれていなかった去対話的にコー ・ Ruby lnsergency(Andy Hunt) く機械寄りに設計されていたが , 計算機 ドを修正しつつ実行することができない もう 1 人の「 Pragmatic Programmer 」 , など , オブジェクト指向を学ぶための言 の高性能化により , これからはもっと計 算機を贅沢に「浪費」してもいいのではな Andy Hunt 氏による , 日々の開発の中で 語としては最適ではないそうです。その いか , という「富豪」的な考え方を提案し 点 , Ruby はオブジェクトのモテルがシン いかに Ruby を役立てていくかについて ◎ URL 公式サイト http://www.rubyconf.org/ RubyGarden 内 Wiki ペーシ http://www.rubygarden.org/ruby?RubyConference2001 = = ロ 1 52 C MAGAZINE 2001 12

7. 月刊 C MAGAZINE 2001年12月号

ネットワークプロクラミングのアトリエ 利用を心がけましよう。 交っています。クローンの判別は GET した が MP3 ファイルだと , 工ンコードレートな ヘッダで区別できることが多いです。試験 どの情報を QUERYHITS に入れているよう バケットのダンプは重要 ! をしていると使われている Gnutella クロー です。どこまで対応するかは考えどころで 前述したように GnuteIla プロトコルにも ンのシェアがなんとなくわかります。 すが , 多くの人に使われることを想定して ドキュメント化されていない亜流がいくつ いるのであれば , 複数の Gnutella クローン 違法データには注意をしよう ! か存在するようです。こうしたものが原因 との組み合わせでは動作を確認するように で謎のバグに悩まされることがけっこうあ 一般に公開されている GNet では , 違法 したほうがよいでしよう。 ります。こういうときには流れているバケ と思われるデータも流通しています。「す GNet に接続して試験しよう ! ットをダンプして解析するのがもっとも確 べての情報は自由になりたがっている」と 実な解決策です。バケットのダンプをした 手つ取り早く複数の Gnute Ⅱ a クローンで 称してネットワークアナーキズムを標榜す り , 読んだりするのにはある程度の知識や 試験するには GNet に接続するのが簡単で る人もいますが , P2P ネットワーク技術の 技術が必要ですが Gnutella プロトコルに す。さまざまなバージョンのさまざまな G いろいろな可能性が非技術的な理由でむや 限らず , ネットワークプログラムでは重宝 nutella クローンが発するメッセージが飛び みに閉ざされることのないように節度ある する技術なので , これを機会に学ぶのも損 はないと思います。 情報源を押さえよう ! 日本語でアクセスできる情報源としては Jnutella.org (http://www.jnutella.org/) があ ります (Fig. 7 ) 。 いくつかの Gnute Ⅱ a クロ ここを出 ーンの紹介やリンクもあるので , 発点とするのがよいでしよう。 JnuteIIa. or g は Gnutella だけではなく , P2P 一般の情報 を発信しています。 Jnutella.org にはメー リングリストもあります。 LEAF の正式な配布元は alt. n れ so 化 net (htt p://alt. nttsoft. net/) です こから LEAF の最新版やノヾグフィックスなどの情報を入 手することができます。 おわりに Gnutella が広めた P2P ネットワーキング 技術が今後どのように展開していくのかは まだ見えません。単なるプームで終わるの でしようか。それとも WWW のようにイン ターネットの重要なアプリケーションの位 置を占めるのでしようか。少なくとも今や , さまざまな企業や大学 , 個人が P2P ネット ワーキング技術に着目しており , まだしば らくは目が離せない話題であることは間違 いないでしよう。本稿がみなさんの Gnute lla, ひいては P2P ネットワーキング技術に 興味を持つきっかけとなれば幸いです。 Fig. 7 Jnutella. 0 「 g 1 0 , 、一 0 呼 xP2P , , 第′・の物コミュニデれ 0 ・、・・良、まを代をプ 0 トコルの第定を行っています・ ・ⅱ施物ーー釦似び掲で、円 P の技概を広く一する増で いて し 0 、ア言ロ - ト 1 イ普ラリ = 朝飜を嫩び竈第 . 最新ツ ロトコー アオロー ' す物 ~ - ャレス環境て P を実環す 0 た第究 などを行なっていま第 物践第究当菶寺 - ついて 検索結果を得る ( item4today. java より抜粋 ) Li st 5 Record[ ] while (true) { system. out. print ln("QUERY = 基””十 query 十””″ Set s = connector. query(query, 30000 / / wait 30 sec. て = (Record[ ] )s. toArray(new Record[0] s 号 null ー if ( connector. iQueryHi tsMessage > 0 ) ( break; データの読み込みと保存 ( item4today. java より抜粋 ) Li st 6 URLConnection urlc = rtindex] . getURL( ) . openconnection( ); BufferedInputStream bis = new BufferedlnputStream(urlc. getlnputstream( ) int res = ( ( HttpURLConnection ) ur ー c ) . getResponseCode ( if (res ー if ( skipHeader ( bis ) System. 0uし . println( ” * * * skipHeader error! ” ) ・ continue ー } else if (res ! = 200 ) { system. out. println( ” * * * server er て 0 て ! COde continue ー FiIeOutputStream fOS = new FileOutputStream(r[index] . getFilename( ) 十 res); 1 1 8 12 C MAGAZINE 2 1

8. 月刊 C MAGAZINE 2001年12月号

がある。 日本語対応バッチを探す フリーソフトウェアとして配布されてい る正規表現ライプラリをマルチバイト文字 対応にするパッチが単体で配布されている 場合もある。とはいえ , 選択肢が限られる うえに配布形態もローカルであり , 継続し て利用するには現状ではやや不安が残る。 こでは岡部勝幸氏によるⅨ -1.5 + mb0.2 を紹介しておこう。これは GNURx -1.5 で日 本語 EUC と Sh 恤 JIS を扱えるようにするパ ッチで , GNUGPL のもとで利用可能なも のだ。 ・岡部勝幸氏の W に L ' S trash can http://www.hinadori.dyn.torwills/ ・上記からたどれる「 x -1 .5 + mbO. 2 / ヾッチ http://www.hinadori.dyn.to/-wills/progr am/rx-l .5 + mbO. 2. diff. gz サンプルプログラム ここでは POS Ⅸ仕様の正規表現ライプラ リを使ったサンプルプログラムⅱ nygrep. c ( L istl ) を示し , 若干の解説を加えておこう。 tinygrep は grep/egrep のサプセットだ 引数として正規表現パターンとファイル名 を受け取り , ファイル中のパターンが含ま れている行だけを出力する。ファイル名が なければ標準人力を読む。オプションは 4 種類あり , それぞれ Table 14 の意味を持つ。 行っている処理は簡単なものだ。オプシ ョンと正規表現パターンを処理した後 , そ れぞれのファイルについて関数 grep ( ) を呼 び出す。 grep ( ) ではファイルの内容を 1 行 TabIe 14 tinygrep のオプション ずつ読み , テキストが正規表現パターンに マッチしたらその行を出力する。もう少し 詳しく眺めてみよう。 ーオプションの処理 main ( ) の 27 行目 ~ 44 行目ではオプション の解釈を行っている。オプション - E と - i は正 規表現ライプラリの動作に影響するもので , regcomp() に渡される引数 cflags を変更す る。 - E が指定されたときは cflags に REG_EX TENDED , - i が指定されたときは REG_ICA SE を論理和する。オプション - n と - p はサン プルプログラム本体の動作を変更するもの で , grep ( ) に渡される引数 ags を変更す る。 - n が指定されたときは gflags に SHOW LINENUM , - p が指定されたときは SHOW MATCH を論理和する。 ー正規表現バターンのコンバイル main ( ) の 52 行目 ~ 58 行目では正規表現 ノヾターンのコンノヾイルとエラー処理を行っ ている。 regcomp() の最初の引数は main() で確保した regex ー t 型の構造体のアドレス , 第 2 引数は正規表現パターン , 第 3 引数はコ ンパイル時の動作フラグ cfla だ。 grep も どきの動作には必要ないためここでは指定 していないが , cflags に REG_NEWLINE を 指定すれば改行が通常文字として扱われる ようになり , 行をまたいだ正規表現の検索 も可能になる。また , 以降の regexec() の 呼び出しでマッチ位置を取得する必要がな ければ REG-NOSUB も指定しておく。 tinygrep コマンドに誤った正規表現パタ ーンを与えると , regcomp() はコンパイル に失敗し , 0 以外の値を持つ工ラーコード を返す。このエラーコードを rege 仼 or ( ) に 意味 渡すとエラーメッセージが得られる。 reger r 。 r ( ) の第 2 引数は NULL でもよいが , コン パイルに失敗した後のコンパイル済みパタ ーンを与えると詳細なエラーメッセージが 得られる場合がある。 ep ( ) の呼び出し 最初の引数はコンパイル済みパターン , 第 ターンマッチを行っている。 regexec ( ) の ンパイル済みパターンと行テキストとのパ p の 127 行目では regexec() を呼び出し , コ これでようやく核心にたどりついた。 gre バターンマッチ処理 分で取り除くようにしなければならない。 を使って読み込みを行い , 行末の改行を自 れてしまう。実用のプログラムでは fgets ( ) FSIZ より長い行があるとスタックが破壊さ 使って標準入力を読んでいるが , 万が—BU 122 行目からの while ループでは gets ( ) を むようにしている。 使い , すべてのファイルを標準入力から読 こでは話を簡単にするために斤 e 叩 en ( ) を テキストを読みながら grep の処理を行う。 ればそのファイルをオープンして行単位で ら標準入力から , ファイル名が渡されてい 関数 grep() では , 引数 fname が NULL な ファイルのオープンと読み出し 後始末を行い , 終了する。 ( ) を呼び出してコンパイル済みパターンの grep() の呼び出しが終わったら , regree LENAME を論理和しておく。 させるため , あらかじめ gflags に SHOW_FI た , その場合は grep ( ) にファイル名を表示 ファイル名の数だけ grep ( ) を繰り返す。ま LL を渡す。ファイル名が複数ある場合は , 力を処理させるため , ファイル名として NU が指定されていない場合は grep ( ) に標準入 している。 tinygrep コマンドにファイル名 動作フラグを指定して関数 grep ( ) を呼び出 ル済みパターンとファイル名 , また grep の main() の 60 行目 ~ 80 行目では , コンパイ 28 オプション C MAGAZINE 2001 POS Ⅸの拡張正規表現を使う ( 指定しなければ基本正規表現になる ) 大文字と小文字を区別しない 行番号を表示する マッチした部分をⅡと } } で囲む 12

9. 月刊 C MAGAZINE 2001年12月号

最新国口ロレポート また , 生成にあたって次の設定を行いま ・ no には 255 を設定 試験サンプル実行例 す (Fig. 6 ) 。 ・ group には d を設定 ・ Encode/Decode 関数のソースとヘッダ ・ name には ' ℃ MAGAZINE ”を設定 小さなサンプル抽象構文を元に ASN. 1 T のファイル名称 ・ Data には octet-format を選択し , オク 001 を使った Encode/Decode の実行につい ・試験対象のルートプロダクション名称 テット列に 0X1234 を設定 て解説します。 ・符号化タイプ 実行環境の作成 ・生成コード (Encode/Decode) 抽象構文の定義 ・モジュールシンホル種別 VisuaI C + + などを使用して実行環境を作 List 1 に示すサンプル抽象構文を使用し 生成される Encode/Decode 関数のプロト 成します。プロジェクトに必要なファイル ます。 Test-PDU 型のプロダクションが最上 タイプ宣言は , List 2 のようになります。 E を登録しビルドします (Fig. 8 ) 。 位に位置し , 4 つのメンバから構成されて ncode 関数と Decode 関数のパラメータは 4 試験結果 います。 つ目までは共通です。次のようになってい 1 つ目の no には 0 ~ 255 の範囲で整数値を ます。 Fig. 9 が Fig. 7 の CSV 形式ファイルを入力 設定します。 2 つ目の group には 4 つの列挙 ・抽象構文の対応構造体 して Encode した結果です。 子のいずれかを設定します。 3 つ目の name ・転送構文格納バッファ Fig. 10 が Fig. 9 の転送構文を入力データ は 1 から 16 文字の可視文字列を設定します。 ・転送構文格納ビット位置 とした Decode 結果です。 Fig. 7 → Encode → 4 つ目の data には 0 ~ 31 ビット長のビットデ ・転送構文格納バッファ長 Fig. 9 → Decode → Fig. 10 の流れで実行され ータ , または 0 ~ 3 オクテット長のオクテッ ・繰り返し型 (SEQUENCE OF や SET O るため , 当然のことながら Fig. 7 の設定デ トデータのどちらかを設定します。 F ) 用パッファ (Decode のみ ) ータと Fig. 10 の結果は同一になります。 T ・繰り返し型用パッファ長 ( Decode のみ ) able 1 に転送構文と抽象構文に設定した各 Encode/Decode 関数生成 値との対応を記します。 試験データの設定 こでは Encode/Decode 関数の生成とそ おわりに の main 関数 , 抽象構文へのデータ設定用 C Fig. 7 は抽象構文に対応する試験デ ータ SV 形式ファイルを生成します。 を設定した CSV 形式ファイルです。 ASN. 1 に関連する開発にはツールの適用 Fig. 10 Decode 結果の抽象構文 が必須となりつつあります。 ASN. 1T001 は これら開発を支援し , 開発効率の向上に役 立つものと思います [ 参考文献 ] ・ ARIB TR - T12-27. A02 V3.3.0 MT-TA lnterf ace Description 『プロトコル構文規定言語 - ASN. 1 』 , 森 野和好 , 戸部美春著 , カットシステム 『プロトコル言語』 , 水野忠則監修 , カ ットシステム ロ M ロ 030 をを E ) ℃引ー 0 øut ー 0 新を 0 ① ~ アイテム , 方イル 0 編集 0 表示挿入書式 0 ツル円」デ : 叫」クインめヘルプ叫第姿 : : 第気 ; き第当洶洋さ第い 、第ー第 : こ、 , へ , : プ 0 ンプト , DATA $ H FFE44328 国 147415A494E45001234 3 $ csyrQATA$ CYK)ice 0 08 ー ;Omitted T 5 ー SEOUE ト ICE INTEGER 8 ENUM 9 VE ト STR 1 0H0 に E 1 ↑ BIT—STR 12 (NT—STR' exist 2 H 1 234 255 く 0.255 〉 3 は切ら団 100 MAGAZINE く 1 . 16 > く 0 31 > く 0..3 〉 NumEpr( V 引 Comnpnt 3 ;Test—PDU ät-format octet—fortnat TabIe 1 転送構文と抽象構文の対応 転送構文 ( HEX ) 転送構文 (Binary) TabIe 2 製品概要 製品名 動作環境 発売 価格 詳細な情報 ASN. 1 ToolVe 「 . 2.1 Windows 95/98/Me/NT 4.0/2000 2001 年 10 月 330 万円 http://www.zipc.com/ASN. I/ASN. 1 . htm キャツツ ( 株 ) 〒 222-0033 神奈川県横浜市港北区新横浜 2-11-5 ( 川浅ビル ) TEL: 045-473-2816 FAX: 045-473-2673 e-mail: info@zipc.com http://www.zipc.com/ FF no = 255 g 「 OUP=d name=10 文字 padding name= ℃ MAGAZINE" octet-fo 「 mat 選択 問い合わせ先 octet-fo 「 mat=2 オクテット長 padding octet-fo 「 mat=0x1234 1001 00 E4 43204D4147415A494E45CO 1 00000 CO 1234 147 最新開発環境レポート ASN. 1 T06 Ver. 2.1

10. 月刊 C MAGAZINE 2001年12月号

力リ 画像処理を極める ハフマン符号で差分値を用いる効果 する 今回は静的ハフマン符号を用いましたが 当然のことながら適応型ハフマン符号 ( 20 01 年 10 月号参照 ) でも処理は可能です。適 応型ハフマンの場合 , 差分値を求めるため の計算は 1 度で済みます。今回はただ引き 算しているだけなのでとくに問題にはなり ませんが , 複雑な計算により予測を行いな がら処理する場合には適応型ハフマンのほ うが好ましいかもしれません。 静的ハフマン符号化を行う部分は , 2001 年 8 月号で作成したものを流用しています。 差分値の場合 , -255 から 255 の値を扱う必 要がありますが , これを 0 から 511 の値に底 上げして処理しています。差分値の求め方 はワイル符号のプログラムと同じです。後 は , 前述の手順に従って処理しているだけ なので , とくに問題になる部分はないかと 思います。 LIST27-3. c で圧縮されたデータを展開す るプログラム LIST27-4. c は付録 CD-ROM に 収録しました。これもハフマン符号の部分 は 2001 年 8 月号のプログラムから流用して います。ハフマン符号化された数値を読み 込み , これを差分値として , 画素値を計算 して元画像を復元しているだけです。 [ 注 1 ] 今回のハフマン符号化のように差分値 の登場頻度を元に圧縮を行う場合には , この 特徴は当てはまりません。しかし , 今回は , 各方法の比較を容易にするために , すべてフ ルカラー画像を対象に符号化処理を行うこと にします。 ハフマン符号で差分値を用い る効果 多くの場合 , 差分値に対してハフマン符 号を用いると , 画素値そのものにハフマン 符号を用いるよりも圧縮率が高くなりま す。実際に , 4 種類の画像に対して元の画 素値にそのままハフマン符号を適用した場 合と , 差分値に対してハフマン符号化を行 った場合の圧縮率の違いを比較したところ TabIe 1 のような結果が得られました ( 元の 画素値をそのままハフマン符号化するプロ グラムは CD-ROM 収録の LIST27-TEST. c) 。 TabIe 1 で圧縮率は , ( 圧縮データのサイ 94 C MAGAZINE 2 囲 1 12 TabIe 1 単色画像 差分 + ハフマン ハフマン符号のみ 矩形の単色領域のみが存在する画像 グラデーション 自然画像 元画像サイズ 400 x 300 400 x 300 400 x 300 602 X388 サイズ 45.9 46.2 64.9 411 圧縮率 13.100/0 13.10 % 18.50 % 60.10 % サイズ 88.9 99.3 339 652 圧縮率 25.30 % 28.20 % 96.40 % 95.30 % ズ / 元データのサイズ ) を示しており , の値が小さいほうが良好な結果ということ になりますが , 差分値に対してハフマン符 号化を行うほうがさらに圧縮率を高める効 果があることがわかります。 TabIe 1 には登場頻度テープルのサイズ も含めています。差分値を用いる場合 , 登 場頻度テープルは , 画素値をそのまま用い る場合に比べて倍の大きさになります。そ れを含めても , 差分値を用いたほうが良好 な結果が得られています。 この結果から , ハフマン符号化などの工 ントロヒ。ー符号化に対して差分値を適用す る方法は非常に効果的であると考えられま す。 まとめ 今回は , 差分値に対してハフマン符号化 などのエントロピー符号化を適用する方法 を紹介しました。画像データでは , 似通っ た値が並ぶことが多いため , 差分値を用い ることにより , そのままのデータ値を符号 化するよりも圧縮効率が高くなることが期 待できます。実際に多くの画像で圧縮率が 高くなります。通常の画像では , 差分値を 用いることにより , 圧縮率が悪くなること はまずありえないと思います。 今回は , 差分値としては単純に隣り合う 画素同士の差を求めて利用しましたが , 前 回紹介した予測値を用いる方法も当然利用 できます。予測値の精度が高ければ , 差分 値が 0 付近の値に集中する確率が高くな り , 登場頻度の偏りを大きくすることがで きます。すると , 情報量工ントロピーが減 少するために , さらなる圧縮率の向上が望 めます。差分値による圧縮で圧縮率をさら に高めるには , この処理の精度をいかに上 げるかにかかっているともいえますし , さ まざまな工夫が可能な点であるといえるで しよう。 差分値によるデータ圧縮方法は動画デー タの圧縮にも応用できます。動画データで は , 各フレームごとの差を見てみると , ほ とんどの部分で値に差がないと考えられま す。動画における各フレームの画像は対象 物と背景から成り立っていますが , 一般的 な動画では , 背景の部分がほとんど動かな いことが多いと考えられます。また , 静止 していない部分でも , 通常は同じ場所には 同じものが映っている可能性が高いので , フレーム間での差は常に 0 に近い部分が非 常に多いといえます。このようにフレーム ごとの差分値を求めた場合 , 差分値の登場 頻度の偏りは静止画における近傍画素との 差分よりも , 顕著であるといえるでしよう。 動画のための圧縮はまた機会があれば取り 上げたいと思いますが , 動画圧縮において は , 差分値は重要な要素であると考えられ ます。 さて , 前回と今回で差分値を用いた圧縮 方法を考えてきましたが , 次回はまた違っ たアプローチによる圧縮アルゴリズムを取 り上げたいと思います。 なお , 本連載で利用している pmacs およ び Pmacs プラグインに関する情報は , http://www.asahi-net.or.jp/-gv9k-setg/ http://www.asahi-net.or.jp/-gv9k-setg/ mado. html などを参照してください。 本連載に関するご意見 , ご質問は , gv9k-setg@asahi-net.or.jp までお願いします。また , 画像に関する M L を立ち上げました。興味のある方は上記 の Web サイトに案内があるので参照してく ださい。