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/
音をコンピュータで扱うには、次のような手順になる。
アナログ信号のディジタル化
ディジタルデータ: 0, 1, 2, 3, 3, 2, 1, 0, -1, -2, -3, -3, -2, 0, 2, 3, 2, 0
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 [バイト/枚]「*」は、コンピュータで掛け算を表す。割り算は、「/」。
8000 [回/秒] * 8 [ビット] * 1 == 64000 (64k) [bit]電話1時間当たりのデータ量
64k [bit/秒] * 60 [秒/分] * 60 [分/時間] == 230,400 k [ビット]== 230,400,000 [ビット]電話も、CD より音質は悪いが長電話すると、相当なデータ量になる。
分類
コンテナと音声データ
よく使われる音声用のコンテナ形式としては、次のようなもがある。
CD では、ディジタルで記録された情報は、ディジタルの範囲では正確に再現 できる。
音がよいかは、ディジタル以外の部分に大きく依存する。
画像は、細かい細かい点(画素、ピクセル、pixel)の集合として扱える。
画像の品質は、次の2つの数で決まる。
色と階調には、次のような種類がある。
色の名前の付け方には、いろいろある。
横(水平方向)、縦(巣直方向)ごとに、単位「長さ」当りのピクセル数で図る ことが多い。よく使われる単位は、dpi (dot per inch)。
1000 ドット x 1000 ドット x 24 ビット == 24,000,000 ビット。
画像は、大きいので、「圧縮」したい。つまり、同じ画像をより小さなデータ 量で表現したい。
JPEG は、ITU (International Telecommunications Union, 旧 CCITT) と ISO の共同作業グループ(Joint Photographic Experts Group) により作成された規格である。正式には、JFIF (JPEG File Interchange Format) という。
JPEG は、劣化式圧縮の1つである。JPEG では、人間の目で見た時 にあまり気が付かない部分のデータを取り除く。その結果、写真の 見た目の質を落とすことなく、高い圧縮率を実現している。JPEG で圧縮時に捨てられたデータは、展開時に回復させることはできな い。
このような性質から、JPEG は、写真のようなイメージを圧縮する ために向いている。逆に、図形やイラストなどの保存には、適さな い。このようなものは、劣化式ではない圧縮アルゴリズムを使って いる PNG 形式の方が適している。
JPEG では、写真を保存する時に、品質を指定することができる。 高い品質を指定すれば、劣化が少なくなるが、データ量は多くなる。 低い品質を指定すれば、逆になる。
画像の表現形式にも、何種類もある。自分が使えるコンピュータで全ての種類 の画像が扱えるわけではない。操作する時には、自分が扱えるかどうかを調べ る必要がある。場合によっては、形式の「変換」をする必要がある。
よく使えれている画像の形式には、次のようなものがある。
図? MacOSX 「プレビュー.app (Preview.app)」で保存可能な対応している画像の形式。(クリックで拡大)
ベクトル、ベクタ、vector
画像をピクセルマップ(ビットマップ)ではなく、輪郭データ(アウトライン) で表す。 拡大しても、ギザギザににならない。表示の大きさによらずデータ量が一定になる。
ベクトル形式の図形(グラフィックス)場合、image とは呼ばないこともある。
EPS (Encapsulated PostScript) 形式は、PostScript に描画領域などの 情報を付加したもの。
スクリプト言語、プログラミング言語については、後述。
PostScript 形式のファイルは、テキストなので、テキスト・エディタで表示で きる。人間が手で書くこともできる。
内部にイメージを JPEG 等の形式で圧縮して保持したり、グラフィックスを図 形の形で持つこともできる。 PDF は、PostScript を元に設計されている。 フォントを埋め込む機能を引き継いでいる。 複雑な制御構造は取り払われている。
画面に表示するには、Adobe Reader (Adobe Acrobat Reader)、MacOSX Preview.app, xpdf, GhostScript 等のプログラムを用いる。
MacOSX では、印刷する時に PDF 形式で保存することで作成できる。一般的に は、Adobe Acrobat (readerがつかない) や、dvipdf*, GhostScript, その他 のフリーのプログラムが使える。
現在、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 については、後述。
ビットマップ・フォントとベクトル・フォントがある。
ベクトル・フォントだと拡大しても(解像度が高いプリンタや画面で表示しても) 文字がギザギザにならない。
文字の大きさに合わせて別のデータを使うことがある。 携帯電話などの小さい画面には、特別にデザインされたビットマップ・ フォントが見やすい。
逆に文字を符号化してしまうと、個人の性質を出したい時には、問題がある。 たとえば、署名やラブレター。
文字を画像として送ることもできるが、特別に符号化することが一般的である。
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]。
とにかく圧縮したい。
動画像データ形式の例:
コンテナ形式の例:
再生リストの例:
CD (圧縮されていない)と同じように、A/D変換、D/A変換の問題がある。
さらに、MPEG-2 で圧縮する時に、品質を調整できる。 品質を落とせば、長時間録音・録画できる。
平均的な DVD で想定されているデータ量
音質は、PCM (Linear PCM) なら、CD よりもよくできる。サンプリング・レー トやサンプリング・サイズが高くすることで。
Dolby Digital, MPEG Audio (MP3), DTS (Digian Theater Systems) では、CD よりも悪いこともある。ただし、サラウンド(チャネル数が2以上)は、 CD には規格がなく、DVD を選択するしかない。
図? プログラムの標準入出力の普通の接続先
$ 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
$
例:実行前
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 の使い方
M-q
(Esc q
) キーを押す。
C-u 数 C-x f
$ open /Applications/coins/MulleSight.app
または、Finder の「移動」メニューから「アプリケーション」を選択し、その
中の「coins」を開き、その中の 「MulleSight.app」をダブルクリックする。
クリップボードにある画像を、「プレビュー.app」で保存する。
$ open /Applications/Preview.app
または、Finder の「移動」メニューから「アプリケーション」を選択し、その
中の「プレビュー」をダブルクリックする。
「ツール」メニューから「サイズを調整」を選ぶ。
カーソルが「+」になっている時に、対角線をドラックする。 点線が表示されたら、丸い部分をドラッグして動かす。
$ isightcapture mypicture.jpg
$ isightcapture -w 320 -h 240 -t png mypicture.png
-w
オプションで、幅(width)、
-h
オプションで、高さ(hight)、
-t
オプションで、画像の形式(type)を指定できる。
$ 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 によるファイルの大きさが変化しないこと、また、 ファイルの形式や画素数が変化しないことを確認しなさい。
$ open /Applications/coins/ToyViewer.app
$ 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
$
動作例:
$ 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 を見なさい。
$ 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
$
$ 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
$
$ 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
$
このコマンドの動きを確認しなさい。次のファイルを指定してみなさい。
$ head /usr/share/dict/words
$ tail ~/literacy-a4.txt
-n
(nは数)オプションの動きを調べなさい。ファイル
が短い時、10行、または、それ以下の行数しかない時には、head コマンドが何
行表示するかを調べなさい。
$ 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
$ lv /usr/share/dict/words
$ lv ~/literacy-a4.txt
$ ls -l /usr/bin
$ ls -l /usr/bin | lv
$ ls -l /usr/bin
$ ls -l /usr/bin | head
$ ls -l /usr/bin | head -20
$ ls -l /usr/bin
$ ls -l /usr/bin | head
$ ls -l /usr/bin | head -20
$ ls
$ ls | cat
$ ls | lv
パイプに出力する時にも、画面と同様の表示をさせるには、-C オプションを付
ければよい。
$ ls -C
$ ls -C | cat
$ ls -C | lv
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文字で改行される。
この機能を確認しなさい。
C-u 数 C-x f
あるいは、折り返したい位置にカーソルを移動してから次のように打つ。
C-x f
以後、M-q または Esc q で折り返しを行った時には、指定
した文字数で折り返される。この機能を確認しなさい。
$ open /Applications/Gimp.app
画像の作成、画像形式の変換、簡単な図形や文字の追加などを行いなさい。
画素数や色数を変更するとどうなるか調べなさい。 観察が終わったら元の状態に戻しなさい。
http://www.tsukuba.ac.jp/about/videoclip.html,筑波大学等紹介ビデオ,筑波大学学群紹介ビデオ
http://www.tsukuba.ac.jp/topics/20130409143331.html,平成25年度筑波大学入学式
次の3つのアプリケーションが利用できる。
open "/Applications/QuickTime Player.app"
open /Applications/coins/VLC.appdnl
open "/Applications/coins/Windows Media Player.app"
$ say "hello,world" 一行分ならそのまま引数に渡す
$
$ say
hello,
world
複数行なら、引数なしで実行し最後に Control-D
$
次のように -o オプションを指定すると、スピーカではなくファイルに出力す
る。
$ say "hello,world" -o hello.aiff
$
この機能を利用して、音声データを含むファイルを作成しなさい。
$ emacs で平仮名の含むファイルを作る。
$ nkf -w filename.txt | saykana
$ nkf -w filename.txt | saykana -o file.aiff
くわしくは、
Webページ
を参照しなさい。
$ open "/Applications/QuickTime Player.app"
注意: 空白を含んでいるので、" " でくくる必要がある。
(方法は、音声データの録音方法とよく似ている。プログラムを実行した後に、 「ファイル」メニューから「新規オーディオ録音」ではなく「新規ムービー録 画」を選ぶ。
$ open /Applications/coins/VLC.app
付属のドキュメントを読みなさい。
$ open /Applications/coins/VLC.app/Contents/Resources/README.MacOSX.rtf
演奏できるコーデックとコンテナ・フォーマットを調べなさい。
VLC media player は、保持しているデータを他のコンピュータで実行している VLC media player に配信する機能がある。このことを確認しなさい。
soxi コマンドは、音声データが含まれているファイルの中のチャネル数やサン プリングレートを表示するコマンドである。このコマンドを利用してみなさい。 詳しくは、man soxi を見なさい。
今日の提出する課題は、課題では、 Emacs fill-paragraph、 (練習問題(620) ) の機能を使って行を折り返しなさい。
(1) 静止画像について次の操作を行いなさい。 次のいずれかの方法で、静止画像を含むファイルを作成しなさい。
(2) (1) で作成した画像について、次のことを調べなさい。
(3) 次のコマンドは、JPEG 形式の画像ファイル「mypicture.jpeg」をPNG 形式 の画像ファイルに変換しようとしている。
$ mv mypicture.jpeg mypicture.png
しかし、この方法ではJPEG 形式の画像ファイルをNG 形式の画像ファイルに変
換することはできない。その理由を簡単に説明しなさい。
(4) (1) で作成した画像の形式を以下で示されたいずれかの形式(元の形式を 除く)に変換しなさい。レポートには、変換方法を記述しなさい。
(5) シェルが持つ標準入出力の切り替え機能を使って、次のコマンドの結果を 全て含む1つのファイルを作りなさい。
$ ls -l 作成したファイル名
$ cat 作成したファイル名
(6) The Unix Super Text の次の部分を読みなさい。
(8) [加点] 音声について次の操作を全て行いなさい。
次のいずれかの方法で音声データを作成し、ホーム・ディレクトリ、または、 その子供のディレクトリにファイルに保存(書き出し)しなさい。その方法をレ ポートに記述しなさい。
(9) [加点] 動画像について次の操作を全て行いなさい。
次のいずれかの方法で動画像データを作成し、ホーム・ディレクトリ、または、 その子供のディレクトリにファイルに保存(書き出し)しなさい。その方法をレ ポートに記述しなさい。