音声、静止画像、動画像の符号化

					2006年5月9日
コンピュータリテラシ

                                       筑波大学 電子・情報工学系
                                       コンピュータサイエンス専攻
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2006/2006-05-09
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/

■連絡事項

参考: Unix Super Text 下巻「53章 ドローツール」、「54章 画像処理」参 照。

■復習

Emacs

■補足

Emacs 引数とは、コマンドや関数に与えるデータのうち、 実行開始前に与えるもの。データは、実行開始後に ファイルやネットワークから得ることもある。

例:「cat コマンドに引数として ~/.cshrc を与える。」

iTerm

tcsh で使えるキー

電子メール

Wiki ページの内容に関連して

■音声の符号化

音をコンピュータで扱うには、次のような手順になる。

  1. 音を電気信号に変える(マイクロホン)
  2. 電気信号をビット列(整数)に変える(A/Dコンバータ(analog-to-digital converter))
  3. コンピュータで計算/通信/蓄積する
  4. ビット列(整数)を電気信号に変える(D/Aコンバータ(digital-to-analog converter))
  5. 電気信号を音に変える(スピーカ)
ディジタルになった音データの品質は、次の数で決まる。
標本化レート(サンプリング・レート、空間量子化レート)
電気信号を数に変える頻度。1秒辺り回数(Hz (ヘルツ))で表す。
量子化数(サンプリング・サイズ、時間量子化)
数に変える時に何ビットで表わすか。ビットで表す。
チャネル数(チャンネル数(channel))
ステレオなら2。(単位なし)

アナログ信号のディジタル化、棒グラフとアナログ信号

アナログ信号のディジタル化

CD品質の音(Compact Disc)

CDに含まれているデータ量。

44100 [回/秒] *16 [ビット] * 2 ==1,411,200 [ビット/秒]
1,411,200 [ビット/秒] * 60 [秒/分] *70 [分/枚] == 5,927,040,000 [ビット/枚]
5,927,040,000 [ビット/枚] / 8 [ビット/バイト] == 740,880,000 [バイト/枚]
〜740 M [バイト/枚]

電話品質

1秒当たりのデータ量
8000 [回/秒] * 8 [ビット] * 1 == 64000 (64k) [bit]
1時間当たりのデータ量
64k [bit/秒] * 60 [秒/分] * 60 [分/時間] == 230,400 k [ビット]== 230,400,000 [ビット]
電話も、CD より音質は悪いが長電話すると、相当なデータ量になる。

「*」は、コンピュータで掛け算を表す。割り算は、「/」。

音の符号化の方法(圧縮方法):

◆MP3

MP3 は、MPEG-1 や MPEG-2 で使われている音声圧縮方式の1つ。

Layer-3 の他に Layer-1 と Layer-2 が定められている。数 字が大きくなるほど圧縮率がよく、Layer-1 で1/4, Layer-2 で 1/6から1/8, Layer-3 で 1/12から 1/14 の圧縮が可能になってい る。これらの圧縮方式は、互換性が保たれるようになっており、 Layer-3 で圧縮されたデータをデコードできるシステムは、より低 い Layer-1, Layer-2 のデータもデコード可能になっている。

MP3 は、「劣化圧縮」の技術を用いている。人間の耳では気が付かない部分 のデータを復元できない形で落とすことで高い圧縮率を実現している。

データの落し方が、音質を左右する。データの落し方は、圧縮プログラム (MP3 エンコーダ、エンコーディング・プログラム)で違う。 圧縮「率」だけ上げるのは簡単。

MPEG-2 や MPEG-4では、AAC (Advanced Audio Coding)と呼ばれる 音声圧縮方式も利用可能になっている。

Apple は、MP3 よりも AAC の方が音質が良いと主張している。

◆エラー訂正

CD の音質がよいことの理由のひとつ。

チェックサムによる誤り検出

保存(通信)するデータに、ビット列を数の並びと思った時の合計(sum)を 付加する。合計が在っていれば、データが正しい、そうでない場合、 どこかでデータが壊れた(誤りが含まれた、エラーが生じた)とと判断する。 その場合、もう一度、正しいデータを得ることを試みる。

実際には、検出して再び試みる(再転送)ではなくて、冗長(redundant)なデー タをうまくつかって、回復させる方法がある。その1つで良く使われるのが、 CRC (Cyclic Redundancy Check) と呼ばれる方法である。

◆CD (digital)は、音がいいか

アナログのレコードより、ディジタルの CD の方が音がよいか。

CD では、ディジタルで記録された情報は、ディジタルの範囲では正確に再現 できる。

音がよいかは、ディジタル以外の部分に大きく依存する。

■静止画像の符号化

画像は、細かい細かい点(画素、ピクセル、pixel)の集合として扱える。

画像の品質は、次の2つの数で決まる。

◆ビットマップ

1つの画素を、1ビット(白か黒)で表す。

フォークとナイフの絵のビットマップによる表現(小さいもの) フォークとナイフの絵のビットマップによる表現(拡大)

◆色と階調

色と階調には、次のような種類がある。

カラーでも、1ピクセルに使うビット数で、いろいろな種類がある。

色の名前の付け方には、いろいろある。

◆画素数の感覚

◆解像度

単位面積あたりの画素数を、解像度という。

横(水平方向)、縦(巣直方向)ごとに、単位「長さ」当りのピクセル数で図る ことが多い。よく使われる単位は、dpi (dot per inch)。

画面
72 dpi
コンピュータのプリンタ
300-1200 dpi

◆画像のデータ量の計算

画素数 ×1画素あたりのビット数
縦のドット数 ×横のドット数 ×1画素あたりのビット数

コンピュータ1画面の

1000 ドット x 1000 ドット x 24 ビット == 24,000,000 ビット。

◆圧縮

画像は、大きいので、「圧縮」したい。つまり、同じ画像をより小さなデータ 量で表現したい。

◆画像の形式

画像の表現形式にも、何種類もある。自分が使えるコンピュータで全ての種類 の画像が扱えるわけではない。操作する時には、自分が扱えるかどうかを調べ る必要がある。場合によっては、形式の「変換」をする必要がある。

よく使えれている画像の形式には、次のようなものがある。

MacOSX 「プレビュー.app (Preview.app)」で 保存可能な対応している画像の形式。 BMP, GIF, JPEG, PDF, Photoshop, PICT, PNG, SGI, TGA, TIFF

◆JPEGと劣化式圧縮

JPEG は、写真のディジタル・イメージ(カラー静止画像)を圧縮 する方法の1つであり、現在 WWW でも広く利用されている。ディ ジタル・カメラでは、写真を保存するために JPEG 形式を使ってい るものがある。

JPEG は、ITU (International Telecommunications Union, 旧 CCITT) と ISO の共同作業グループ(Joint Photographic Experts Group) により作成された規格である。正式には、JFIF (JPEG File Interchange Format) という。

JPEG は、劣化式圧縮の1つである。JPEG では、人間の目で見た時 にあまり気が付かない部分のデータを取り除く。その結果、写真の 見た目の質を落とすことなく、高い圧縮率を実現している。JPEG で圧縮時に捨てられたデータは、展開時に回復させることはできな い。

このような性質から、JPEG は、写真のようなイメージを圧縮する ために向いている。逆に、図形やイラストなどの保存には、適さな い。このようなものは、劣化式ではない圧縮アルゴリズムを使って いる PNG 形式の方が適している。

JPEG では、写真を保存する時に、品質を指定することができる。 高い品質を指定すれば、劣化が少なくなるが、データ量は多くなる。 低い品質を指定すれば、逆になる。

◆文字の符号化の意義(再掲)

文字を符号化することには、いくつかの意義がある。 比較できることは、検索の時に便利。画像では検索しにくい。

逆に文字を符号化してしまうと、個人の性質を出したい時には、問題がある。 たとえば、署名やラブレター。

文字を画像として送ることもできるが、特別に符号化することが一般的である。

漢字の「漢」のビットマップによる表現

◆ベクトル形式の画像

ベクトル、ベクタ、vector

画像をピクセルマップ(ビットマップ)ではなく、輪郭データで表す。 拡大しても、ギザギザににならない。表示の大きさによらずデータ量が一定になる。

ベクトル形式の図形(グラフィックス)場合、image とは呼ばないこともある。

円のビットマップとベクトル

◆PostScript

PostScript は、Adobe 社により開発されたプリンタを制御するための スクリプト言語(プログラミング言語)。 coins のプリンタに印刷する時には、PostScrip 言語のプログラムを 作成して、プリンタに送っている。

EPS (Encapsulated PostScript) 形式は、PostScript に描画領域などの 情報を付加したもの。

スクリプト言語、プログラミング言語については、後述。

PostSctip 形式のファイルは、テキストなので、テキスト・エディタで表示で きる。人間が手で書くこともできる。

◆PDF (Portable Document Format)

元々紙に印刷することを想定して作られた文書を、印刷しないで保存したり配 布したりすることを目的として、Adobe 社により開発された形式。

内部にイメージを JPEG 等の形式で圧縮して保持したり、グラフィックスを図 形の形で持つこともできる。 PDF は、PostScript を元に設計されている。 フォントを埋め込む機能を引き継いでいる。 複雑な制御構造は取り払われている。

画面に表示するには、Adobe Reader (Adobe Acrobat Reader)、MacOSX Preview.app, xpdf, GhostScript 等のプログラムを用いる。

MacOSX では、印刷する時に PDF 形式で保存することで作成できる。一般的に は、Adobe Acrobat (readerがつかない) や、dvipdf*, GhostScript, その他 のフリーのプログラムが使える。

手書きPDF入門 というのが以前あった。

◆Scalable Vector Graphics

SVG は、画像を表現するための形式である。

現在、World Wide Web で広く用いられている画像の形式としては、GIF, JPEG, PNG などがあるが、いずれもビットマップ、または、それを圧縮した形 式である。この場合、拡大すると画像が荒くなるという問題がある。これに対 して、SVG は、ベクトル形式、すなわち、画像の輪郭線を表現したものである。 よって、画像を拡大しても荒くなることがない。また、画像の大きさとデータ 量は無関係であり、大きな画像であってもデータ量が増えない。

以下は、SVG で直線、長方形、円を記述した例である。 HTML_DESC_( ) SVG は、W3C (World Wide Web Consortium)により標準化作業が進 められている。XML 形式を用いているが、モデルとしてはPDF や PostScript と似ている。

SVG は、地図を表示するために適している。携帯電話や PDA に対 して地図を配信するサービスで SVG がよく使われる。

XML については、後述。

◆フォント

文字を画面に表示するために文字の形のデータをある文字集合について一式そ ろえたもの。デザインが統一されている。

ビットマップ・フォントとベクトル・フォントがある。

ベクトル・フォントだと拡大しても(解像度が高いプリンタや画面で表示しても) 文字がギザギザにならない。

文字の大きさに合わせて別のデータを使うことがある。 携帯電話などの小さい画面には、特別にデザインされたビットマップ・ フォントが見やすい。

◆アンチエイリアス(滑らかな文字)

文字がギザギザを目立たせないようにするために、 中間色を使う。

■動画像の符号化

コンピュータで動画像を扱うには、基本的には、テレビ、映画、アニメーショ ンと同じで、静止画像を次々と切り替えることをする。 次の2つの数で決まる。

アナログテレビ品質のデータ。

1秒あたりのデータ量: 235*240*16*30 == 27,072,000 ビット。

HDTV (高精細テレビ) High Definition TeleVision

1秒あたりのデータ量: 720*480*24*60 == 497,664,000 ビット。

DVD (片面2単層)には、約4.7Gバイト(37.6Gビット)のデータを保存することが できる。圧縮しないで動画像だけを保存した場合、

37.6 [G bit] / 497,664,000 [ビット/秒] == 約 80 [秒]。

とにかく圧縮したい。

  MPEG-2 は、DVD に使われており、2時間程度の映画(動 画像+音声)を数Gバイト(数1,000,000,000*8ビット)に圧縮することができ る。基本的な技術は、次の2つである。

DVD は、画質がよいか。

CD (圧縮されていない)と同じように、A/D変換、D/A変換の問題がある。

さらに、MPEG-2 で圧縮する時に、品質を調整できる。 品質を落とせば、長時間録音・録画できる。

平均的な DVD で想定されているデータ量

画像
3.5 M [ビット/秒] (1秒間に 3,500,000,000ビット)
音声
384 K [ビット/秒] (1秒間に 384,000ビット) × 3 言語
字幕
10 K [ビット/秒] (1秒間に 10,000ビット) × 4 言語

音質は、PCM (Linear PCM) なら、CD よりもよくできる。サンプリング・レー トやサンプリング・サイズが高くすることで。

Dolby Digital, MPEG Audio (MP3), DTS (Digian Theater Systems) では、CD よりも悪いこともある。ただし、サラウンド(チャネル数が2以上)は、 CD には企画がなく、DVD を選択するしかない。

◆MPEG Moving Picture Experts Group

MPEG (エムペグ) は、動画像と音声を圧縮するための規格の一つで ある。MPEG という名前は、ISOに設置された専門委員会の名前に由 来する。類似の専門委員会には、静止画像の圧縮圧縮方式を定めた JPEG (Joint Photographic Experts Group) がある。

現在、MPEG-1 と MPEG-2 の2つの規格が広く使われている。 MPEG-1は、ビデオテープ程度の画質で、352ドットx240ドットの画 像を毎秒30フレームで演奏することができる。Video CD 等で使わ れている。MPEG-2は、ハイビジョン程度の画質のもので、720ドッ ト×480ドット、または、1280×720ドットで、毎秒60フレームの演 奏が可能である。MPEG-2 は、DVD に使われており、2時間のビデ オを数Gバイトに圧縮することができる。現在、MPEG-4と呼ばれる 規格が審議されている。これは、Apple社が開発したQuickTimeがベー スになっており、64kbpsというISDN程度の転送速度で動画像と音声 を再生するための規格を目指している。

MPEG-2 形式のデータを再生は、専用のハードウェア、または、一 般の CPU で実行されるソフトウェアで行われる。再生時にはそれ ほど高い計算能力は必要としていないが、作成するためには高い計 算能力を必要とする。

MPEG では、動画像の各フレーム間の差分のみを保存することで高 い圧縮比率を実現している。さらに JPEG と同様に、ある種の劣化 圧縮の技術を用いており、人間の目では気が付かない部分のデータ を復元できない形で落している。

■ファイルとディレクトリ(2)

◆ls コマンドと MacOSX Finder

ls コマンドを実行するとディレクトリに含まれている ファイルの一覧を表示できる。
[azalea30:~] compsys1% ls[←]
Desktop         Library         Music           Public          WinFiles
Documents       Movies          Pictures        Sites           public_html
[azalea30:~] compsys1% []

Finder でのホーム・ディレクトリの表示

MacOSX の Finder は、ディレクトリの名前を加工して表示する。

◆ホーム・ディレクトリ(home directory)(再掲)

個人所有のファイルを保存する時に起点となるディレクトリ。

多くのシェル(csh,tcsh,bash,zsh) やEmacsなどでは、 ホームディレクトリ「~」(ASCII 7e(16進数))で指定できる

は、ASCIIの形。 JIS では、となることがある。

他人のホーム・ディレクトリは、「~ユーザ名」で指定できるプログラムがある。 (指定できないもプログラムもある。)

「~xxx」と「~/xxx」のように 「~」直後に「/」の有無で意味が違う。

/ がない (~xxx)
他のユーザのホーム・ディレクトリ。 xxx はユーザ名として解釈される。
/ がある ~/xxx
自分のホーム・ディレクトリ以下のファイル(またはディレクトリ)。 xxx はファイル名、または、ディレクトリ名として解釈される。

◆ファイル名の拡張子(extension)

ファイルの内容を分かりやすく示すために、ファイル名の末尾(「.」の右側)に 短い文字列を付加習慣がある。これをファイル名の拡張子という。

.txt, .text
ファイルの内容は、テキスト。
.jpg, .jpeg
ファイルの内容は、JPEG 画像
.pdf
ファイルの内容は、PDF形式の文書(テキストと画像)
.html
ファイルの内容は、テキストで、かつ、HTML という言語 の文法に従っている。
.c, .h
ファイルの内容は、テキストで、かつ、C という言語 の文法に従っている。
.app (MacOSX)
ディレクトリの内容は、 MacOSX のアプリケーション・プログラム。
.com, .exe (Windows)
ファイルの内容は、CPU で実行可能なプログラム(executable, command)。
Windows では、拡張子を見てプログラムを選択して実行する機能がある。 MacOSX では、拡張子に頼ることなく、別の属性で実行すべきプログラムを保 存している。Unix (コマンドライン) では、拡張子と実行するプログラムを関 係づける機能はない。シェルが行の先頭をプログラムの名前と解釈する。

■実習

実習時間中には、以下の課題をできるだけ多く行いなさい。全部を行う必要はない。

★練習問題(38) lsとFinderの比較

次のディレクトリを、ls コマンドと Finder で表示して、比較しなさい。 (Command は、Command キー、 Shift は、Shift キーを意味する。) Finder で表示するには、 いくつかのディレクトリについては、メニューから選択することもできる。

Finder で表示するには、端末でシェルから open コマンドを使う方法もある。 次のように、ディレクトリ名を open コマンドの引数として与える。

% open / [←]
% open ~ [←]
% open . [←]
% open ~/Documents [←]
ディレクトリ名を与える時には、 tcsh の補完機能も使える。

★練習問題(39) Finderの表示方法

Finder の表示方法には、次の3種類がある。 Finder のウインドウ丈夫のボタン(左右の三角(戻る/進む)の右側)を使って、これらを切り替えなさい。

リスト形式の表示で、ファイルを次の順番で表示しなさい。

リストの一番上にあるタイトルをクリックするたびに、順番が逆になる。

リスト形式の表示で、子供のディレクトリを表示しなさい。

★練習問題(40) MulleSight.appによるカメラからの静止画像の取り込み

iMac には、iSight という動画像のカメラがついている。 /usr/local3/Applications/ にある MulleSight.app というプログラムを用い て、動画像カメラを使って静止画像を取り込むことができる。 この結果、「クリップボード」というコピー&ペーストで用いる場所に保存さ れている。

クリップボードにある画像を、「プレビュー.app」で保存する。

「プレビュー.app(Preview.app)」で画素数と色数は、「ツール」メニューで 「情報を見る」を選択すると表示されるウインドウで調べられる。

★練習問題(41) isightcaptureによる静止画像ファイルの作成

isightcapture は、コマンドラインから実行できる iSight カメラの画像を 取り込むプログラムである。 次のようにして、実行することで、引数で指定されたファイルに指定された形 式で接続された動画像のカメラ(iSight)から静止画像を取り込み、ファイルに 保存することができる。
% isightcapture mypicture.jpg [←]
% isightcapture -w 320 -h 240 -t png mypicture.png [←]
くわしくは、http://www.intergalactic.de/hacks.html

★練習問題(42) Gimp

/usr/local3/Applications/ にある Gimp.app というプログラムを 実行し、画像形式の変換、簡単な図形や文字の追加などを行いなさい。

★練習問題(43) OmniGraffle

「/Applications (アプリケーション) 」にある OmniGraffle を実行して、図形の描画を行いなさい。描画した図形を、 「ファイル」メニューから「書き出し (Option+Command+E)」を選び、 画像として出力しなさい。

★練習問題(44) プレビュー.app (Preview.app)による画像形式の変換

「プレビュー.app (Preview.app)」で表示している画像を、「ファイル」メ ニューから「別名で保存」を選ぶことで、別の名前で、ファイルを作成て静止 画像データを保存することができる。この時、形式を変更することもできる。

BMP, GIF, JPEG, PDF, Photoshop, PICT, PNG, SGI, TGA, TIFF

★練習問題(45) QuickTime Player.appでの録音

アプリケーション(/Applications)にあるPlayer.appを使うと、iMac に内蔵さ れているマイクを使って音声データを取り込み、それをファイルへ保存するこ とができる。

★練習問題(46) QuickTime Player.appでの録画

アプリケーション(/Applications)にあるPlayer.appを使うと、iMac に内蔵さ れている動画像カメラ(iSight)とマイクを使って動画像(音声ふくむ)データを 取り込み、それをファイルへ保存することができる。

方法は、音声データの録音方法とよく似ている。プログラムを実行した後に、 「ファイル」メニューから「新規オーディオ録音」ではなく「新規ムービー録 画」を選ぶ。

★練習問題(47) tgifコマンド

tgif を利用して、図を書いてみなさい。 tgif を実行するには、コマンドラインから tgif と打つ。

tgif は、X Window System (X11) の機能を利用して動作する。 tgif を実行する前に X11 を実行(Dock の X11 をシングルクリック)しなさい。 そこで開かれた端末で tgif を実行しなさい。

参考: Unix Super Text 下巻「第53章 ドローツール」。

★練習問題(48) netbpm,xv,ImageMagic display,その他

静止画像の形式を変換するには、次のようなプログラムを利用することもでき る。 詳しくは、Unix Super Text 下巻 「54章 画像処理」参照。

■課題6 音声、静止画像、動画像の符号化

締切りは、5月12日とする。次の内容を含む「テキスト」ファイルを作成し、 レポート提出ページから提出しなさい。さらに、作 成した静止画像については、印刷して TA に提出しなさい。印刷したものにも、 必ず、学類, 学籍番号, 氏名, TA氏名, 提出日 を記述しなさい。

(1) 静止画像について次の操作を行いなさい。 次のいずれかの方法で、静止画像を含むファイルを作成しなさい。

画像の形式を調べなさい。

画素数(横、縦のピクセル数)、色数を調べなさい。 画素数と色数は、「プレビュー.app(Preview.app)」の「ツール」メニューで 「情報を見る」を選択すると表示されるウインドウで調べられる。

画像ファイルを ls -l で表示しなさい。その結果を、端末プログラムのコピー &ペースト機能を使って以下に張りなさい。(Emacs の中で、M-x shell の機 能を使ってシェルを実行してもよい。)

注意:Finder で、ホーム・ディレクトリ以下の「書類」や「デスクトップ」と 表示されるディレクトリを用いてもよい。ただし、端末の中で、cd コマンドや ls コマンドで指定する時には、「書類」「デスクトップ」で はなく、「~/Documents」や「~/Desktop」と指定する。今日 の課題では、ファイル名には、漢字を含めず、アルファベット、数字、「.」を 使いなさい。

画像の形式を以下で示されたものに変換しなさい。そして、そのファイルの大 きさを示しなさい。

(2) 漢字800文字からなる文書を考える。漢字1文字を2バイト(16ビット)で符号 化すると、何バイト必要か。同じ文書を、1文字を16x16ドットのビットマップ・ フォントを使い画像に変換すると、何バイト必要になるか。(テキスト中の改 行などの制御コードや画像の行間などは無視して考える。)

(3) 音声について次の操作を行いなさい(加点課題)

次のいずれかの方法で音声データを作成し、ホーム・ディレクトリ、または、 その子供のディレクトリにファイルに保存(書き出し)しなさい。

拡張子、ファイルの大きさ、音声データの標本化レート、量子化数、チャネル 数を調べなさい。形式、音声データの標本化レート、量子化数、チャネル数を 変化させ書き出した時に、ファイルの大きさや拡張子がどうなるか調べなさい。

(4) 動画像について次の操作を行いなさい(加点課題)

次のいずれかの方法で動画像データを作成し、ホーム・ディレクトリ、または、 その子供のディレクトリにファイルに保存(書き出し)しなさい。

拡張子、ファイルの大きさ、データレートを調べなさい。形式、画像の大きさ (横、縦のピクセル数)、音声のパラメタなどを変化させ書き出した時に、時 に、ファイルの大きさや拡張子がどうなるか調べなさい。


Last updated: 2006/05/22 19:36:51
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>