1／6

静止画像の可逆圧縮・高速転送に関する試行
加治佐清光†

Feasibility Study of Lossless Compression and Fast Transfer of Still Images
Kiyomitsu KAJISA
For the purpose of applications of remote product tests and remote product monitoring, to verify
whether the lossless image compression is useful or not from the view point of the speed ofcontinuous transfer of still images, using a non-expensive USB camera, we implemented test
programs and tested. Results, using PNG and TIFF images by standard lossless image compression,
show that overhead caused by the lossless compression and decompression introduces approximately
1/4 transfer delay compared with the case of no image compression, though the transfer speed of thecompressed images themselves is shorten. This technical paper reports the method of capturing still
images asynchronously using a USB camera and transferring images via 100Mbps LAN
asynchronously, implementation of an image capture client test program and an image display server
test program, experiments and results of using the test programs, and considerations of theexperiments.
Keywords : Lossless Compression, Still Image, USB Camera, TCP/IP, C Sharp

1

まえがき
安価な USB カメラを用いて静止画像の LAN 経由連続転送の実験プログラムを試作した．本研究報告ではその概要と実験結果について報告する．
本研究の主な目的は，画質劣化のない（無歪みの）画像による遠隔製品検査や遠隔監視等の応用のために，動画像ではなく連続して静止画像を LAN 経由で転送する場合に，転送速度の観点から可逆（無歪）圧縮が有効であるかどうかを検証することである．
著者らは，平成 13 年度校内研究助成金（一般研究と教育改善プロジェクト）により整備した工業用 CCDカメラ（約 15 万円）と日立高速画像処理ボード（約36 万円）等で構成される画像処理装置（図 1 を参照）

図1

日立高速画像処理ボード等を用いた画像処理装置を使用して，平成 14 年度の卒業研究 1) で Visual C を用いて静止画像の LAN 経由転送の実験を行い，工業用 CCD カメラから連続して取得される 512×440 画

しかし，静止画像転送の実験装置としては，この工素の濃淡静止画像（8 ビット/画素）を約 5 [Frame/Sec]

業用 CCD カメラと高速画像処理ボードは高価であるの転送速度で転送できることを確認した．使用した日点と，卒業研究の時間には画像処理教材の開発でも使

立高速画像処理ボードには大容量の画像メモリが内蔵用するため装置の共用が困難な点から，安価なビデオされており，カメラから取得した画像を内蔵の画像処

カメラとビデオキャプチャボードの構成が考えられた

理プロセッサの機能を用いて高速に BMP あるいはが，Windows 用ドライバのインタフェース情報が入手

YUV 形式のファイルに保存可能である．

困難であったため，今回は，近年普及している USB
カメラ，PC カメラや Web カメラなどと呼ばれる安価な USB インタフェースの CCD カメラを使用して実験†情報工学科を行った．

2／6
表1

DirectShow のインタフェース，クラス，メソッド(a) interface DShowNET.

図2

USB カメラの例

IBaseFilter

ビデオ装置のフィルタ制御用

IGraphBuilder

フィルタグラフ構築用

ICaptureGraphBuilder2

キャプチャフィルタグラフ構築

ISampleGrabber

フィルタグラフからの取得用

IMediaControl

フィルタグラフ中のデータ制御

IVideoWindow

ビデオ再生窓の制御用

IMediaEventEx

イベント通知の制御用(b) class DShowNET.

なお，実験プログラムの試作には，Microsoft Visual

VideoInfoHeader

MediaTypeStudio.NET 2) の Visual C#（シー・シャープ）を用

Device

AMMediaType

いた．Visual C#は Visual C++と Visual Basic のオブ

PinCategory

ジェクト指向と視覚化の利点を採り入れた新たな言語である．
以下，静止画像の取得，LAN 経由転送，試作プログ
ラムおよび実験と考察について報告する．

(c) メソッド DShowNET.
ICaptureGraphBuilder2.SetFiltergraph()
IGraphBuilder.AddFilter()
ICaptureGraphBuilder2.RenderStream()

接続，描写

ISampleGrabber.GetConnectedMediaType()

2

ISampleGrabber.SetBufferSamples()

静止画像の取得

ISampleGrabber.SetOneShot()

2.1 USB カメラ
USB カメラ，PC カメラや Web カメラなどと呼ばISampleGrabber.SetCallback()

静止画像の取得

ISampleGrabberCB.BufferCB()

静止画像の取得れる安価な USB インタフェースの CCD カメラの例を

IVideoWindow.SetWindowPosition()

図 2 に示す．
画素数は 35 万あるいは 30 万画素であり，IMediaEventEx.GetEvent()

160×120，320×240 あるいは 640×480 画素の動画

IMediaEventEx.FreeEventParams()

像あるいは静止画像が取得できる．今回の実験では，
図 2 中で左端の USB カメラ 3)を 320×240 画素で使用
従来，カメラからの画像取得には VFW (Video Forした．

Windows)が使用されているが，C#による使用が困難

2.2 画像取得
USB カ メ ラ か ら の 動 画 像 と 静 止 画 像 の 取 得 はMicrosoft の DirectX 中の DirectShow を使用した．

であったためと，VFW は DirectX に移行するとのことで，今回，VFW は使用しなかった．

DirectX は 3D グラフィックスなどのマルチメディア

USB カメラの選択，動画像の表示，静止画像の取得機能を高性能で高速に実現するための低レベルの APIに使用した DirectShow のインタフェース，クラス，であり，DirectShow はビデオとオーディオのマルチメソッドの一覧を表 1 に示す．

メディアファイルを生成あるいは再生するための低レ

DirectShow を使用して USB カメラから静止画像をベルの API である．実験で使用した Windows XP パ

取得するには，まず，使用するクラスやインタフェー

ソ コ ン に は DirectX8.1 が 組 み 込 ま れ て い る ．

スを宣言し，選択したカメラ装置との接続を確立する．

DirectX9.0b も Microsoft のサイトからダウンロード

次に，カメラ装置のセットアップ，具体的には，選択でき，最近発売されている Windows XP パソコンにはしたキャプチャ装置の生成，インタフェースの取得，DirectX9.0b が組み込まれているが，DirectShow の言キャプチャグラフのビルドを行い，得られるプレビュ語サポートは VB と C++のみで，C#からは直接使用でー用のストリームを表示ウィンドウへ描写(render)すきない 4) ．C#からメソッド等を利用するにはカプセルることにより動画像が表示される．

化する必要があるため，今回は，ネット上（The Code

静止画像の取得は，SetCallBack( )メソッドを利用(52KB) 5)

し，キャプチャのイベント発生で得られた RGB デー

Project）で公開されている DShowNET.dllを使用した．

タから Bitmap を生成し，表示する．

3／6

非同期サーバ

非同期クライアント

Net.Sockts.Socket s, s1

Net.Sockts.Socket c

中断・遮断

s.Bind( )s.Listen( )タイマ *s.BeginAccept( )受信イベント

画像取得開始s1.BeginReceive( )受信イベントc.Send( )s1.EndReceive( )c.BeginReceive( )s1.Send( )受信イベントc.EndReceive( )保存S(Send)

画像ファイル送信

c.Connect( )s.EndAccept( )図3A

ACK 受信Net.Dns.Resolve( )E(End)
G(GrabStart)

画像ファイル保存
画像表示
コールバックB(CallBack)
注： A, S, E, G, B, 保存の実行例は
図 6 左図の右下を参照．

静止画像取得図4

静止画像取得と転送の非同期処理（クライアント）

ソケットによる非同期通信 6), 7)

以上の考えに基づく，保存された画像の転送(Send3

LAN 経由転送

3.1 画像の転送
平成 14 年度の卒業研究 1) は，TCP/IP の同期通信の手法を用いて 100Mbps と 1Gbps の LAN 経由で静止〜End)から応答(ACK)受信までの通信に対する非同期処理と，静止画像の取得開始(GrabStart)から静止画像取得(Call Back)・画像表示・画像ファイル保存までのカメラに対する非同期処理を一つのシーケンスとしたループを図 4 に示す．

画像転送の実験を行った．しかし，同期通信においては受信開始から実際の受信までは処理が占有され，他のプログラム（スレッドやプロセス）は動作することができない欠点がある．そのため，平成 15 年度の卒

4試作プログラム

4.1 画像取得クライアント

業研究 6) では，受信はイベント（割り込み）として発画像取得・送信を行う非同期クライアントの試作プ

生する非同期受信 7) の手法（図 3 を参照）により，あログラム上のツールバー・ボタンを図 5 に，動作中のらかじめ保存された標準画像を用いて，転送の実験を例を図 6 の左図に示す．カメラ選択ボタンに引き続く試みた．

撮像ボタンにより図 6 の左図右画面に動画像が表示さ通信の常套手段であるハンドシェークを用いた場合， れる．さらに，静止ボタンにより連続して取得された送信側が画像を転送し，相手側が画像を受信し，画像静止画像が左画面に表示され，指定の画像形式（書式）を表示した後に受信確認の返答(ACK, Acknowledge)で一つのファイルに連続して重ね書きで保存される．

を返信してくるまでには，明らかな時間の差がある．

あらかじめ，LAN 設定ボタンによりサーバと接続さこの待ちの間に，非同期受信を用いれば，他の処理，れていれば，ファイル保存の直後に取得した静止画像

ここでは静止画像の取得と画面表示を行うことができのファイルが連続してサーバへ送信される．その後は，る．つまり，非同期受信を用いれば同期通信よりも高図 4 に示したシーケンスで連続して画像取得と画像送速に画像を転送できることになる．

信が繰り返される．

3.2 非同期処理

送信のためにファイル保存するカラー画像の形式は，

しかし，試作プログラムを用いた実験の結果，非同C#の Draw.Image.Save メソッドでサポートされてい期のデータ(ACK)受信ルーティンの中で，DirectShow

る BMP（非圧縮）, TIFF, GIF, PNG（無歪圧縮）, JPEGを用いた静止画像取得の非同期コールバックの設定（静止画像取得開始）はできない（つまり，非同期処理の中で非同期処理は並行して実行できない）ことが判明した．そのため，10ms のタイマーを使用し，ACK受信後に非同期コールバックを設定する（つまり，二つの非同期処理は分離する）こととした．

図5

ツールバーのボタン

4／6
表2

試作プログラムで使用した画像形式の特徴 8)〜10)

BMP

無歪，固定サイズ
24 bits/pixel 等
無歪圧縮，LZW 圧縮など
Tag で圧縮法等を指定
24 bits/pixel 等
グレースケールが基本
無歪圧縮，LZW 圧縮
8 bits/pixel，256 色
透明，アニメーション無歪圧縮，LZ77+2 次元 Huffman
24 bits/pixel 等
透明，逐次，γ・色補正
有歪圧縮
24 bits/pixel 等
圧縮 1/20 で識別難線図，色ブロック，境界に弱い

Tag
Image
File
FormatGraphics
Interchange
FormatPortableNetwork
Graphics
Joint
Photographic
Experts
Group（有歪圧縮）を使用した．但し，GIF の場合は撮像したフルカラー画像が 256 色へ減色される．それぞれの画像形式の特徴については表 2 を参照されたい．

画像取得のコールバック
BMP へ変換
ファイルストリームを開く

Image.FromStream( )でImage オブジェクトを作成.BMP

ACK を送信

Image.Save( )で保存

バッファからメモリストリーム

非同期で ACK を受信

非同期で画像ファイルを受

画像ファイルを送信

画像表示サーバ

画像取得開始画像取得クライアント

図7

画像取得クライアントと画像表示サーバの処理の流れ

4.2 画像表示サーバ
画像受信・表示を行う非同期サーバの試作プログラ
ムの動作例を図 6 の右図に示す．また，画像表示サー

図 4 に示した非同期静止画像取得と非同期転送の二バの処理の流れを図 7 の左側に示す．非同期サーバはつの非同期処理に基づく画像取得クライアントの処理

非同期で画像ファイルを受信直後に，固定サイズの流れを図 7 の右側に示す．

（230,454 バイト）の BMP の場合は，ACK (Acknow-

画像の取得は，具体的には，DirectShow によりコledge)を送信する．ここで，受信はソケットのバッフールバックされた画像データをビットマップデータへ

ァからメモリ・ストリームへの書込みを指す．
その後，変換し，画面表示する．その後，一つのファイル・スストリームから System.Drawing.Image オブジェク

トリーム(stream)をあるファイル名で開き，そのファトを作成し，作成した Image を画面へ表示する．画像

イル名を使用して設定された画像形式で画面 Image

形式はストリームからビットマップ・オブジェクトのオブジェクトを Image.Save メソッドにより保存する． Image を作成するときに自動認識され，圧縮画像の場合は画像形式に基づき復元される．
ソケットを使用した画像ファイルの送信はファイル名の指定だけで行う．

図6

非同期クライアント（左図）と非同期サーバ（上図）

5／6
表3

画像転送

画像取得

サイズ

[F/s]

[F/s]

[Bytes]

BMP

10.2

34.1

230,454

TIFF

*

7.2

18.5

202,893GIF*

10.525.1

36,425

PNG

7.8

16.8

140,058

JPEG

10.9

30.0

12,366

画像形式
画像取得

クライアント

画像表示サーバ
画像ファイルAcknowledge

100Mbpskajisa12172.16.11.173

kajisa11172.16.11.172

パソコン１台で実験の場合

クライアント，サーバ： Pentium4 2GHz； *： LZW 圧縮
表4

図8

LAN 経由連続画像転送

画像転送

画像取得

サイズ

[F/s]

[F/s]

[Bytes]

BMP

21.3

46.9

230,454

TIFF

16.0

29.4

212,420

GIF

22.0

38.4

42,720

PNG

16.5

27.1

144,200

JPEG

27.9

44.0

12,560

画像形式

5

実験と考察

5.1 実験環境
試作プログラムを用いた実験は Windows XP Home
Edition 搭載のデスクトップパソコン(Pentium 4,2.4GHz)とノートパソコン(Pentium 4, 2GHz)を用い，クライアント： Pentium4 2.4GHz， サーバ： Pentium4 2GHz

常駐プログラムや他のアプリケーションが実行されて表5いない状態で行った．静止画像の画像取得だけの速度[Frame/Sec]と画像取得しながら転送する画像転送速度[Frame/Sec]は，約 1000 フレームの転送の時点で記録した試作プログラム（クライアント）上の表示結果（平均）を実験結果として使用した．
5.2 パソコン 1 台使用の実験
パソコン 1 台上で画像取得クライアントと画像表示サーバを試験動作させた場合の実験結果を表 3 に示す．
画像取得からファイル保存までの処理速度に関し，

LAN 100Mbps の場合

LAN 100Mbps の場合

画像転送

画像取得サイズ

[F/s]

[F/s]

[Bytes]

BMP

13.7

32.4

230,454

TIFF

10.5

20.4

203,700

GIF

15.2

21.2

39,790

PNG

11.7

19.2

134,600

JPEG

17.1

32.7

11,210

画像形式

クライアント： Pentium4 2GHz， サーバ： Pentium4 2.4GHz

BMP の場合は 34.1[Frame/Sec]と余裕があり，JPEGの場合は 30.0[Frame/Sec]と動画像の画像取得速度に追従できる．しかし，GIF, TIFF, PNG の順に，指定

表 4 中の画像取得からファイル保存までの処理速度画像形式へ無歪圧縮してファイル保存するために，画に関しては，画像形式ごとに表 3 の実験結果と同様な像取得速度は遅くなる．

傾向が見られ，全ての画像形式においてほぼ動画像取平均画像転送速度に関しては，JPEG と GIF はファ得の速度（30[Frame/Sec]）に追従できる．平均画像

イルサイズが非常に小さいながら，BMP に比べてわ転送速度に関しては，JPEG の場合はほぼ動画像と同ずかに速いだけである．これは，クライアントでの画等，BMP の場合は動画像の約 2/3 のフレーム数でほぼ像圧縮に加えて，サーバでの画像復元に処理時間を要スムーズに動画を再生できることがわかる．また，GIFするためと，
BMP の場合は画像復元・表示の前に ACK

は BMP と大差ないため使用する効果が低いこと，を送信できるためであると思われる．

BMP に比べ TIFF は 75%に，PNG は 77%にダウンす

5.3 LAN 100Mbps 使用の実験ることがわかる．特に，PNG の場合，ファイルサイ100Mbps のハブ 1 台に接続された２台のパソコン

ズは BMP に比べて 63%と小さく無歪圧縮されるが，を使用した場合（図 8 を参照）の実験結果を表 4 と表LAN 転送速度の向上よりも圧縮処理に要するオーバ5 に示す．表 4 中のファイルサイズは図 6 の左図に示ヘッドが悪影響しているものと思われる．

す画像を取得した場合を示す．

表 5 は画像取得クライアントを遅い方のパソコンと6／6した場合の実験結果であるが，表 4 に比べて処理速度の低下が歴然となる．したがって，画像受信・表示のサーバ側よりも，画像取得・送信のクライアント側でより高速な処理が必要となる理由が裏付けられる．

6

むすび
以上，安価な USB カメラ用の試作プログラムと静参考文献
1) 福原輝，井上隆司，星原大翼： 無歪静止画像の LAN 経
由転送の実験 ―背景とソケット通信，画像取得と画像変換，画像表示と評価― ，平成 14 年度卒業研究論文，
鹿児島高専情報工学科，2003.
2) Microsoft Visual Studio.NET Professional Edition,
Version 2002.

止画像の LAN 経由転送の実験結果について報告した．

3) Qcam Pro 4000 取扱説明書，（株）ロジクール，2003.

結果として，試みた非同期受信と画像取得の非同期

4) 塚田浩二： USB カメラを C#で使おう ， http://mobiquitous.com/~tsuka/programming/usbcamera.html,
2003.

処理との並行処理は静止画像の高速転送に有効である
が，C#で提供される Draw.Image.Save メソッドによる無歪画像圧縮とストリームのビットマップ・オブジ
ェクト Image への割付けによる無歪画像復元は約 1/4の転送遅延をもたらすことが判明した．
この結果より，近年登場したネットワーク向けの無歪画像圧縮形式である PNG に比べ，圧縮ファイルサ
イ ズ よ り 圧 縮 処 理 時 間 ， つ ま り ， よ り 簡 便 (lowcomplexity)で高速な圧縮処理を優先した新たな無歪画像圧縮方式を開発研究することが，無歪静止画像を

5) NETMaster: DirectShow.NET , http://www.codepro
ject.com/cs/media/directshownet.asp, 2003.
6) 原口奈津起，勝目美由紀： 無歪静止画像の LAN 経由転送の実験 ―C#とソケット通信，画像表示と画像転送― ，
平成 15 年度卒業研究論文，鹿児島高専情報工学科，2004.
7)

非同期クライアント・サーバソケット ，.NET Framework 開発者ガイド，Microsoft Visual Studio.NET，
2003.

連続して高速転送するために意義があると思われる．

8) D.C. Kay and J.R. Levine 著，MbCD 訳：グラフィック
フォーマット・ハンドブック，(株)アスキー，1995.

謝辞

9) J. Miano: Compressed Image File Formats, Addison
Wesley Longman, Inc., 1999.

本研究は平成 14 年度校内研究助成金（一般研究）を受けて行われたことを記して謝意を表します．

10) G. Roelofs: PNG The Definitive Guide, O’Reilly &Associates, Inc., 1999.