音声、静止画像、動画像の符号化、標準入出力、Emacs fill-paragraph

					2013年04月30日
情報科学類 コンピュータリテラシ

                                       筑波大学 システム情報系 情報工学域
                                       新城 靖
                                       <yas@cs.tsukuba.ac.jp>

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

■連絡事項

■音声の符号化

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

  1. 音を電気信号に変える(マイクロホン)
  2. 電気信号をビット列(整数)に変える(A/Dコンバータ(analog-to-digital converter))
  3. コンピュータで計算/通信/蓄積する
  4. ビット列(整数)を電気信号に変える(D/Aコンバータ(digital-to-analog converter))
  5. 電気信号を音に変える(スピーカ)

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

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

ディジタルデータ: 0, 1, 2, 3, 3, 2, 1, 0, -1, -2, -3, -3, -2, 0, 2, 3, 2, 0

◆音声データの品質

ディジタルになった音声データの品質は、次の数で決まる。
標本化レート(サンプリング・レート)
電気信号を数に変える頻度。1秒辺り回数(Hz (ヘルツ))で表す。
量子化数(サンプリング・サイズ)
数に変える時に何ビットで表わすか。ビットで表す。
チャネル数(チャンネル数(channel))
ステレオなら2。(単位なし)

◆CD品質の音(Compact Disc)

◆CD 1枚(70分)に含まれているデータ量

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 より音質は悪いが長電話すると、相当なデータ量になる。

◆データ圧縮、圧縮

データ圧縮(data compression)、あるいは、圧縮(compression)とは、 なんらかの形式で表現された大きなデータを、計算により、少ないデータ量で 表現する。音声、静止画像、動画像は、データ量が多くなるので、圧縮が求め られる。

分類

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

MP3の他にも、H.264 など、動画像(音声含む)の形式の音声部分だけを使うこともある。

◆音声データの形式とコンテナ形式

音声をファイルに保存する時には、2つを区別する。 音声データをプログラムで扱う時には、そのプログラムがどのよな音声の形式 やコンテナの形式を扱えるかを考える必要がある。

音声データ右、左、低品質

コンテナと音声データ

音声データ形式の例は、 音声の符号化の方法(圧縮方法) で示したもの。

よく使われる音声用のコンテナ形式としては、次のようなもがある。

音声でも、動画像用のコンテナを利用することもある。

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

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

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

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

■静止画像の符号化

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

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

◆ビットマップ

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

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

◆色と階調

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

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

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

◆画素数の感覚

◆解像度

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

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

画面
72 dpi / 132 dpi (iPad/iPad2) / 264 dpi (iPad 2012)
よく使われるコンピュータのプリンタ
300-6000 dpi

◆画像のデータ量の計算

画素数 ×1画素あたりのビット数
縦のドット数 ×横のドット数 ×1画素あたりのビット数
コンピュータ1画面の

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

◆圧縮

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

◆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 では、写真を保存する時に、品質を指定することができる。 高い品質を指定すれば、劣化が少なくなるが、データ量は多くなる。 低い品質を指定すれば、逆になる。

◆画像の形式

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

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

◆画像の形式形式の変換

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

図? MacOSX 「プレビュー.app (Preview.app)」で保存可能な対応している画像の形式。(クリックで拡大)

◆ベクトル形式の画像

ベクトル、ベクタ、vector

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

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

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

◆PostScript

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

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

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

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

◆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, その他 のフリーのプログラムが使える。

◆Scalable Vector Graphics

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

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

以下は、SVG で直線、長方形、円を記述した例である。

<svg>
<line x1="10" y1="100" x2="100" y2="100" style="stroke:blue" />
<rect x="20" y="200" width="100" height="50" style="fill:red; stroke:red;" />
<circle cx="300" cy="300" r="50" style="fill:yellow; stroke:yellow;" />
</svg>
SVG は、W3C (World Wide Web Consortium)により標準化作業が進 められている。XML 形式を用いているが、モデルとしてはPDF や PostScript と似ている。

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

XML については、後述。

◆フォント

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

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

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

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

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

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

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

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

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

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

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

■動画像の符号化

コンピュータで動画像を扱うには、基本的には、テレビ、映画、アニメーショ ンと同じで、静止画像を次々と切り替えることをする。 次の3つの数で決まる。 これらを全て掛け合わせたものが、ビットレート(bit rate)。1秒当たりのデー タ量(ビット数)。(ビットレートの場合、圧縮された後で考えることもある。)

◆アナログテレビの品質

ディジタルではにないので、精密には言えないがこのくらい。 1秒あたりのデータ量: 235*240*16*30 == 27,072,000 ビット。

◆日本の地上ディジタルテレビの品質

ただし、縦方向は、飛び越し走査(interlace scan) なので、1回には、半分(奇 数番目か偶数番目)しか送っていない。1080i と表記される。

1秒あたりのデータ量: 1440*1080*24*30/2 == 559,872,000 ビット。

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

37.6 [G bit] / 497,664,000 [bit/s] == 約 67 [s]。

とにかく圧縮したい。

◆動画像データの形式とコンテナ形式

動画像データをファイルに保存する時にも、次の2つを区別する。

動画像、音声データ右、左、日英、字幕、

コンテナと動画像データ

動画像データ形式の例:

コンテナ形式の例:

◆再生リスト

再生リスト(play list) は、複数の動画像や音声を連続的に再生するためのリ スト(データの並び)。内部にコンテナや動画像・音声のファイル、通信回線 の品質の指定、言語などを含むことがある。

再生リストの例:

◆動画圧縮の考え方

◆DVDの品質

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
ビデオテープ程度の画質で、352ドットx240ドットの画像を毎秒30フレー ムで演奏することができる。Video CD 等で使われている。
MPEG-2
ハイビジョン程度の画質のもので、720ドット×480ドット、または、1280× 720ドットで、毎秒60フレームの演奏が可能である。MPEG-2 は、DVD に使われ ており、2時間のビデオを数Gバイトに圧縮することができる。
MPEG-4
インターネットでの配信にも利用することを目的に開発。 低いビットレートでも使える。
  MPEG-3 という規格はない。

◆MPEGコンテナフォーマット

MPEG は、コンテナ・フォーマットを定めている。

■シェルと標準入出力

シェル(shell) 次ののようなプログラムである。 コマンド・インタプリタともいう。

◆入出力

入力
プログラムが実行する時に受け取るデータ。 (引数、オプションに加えて)ファイルからも受け取れる。
出力
プログラムの実行結果
シェルの機能として、画面を出力をファイルに保存したり、キーボードの代わ りにファイルに保存されたデータを与えたりできる。

◆標準入出力

Unix では、文字端末で動くプログラムは次の3種類をあてにしている。
標準入力 (stdin, standard input, 0番)
普通、キーボードにつながっている。
標準出力 (stdout, standard output, 1番)
普通、画面につながっている。
標準エラー出力 (stderr, standard error output, 2番)
普通、画面につながっている。

キーボード、標準入力、プログラム、標準出力、標準エラー出力、画面

図? プログラムの標準入出力の普通の接続先

◆標準入出力の切り替え(redirection リダイレクション)

シェルは、「記号>」 があると、標準出力を画面から指定されたファ イルに切り替えて、指定されたプログラムを実行する。
$ ls -l > file1 [←]

キーボード、標準入力、プログラム、標準出力、ファイル、標準エラー出力、画面

図? プログラムの標準出力のファイルへの切替え

シェルは、「記号<」 があると、標準入力をキーボードから指定され たファイルに切り替え、指定されたプログラムを実行する。
$ cat < file1 [←]

ファイル、標準入力、プログラム、標準出力、標準エラー出力、画面

図? プログラムの標準入力のファイルへの切替え

シェルは、「記号|」があると、次の動作を行う (パイプ(pipe)機能)。 例:
$ ls -l | head -4 [←]
total 222
drwx------  10 yas  prof   4096  4 26 18:51 Desktop
drwx------   4 yas  prof   4096  4  2 14:14 Documents
drwxr-xr-x@  2 yas  prof   4096  4 26 12:51 Downloads
$ []
headコマンド は、ファイルや標準入力の先頭を表示する ためのコマンド。-n (nは数)というオプションが与 えられると、先頭の n 行だけ表示する。

ファイル、標準入力、プログラム、標準出力、パイプ、標準エラー出力、画面、パイプ、標準入力、次のプロセス

図? プログラムの標準出力のパイプへの切替え

ファイルを介しても類似の操作は可能だが、後で不要なファイルを消さなけれ ばならない。
$ ls -l > file [←]
$ head -4 < file [←]
total 222
drwx------  10 yas  prof   4096  4 26 18:51 Desktop
drwx------   4 yas  prof   4096  4  2 14:14 Documents
drwxr-xr-x@  2 yas  prof   4096  4 26 12:51 Downloads
$ rm file [←]
$ []
パイプは、3つ以上のプログラム(プロセス)を結びつけることもできる。

◆標準エラーの役割

標準出力の切り替えを行ったとしても、標準エラーは画面に表示される。
$ ls Document > file [←]
ls: Document: No such file or directory
$ cat file [←]
$ []
Document」 は、「Documents」の打ち間違い(sがない)である。 ls コマンドは、エラー・メッセージを標準出力ではなく標準エラー出力に書き 出す。

2>file」をつかうと、標準エラー出力をファイルに保存 することもできる。

$ ls Document > file 2>file2 [←]
$ cat file [←]
$ cat file2 [←]
ls: Document: No such file or directory
$ []
2>&1」をつかうと、標準エラー出力(2)を、標準出力 (1)に混ぜて(&)、ファイルに保存することもできる。
$ ls Document > file 2>&1 [←]
$ cat file [←]
ls: Document: No such file or directory
$ []
2>&1」は、順番が大事。ファイルに混ぜて保存する場合 は、「>file」の後にやること。先にやると、その時点で の標準出力(画面)が指定されてしまう。
$ ls Document 2>&1 > file  [←]
ls: Document: No such file or directory
$ cat file [←]
$ []
2>&1を使うと、エラー・メッセージも含めてパイプに出力 することもできる。この場合は、パイプ|より左に書く。
$ ls Document 2>&1 | head -4 [←]
ls: Document: No such file or directory
$ []

◆ファイルの追記

標準出力では、ファイルを追加することができる。
>file
ファイルがなければ、まず空のファイルを作成する。ファイルがあれば、 file の内容を消して空にする。
>>file
ファイルが存在しても、消さずにその後ろに追加する。

■Emacs

◆fill-paragraph

電子メールのテキストやレポートのテキストでは、1行を適当な長さで折り返す (右揃えをする)と都合が良い場合が多い。それには、Emaacs の  fill-paragraph 機能が便利である。

例:実行前

A long long long long long long long long long long long long long long long line.
A short line.
A short line.
A short line.
A short line.
例: fill-paragraph 実行後
A long long long long long long long long long long long long long
long long line.  A short line.  A short line.  A short line.  A short
line.
fill-paragraph の使い方 fill-paragraph では、標準で英語なら1行を 70 文字、日本語なら 35 文字に する。この文字数を変更したい時には、次のようなキー操作を行なう。
C-u  数 C-x f

■実習

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

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

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

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

★練習問題(602) プレビュー.app(Preview.app)による形式や画素数等の表示

「プレビュー.app(Preview.app)」には、画像の形式(タイプ)や画素数等の情 報を表示する機能がある。

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

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

★練習問題(604) プレビュー.app (Preview.app)によるピクセル数の変更

主に画像のサイズを小さくする時に、縦横のピクセル数を変更する方法がある。 「プレビュー.app」には、この機能がある。これを試してみなさい。

「ツール」メニューから「サイズを調整」を選ぶ。

★練習問題(605) プレビュー.app (Preview.app)によるクリッピング

画像の一部だけを切り出すことをクリッピングという。 「プレビュー.app」に は、クリッピングの機能がある。これを利用してみなさい。

カーソルが「+」になっている時に、対角線をドラックする。 点線が表示されたら、丸い部分をドラッグして動かす。

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

isightcapture は、シェルのコマンドとして実行できる iSight カメラの画像 を取り込むプログラムである。 次のようにして、実行することで、引数で指定されたファイルに指定された形 式で接続された動画像のカメラ(iSight)から静止画像を取り込み、ファイルに 保存することができる。 (実行する前に MulleSight.app 等、カメラを利用している他のプログラムが 動作していれば、それを終了すること。)
$ isightcapture mypicture.jpg [←]
$ isightcapture -w 320 -h 240 -t png mypicture.png [←]
-w オプションで、幅(width)、 -h オプションで、高さ(hight)、 -t オプションで、画像の形式(type)を指定できる。

★練習問題(607) ImageMagic convert コマンドによる静止画像の形式の変換

convert コマンドを使って静止画像の形式を変換しなさい。たとえば、以下の 例では、ファイルfile1.jpg に含まれているJPEG形式のファイルの内容をPNG形 式へ変換して、新しいファイル file1.png に保存している。
$ ls -l file1.jpg file1.png [←]
ls: file1.png: No such file or directory
-rw-r--r--  1 yas  prof  37780  4 26 11:48 file1.jpg
$ convert file1.jpg  file1.png  [←]
$ ls -l file1.jpg file1.png [←]
-rw-r--r--  1 yas  prof   37780  4 26 11:48 file1.jpg
-rw-r--r--  1 yas  prof  132672  4 26 18:51 file1.png
$ []
変更後、ファイルの内容を表示しなさい。また、 プレビュー.app(Preview.app)のインスペクタ を使って、ファイルの形式や画素数がどのように変化したかを調べなさい。

類似の操作を cp コマンド(ファイルのコピー)や mv コマンド(ファイル名の変 更) でも行ってみなさい。この時には、ls -l によるファイルの大きさが変化しないこと、また、 ファイルの形式や画素数が変化しないことを確認しなさい。

★練習問題(608) ToyViewer.appによる画像と変換

/Applications/coins/ToyViewer.app で画像を表示さなさい。また、形式を変 更して保存しなさい。
$ open /Applications/coins/ToyViewer.app  [←]

★練習問題(609) 標準出力の切り替え

次のように、cal コマンドを実行して、>による標準出力の切り替 えが動作することを確認しなさい。
$ cal 5 2013 [←]
cal 5 2013
      5月 2013
日  月  火  水  木  金  土 
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

$ cal 5 2013 > cal-2013-05.txt [←]
$ cat cal-2013-05.txt [←]
      5月 2013
日  月  火  水  木  金  土 
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

$ []

★練習問題(610) bcコマンド

bc コマンドは、電卓のプログラムである。一般的には、キーボードから数式を 読み込み、結果を画面に表示する。これを動作させてみなさい。

動作例:

$ bc [←]
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
10+20[←]
30
^D
$ []
bc コマンドは、プロンプトを表示しないが、ユーザが打ち込んだ数式を行単位 で計算して表示する。終了するには、入力の終わり(end of file) を意味する ^D (Control+D) を押す。コントロール・キーを押しながら、 D キーを押す。

次のような機能が利用できる。

bc に -l オプションを付けると小数が扱える。 詳しくは、man bc を見なさい。

★練習問題(611) 標準入力の切り替え

bc コマンドに対して、ファイルから数式を読み込ませて計算させなさい。 まず、テキスト・エディタ、または、cat 等で数式が含まれたファイルを作成 しなさい。以下は、cat で作成する例である。Emacs を利用して作成してもよ い。
$ cat > expressions [←]
10+20[←]
2^40[←]
^D
$ cat expressions  [←]
10+20
2^40
$ []
次に作成した数式を、 キーボードの代わりにファイルからデータを読み込ませる。
$ bc < expressions [←]
30
1099511627776
$ []
次に、echo コマンドとパイプを使ってみなさい。数式は、ダブルクォーテーショ ンマーク(「"」)で括るとよい。
$ echo "10+20" [←]
10+20
$ echo "10+20" | bc [←]
30
$ echo "2^40" | bc [←]
1099511627776
$ []

★練習問題(612) 追記

以下のような手順で、5月から7月のカレンダ含むファイルを作成しなさい。
$ ls -l cal-2013-567.txt [←]
ls: cal-2013-567.txt: No such file or directory
$ cal 5 2013 >  cal-2013-567.txt [←]
$ cal 6 2013 >> cal-2013-567.txt [←]
$ cal 7 2013 >> cal-2013-567.txt [←]
$ cat cal-2013-567.txt [←]
      5月 2013
日  月  火  水  木  金  土 
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

      6月 2013
日  月  火  水  木  金  土 
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
      7月 2013
日  月  火  水  木  金  土 
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

$ []

★練習問題(613) システム環境設定/サウンド

システム環境設定を実行しなさい(Dock、または、open "/Applications/System Preferences.app") 。その中の「サウンド」の項目を 開きなさい。次のことを行いなさい。

★練習問題(614) 音量調整と消音

音量調整と消音を次の方法でも行ってみなさい。

★練習問題(615) headコマンド

headコマンドは、ファイルの先頭の 10 行(または、指定された 行数) を表示するコマンドである。以下の例では、ファイルの先頭 /usr/share/dict/wordsの先頭を表示している。
$ head /usr/share/dict/words  [←]
A
a
aa
aal
aalii
aam
Aani
aardvark
aardwolf
Aaron
$ head -5 /usr/share/dict/words  [←]
A
a
aa
aal
aalii
$ []
このコマンドの動きを確認しなさい。次のファイルを指定してみなさい。 また、-n (nは数)オプションの動きを調べなさい。ファイル が短い時、10行、または、それ以下の行数しかない時には、head コマンドが何 行表示するかを調べなさい。

★練習問題(616) tailコマンド

tailコマンド は、 headコマンドとは逆に、 ファイルの末尾の 10行(または、指定された行数)を表示するコマンドである。
$ tail /usr/share/dict/words  [←]
zymotoxic
zymurgy
Zyrenian
Zyrian
Zyryan
zythem
Zythia
zythum
Zyzomys
Zyzzogeton
$ tail -5 /usr/share/dict/words  [←]
zythem
Zythia
zythum
Zyzomys
Zyzzogeton
$ []
練習問題(615) と同じファイルを tail コマンドで表示してみなさい。
$ tail /usr/share/dict/words  [←]
$ tail ~/literacy-a4.txt [←]

★練習問題(617) lvコマンド

lv コマンド の使い方を復習しなさい。次のキーを確認しなさい。 練習問題(615) と同じファイルを lv コマンドで表示してみなさい。
$ lv /usr/share/dict/words  [←]
$ lv ~/literacy-a4.txt [←]

★練習問題(618) パイプ

次のコマンドを実行して、パイプの動作を確認しなさい。

★練習問題(619) lsとパイプ

ls コマンドは、画面に表示する時とパイプに表示する時で表示方法が異なる。 このことを確認しなさい。
$ ls [←]
$ ls | cat [←]
$ ls | lv [←]
パイプに出力する時にも、画面と同様の表示をさせるには、-C オプションを付 ければよい。
$ ls -C [←]
$ ls -C | cat [←]
$ ls -C | lv [←]

★練習問題(620) Emacs fill-paragraph (Esc q, M-q)

Emacs には、1行の長さをそろえる機能がある。たとえば、次のように乱れたものを
M-q runs the command fill-paragraph 
which is an interactive compiled
Lisp
function
in `textmodes/fill'.
It is bound to M-q.
M-q または Esc q で、標準で 70 以内になるように次のように整える。
M-q runs the command fill-paragraph which is an interactive compiled
Lisp function in `textmodes/fill'.  It is bound to M-q.
整える範囲は、上下に空行で区切られた範囲である。長過ぎる行は、改行が入 れられる。英単語の場合には、途中で改行することはない。日本語の場合には、 標準では、35文字で改行される。

この機能を確認しなさい。

★練習問題(621) Emacs set-fill-column

fill-paragraph で、折り返す文字数を変えたい場合には、set-fill-column を 使う。
C-u  C-x f
あるいは、折り返したい位置にカーソルを移動してから次のように打つ。
C-x f
以後、M-q または Esc q で折り返しを行った時には、指定 した文字数で折り返される。この機能を確認しなさい。

★練習問題(622) Gimp

/Applications/ にある Gimp.app というプログラムを 実行してみなさい。
$ open /Applications/Gimp.app [←]
画像の作成、画像形式の変換、簡単な図形や文字の追加などを行いなさい。

★練習問題(623) システム環境設定/ディスプレイ

システム環境設定(Dock、または、open "/Applications/System Preferences.app") の中の「ディスプレイ」の項目を開きなさい。画面の画素 数や色数がどうなっているかを調べなさい。

画素数や色数を変更するとどうなるか調べなさい。 観察が終わったら元の状態に戻しなさい。

★練習問題(624) Grab.app

「グラブ.app(Grab.app)」を使って、画面に表示されている内容の一部を取り 込みなさい。このプログラムは、次の場所にある。 取り込む単位としては、次のようなものがある。 単純に保存すると TIFF 形式になる。PNG 等にするには、クリッフポードにコ ピーして、「プレビユー.app」で開き、保存する。

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

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

★練習問題(626) 大学紹介ビデオ、学群紹介ビデオ

次のページにあるビデオから1つを選び、形式を調べなさい。画素数、1秒当 たりのフレーム数、ファイルの大きさ、ビットレートを調べなさい。

次の3つのアプリケーションが利用できる。

"/Applications/QuickTime Player.app"
MP4 (H.264) を生成てきる。 「ウインドウ」メニューの「ムービー情報(Command+I)」を選ぶ
open "/Applications/QuickTime Player.app"
/Applications/coins/VLC.app
MP4 と WMV (Windows Media Video) 形式の両方を再生できる。
open /Applications/coins/VLC.appdnl
"/Applications/coins/Windows Media Player.app"
WMV (Windows Media Video) 形式を再生できる。 「ファイル」メニューの「情報を見る(Command+I)」を選ぶ。
open "/Applications/coins/Windows Media Player.app"
Web ブラウザで URL を調べ、クリップボードにコピーし、アプリケーションで その URL を開く。環境により、Firefox の中で直接表示できるものもある。

★練習問題(627) sayコマンドで音声合成

say は、与えられた英文テキストから音声を合成するコマンドである。標準で は、そのままコンピュータのスピーカに出力する。
$ say "hello,world"       一行分ならそのまま引数に渡す [←]
$ []
$ say [←]
hello,
world
^D             複数行なら、引数なしで実行し最後に Control-D
$ []
次のように -o オプションを指定すると、スピーカではなくファイルに出力す る。
$ say "hello,world" -o hello.aiff [←]
$ []
この機能を利用して、音声データを含むファイルを作成しなさい。

★練習問題(628) saykanaコマンドで音声合成

saykana コマンドは、かな表記の日本語から音声を合成できる say コマンドである。 このコマンドを使って、音声データを含むファイルを作成しなさい。 ただし、文字コードとして、iTerm 標準のEUC ではなく、UTF-8 を用いる。 従って、coins の環境で利用するには、次のように nkf と組み合わせて使う。
$ emacs で平仮名の含むファイルを作る。 [←]
$ nkf -w filename.txt | saykana  [←]
$ nkf -w filename.txt | saykana -o file.aiff [←]
くわしくは、 Webページ を参照しなさい。

★練習問題(629) Audacity.appによるエンコーディング形式の変換

/Applications/coins/Audacity.app を使って、音声データの形式、サンプリン グレート、サンプリング・サイズを観察しなさい。またそれらを変更してみな さい。

★練習問題(630) Switch.appによるエンコーディング形式の変換

/Applications/coins/Switch.app を使って、音声データの形式を変更しなさい。

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

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

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

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

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

★練習問題(633) VLC media player

VLC media player を使ってみなさい。
$ open /Applications/coins/VLC.app [←]
付属のドキュメントを読みなさい。
$ open /Applications/coins/VLC.app/Contents/Resources/README.MacOSX.rtf  [←]
演奏できるコーデックとコンテナ・フォーマットを調べなさい。

VLC media player は、保持しているデータを他のコンピュータで実行している VLC media player に配信する機能がある。このことを確認しなさい。

★練習問題(634) soxコマンドとsoxi

sox は、音声データの形式を変更するコマンドである。音量を調整したり、エ コーをかけることもできる。このコマンドを用いてファイルに含まれている音 声データの形式を変更してみなさい。 詳しくは、man sox を見なさい。

soxi コマンドは、音声データが含まれているファイルの中のチャネル数やサン プリングレートを表示するコマンドである。このコマンドを利用してみなさい。 詳しくは、man soxi を見なさい。

★練習問題(635) ffmpeg

ffmpeg は、ビデオの形式を変換したりビットレートを変換するコマンドである。 このコマンドを利用してみなさい。 詳しくは、man ffmpeg を見なさい。

★練習問題(636) Font Book.app

アプリケーション(/Applications)にある 「Font Book.app」を利用すると、 どのようなフォントがいるか調べることができる。 この機能を確認しなさい。

■課題6 音声、静止画像、動画像の符号化、標準入出力、Emacs fill-paragraph

次の内容を含む「テキスト」ファイルを作成し、 レポート提出ページから提出しなさい。 今日の課題では、実習時間中に TA に結果を示し、確認番号を受け取りなさい。 レポートには、その確認番号、TA氏名、確認日時を記述しなさい。

今日の提出する課題は、課題では、 Emacs fill-paragraph、 (練習問題(620) ) の機能を使って行を折り返しなさい。

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

TAにファイルを示し、確認番号を受け取りなさい。 レポートには、どのような方法で作成したかを、書きなさい。

(2) (1) で作成した画像について、次のことを調べなさい。

レポートには、調べた方法も含めて記述しなさい。

(3) 次のコマンドは、JPEG 形式の画像ファイル「mypicture.jpeg」をPNG 形式 の画像ファイルに変換しようとしている。

$ mv mypicture.jpeg  mypicture.png
しかし、この方法ではJPEG 形式の画像ファイルをNG 形式の画像ファイルに変 換することはできない。その理由を簡単に説明しなさい。

(4) (1) で作成した画像の形式を以下で示されたいずれかの形式(元の形式を 除く)に変換しなさい。レポートには、変換方法を記述しなさい。

これらの画像ファイルを ls -l で表示しなさい。その結果(バイト数) を、端 末プログラムのコピー&ペースト機能を使って以下に張りなさい。

(5) シェルが持つ標準入出力の切り替え機能を使って、次のコマンドの結果を 全て含む1つのファイルを作りなさい。

レポートには、次の結果を含めなさい。
$ ls -l 作成したファイル名
$ cat 作成したファイル名

(6) The Unix Super Text の次の部分を読みなさい。

そして、項目についてついて調べて、簡単に説明しなさい。 (7) The Unix Super Text の次の部分を読みなさい。 そして、項目についてついて調べて、簡単に説明しなさい。

(8) [加点] 音声について次の操作を全て行いなさい。

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

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

(9) [加点] 動画像について次の操作を全て行いなさい。

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

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


Last updated: 2013/04/30 15:31:55
Yasushi Shinjo / <yas@cs.tsukuba.ac.jp>