高校「情報Ⅰ」単語帳 - 実教出版「高校情報Ⅰ Python」 - メディアの特性とコミュニケーション手段

アナログ ⭐⭐

機械で情報を扱う際の表現方法の一つで、情報を電圧の変化など連続的な物理量の変化に対応付けて表現し、保存・伝送する方式のこと。元の情報を高精度に表現することができるが、伝送や複製の際に劣化・変質を避けられない。

対義語は「デジタル」(digital)で、情報を離散的な数値に変換し、段階的な物理量として表現する。アナログで情報を扱う利点として、デジタル化では避けられない離散化に伴なう本来の信号からのズレ(量子化誤差)が生じないという点があり、情報の発生時点では正確に表現して記録することができる。

一方、保存や伝送、再生、複製に際して劣化やノイズによる影響を受けやすく、変化した情報は復元することができないため、伝送・複製を繰り返したり長年に渡って保存すると内容が失われたり変質してしまう難点がある。

かつて音楽の販売に用いられたレコード盤は、樹脂表面に刻まれた溝の凹凸の変化が音声信号の変化に直接対応付けられたアナログ記録方式だったが、コンパクトディスク(CD)では音声信号をサンプリング(標本化)して離散的な数値の列に変換し、これを表面の溝の凹凸にデジタル信号として記録している。

機器などの内部的にはデジタル処理が行われていても、人間には連続的に感じられる多段階の値で量を識別するような方式を便宜上アナログと呼ぶ場合がある。例えば、ゲーム機のコントローラの種類の一つで、方向の指示を多段階に滑らかに変化させられるものをアナログコントローラという。

1990年代頃までは、コンピュータなどによる情報のデジタル処理は限られた用途にのみ用いられてきたが、半導体チップやデジタル機器の性能向上や低価格化により、現代では身近な情報の多くがデジタル方式で保存、加工、伝送されるようになってきている。

比喩や誤用

コンピュータやデジタル方式の情報機器、通信サービスなどが普及するに連れ、旧来の機器や仕組み、考え方などを比喩的にアナログと称するようになった。

そのような用例の多くは情報の表現形式のデジタル・アナログとは無関係で、単に「コンピュータやインターネットによらない」という意味だったり、さらには「電気機械を使わない」ことを表していたりする。

中には本来の語義では誤用と思われる用例もある。例えば、ビデオゲームと対比してカードゲームやボードゲームを「アナログゲーム」と呼んだり、パソコンや電卓と対比してそろばんを「アナログな計算方法」と評することがあるが、これらが扱う情報は離散的な数値であり、電気機械を使っていないだけで情報の取り扱い方自体はデジタル的である。

デジタル 【ディジタル】 ⭐⭐

機械で情報を扱う際の表現方法の一つで、情報をすべて整数のような離散的な値の集合として表現し、段階的な物理量に対応付けて記憶・伝送する方式のこと。特に、情報を2進数の「0」と「1」の組み合わせに置き換えて表現する方式。

現代のコンピュータはデータをすべて2進数の値の列に置き換え、これをスイッチのオン・オフや電圧の高低など明確に区別できる2状態の物理量に対応させて保存・伝送する。これに合わせて、通信回線や記憶媒体などもデジタル方式で情報を取り扱うようになっている。

対義語は「アナログ」(analog)で、情報を連続した物理量で表現する方式を意味する。初期の情報機器はアナログテレビ放送や音楽レコードのようにアナログ方式で情報を記録・伝送していたが、現代ではコンピュータの普及に合わせて動画配信やCDのようにデジタル方式への置き換えが進んでいる。

デジタルで情報を扱う利点として、保存や伝送、再生、複製などを行う際に劣化やノイズの影響を受けにくく、伝送・複製を何度繰り返しても内容が変化しない点や、様々な種類の情報を数値の集合として同じように扱うことができ、情報の種類によって媒体の選択に制限を受けない点などがある。ただし、連続的に変化する信号を離散値に変換する際に、必ず本来の信号からのズレ(量子化誤差/標本化誤差)が生じる。

機器などの内部的にはデジタル処理が行われていても、人間には連続的に感じられる多段階の値で量を識別するような方式を便宜上アナログと呼ぶ場合がある。例えば、ゲーム機のコントローラの種類の一つで、方向の指示を多段階に滑らかに変化させられるものをアナログコントローラという。

比喩や誤用

コンピュータやデータ通信、デジタル方式の記憶媒体などが普及するに連れ、「デジタル」という語をコンピュータやインターネットに関連するものの総称、「アナログ」をその逆、すなわち「電気・電子技術に依らないもの」とする比喩的な用法が広まった。

このような用例の多くは本来の情報の表現形式の違いとは無関係に用いられるため、カードゲームやボードゲームなどをビデオゲームに対比して「アナログゲーム」と呼んだり、そろばんを計算機と対比して「アナログな計算方法」と呼んだりするが、これらは離散的な数値しか扱わないため、情報の扱い方そのものはデジタル的である。

A/Dコンバータ 【ADC】 ⭐⭐

アナログ信号をデジタル信号に変換する電子回路。連続量であるアナログ信号の強度を一定時間ごとに記録(標本化/サンプリング)し、その値を一定のビット数の値で表現(量子化)する。

単位時間あたりの標本化の回数をサンプリング周波数(サンプリングレート)と呼び、毎回の標本データを表現する値のビット数を量子化ビット数という。これらの値が大きいほどアナログ波形をより正確にデジタルデータの集合として記録できるが、単位時間あたりの記録に必要なデータ量は増大する。

音声や光(画像・映像)、電気信号、電波などを電子機器に取り込んでデジタル処理するためには、センサーやアンテナなどが得たアナログ信号をA/D変換でデジタルデータに変換する必要があり、様々な機器の内部に内蔵されている。

A/D変換とは逆に、デジタル信号を元にアナログ信号を生成する電子回路のことをDAC(D/Aコンバータ、デジタルアナログ変換器)という。

D/Aコンバータ 【DAC】

デジタル信号をアナログ信号に変換する電子回路。離散値で表現されたデジタル電気信号を入力すると、対応する連続量のアナログ信号を出力する。

コンピュータでは、メモリ上でデジタルデータとして管理されている画面の表示情報をアナログ信号に変換してディスプレイ装置に送出したり、音声データをアナログ信号としてスピーカーに送出したりといった用途で主に用いられている。

アナログ信号を何段階のデジタル値で近似するかを分解能と呼び、ビット単位で表す。8ビットなら256段階、10ビットなら1024段階で波形を表現できる。また、1秒間に何回変換を行うことができるかをサンプリング速度(サンプリングレート/サンプリング周波数)と呼び、ヘルツ(Hz)単位で表す。1MHzなら毎秒100万回、1GHzなら10億回の変換を行う。

いずれの値も大きければ大きいほど元の波形に近い滑らかなアナログ信号を再現できる。ただし、両者はいずれかを向上させるともう一方の性能を高めるのが難しいトレードオフの関係にあるため、用途に応じてどちらを重視するか考えて方式や製品の選択などを行う必要がある。

D/A変換には原理が異なる複数の方式があり、得意な分野や用途が異なっている。よく知られるのは多数の抵抗を並べた抵抗ラダー型や抵抗ストリング型、キャパシタ(コンデンサ)を用いる容量アレイ型、オーバーサンプリングという手法を応用したΔΣ(デルタシグマ)型、電流の大きさを変化させて信号を出力する電流出力型などがある。

D/A変換とは逆に、アナログ信号をデジタル信号に変換する電子回路のことを「A/Dコンバータ」(ADC:デジタルアナログ変換器)という。電波や電気信号の受信、写真や映像の撮影、音声の録音など、自然界の物理状態をデジタル値の列に変換してコンピュータで利用するために必要となる。

D/Aコンバータ 【DAC】

デジタル信号をアナログ信号に変換する電子回路。離散値で表現されたデジタル電気信号を入力すると、対応する連続量のアナログ信号を出力する。

コンピュータでは、メモリ上でデジタルデータとして管理されている画面の表示情報をアナログ信号に変換してディスプレイ装置に送出したり、音声データをアナログ信号としてスピーカーに送出したりといった用途で主に用いられている。

アナログ信号を何段階のデジタル値で近似するかを分解能と呼び、ビット単位で表す。8ビットなら256段階、10ビットなら1024段階で波形を表現できる。また、1秒間に何回変換を行うことができるかをサンプリング速度(サンプリングレート/サンプリング周波数)と呼び、ヘルツ(Hz)単位で表す。1MHzなら毎秒100万回、1GHzなら10億回の変換を行う。

いずれの値も大きければ大きいほど元の波形に近い滑らかなアナログ信号を再現できる。ただし、両者はいずれかを向上させるともう一方の性能を高めるのが難しいトレードオフの関係にあるため、用途に応じてどちらを重視するか考えて方式や製品の選択などを行う必要がある。

D/Aコンバータには原理が異なる複数の方式があり、得意な分野や用途が異なっている。よく知られるのは多数の抵抗を並べた抵抗ラダー型や抵抗ストリング型、キャパシタ(コンデンサ)を用いる容量アレイ型、オーバーサンプリングという手法を応用したΔΣ(デルタシグマ)型、電流の大きさを変化させて信号を出力する電流出力型などがある。

D/Aコンバータとは逆に、アナログ信号をデジタル信号に変換する電子回路のことを「A/Dコンバータ」(ADC:デジタルアナログ変換器)という。電波や電気信号の受信、写真や映像の撮影、音声の録音など、自然界の物理状態をデジタル値の列に変換してコンピュータで利用するために必要となる。

A/Dコンバータ 【ADC】

アナログ信号をデジタル信号に変換する電子回路。連続量であるアナログ信号の強度を一定時間ごとに記録(標本化/サンプリング)し、その値を一定のビット数の値で表現(量子化)する。

単位時間あたりの標本化の回数をサンプリング周波数(サンプリングレート)と呼び、毎回の標本データを表現する値のビット数を量子化ビット数という。これらの値が大きいほどアナログ波形をより正確にデジタルデータの集合として記録できるが、単位時間あたりの記録に必要なデータ量は増大する。

音声や光(画像・映像)、電気信号、電波などを電子機器に取り込んでデジタル処理するためには、センサーやアンテナなどが得たアナログ信号をA/Dコンバータでデジタルデータに変換する必要があり、様々な機器の内部に内蔵されている。

A/Dコンバータとは逆に、デジタル信号を元にアナログ信号を生成する電子回路のことをDAC(D/Aコンバータ、デジタルアナログ変換器)という。

サンプリング 【標本化】 ⭐⭐⭐

対象全体の中から何らかの基準や規則に基いて一部を取り出すこと。統計調査などで少数の調査対象を選び出すことや、信号のデジタル化などで一定周期で強度を測定することなどを指す。

アナログ信号のサンプリング

信号処理の手法の一つで、アナログ信号などの連続量の強度を一定の時間間隔で測定し、観測された値(標本値)の列として離散的に記録することを標本化ということが多い。デジタルデータとして記録したい場合は、値を整数などの離散値で表す「量子化」(quantization)処理が連続して行われる。

測定の間隔を「標本化周期」(sampling cycle:標本化周期)、その逆数である測定の頻度(単位時間あたりの回数)を「標本化周波数」(sampling frequency:標本化周波数)という。頻度の多寡は通常標本化周波数で表現され、単位として1秒あたりの回数を表す「Hz」(ヘルツ)が用いられる。

例えば、音声を44.1kHz(キロヘルツ:Hzの1000倍)で標本化する場合、音声信号の強度を毎秒4万4100回記録し、音声データを1秒あたり4万4100個の数値の列として表現する。44.1kHzは人間の可聴音をほぼカバーする周波数とされ、CD(コンパクトディスク)などの音声記録に用いられている。

統計・調査におけるサンプリング

統計や調査などの分野では、調査したい母集団全体を対象とすることが困難な場合に、集団を代表する少数の標本を抽出して対象とし、その結果から統計的に母集団の性質を推計する手法を標本化という。製品の出荷時検査や社会調査などで広く用いられ、標本から母集団の推定値を算出する方法や偏りのない標本の抽出方法などについて様々な手法が提唱されている。

音楽におけるサンプリング

音楽の分野では、楽曲の制作手法の一つで、既存の楽曲や何らかの音源からメロディや歌詞、あるいは音声そのものの断片を抽出し、引用したり繋ぎ合わせる技法を標本化という。また、録音した楽器の音や環境音、人や動物の声などを短い単位に分解し、再構成して楽曲に仕上げる手法のことを標本化ということもある。

サンプリング 【標本化】 ⭐⭐

対象全体の中から何らかの基準や規則に基いて一部を取り出すこと。統計調査などで少数の調査対象を選び出すことや、信号のデジタル化などで一定周期で強度を測定することなどを指す。

アナログ信号のサンプリング

信号処理の手法の一つで、アナログ信号などの連続量の強度を一定の時間間隔で測定し、観測された値(標本値)の列として離散的に記録することをサンプリングということが多い。デジタルデータとして記録したい場合は、値を整数などの離散値で表す「量子化」(quantization)処理が連続して行われる。

測定の間隔を「サンプリング周期」(sampling cycle:標本化周期)、その逆数である測定の頻度(単位時間あたりの回数)を「サンプリング周波数」(sampling frequency:標本化周波数)という。頻度の多寡は通常サンプリング周波数で表現され、単位として1秒あたりの回数を表す「Hz」(ヘルツ)が用いられる。

例えば、音声を44.1kHz(キロヘルツ:Hzの1000倍)でサンプリングする場合、音声信号の強度を毎秒4万4100回記録し、音声データを1秒あたり4万4100個の数値の列として表現する。44.1kHzは人間の可聴音をほぼカバーする周波数とされ、CD(コンパクトディスク)などの音声記録に用いられている。

統計・調査におけるサンプリング

統計や調査などの分野では、調査したい母集団全体を対象とすることが困難な場合に、集団を代表する少数の標本を抽出して対象とし、その結果から統計的に母集団の性質を推計する手法をサンプリングという。製品の出荷時検査や社会調査などで広く用いられ、標本から母集団の推定値を算出する方法や偏りのない標本の抽出方法などについて様々な手法が提唱されている。

音楽におけるサンプリング

音楽の分野では、楽曲の制作手法の一つで、既存の楽曲や何らかの音源からメロディや歌詞、あるいは音声そのものの断片を抽出し、引用したり繋ぎ合わせる技法をサンプリングという。また、録音した楽器の音や環境音、人や動物の声などを短い単位に分解し、再構成して楽曲に仕上げる手法のことをサンプリングということもある。

量子化 ⭐⭐⭐

アナログ信号などの連続量を整数などの離散値で近似的に表現すること。自然界から取り込んだ信号などをコンピュータで処理・保存できるようデジタルデータに置き換える際などによく行われる。

音や光、電気、電波など物理現象に伴う信号は本来連続量であるため、そのままではコンピュータなどの電子回路で取り扱うことができない。そこで、一定の決まった間隔で信号の強度を測定(標本化/サンプリング)し、決まった細かさの段階に当てはめて表していく。

例えば、4段階の値で量子化を行う系では、信号強度の測定値(標本)は0、1/3、2/3、1の中から最も近い値が選ばれる。0.1に近い標本は0、0.4に近い標本は1/3といった具合である。この段階の数が多いほど元の信号をより高い精度で忠実に表現することができるが、量子化後のデータ量はその分だけ増大する。

この細かさをビット数で表したものを「量子化ビット数」と呼び、これが1ビットであれば2段階(21)、8ビットならば256段階(28)、16ビットならば65,536段階(216)の細かさで強度を表現できる。

エンコード 【符号化】 ⭐⭐⭐

ある形式の情報を一定の規則に従って別の形式に変換すること。元の形式に復元可能な状態に変換することを指し、データ圧縮や暗号化、文字コードの変換などが該当する。

ある形式のアナログ信号やデジタルデータを特定の形式の符号(code)に置き換える操作を指す。得られた符号列に逆方向の変換を行って元の状態に戻す操作は「デコード」(decode)という。デコードによって符号化前の状態を復元することができるが、非可逆圧縮など完全に元の状態には戻せない方式もある。

例えば、動画データは極めてデータ量が大きいため、符号化処理によってデータの間引きや圧縮を行い、短い符号列に置き換えてから保存や伝送を行う。圧縮されたデータはそのままでは再生できないため、再生時にはデコード処理によって元のデータを取り出してから表示を行う。

ある方式の符号化処理を行う装置やソフトウェアを「エンコーダ」(encoder)、その方式でデコード処理を行うものを「デコーダ」(decoder)という。音声の録音と再生、映像の録画と再生など、状況に応じてどちらも行う可能性がある場合には、両者を一体化した「コーデック」(codec:encoder-decoder)を用いる。

情報エントロピー 【平均情報量】

ある事象の組み合わせで表される系で、各事象の情報量の平均のこと。統計力学における無秩序さの指標であるエントロピーに似た概念であるためこのように呼ばれ、事象の不確かさの程度を表している。

情報理論における情報量は事象の生起確率によって定義され、例えばコインを投げて表が出る確率は1/2(50%)であるため、「コインを投げたら表が出た」という情報の情報量は-log2(1/2)で1ビットとなる。

コイントスの全事象は「表が出る」「裏が出る」の2つで、生起確率はどちらも1/2、情報量は1ビットである。よって、全事象の平均情報量も(1+1)/2で1ビットであり、これがコイントスの情報エントロピーである。

一方、必ず表しか出ないよう細工したコインを投げる場合、表が出る確率は100%、裏が出る確率は0%で、どちらも情報量は0ビットである。エントロピーは(0+0)/2で0ビットとなり、通常のコイントスに比べ事象の不確かさが失われていることがわかる。

ビット ⭐⭐⭐

情報量の最小単位で、二つの選択肢から一つを特定する情報の量。コンピュータなどでは0と1のいずれかを取る二進数の一桁として表される。

語源は “binary digit” (二進法の数字)を繋げて省略した表現と言われる。情報をすべてビット列に置き換えて扱うことを「デジタル」(digital)という。1ビットのデータが表す情報量は、投げたコインの表裏のように、二つの状態のいずれであるかを示すことができる。

複数のビットを連ねて一つのデータとすることで、2ビットなら4状態(22)、3ビットなら8状態(23)といったように、より多い選択肢を識別できる。一般に、nビットのデータは2のn乗個までの選択肢からなる情報を表現することができる。

例えば、大文字のラテンアルファベットは「A」から「Z」の26文字であるため、これを識別するのには4ビット(16値)では足りず、5ビット(32値)が必要となる。小文字を加えると52文字であるため、6ビット(64値)が必要となる。

派生単位

データの読み書きや伝送を行う場合、その速さを表す単位として1秒あたりの伝送ビット数であるビット毎秒(bps:bit per second)という派生単位が用いられる。

また、実用上はビットでは値が大きくなりすぎて不便なことも多いため、8ビットをまとめて一つのデータとした「バイト」(byte)という単位を用いる場面も多い。かつて何ビットを1バイトとするか機種により様々に分かれていた(7ビットバイトや9ビットバイトなどが存在した)名残りで、8ビットの集まりを「オクテット」(octet)とも呼ぶ。

倍量単位

大きな量を表す際には、SI単位系に則って接頭辞を付した倍量単位を用いる場合がある。

  • 1000ビットを「キロビット」(kbit:kilobit)
  • 100万ビットを「メガビット」(Mbit:megabit)
  • 10億ビットを「ギガビット」(Gbit:gigabit)
  • 1兆ビットを「テラビット」(Tbit:terabit)
  • 1000兆ビットを「ペタビット」(Pbit:petabit)
  • 100京ビットを「エクサビット」(Ebit:exabit)

という。また、コンピュータでは2の冪乗を区切りとするのが都合が良いことが多いため、独自の接頭辞を付した倍量単位が用いられることもある。

  • 210(1024)ビットを「キビビット」(Kibit:kibibit)
  • 220(約104万)ビットを「メビビット」あるいは「ミービビット」(Mibit:mebibit)
  • 230(約10億7千万)ビットを「ギビビット」(Gibit:gibibit)
  • 240(約1兆1千億)ビットを「テビビット」あるいは「ティービビット」(Tibit:tebibit)
  • 250(約1126兆)ビットを「ペビビット」あるいは「ピービビット」(Pibit:pebibit)
  • 260(約115京)ビットを「エクスビビット」あるいは「イクシビビット」(Eibit:exibibit)

という。この2進専用の接頭辞はIEC(国際電気標準会議)が標準化しており、一般にはあまり馴染みがないが記憶容量の表記などで用いられることがある。

バイト ⭐⭐⭐

情報量の単位の一つで、8ビットのこと。数としては2進数を8桁並べたものに相当し、2の8乗で256種類の異なる状態を表現することができる。

情報量の最小の単位である「ビット」(bit)は2つの状態(0と1、オンとオフなど)を識別できるが、バイトは8ビットをまとめて一つの単位としたもので、各ビットの状態の組み合わせで256の状態を識別することができる。

単位として数値の後に付ける際にはアルファベット大文字の「B」が用いられるが、ビットを小文字の「b」で表すことが多いため、両者の混同を避けるために「byte」あるいは「bytes」と省略せずに(同様にビットは「bit」「bits」)記すことも多い。通信速度を表す場合は1秒あたりに伝送可能なバイト数を「バイト毎秒」という単位で表す。記号は「B/s」または「Bytes/s」を用いる。

接頭辞付きの単位

大きな量を表す場合はSI単位系に定められた接頭辞を付加し、1,000倍あるいは1,024倍ごとにキロバイト(KB:kilobyte)、メガバイト(MB:megabyte)、ギガバイト(GB:gigabyte)、テラバイト(TB:terabyte)などの単位を用いる。接頭辞は他の物理量のように1,000の累乗倍を表す場合と、情報処理の分野で切りの良い1,024(2の10乗)の累乗倍を表す場合があり、混乱が生じている。

IEC(国際電気標準会議)では1,024倍を表す場合は「KiB」(kibibyte、キビバイト)、「MiB」(mebibyte、メビバイトまたはミービバイト)、「GiB」(gibibyte、ギビバイト)、「TiB」(tebibyte、テビバイトまたはティービバイト)など専用の接頭辞を用いるよう提唱しているが、現状ではあまり定着していない。

nビットバイトとオクテット

もともと1バイトが何ビットか明確な定義はなく、機種や処理系によって都合の良いビット数が割り当てられていた。1バイトをnビットで表すことを「nビットバイト」と呼び、1980年代頃までは「6ビットバイト」や「7ビットバイト」など、8ビット以外のバイトを単位とするコンピュータもあった。

このようなバイトの定義の曖昧さを避けるため、必ず8ビットを表す単位として「オクテット」(octet)が用いられることがある。通信プロトコルの仕様書のように、機種や処理系の違いを超えて共通して利用される可能性がある文脈では、古い時代の名残りで現在でもバイトと言わずにオクテットが好まれる場合がある。

なお、現代では歴史的な文脈以外で8ビット以外のバイトが用いられることはなくなったため、2008年に国際電気標準会議(IEC)がIEC 80000-13規格の改訂版で正式に1バイトを8ビットであると定義した。

2進数 【二進数】 ⭐⭐⭐

数を書き表す方法(記数法)の一つで、基数を2(二)とした表記法のこと。アラビア数字の「0」と「1」を用いてすべての数を表現する。情報を2進法の値の連なりとして表現する手法を「デジタル」(digital)という。

普段我々が日常的な数字の読み書きや算術に用いる位取り記数法は「10進数」(十進数)で、一つの桁の表現に「0」から「9」の10種類の数字を使い、各桁の左の桁が10倍、右の桁は1/10を表している。

一方、2進法は一つの桁の表現が「0」と「1」の二通りしか無い記数法で、桁が一つ左へ移動する毎に値の重みが2倍に、右へ移動するごとに1/2倍になる。整数の右端の桁は1(20)の位、その左は2(21)の位、その左は4(22)の位、その左は8(23)の位…といった具合に各桁の重みが決まる。

<$Fig:binarynumber|center|true>

例えば、2進法の「1101」は左端から順に「8の位」が1、「4の位」が1、「2の位」が0、「1の位」が1であるため、10進数では 1×8 + 1×4 + 0×2 + 1×1 の「13」となる。逆に、10進数の「21」は、2のべき乗の足し算で表すと 16 + 4 + 1、すなわち 24×1 + 23×0 + 22×1 + 21×0 + 20×1 と表せるため、2進数では「10101」となる。

2進数とビット・バイト

2進法は二つの状態の組み合わせですべての数を表現することができるため、これをスイッチのオン・オフや電圧の高低、磁石のN極とS極、電荷の有無など、対となる物理的な状態に対応させることにより、機械による情報の記憶や伝達、演算を容易に取り扱うことができるようになる。

現代の電子式のコンピュータは原則としてすべての情報を2進法のデータに置き換えて処理を行い、2進法の1桁に相当するデータ量の最小単位を「ビット」(bit)という。実用上はある程度まとまった桁数のビット列を対象にデータの保存や操作を行うため、8ビットに相当する「バイト」(byte)という単位が用いられることが多い。1バイトは8桁の2進法に相当するため、28=256種類の状態を表現できる。

16進数 【16進法】 ⭐⭐⭐

数を書き表す方法(記数法)の一つで、基数を16(十六)とした表記法のこと。アラビア数字(算用数字)の「0」から「9」、およびアルファベットの「A」から「F」を用いてすべての数を表現する。

普段我々が日常的な数字の読み書きや算術に用いる位取り記数法は10進数(十進数/10進法)で、一つの桁の表現に「0」から「9」の10種類の数字を使い、各桁の左の桁が10倍、右の桁は10分の1を表している。

一方、16進法では1の位、16の位、256の位…というように桁の重みが16倍ずつ変化する。16進法における「10」は10進数における「16」を意味する。小数点以下も同様で、小数点の右隣から順に、16分の1の位、256分の1の位、4096分の1の位…というように続く。

コンピュータはすべてのデータを2進数で表しており、これを8桁(8ビット)ずつまとめた「バイト」という単位でデータを取り扱う。16進法は一桁で2進数の4桁分(4ビット)の値を書き記すことができるため、1バイトのデータを「00」から「FF」までの2桁の16進法として表記する慣習がある。

表記法

<$Fig:hexadecimal|right|true>

10進数の表記には「0」から「9」まで10種類の数字が必要なように、16進法では一桁を16種類の数字で表す必要がある。我々が日常的に使う数字は10種類しかないため、10から15までの数を一桁で表現するために「A」から「F」までの6つのアルファベットで代用することが多い。

その場合、「0」から「9」までは10進数の値と同じで、10進数の10を「A」、11を「B」、12を「C」、13を「D」、14を「E」、15を「F」でそれぞれ表す。例えば、「A0」は10進数の「160」(16×10)、「FF」は「255」(16×15+15)を表す。言語や処理系によるが、大文字と小文字は区別しない(どちらでもよい)ことが多い。

なお、複数の位取り表記法が混在する文書などの場合、記された数値がそれぞれ何進法なのかを明示するため「(9ABC)16」「(1234)10」のように右下に小さく10進表記で基数を記す場合がある。

各言語における表記

プログラミング言語やマークアップ言語などの数値リテラルでは、日常的な文書などと同じように単に数字を並べた表記は10進数とみなす場合が多く、16進法を記述する場合は先頭に特定の接頭辞を付けるなど特別な表記法を用いる。

多くの言語ではC言語などにならって「0xDEAD」のように先頭に「0x」を付記する表記法を採用しており、文字列中のコード参照では「¥x0D¥x0A」のように「¥x」(日本語圏以外では¥はバックスラッシュ)を用いる。

言語によっては「#x」(Schemeなど)「&h」(BASICなど)などを用いたり、末尾に「h」を付ける(一部のアセンブリ言語など)場合もある。HTMLやXMLなどにおける数値文字参照では「&#x266A;」のように「&#x」と「;」で挟む。

補数 【余数】 ⭐⭐

ある自然数をn進数(n進法)で表現した時に、足し合わせるとちょうど「nのべき乗」か「nのべき乗-1」になる自然数のうち、最小のもの。前者は「足すとちょうど桁が一つ増える数」で「基数の補数」と呼ばれる。後者は「足しても桁が増えない最大の数」で「減基数の補数」と呼ばれる。

例えば、10進数の65という数に足し合わせるとちょうど一つ桁上りする自然数は、足すと100になる35であり、(10進数における)「65に対する10の補数」という。また、足しても桁が増えない最大の数は、足すと99になる34であり、(10進数における)「65に対する9の補数」という。

1の補数 (one's complement)

ある自然数を2進数(2進法)で表現したときに、足し合わせるとすべての桁が1になる最大の数のことを「1の補数」という。足してもギリギリ桁が増えない最も大きな数である。

たとえば、「10010110」に対する1の補数は「1101001」であり、両者を足し合わせると「11111111」(8桁すべてが1)となる。コンピュータで取り扱う際には、各桁の0を1に、1を0にするビット反転によって求めることができ、それに1を加えたものは2の補数となる。

2の補数 (two's complement)

ある自然数を2進数(2進法)で表現した時に、足し合わせると桁が増える最小の数を「2の補数」という。足すと一桁増えて先頭の桁が1、残りの桁が0となる数である。

例えば、「10010110」に対する2の補数は「1101010」であり、両者を足し合わせると「100000000」(桁が一つ増えて既存の8桁がすべて0)となる。コンピュータで取り扱う際には元の数のビット反転によって求められる1の補数に1を足せば2の補数となる。コンピュータ上での負の整数の表現や減算の実装などによく用いられる。

浮動小数点数

コンピュータにおける数値の表現形式の一つで、数値を桁の並びを表す仮数部と小数点の位置を表す指数部に分割して表現する方式。小数点以下の値を含む数値の表現法として最も広く利用されている。

一つの数値を符号部(正負)、仮数部、指数部の3つのデータの組み合わせで表現(データ形式としては符号-指数-仮数の順に格納することが多い)する。仮数に基数(通常は2)を指数乗した値を乗じ、符号を付け加えたものが表現する数値となる。

例えば、「-4.375」は2進数では「-100.011」であり、仮数と指数に分離すると「-1.00011×1010」(値はすべて2進表記)となる。符号は正を0、負を1とすることが多いため、符号部の値は「1」、仮数部の値は「100011」、指数部の値は「10」となる。数値が0の場合は符号と指数は不定となるが、便宜上各部をすべて0としたもの(+0.0×100)を0の表現として扱うことが多い。

IEEE 754形式

浮動小数点数は全体のデータ長や仮数部と指数部のビット数の配分などで様々な形式が存在するが、広く普及している標準規格としてIEEE 754形式が知られる。

全体で16ビット(符号1+指数5+仮数10)の「半精度浮動小数点数」、32ビット(符号1+指数8+仮数23)の「単精度浮動小数点数」、64ビット(符号1+指数11+仮数52)の「倍精度浮動小数点数」、128ビット(符号1+指数15+仮数112)の「四倍精度浮動小数点数」の4つの形式が定められており、それぞれ表現できる数値の幅の異なる。実用上は単精度と倍精度がよく用いられ、プログラミング言語や論理回路などでもこの2つに標準で対応しているものが多い。

仮数の2進数表現は先頭が必ず1になる(2以上の数字は使わない)ため、これを省略して代わりに下位の桁の表現に回す手法(俗にケチ表現という)が用いられる。また、指数部を符号なし整数とするため、本来の値に最大値の半分-1を足した表現(俗にゲタ履き表現という)を用いる。例えば指数部が8ビットの場合は127を加え、128が1を、126が-1を表す。

単精度浮動小数点数 (single precision floating point number)

数値を仮数部と指数部に分けて表現する浮動小数点数の形式の一つで、一つの数値を32ビットのデータで表現する方式のこと。多くのプログラミング言語などでは単に浮動小数点といえば単精度を意味し、“float” などの名称で表されるデータ型が用意されている。

IEEE 754標準で規定された形式では32ビットのうち先頭1ビットが正負の符号部(0が正、1が負)、続く7ビットが指数部(基数は2)、残り24ビットが仮数部となる。表現できる値の大きさの範囲は十進表記で約1.2×10-38~約3.4×1038であり、精度は十進7桁程度となる。

倍精度浮動小数点数 (double precision floating point number)

数値を仮数部と指数部に分けて表現する浮動小数点数の形式の一つで、一つの数値を64ビットのデータで表現する方式のこと。多くのプログラミング言語などが高精度な数値計算のために組み込みデータ型として用意しており、 “double” などの名称で表される。

IEEE 754標準で規定された形式では64ビットのうち先頭1ビットが正負の符号部(0が正、1が負)、続く11ビットが指数部(基数は2)、残り52ビットが仮数部となる。表現できる値の大きさの範囲は十進表記で約2.2×10-308~約1.8×10308であり、精度は十進16桁程度となる。

パリティビット 【パリティデータ】 ⭐⭐

データの伝送や記録の際に生じる誤りを検知できるように算出・付加される符号の一つで、ビット列中に含まれる「1」の数が偶数か奇数かを表すもの。これを利用した誤り検出方式を「パリティチェック」(parity check)という。

データを0と1が並んだビット列で表したときに、各ビットの値を足し合わせた値が奇数であるか偶数であるか(「1」の数が奇数か偶数か)を1ビットの値として表す。

和が奇数のときに1とする(偶数なら0)ものを「偶数パリティ」(even parity)、偶数のときに1とするものを「奇数パリティ」(odd parity)という。パリティを足すことでどのビット列も偶奇性が同じになる(偶数パリティを含めた全ビットの和は常に偶数)という意味でこのように呼ばれる。

データの送り手(送信者や書き込み時)は元のデータに対して一定の長さごとにパリティビットを算出して付加する。受け手(受信者や読み込み時)は受け取ったデータから同じようにパリティビットを算出し、付加されたパリティビットと比較する。

両者のパリティビットが一致すれば、パリティを含めたビット列中には誤りが存在しないか偶数個存在し、一致しなければ奇数個の誤りが生じていることが分かる。一つのパリティビットだけではどの位置に誤りがあるかは分からず、正しい値に訂正することはできない。

バースト誤りのような特殊な状況を除き、通常の用途では短いビット列中に同時に複数の誤りが生じる可能性は低いため、実用上はパリティビットが一致しなければ1ビットの誤りが含まれ、一致すれば誤りが生じていないとみなすことが多い。

奇数パリティ 【奇数パリティチェック】

誤り検出方式の一種であるパリティチェックで、ビット列中に含まれる「1」の個数が偶数個ならパリティビットを「1」に、奇数個なら「0」にする方式。

パリティを含めたデータ全体で常に「1」の数が奇数になるようにパリティビットを決定することからこのように呼ばれる。例えば、もとのビット列が「0001」(「1」の数が1個)や「1110」(3個)などの場合にパリティビットが「0」に、「0000」(0個)や「1010」(2個)、「1111」(4個)などの場合に「1」にセットされる。

一方、これとは逆に、ビット列の「1」の個数が奇数個ならパリティビットを「1」に、偶数個なら「0」に設定する方式を「偶数パリティ」(even parity)という。一般的には奇数パリティより偶数パリティの方がよく利用される。

偶数パリティ

誤り検出方式の一種であるパリティチェックで、ビット列中に含まれる「1」の個数が奇数個ならパリティビットを「1」に、偶数個なら「0」にする方式。

パリティを含めたデータ全体で常に「1」の数が偶数になるようにパリティビットを決定することからこのように呼ばれる。例えば、もとのビット列が「0000」(「1」が0個)や「1010」(2個)、「1111」(4個)など場合にパリティビットが「0」に、「0001」(1個)や「1110」(3個)などの場合に「1」にセットされる。

一方、これとは逆に、ビット列の「1」の個数が偶数個ならパリティビットを「1」に、奇数個なら「0」に設定する方式を「奇数パリティ」(odd parity)という。一般的には奇数パリティより偶数パリティの方がよく利用される。

データ圧縮 【圧縮符号化】 ⭐⭐⭐

データを一定の計算手順で加工し、実質的な内容を損なわずにより短い符号列で表すこと。原則として得られた符号は逆の計算手順により元のデータに復元することができ、データの一部を損なって容量を減らす削減や間引きとは異なる。

同じ情報を短いデータ長で表現することで、記憶装置上で占有する領域を小さくすることができ、また、機器間をより短い時間や少ない回線の占有度で伝送することができる。ただし、圧縮後の符号列は元のデータを扱う処理系では利用できないため、使用前に必ず元の状態に戻す処理が必要となる。この復元処理は「解凍」「伸長」「展開」などと呼ばれる。

圧縮処理や解凍処理に費やされる計算量や計算時間などと引き換えにデータ量の縮減という成果を得ており、両者が見合わなければ圧縮を行う意義は失われる。例えば、データ伝送を高速化するためにデータ圧縮を導入したのに、圧縮、伝送、解凍の合計時間が元データの伝送時間を上回ってしまっては元も子もない。

圧縮の逆変換の呼称

圧縮(compress)後の符号列から元のデータを復元する逆方向の変換処理のことを英語では “decompress” (compressに否定の接頭辞de-を付したもの)というが、日本語では定まった訳がなく、解凍、伸長、展開などの用語が用いられる。

ファイルのアーカイバでは複数のファイルを一つの圧縮ファイルにまとめることが多いため、その中から指定されたものを取り出して元の状態に戻すことを「抽出」ということもある(英語でもこの文脈では “extract” を用いる)。

日本では1980年代にパソコン通信やファイル圧縮ソフトの付属文書などを通じて「解凍」という用語が広まった(対応して圧縮のことを凍結と呼ぶこともあったがこれは広まらなかった)ため、慣用的に解凍と呼ぶことが多いが、本来の語義として圧縮と解凍では意味が対応しておらず、解凍には容積の増減の意味はないことなどから批判も多い。

一方、伸長や展開は、伸ばす、広げるという意味は合っているが、圧縮の逆の動作としての元に戻すという意味合いは薄いとの批判もあり、あまり定着していない。

圧縮率と圧縮比

どのくらい圧縮できたかを圧縮率という用語で表すことがある。より小さい量に圧縮できたことを「圧縮率が高い」という。

実際には二つの異なる指標が圧縮率と呼ばれており、一つは圧縮後のデータ量の元のデータ量に対する比率、もう一つは削減量の元の量に対する比率である。いずれを指すのかは文脈により異なる。圧縮後にデータ量が元の10分の1になったことを、前者の指標では圧縮率10%、後者では90%と表現する。

一方、圧縮前と後のデータ量の比や倍率で圧縮の程度を表すこともあり、データ圧縮比と呼ばれる。10分の1に圧縮したことを10:1あるいは10倍と言い表す。

可逆圧縮と非可逆圧縮

完全に元のデータに戻せる符号列に変換する方式を「可逆圧縮」、元のデータの一部を削除・変形することで高い圧縮率を得る代わりに完全には元に戻せなくなる方式を「非可逆圧縮」あるいは「不可逆圧縮」という。

可逆圧縮はわずかでもデータの一部が異なれば元とはまったく違う意味になってしまう文字(テキスト)データやコンピュータプログラムの圧縮や汎用のファイル圧縮などで用いられ、通常単にデータ圧縮といえば可逆圧縮を指す。

非可逆圧縮は主に画像や音声、映像など元のデータに大きな情報の冗長性が含まれる対象に用いられる。人間の視覚や聴覚の特性を利用して、人間が気づきにくい形でデータの一部を改変・削除することで、劇的な高圧縮率を得ることができる。

元の情報を損なう変換を伴うため、非可逆圧縮は厳密にはデータ圧縮手法の一部ではないとする立場もある。また、非可逆圧縮アルゴリズムの中には、元データの形式変換や加工(この段階ではデータ長の縮減は伴わない)を行った後、データ圧縮自体は連長圧縮などの可逆圧縮により行う(すなわち、「非可逆」の工程では圧縮していない)ものも多い。

伸張 【解凍】 ⭐⭐⭐

データ圧縮されたファイルなどに逆変換を行い、圧縮前の状態に戻すこと。圧縮されたデータを処理する際には、原則として必ず伸張して元のデータ形式に戻す必要がある。

信号やデータを実質的な意味を保ったまま、一定の手順で変換してより短い符号列に置き換えることを「圧縮」(compress)という。これとは逆に、圧縮データを元に戻す操作・処理を英語では否定の接頭辞 “de-” をつけて “decompress” というが、日本語では定まった訳語がなく、「伸長」「展開」「解凍」「減圧」「抽出」などが用いられる。

日本では1980年代にパソコン通信やファイル圧縮ソフトの付属文書などを通じて「解凍」という用語が広まった。対応して圧縮のことを「凍結」と呼ぶこともあったが、これは広まらなかった。年配の人などは現在でも慣用的に解凍と呼ぶことが多いが、本来の語義として「圧縮」と「解凍」では意味が対応しておらず、解凍には容積の増減の意味はないことから批判も多い。

一方、「伸長」や「展開」は、伸ばす、広げるという意味は合っているが、圧縮の逆の動作としての元に戻すという意味合いは薄いとの批判もあり、あまり定着していない。また、ファイルのアーカイバでは複数のファイルを一つの圧縮ファイルにまとめることが多いため、その中から指定されたものを取り出して元の状態に戻すことを「抽出」ということもある。英語でもこの文脈では “decompress” ではなく “extract” を用いる。

伸張 【解凍】

データ圧縮されたファイルなどに逆変換を行い、圧縮前の状態に戻すこと。圧縮されたデータを処理する際には、原則として必ず解凍して元のデータ形式に戻す必要がある。

信号やデータを実質的な意味を保ったまま、一定の手順で変換してより短い符号列に置き換えることを「圧縮」(compress)という。これとは逆に、圧縮データを元に戻す操作・処理を英語では否定の接頭辞 “de-” をつけて “decompress” というが、日本語では定まった訳語がなく、「伸長」「展開」「解凍」「減圧」「抽出」などが用いられる。

日本では1980年代にパソコン通信やファイル圧縮ソフトの付属文書などを通じて「解凍」という用語が広まった。対応して圧縮のことを「凍結」と呼ぶこともあったが、これは広まらなかった。年配の人などは現在でも慣用的に解凍と呼ぶことが多いが、本来の語義として「圧縮」と「解凍」では意味が対応しておらず、解凍には容積の増減の意味はないことから批判も多い。

一方、「伸長」や「展開」は、伸ばす、広げるという意味は合っているが、圧縮の逆の動作としての元に戻すという意味合いは薄いとの批判もあり、あまり定着していない。また、ファイルのアーカイバでは複数のファイルを一つの圧縮ファイルにまとめることが多いため、その中から指定されたものを取り出して元の状態に戻すことを「抽出」ということもある。英語でもこの文脈では “decompress” ではなく “extract” を用いる。

可逆圧縮 【ロスレス圧縮】 ⭐⭐⭐

データ圧縮方式のうち、圧縮符号化の過程で元のデータを一切毀損せず、完全に元通りに復元できるように圧縮する手法のこと。主にファイル圧縮や通信プロトコルなど、データの種類を特定しない汎用の保存形式や伝送方式で用いられる。

コンピュータプログラムや文字(テキスト)などのデータは、1ビットでも欠けたり変質するとその意味する内容自体が変わってしまうため、圧縮したデータを展開(解凍)したときに元のデータと完全に一致する可逆圧縮が行われる。

一方、画像や動画、音声などの場合には、人間の視聴覚が違いを感じ取りにくいように一部を省略・改変することで実質的な内容を維持しつつ劇的に圧縮率を高める「非可逆圧縮」(不可逆圧縮)が行われることがある。可逆圧縮は元のデータを完全に保存できるが、非可逆圧縮に比べ圧縮率は低い。

主な可逆圧縮アルゴリズムとしてはランレングス符号やハフマン符号、LZ77、LZSS、LZW、Deflateなどが知られる。ZIPやCAB、LZH、RAR、gzip、bzip2など汎用のファイル圧縮形式はすべて可逆圧縮を用いる。画像圧縮ではJPEGなどが非可逆圧縮、GIFやPNG、WebP、AVIF、Loassless JPEGなどが可逆圧縮である。

また、通常は非可逆圧縮が用いられることが多い音声圧縮でも、「ALAC」(Apple Lossless)や「FLAC」「WMA Lossless」など高音質のために可逆圧縮を用いるファイル形式があり、「ロスレス音源」と総称される。

なお、非可逆圧縮は実際には元のデータを圧縮しやすい状態に変換し、圧縮符号化自体は可逆圧縮アルゴリズムを用いて行うため、正確には圧縮方式そのものが可逆と非可逆に分かれているわけではないが、実用的にはこの変換処理も含めて圧縮方式や圧縮形式の仕様の一部とみなされるため、便宜上このような区分が常用されている。

非可逆圧縮 【不可逆圧縮】 ⭐⭐⭐

データ圧縮方式のうち、圧縮符号化の過程でデータの一部の欠落や改変を許容することで極めて効率よく圧縮する手法のこと。非可逆圧縮されたデータを伸長(解凍)しても元のデータには完全には一致しない。

コンピュータプログラムや文字などのデータは1ビットでも変化すればその意味する内容自体が変わってしまうが、画像や動画、音声などはデータ上は細部が僅かに異なっていても人間の視聴覚には違いが気付きにくい場合がある。

このような特性を活かし、人間が認識しにくい手法で元のデータの一部を省略・改変したり、別の表現形式へ変換するなどして、効率よく短い符号に圧縮する方式を非可逆圧縮という。

元のデータを一切毀損しない可逆圧縮とは異なり完全に元のデータを復元することはできないが、人間にほとんど違いがわからない程度の改変でも劇的に圧縮率を高めることができる利点がある。また、多くの方式では圧縮時に品質劣化の程度を指定することができ、品質を犠牲にして極端に小さな容量に圧縮することもできる。

画像や動画、音声の圧縮形式の多くが非可逆圧縮を採用しており、JPEG、MPEG-1、MPEG-2、MPEG-4、H.264、H.265、MP3、AAC、WMAなど主要なデータ形式のほとんどが非可逆となっている。用途に応じて使い分けられるよう、Lossless JPEGやWMA Losslessのように仕様の一部として可逆圧縮を用意している形式もある。

なお、実際には元のデータを効率良く圧縮できる状態に変換し、圧縮符号化自体は可逆圧縮アルゴリズムを用いて行うため、正確には圧縮方式そのものが可逆と非可逆に分かれているわけではないが、実用的にはこの変換処理も含めて圧縮方式や圧縮形式の仕様の一部とみなされるため、便宜上このような区分が常用されている。

ランレングス圧縮 【連長圧縮】 ⭐⭐

最も基本的な圧縮アルゴリズムの一つで、連続して現れる符号を、繰り返しの回数を表す値に置き換える方式。圧縮によって内容を損なわない可逆圧縮を行う。

例えば、「AAAABBBBCCCC」という文字列を圧縮する場合、「A」が4回、「B」が4回、「C」が4回それぞれ連続しているため、各文字とその繰り返し回数を組み合わせて「4A4B4C」のように表すことができる。

展開する場合は「4A」を「AAAA」のように戻していくことで元の文字列が得られる。この例では元のデータの半分のデータ長に圧縮することができた。

この単純な方法では同じ符号が連続する箇所が少ないか存在しない場合、圧縮どころか逆にデータ長が大きく伸びてしまう場合がある。例えば、「ABCABC」は「1A1B1C1A1B1C」となってしまい、元の倍の長さになってしまう。

こうした事態を防ぐための手法がいくつか考案されている。例えば、繰り返し回数を表す数字が負数の場合は、その絶対値の長さだけ元のデータがそのまま記載されている区間が出現するという規則を追加する方式がよく知られる(PackBits方式)。

例えば、「AAAABCDEBBBB」は、単純な符号化では「4A1B1C1D1E4B」と12文字で表されるが、PackBits方式では中間の繰り返しのない4文字の先頭に「-4」(説明のため負号を付けて2文字で表しているが実際のデータ上は1文字分)を付加した「4A-4BCDE4B」となり、9文字で表すことができる。

ランレングス圧縮は余白の多い白黒2値画像のように、符号の種類が少なく繰り返し箇所が多い性質のデータで効率よく圧縮でき、ファクシミリの伝送符号や一部のビットマップ画像形式(BMP形式やPICT形式など)などに採用例がある。

ハフマン符号 【Huffman code】

データの内容を損なわずに短い符号列に変換する圧縮アルゴリズムの一つで、元のデータに高頻度で現れるパターンに短い符号を、低頻度で現れるパターンに長い符号を与えて置き換える方式。

1952年にデビット・ハフマン(David Albert Huffman)氏が考案した。符号化方式を「ハフマン符号化」(Huffman coding)、得られる圧縮符号を「ハフマン符号」(Huffman code)という。圧縮符号を展開すると完全に元通りのデータを復元することができる可逆圧縮の代表例で、現代でもファイル圧縮や画像ファイル形式など様々な場面で応用されている。

基本的な考え方は、対象データ列に出現する各パターンの頻度を調べ、高頻度で現れるパターンには短い符号(ビット列)を、低頻度のパターンには長い符号を割り当てることで全体のデータ長を短縮する。このような圧縮符号を「エントロピー符号」という。

ハフマン圧縮ではデータ全体を一定の長さの断片ごとに区切り、同じパターンの断片の出現回数を数え上げる。最も頻出するものから順に短い符号を割り当て、パターンを符号に置き換える。置換後の符号列中で各符号を一意に識別できるようにするため、「ハフマン木」と呼ばれる二分木でパターンと符号の対応関係を管理する。

符号化のためにはパターンの出現頻度を調べる必要があるが、最初に出現頻度をすべて調べて符号の割り当てを決めてから符号化を行う方式(データ全体を2回走査する)を「静的ハフマン圧縮」(static Huffman coding)、出現頻度を調べ符号の割り当てを変更しながら同時に符号化を進めていく方式(一度の走査で済む)を「適応的ハフマン圧縮」(adaptive Huffman coding)という。

実装が難しく、かつては特許で保護されていた「算術符号」(arithmetic coding)を除けば、理論上最も圧縮率が高いエントロピー符号化アルゴリズムとして知られる。実装も比較的容易であることから、Zip(Deflate)やJPEG、MP3など様々な圧縮形式の仕様の一部に採用され、広く普及している。

メディア ⭐⭐⭐

媒体、媒質、伝達手段、中間などの意味を持つ英単語。“medium” の複数形。情報の伝達や記録に用いられる物体や装置、およびこれを利用して人に情報を伝達・配布する仕組みや事業、組織などを指すことが多い。

一般の外来語としては、人が人に情報を伝えたり広く報じるのに用いるモノや仕組みを指し、広義には電話や手紙、書籍、テレビ、映画、電子メール、Webサイトなど様々な伝達手段が含まれる。

狭義には、社会の不特定多数の人々に向けて広く情報を発信する「マスメディア」(mass media)のことをメディアと呼ぶことが多い。現代では日常的に多くの人が接するテレビ放送、ラジオ放送、新聞、雑誌の4つを指し、これを「マス4媒体」「4大メディア」などという。

マスメディアと同じように、インターネットを通じて広く一般に情報を発信、公開するネットサービスやWebサイトなどのことを「ネットメディア」「Webメディア」「オンラインメディア」などと呼ぶ。Webサイトやブログ、メールマガジン、動画配信サービス、動画サービス上のチャンネルなどが含まれ、マスメディア企業がネットメディアも並行して運用する例も多く見られる。

記録メディア・伝送メディア

ITの分野では、一般の用法に加え、データの記録・保管に用いる物体や装置を「記録メディア」、信号やデータを伝送するケーブルや内部の信号線、あるいは電波など伝送の媒介となる物理現象を「伝送メディア」という。

記録メディア(記憶メディアとも呼ばれる)の例としては、磁気テープ、磁気ディスク(ハードディスクなど)、光学ディスク(CD/DVD/Blu-ray Discなど)、フラッシュメモリ(SSD/USBメモリなど/メモリーカード)などがある。伝送メディアの例としては金属線ケーブル(銅線ケーブル/メタルケーブル)、光ファイバーケーブル、電波、赤外線、電子基板上の金属配線などがある。

メディアリテラシー ⭐⭐⭐

情報を伝達する媒体(メディア)を使いこなす基礎的な素養のこと。メディアを通じて情報を取得・収集し、取捨選択および評価・判断する能力や、自らの持つ情報をメディアを通して適切に発信できる能力を指す。

現代人は生活や仕事に必要な情報の多くをテレビや新聞、雑誌などのマスメディアやインターネット上のサイトやサービスなどの情報媒体を通じて得ているが、媒体にはそれぞれ物理的・技術的・商業的な制約や、発信者の立場や意図、経済的・政治的・思想的な背景などから偏りや歪みを避けることはできず、時には誤りや意図的な誇張、改変、虚偽などが含まれることもある。

情報の偏りにも様々な背景があり、例えば、紙面や放送時間の制約から送り手が重要でないと判断した話題が取り上げられなかったり扱いが小さくなることがある。商業的に運営されている媒体が大口広告スポンサーの不祥事を意図的に無視したり、自社や業界が関連する制度を取り上げる際に自らに有利な情報や論調を流すといった媒体の利害に基づく歪みが生じることもある。

また、政治や経済についての話題では、思想的に政権党に親和的な媒体とそうでない媒体で同じ事実について肯定的な論調と否定的な論調に分かれたり、特定の勢力に有利な、あるいは不利な情報を多く流すと行った操作が行われることも珍しくない。

情報の受け手としてのメディアリテラシーは、このような媒体の特性や限界、送り手の意図や背景などを読み解き、メディアから得た情報を鵜呑みにしたり全否定するのではなく、可能な限り客観的かつ正確に評価して活用できるようにする基本的な知識や技能の総体を指す。

1990年代まではメディアリテラシーといえばマスメディアの情報を読み取る受け手としての能力のみを指したが、現代ではインターネットを通じて誰でも公共に情報を発信することができるようになり、自らの持つ情報を適切な手段で発信する基礎的な能力もメディアリテラシーの範疇に含まれるようになった。こうした送り手としての素養はいわゆる「ネットリテラシー」の一部でもある。

マスメディア 【マスコミュニケーション】 ⭐⭐

不特定多数の人に同時に同じ情報を伝達できる媒体(メディア)のこと。また、その運営機関。「メディア」と略されることもある。マスメディアによる情報の一斉伝達を「マスコミュニケーション」(mass communication、マスコミ)というが、媒体や運営機関のことをマスコミということもある。

現代社会では一般に新聞、雑誌、テレビ、ラジオの4つを指し、これらをマス4媒体(マスメディア4媒体、マスコミ4媒体)という。マスメディアに流れる情報が社会に大きな影響を与えることから、その影響力の大きさを国家権力になぞらえ、行政、立法、司法に並ぶ「第4の権力」と呼ばれることもある。

また、あまり一般的な用法ではないが、伝達する情報の種類が限られていたり、情報の発信主体が極めて細分化・専門化していたり、特定集団内や個人間のコミュニケーションに用いる情報媒体でも、全体としての普及率や接触率が高い場合にはマスメディアに含める場合がある。例えば、インターネット、書籍、映画、携帯電話、音楽・映像ソフト(CDやDVDなど)などをマスメディアの一部とする場合がある。

何がマスメディアとして機能するかは時代や科学技術、社会制度の変化によっても変遷し、例えば江戸時代の日本では立て札が一種のマスメディアであり、テレビ放送の開始前は映画館で時事の話題を映像で伝える「ニュース映画」を上映していた。現在ではインターネットがマスメディアの機能を持ち始めている。

多くの国で、マスメディアの運営や所有者について法制度によって一定の規制あるいは保護が行われている。特に、国民の共有財産である電波周波数を専有するテレビやラジオなどの放送事業については免許制とし、一定の要件を満たした事業者が当局の規制・監督のもと運営する制度となっていることが多い。

新聞や雑誌についても税制や郵便料金を優遇するといった措置が行われることがある。例えば、日本では新聞に消費税の軽減税率が適用され、郵便制度では定期刊行物向けの割安な「第三種郵便物」という区分が用意されている。統制主義的な国家ではマスメディアの運営を国が独占したり、報道内容の検閲など運営への国家の関与・介入が行われることが多い。

電子メール 【eメール】 ⭐⭐⭐

通信ネットワークを介してコンピュータなどの機器の間で文字を中心とするメッセージを送受信するシステム。郵便に似た仕組みを電子的な手段で実現したものであることからこのように呼ばれる。

広義には、電子的な手段でメッセージを交換するシステムやサービス、ソフトウェア全般を指し、携帯電話のSMSや、各種のネットサービスやアプリ内で提供される利用者間のメッセージ交換機能などを含む。

狭義には、SMTPやPOP3、IMAP4、MIMEなどインターネット標準の様々なプロトコル(通信規約)やデータ形式を組み合わせて構築されたメッセージ交換システムを指し、現代では単に電子メールといえば一般にこちらを表すことが多い。

メールアドレス

電子メールの送信元や宛先は住所や氏名の代わりに「メールアドレス」(email address)と呼ばれる統一された書式の文字列が用いられる。これは「JohnDoe@example.com」のように「アカウント名@ドメイン名」の形式で表され、ドメイン名の部分が利用者が所属・加入している組織の管理するネットワークの識別名を表し、アカウント名がその中での個人の識別名となる。

企業や行政機関、大学などがメールサーバを運用して所属者にメールアドレスを発行しているほか、インターネットサービスプロバイダ(ISP)や携帯電話事業者などがインターネット接続サービスの一環として加入者にメールアドレスを発行している。

また、ネットサービス事業者などが誰でも自由に無料でメールアドレスを取得して利用できる「フリーメール」(free email)サービスを提供している。一人の人物が立場ごとに複数のアドレスを使い分けたり、企業の代表アドレスのように特定の個人に紐付けられず組織や集団などで共有されるアドレスもある。

メールサーバとメールクライアント

インターネットに接続されたネットワークには「メールサーバ」(mail server)と呼ばれるコンピュータが設置され、利用者からの要請により外部のネットワークに向けてメールを送信したり、外部から利用者に宛てて送られてきたメールを受信し、本人の使うコンピュータに送り届ける。利用者や他のサーバに対する窓口であり、郵便制度における郵便局のような役割を果たす。

メールサーバ内には利用者ごとに私書箱に相当する受信メールの保管領域(メールボックス)が用意され、外部から着信したメールを一時的に保管する。利用者が手元で操作するメールソフト(メールクライアント、メーラーなどと呼ばれる)は通信回線を介してメールサーバに問い合わせ、メールボックス内のメールを受信して画面に表示する。

Webメール

利用者の操作画面をWebアプリケーションとして実装し、Webブラウザからアクセスしてメールの作成や送信、受信、閲覧、添付ファイルのダウンロードなどをできるようにしたシステムを「Webメール」(webmail)という。

フリーメールサービスの多くは標準の操作画面をWebメールの形で提供しており、メールクライアントなどを導入・設定しなくてもWebブラウザのみでメールの送受信を行うことができるようになっている。企業などの組織で運用されるメールシステムでもWebメールを提供する場合があり、自宅や出先のコンピュータなどからアクセスできるようになっている。

メッセージの形式

電子メールには原則として文字(テキスト)データのみを記載することができる。特別な記法や書式を用いずに素の状態の文字データのみが記されたメールを「テキストメール」という。WebページのようにHTMLやCSSなどの言語を用いて書式や装飾、レイアウトなどの指定が埋め込まれたものは「HTMLメール」という。

また、画像や音声、動画、データファイル、プログラムファイルなどテキスト形式ではないデータ(バイナリデータ)を一定の手順でテキストデータに変換して文字メッセージと一緒に送ることができる。こうしたデータをメッセージ中に埋め込む方式の標準として「MIME」(Multipurpose Internet Mail Extension/マイム)が規定されており、これを利用してメールに埋め込んだファイルを「添付ファイル」(attachment file)という。

電子メールの普及と応用

電子メールはWeb(WWW)と共にインターネットの主要な応用サービスとして広く普及し、情報機器間でメッセージを伝達する社会インフラとして機能している。現在ではパソコンやスマートフォン、タブレット端末などのオペレーティングシステム(OS)の多くは標準でメールクライアントを内蔵しており、誰でもすぐに利用できるようになっている。

電子メールシステムでは一通のメールを複数の宛先へ同時に送信する同報送信・一斉配信も容易なため、グループ共通のアドレスを用意してメンバー間の連絡や議論などに用いる「メーリングリスト」(mailing list)や、発行者が購読者に定期的にメールで情報を届ける「メールマガジン」(mail magazine)などの応用システムも活発に利用されている。

一方、広告メールを多数のメールアドレスに宛て無差別に送信する「スパムメール」(spam mail)や、添付ファイルの仕組みをコンピュータウイルスの感染経路に悪用する「ウイルスメール」(virus mail)、送信元を偽って受信者を騙し秘密の情報を詐取する「フィッシング」(phishing)など、電子メールを悪用した迷惑行為や犯罪なども起きており、社会問題ともなっている。

CC 【Carbon Copy】 ⭐⭐

電子メールの宛先を表す設定情報の一つで、複製を送信するメールアドレスを指定することができるもの。本来の宛先以外に一つまたは複数のメールアドレスを指定することができる。

通常、主な宛先を指定するのは「To」(「~へ」の意味)と呼ばれる項目だが、「Cc」という項目にアドレスを記載すると、メールサーバ側で同じ内容を複製してそちらへも届けてくれる。CCに指定されたアドレスは受信者全員が見ることができる。

“carbon copy” とは帳票の作成などで利用される「カーボン複写」のことで、台紙にカーボン紙を重ねて上から硬い筆記具で書き込むと、台紙側に同じ内容が転写される仕組みのことを指す。同じメールが自動的に複製されて配信される様子をこれに例えている。

一方、同じように複製を送信するアドレス指定には「BCC」(Blind Carbon Copy)もあり、こちらはアドレスが他の受信者には分からないように配送途中で削除される。互いに知らない相手に同じ告知内容を一斉送信したい場合などに用いるが、CCとBCCを取り違えて他の受信者のアドレスを知らせてしまう事故があとを絶たない。

BCC 【Blind Carbon Copy】 ⭐⭐

電子メールの宛先指定の一種で、他の受信者に知らせずに複製を送信する先を指定できるもの。送信者がメールの作成・送信時に指定し、複数のアドレスを指定することもできる。

通常、電子メールで宛先を指定するには「To」(「~へ」の意味)と呼ばれる項目に相手のメールアドレスを記載するが、BCC欄にもアドレスを記入することができ、同じメッセージが複製されてそちらにも届けられる。

CCとの違い

複製が送信されるという意味では「CC」(Carbon Copy)欄も同じ機能だが、CC欄に記載したアドレスがすべての受信メッセージにそのまま掲載されるのに対し、BCC欄の内容は受信直前にメールサーバ側で削除され、受信者側には誰をBCCに指定したかは分からないようになる。

主な用途と難点

BCCによるアドレスの指定は、複数の受信者が互いに無関係な場合など、受信者に他の受信者のアドレスを知らせたくない場合や、顧客への返信を上司に報告する場合など、複製を別のアドレスに送っていることを相手が知る必要がない、または知られたくない場合に用いられる。

名称や操作画面上での記入欄の近さなどから、CC欄と取り違える記入ミスが起こりやすく、同じ文面を複数の関係者に送ろうとして誤ってアドレスをCCに指定してしまいメールアドレスを漏洩させてしまう事故が後を絶たない。

また、受信者は送信者が告げない限りBCCで第三者に複製が送られていること自体に気付かない。個人的な内容のやり取りや対話的な内容の場合は後で第三者にも送信されていたことが露見すると人間関係上のトラブルに発展することがあるため、事前に断っておくなどの配慮が必要になることがある。

語源

“Blind Carbon Copy” とは「目に見えないカーボン複写」を意味する。カーボン複写とは、記入用紙の裏がカーボン紙になっており、ペン先を強く押し当てるように書き入れることで下に重ねられたもう一枚の用紙に複写される仕組みを指す。このような自動的な複写を、受信者に見えないよう行うという意味でこのように呼ばれる。

文字コード 【キャラクターコード】 ⭐⭐⭐

文字や記号をコンピュータ上でデータとして扱うために、一文字ずつ固有の識別番号を与えて区別できるようにした符号のこと。

コンピュータはすべての情報を「0」と「1」のを組み合わせたデジタルデータとして取り扱う。数値は2進数を用いることで容易に表現できるが、文字は字形そのものを画像や図形としてデータ化したものはデータ量が多く、これをそのまま繰り返し並べて文字データとすることは無駄が大きい。このため、各文字に短い識別番号(正確には0と1の並び:ビット列)を与えて数字の列として文字列を表現するようになった。この数字と文字の対応関係を定めた規約が文字コードである。

最も普及しているASCII文字コードは英数字や制御文字、記号などを収録した7ビット(7桁のビット列、十進数では0~127)のコード体系であり、例えばアルファベットの大文字の「A」は65番(ビット列で1000001)、小文字の「z」は122番(同1111010)などと定められている。あるデータ列がASCII文字列であることが分かっていれば、番号との対応関係を元に文字の並びを知ることができる。

文字集合と符号化方式

文字コードを定義するには、どの言語を対象にどの文字を収録するかを決めなければならず、まず収録する文字(の字形)を特定して列挙した文字集合(文字セット)を定める。その際、番号などは与えずにただ収録する文字群を定義したものをレパートリ、各文字に一意の番号を与えたものを符号化文字集合(CCS:Coded Character Set)という。

欧米圏の8ビット文字コード規格のように、符号化文字集合をそのまま文字コードとして利用することも多いが、漢字圏など収録文字数の多い言語では各文字に割り当てられた符号をどのようなビット列で表現するかについて、いくつかの異なる方式を定めている場合があり、これを文字符号化方式(CES:Character Encoding Scheme/文字エンコーディング)という。

例えば、代表的な日本語の符号化文字集合の一つであるJIS X 0208規格に定められた符号をそのまま文字コードとしたものを区点コードというが、この文字集合を対象とする符号化方式としてJISコードやShift JISコード、日本語EUC(EUC-JP)などが定められており、同じ文字でも符号化方式によってそれぞれ異なったビット列で表現される。世界中の文字を収録したUnicodeでも、同じ文字集合に対してUTF-8、UTF-16、UTF-32など複数の異なる符号化方式が定義されている。

空文字 【ヌル文字】

文字コード0番の制御文字。データや文字列の終端を示す特殊な文字として使用されることがある。

コンピュータ上では文字に番号を対応付けた文字コードを用いて文字や文字列を表現するが、ASCIIコードなどのコード体系では0番の文字を空文字(null character)という。「NUL」「NULL」などの略号で示されることもある。

文字としての形を持たない制御文字(制御コード)の一種で、コンピュータプログラムの動作の制御などに用いられる。画面に表示することはできず、キーボードに直に対応するキーも存在しないが、一部のシステムでは「Ctrl+@」などの特殊なキー操作で送信できる場合がある。

ヌル文字が何を意味するかはシステムによって異なるが、昔のコンピュータではプリンタなどとの通信で「何もしない」「何の文字も無い」などを表すために用いられるのが一般的だった。

プログラミングの分野では、C言語などが文字列の終端を表すコードとしてヌル文字を使用する。Cでは文字列は文字型(char型など)の配列として表され、配列の要素としてヌル文字('\0')が出現するとそこが文字列の終端であるとみなされる。何の文字も含まない空文字列は空文字のみを要素として持つ配列(要素数は1)となる。

一方、文字列型を組み込みデータ型として持っている言語ではこのような事情は無く、空文字列は文字通り文字数0の文字列型の値("")となる。通常の文字列操作でヌル文字の存在を意識することはほとんどないため、空文字列のことを指してヌル文字と呼ぶ人もいる。

若干紛らわしいが、「内容が空である」(null)という概念は文字列以外にも用いられ、C言語では何も参照していないポインタを表すマクロとして「NULL」が定義されており、言語によっては値が存在しないこと表す特殊な値として「null」が用意されていることもある。これらは文字列操作における空文字や空文字列とは異なるため注意が必要である。

ASCII 【American Standard Code for Information Interchange】 ⭐⭐⭐

アルファベットや数字、記号などを収録した文字コードの一つ。最も基本的な文字コードとして世界的に普及しており、他の多くの文字コードがASCIIの拡張になるよう実装されている。文字を7ビットの値(0~127)で表し、128文字が収録されている。

主に英語で必要な文字を収録したコード規格で、0番から127番までの番号(正確には2進数で0000000から1111111まで)について、各番号がどの文字を意味するかという対応関係を定めている。例えば英大文字の「A」はASCIIコードでは65番(16進数で41、2進数で1000001)で表される。

収録されているのはA~Z、a~zのラテンアルファベット(ローマ字)、0~9のアラビア数字、約物(引用符や括弧、疑問符、感嘆符、カンマ、ピリオドなど)、記号(数学記号やドルマーク、アットマークなど)、空白文字、制御文字(改行文字やタブ文字、古い通信制御文字など)などである。

1963年にASA(アメリカ規格協会、現在のANSI)が定めた規格で、1967年に国際標準化機構(ISO)がほぼ同じ内容をISO/IEC 646として標準化した。1970年代以降ほとんどのコンピュータやソフトウェアが標準の文字コードの一つとして対応しており、英文の文字情報の記述やコンピュータ言語の表記などに用いられている。一般的なキーボードにはASCII文字に対応するキーが配されている。

8ビット目を利用した拡張規格

ASCIIでは1文字を7ビットで表すが、現代のコンピュータのほとんどはデータの基本的な管理単位が1バイト(8ビット)であるため、実際には1文字を8ビットで表している。

残りの1ビットはもともとデータ伝送時の誤り検出符号(パリティビット)などとして用いられてきたが、電子回路や通信システムの信頼性向上などを受け、この1ビットを活用してASCIIを拡張する試みが行われるようになった。

ASCIIを拡張したコード体系では、0から127まではASCIIと同じで、ASCIIに規定の無い128~255の領域に独自の文字を割り当てている。例えば、日本国内で用いられたJIS X 0201では、この領域にカタカナ(いわゆる半角カナ)や句読点(。、)、鉤括弧(「」)を配置して限定的ながら日本語を使えるようにしている。

後にASCII拡張についても標準化の動きが起こり、8ビットコードや複数バイトコードの扱い、各国の拡張コードの切り替え方式などを定めたISO/IEC 2022や、これに基づいて具体的な8ビットの文字コードを規定したISO/IEC 8859などの規格が策定された。追加の文字を含めても1バイトで十分なヨーロッパ各国の言語などではISO/IEC 8859が標準的な文字コードとして普及している。

<$Fig:ascii|center|false>

Unicode 【ISO/IEC 10646】 ⭐⭐⭐

文字コードの国際的な標準規格の一つで、世界中の様々な言語の文字を収録して通し番号を割り当て、同じコード体系のもとで使用できるようにしたもの。

コンピュータで文字データを扱うには、文字や記号の一つ一つに対応する番号(符号)を与え、文字の列を番号の列に変換する必要がある。文字と番号の対応関係を定めたルールを「文字コード」(character code)と呼び、従来は国や言語圏ごとに自分たちの使う文字のコード体系を定めて使用していた。

Unicodeは世界中の様々な言語の文字を集め、すべての文字や記号に重複しないようそれぞれ固有の番号を与えた文字コード規格である。世界の主な言語のほとんどの文字を収録しており、通貨記号や約物など文字と共に使われる記号や絵文字なども登録されている。

米大手IT企業を中心とする業界団体「Unicodeコンソーシアム」(Unicode Consortium)が仕様を策定・改訂しており、ほぼ同じものがISO(国際標準化機構)とIEC(国際電気標準会議)の合同委員会によって「ISO/IEC 10646」として国際標準となっている。ISO/IEC側ではUnicodeに相当する文字集合の名称を「UCS」(Universal Coded Character Set)としている。

コードポイント

Unicodeでは、登録された文字のそれぞれについて「コードポイント」(code point:符号点、符号位置と訳される)と呼ばれる一意の通し番号を与えている。例えば、日本語のカタカナの「ア」には12450番が割り当てられており、説明文などでは16進数を用いて「U+30A2」のように表記する。

世界中のあらゆる言語の文字を収録するという目的のため、コードポイントは最長で21ビットの値(上限は1114111番、U+10FFFF)まで用意されている。初期の規格で世界の既存の文字コードに規定された文字の多くが収録されたが、独自の文字コードを持たなかった言語や、絵文字、古代文字、新設された通貨記号などを中心に、現在も毎年のように新しい文字が追加されている。

現在はコードポイント空間全体の約12%にあたる約15万文字が割り当て済みで、規格上は文字を規定しない「私用面」(企業などが独自に使用してよい)が約13万文字(約12%)分予約済みである。残りの約75%が未割り当てとなっている。

基本多言語面と追加多言語面

コードポイントの範囲のうち、16ビット(2バイト)の値で表現できる U+0000 から U+FFFF は「基本多言語面」(BMP:Basic Multilingual Plane)と呼ばれる。ラテンアルファベットやキリル文字、ギリシャ文字、ひらがな・カタカナ、ハングル、基本的な漢字など、主要な言語の文字のほとんどをカバーしている。

当初の規格はBMPのみの予定だったが、追加収録を希望する文字のすべてを登録しきれないことが明らかになり、後から U+10000~U+10FFFF の拡張領域が追加された。このうち、U+10000~U+1FFFF の範囲を「追加多言語面」(SMP:Supplementary Multilingual Plane/補助多言語面)と呼び、古代文字や絵文字などが収録されている。

日本語文字の扱い

日本語の文字は原則として日本語文字コードのJIS規格から収録されている。当初は「JIS X 0201」(いわゆる半角文字)、「JIS X 0208」(JIS基本漢字)、「JIS X 0212」(JIS補助漢字)に定められた文字を収録したが、後に「JIS X 0213」(JIS2000/JIS2004)のすべての漢字が収録された。

なお、JIS X 0213の一部の漢字についてはBMPには収まりきらず、東アジア各国・地域の追加漢字を収録する U+20000~U+2FFFF の領域(SIP:Supplementary Ideographic Plane/追加漢字面)に収録されている。

これら元になった規格の通り、半角カナも全角とは別に「HALFWIDTH KATAKANA LETTER A」(半角カタカナのア)等の名称で、全角英数字も「FULLWIDTH LATIN CAPITAL LETTER A」(全角ラテンアルファベット大文字A)等の名称でそれぞれ収録されている。

UTF (Unicode Transformation Format/UCS Transformation Format)

様々な事情から、文字をデータとして実際に記録・伝送する際には、文字集合で定められたコードポイントをそのままビット列で表すのではなく、一定の手順で特定の形式に変換する。この変換手順を「符号化方式」(文字エンコーディング)という。

Unicodeにも標準の符号化方式がいくつか定められており、用途や処理の都合に応じて使い分ける。全体を総称して「UTF」と呼び、Unicodeでは “Unicode Transformation Format” の略、ISO/IEC 10646では “UCS Transformation Format” の略とされる。

UTFには「UTF-8」「UTF-16」「UTF-32」の3種類があり(UTF-7もあるがIETF独自拡張)、同じUnicode文字列でも符号化が違えばまったく異なるバイト列として表現される。文字データの保存・交換用として最も一般的に使われるのはUTF-8で、単にUnicodeといえばUTF-8でエンコードされたデータを意味することが多い。

UnicodeとISO/IEC 10646

ISO(国際標準化機構)とIEC(国際電気標準会議)の合同委員会(JTC 1)は、1980年代後半に国際的な文字コード標準の策定を目指し、仕様の検討を始めた。当初の構想は4バイトのコードを用いて既存の各国の文字コードをほとんどそのまま収録・統合するというものだった。

1991年に民間の企業連合であるUnicodeコンソーシアムが設立され、Unicode規格が発表されると、公的な標準と業界標準の分裂を避けるためISO/IECとの間で一本化の調整が行われることになった。議論の末、Unicodeの仕様をほぼそのままISO/IEC標準として採用することになった。

同年に発行されたUnicode 1.0規格をほぼそのまま取り込む形で1993年にISO/IEC 10646-1規格の初版が標準化され、以降はUnicode側と仕様を擦り合わせながら改訂されていった。両者は用語法など細かな点に違いがあるものの、収録文字など仕様の実質は同一となっている。

UTF-8 【UCS Transformation Format 8】

Unicodeで定義された文字集合を表現することができる文字コード(符号化方式)の一つ。一文字を1~4バイトの可変長で表現するもので、様々な言語の文字を扱える文字コードとしては世界的に最も普及している。

Unicodeユニコード」は国際的な業界団体であるUnicodeコンソーシアムが策定している多言語文字コードの規格で、ISO(国際標準化機構)およびIEC(国際電気標準会議)が策定した国際標準(ISO/IEC 10646)ではこれと実質的に同じものを「UCS」(Universal multi-octet Character Set)と呼んでいる。

Unicodeでは、収録されている文字にそれぞれ固有の識別番号である「コードポイント」(符号位置)を与えている。この値をビット列として表現する規則を「文字符号化方式」(符号化スキーム)と呼び、UTF-8やUTF-16、UTF-32などの方式がある。UTF-8は最も普及している方式で、Unicodeを用いるほとんどの場面で符号化方式としてUTF-8が用いられる。

UTF-8は最大で2097151番(U+1FFFFF)までのコードポイントを表現できるが、Unicode/UCSで定義される文字セットとして有効なのは1114111番(U+10FFFF)までであるため、これを超える値は無効とされる。初期の仕様では最大6バイト(U+7FFFFFFFまで)とされていたが、後に4バイトまでに縮小された。

ASCII文字と各国語の文字

英数字の文字コードとして世界的に普及しているASCIIで規定される7ビットの範囲(0~127番)の文字は、そのコードをそのまま用いるようにできている。ASCIIに収録された英数字や記号は1バイトで表現でき、かつ、各文字のコードもASCIIと同一になる。

一方、大陸欧州などで一般的なISO/IEC 8859などの文字コードは、ASCIIに1ビット追加して8ビット(1バイト)とし、拡張された後半128~255番にアクセント記号付きの文字などを収録していた。UTF-8ではこれらの文字の多くは2バイト(16ビット)で表現される。

日本語や中国語、韓国・朝鮮語など、従来から2バイトの文字コード体系を言語ごとに独自に定めていた言語圏では、UTF-8ではほとんどの文字が3バイト(24ビット)となる。従来コードに比べ英語圏は1文字1バイトのままだが、8ビット言語圏は2バイトに、2バイト言語圏は3バイトに増加するため不公平だとする声もある。

符号化の方法

128番以降の文字はコードポイントの上位ビット側から変換ルールに従って複数のバイト列に当てはめていき、得られたバイト列を順に並べる。処理はバイト単位で行われるため、16ビット単位の値を用いるUTF-16などと異なりエンディアンの識別が不要となっている。

1バイト表現の先頭は0から始まるが、複数バイト表現の場合、1バイト目は「11」から、2バイト目は「10」から始まる。これにより、文字列データ中のどの位置のバイトを取り出しても、それが1バイト表現(ASCII互換文字)なのか、複数バイト表現の先頭あるいは途中なのかを容易に判別できる。

長さが2バイトの場合の1バイト目は「110」から始まり、同様に3バイトの場合は「1110」、4バイトは「11110」から始まる。先頭バイトの1が連続する数を調べれば続く何バイトが同じ文字を表すのか知ることができる。

例えば、2バイトのUTF-8コードは1バイト目が「110xxxxx」、2バイト目が「10xxxxxx」という形式で、計11ビットあるxの部分の左から順にコードポイントの2進表現を上位ビット側から当てはめていく。最長の4バイト表現ではコードポイントを格納するビット列は合わせて21ビット分確保される。

長いバイト表現は短いバイト表現の文字を表すこともできるため、例えばASCII互換文字は1バイト表現から4バイト表現まで4通りのビットパターンが存在することになるが、規格上は最も短い表現以外は無効な表現とみなされる。すなわち、2バイト以上では表現可能なコードポイントの上限だけでなく下限(2バイトの場合はU+0080未満は無効)が存在する。

バイトオーダーマーク (BOM)

UTF-16やUTF-32では16ビット単位や32ビット単位の連続したビット列で1文字を表現するため、1バイト(8ビット)単位でデータを取り出したときに先頭側が上位ビットなのか下位ビットなのか識別しなければならない。この並び順(エンディアン)を区別するため、これらの形式ではテキストファイルなどの先頭に「バイトオーダーマーク」(BOM:Byte Order Mark)を記載する仕組みがあった。

UTF-8ではバイト順の認識が不要なためエンディアンを指示するBOMも存在しないが、代わりにエンコード形式がUTF-8であることを伝達する符号を先頭に記載してもよい(しなくてもよい)ことになっている。この符号は先頭から順に16進数で「EF BB BF」であり、バイト順を指定するものではないが他の方式との整合性から便宜上BOMと呼ばれている。

JISコード 【ISO-2022-JP】 ⭐⭐

国際的な文字コード規格の一つであるISO/IEC 2022の枠組みに沿って定義された日本語の文字コードの一つ。文字コードを7ビット単位で符号化する方式を定めている。

文字コード規格で各文字に付けられた番号を一定の規則で符号化する方式を定めたもので、「エスケープシーケンス」(escape sequence)という特殊な制御文字を挿入することにより複数の文字集合(いわゆる半角文字と全角文字など)の切り替えを行う。同じコードでも直前のエスケープシーケンス次第で別の文字を指し示すことがあるため、文字列は先頭から順に読み込まなければならないという制約がある。

ASCII文字コードで定義された制御文字やラテン文字(いわゆる半角英数字・記号)に加え、JIS X 0208で定義された日本語文字(ひらがな、カタカナ、漢字)やギリシャ文字、キリル文字、全角記号などを記述できる。いわゆる半角カタカナは含まれていない。

最初の仕様は1993年にRFC 1468として標準化され、1997年にはJIS X 0208の改訂版に収録され国内の公的な標準規格となった。その後、JIS X 0212で定義された文字を扱えるようにしたISO-2022-JP-1(RFC 2237)などいくつかのバリエーションが策定された。

Unicodeの普及以前に、Shift JISコード、日本語EUCコード(EUC-JP)と並んで古くからよく用いられてきた有力な日本語文字コードの一つである。特に、1990年代後半のインターネットの一般への普及の初期に、8ビット単位の文字コードが欧米で開発された電子メールソフトウェアなどと相性が悪かった(7ビットコードしか想定していないものが多かった)ことなどから、電子メールで日本語を扱う際の事実上の標準として広まった。

EUC 【End-User Computing】

企業などで情報システムを利用して現場で業務を行う従業員や部門(エンドユーザー、ユーザー部門)が、自らシステムやソフトウェアの開発・構築や運用・管理に携わること。

初期のEUC

1970年代後半にこの用語が使われだした頃のコンピュータは操作に専門的な技術を要する大型コンピュータで、業務部門の利用者は電算部門の専門の技術者やオペレータに端末の操作やデータの入出力の依頼をしてシステムを利用していた。

当時のEUCのコンセプトは、コンピュータに扱いやすい表示・操作システムを実装し、データ処理を必要とする利用者自身が端末を操作して様々な処理を実行するというもので、経営者や上級管理職向けのDSS(意思決定支援システム)などの形で結実した。

現在のEUC

1990年代後半頃になるとオフィスで一人一台パソコンが与えられ、従業員が自分で操作するのが次第に当たり前になっていき、通常のシステムの使用に関しては技術部門の仲介は不要になった。当初の意味でのEUCは浸透したと言える。

この頃からEUCの指す意味は徐々に変容していき、情報部門の用意したソフトウェアやパッケージ製品をそのまま利用するのに留まらず、業務に必要な個別のアプリケーションなどを利用者が自ら開発・運用することを指すようになっていった。

業務に必要なITシステムをゼロから構築することという極端な事例は少なく、パッケージソフトのマクロ機能(Excelマクロ等)やスクリプト機能(VBA等)などを利用して簡易な自動処理プログラムを開発したり、最新のIT機器を部署内で独自に導入して既存システムに接続するといった事例が多い。近年では既存システムの定型的・反復的な作業を自動化するRPA(Robotics Process Automation)が注目されている。

この意味でのEUCが無秩序に行われるとIT部門や管理部門の統制が及ばず、思わぬトラブルや多重投資などの問題を引き起こす(シャドーIT問題)ことがあるため、ガイドラインを定めるなど一定のルールのもとで実施する必要がある。

Shift JIS 【シフトJIS】 ⭐⭐

コンピュータで日本語を含む文字データを扱うために用いられる文字コード標準の一つ。Windowsなどが標準の日本語文字コードとして採用したことから広く普及した。

コンピュータで文字データを扱うには、文字や記号の一つ一つに対応する番号(符号)を与え、文字の列を番号の列に変換する必要がある。文字と番号の対応関係を定めた仕様を「符号化文字集合」、番号を具体的なビット列として表す変換ルールを「文字エンコーディング」という。

Shift JISは「JIS X 0201」や「JIS X 0208」などの標準規格で定められた符号化文字集合を対象とする文字エンコーディング仕様の一つで、JIS X 0201の半角英数字や制御文字、半角カタカナを1バイトで、JIS X 0208の全角文字を2バイトで表すことができる。

主な特徴

JIS漢字コードを対象としたエンコーディング方式には、いわゆる「JISコード」の通称で知られる「ISO-2022-JP」や、UNIX系OS向けに策定された「EUC-JP」(日本語EUC)もある。これらが連続したコード領域で文字を表すのに対し、Shift JISでは文字集合をいくつかに分割し、それぞれ異なる離れた領域へ移動(shift)させている。

これは、2バイト表現の1バイト目(先頭バイト)の値として、既存のいわゆる半角文字のコード領域、すなわち、ASCIIコード由来の英数字・記号文字・制御文字やJIS X 0201で追加された記号・半角カナ文字などの使用している値が出現するのを避けるためである。

ISO-2022-JPなどは1バイト目に8ビット文字コードと共通する値を使用しているため、どの文字コードの文字であるかをシステムに知らせるためにコード切り替えの印(エスケープシーケンス)をその都度挿入しなければならない。

一方、Shift JISは1バイト目に8ビット文字と重ならないようコードを配置しているため、1バイト目を読み込んだ時点ですぐにShift JISの文字であると判定でき、ASCII文字と漢字などが混在する文字列でもエスケープシーケンスを付加しなくてよいという利点がある。

ただし、2バイト目にASCII領域のコードが現れることは避けられないため、文字列データ中の任意の位置のバイトが半角文字なのかShift JIS文字の2バイト目なのかを他の手掛かりを用いずに知ることはできない。

また、2バイト目に16進数「5C」(92番、欧米ではバックスラッシュ、日本では円記号)が現れる文字があり、バックスラッシュや円記号にエスケープ文字などの特別な意味を与えているシステム(特に、日本語コードを考慮しない欧米製のソフトウェアなど)でうまく動作しないことがある。

歴史

Shift JISは1982年に日米のコンピュータ業界数社が共同で考案したとされ、米マイクロソフト(Microsoft)社が自社のパソコン向けオペレーティングシステム(OS)製品の「MS-DOS」や「Windows」に「CP932」(コードページ932)あるいは「MS漢字コード」として実装したことで広く普及した。

メーカー独自仕様だったことから長らく公的な規格とはなっていなかったが、1997年の「JIS X 0208」改訂版の附属書として仕様が掲載された。その後、2000年の「JIS X 0213」で「Shift_JISX0213」の名称で記載され、2004年のJIS X 0213改訂版では「Shift_JIS-2004」に改名されている。正式には「Shift_JIS」と間にアンダーバーを挟んで表記する。

ピクセル 【画素】 ⭐⭐⭐

デジタル画像や画面などを構成する最小単位である、色のついた微細な点のこと。また、その数を表す単位。単位を表す場合は “px” と略記されることもある。

コンピュータは画像をデジタルデータとして扱うため、固有の色情報を持つ点が縦横に規則正しく並んだ集合として表現する。この点のことをピクセルと呼び、それ以上小さな単位に分割することができない最小の要素となっている。

色深度 (color depth)

一つの画素にどのような色情報を持たせることができるかは画像形式やソフトウェア、表示・印刷媒体によって異なる。一画素を何ビットの色情報で表現するかを「色深度」(color depth)と呼び、「bpp」(bits per pixel:ビット毎ピクセル)という単位で表す。

最も単純で情報量が少ないのは各画素が1ビットの色情報を持つ方式(1bpp)で、各画素は2種類の色(ビットの0と1にそれぞれ対応)のいずれかとなる。通常はこれを白と黒に対応付け、白黒画像(2値画像、モノクロ2値)として扱う。

様々な色を扱う場合は色深度を大きく取り、8ビット(256色)や16ビット(65,536色)、24ビット(約1677万色)などが用いられる。24bppでは光の三原色(RGB:赤緑青)の各色を8ビット(256段階)で表すことができ、人間の目で識別できるほとんどの色を表現できるとされるため、「フルカラー」「トゥルーカラー」などと呼ばれる。

物理媒体におけるピクセルとドット

ディスプレイ装置などによる画面表示やプリンタによる印刷面も、色のついた微細な点を縦横に規則正しく並べた構造となっており、これもピクセルと呼ぶ。物理的な単位として「ドット」(dot)を用いる場合もある。

特に、プリンタではデジタル画像における一つのピクセルを複数の微小なインク滴やトナーの集合で表現する場合があり、ピクセルを構成する物理的な最小単位としてドットを用いることがある(ドットをピクセルと同義とする場合もある)。

物理的な媒体では表示・印刷面におけるピクセルの細かさが機器や機種によって異なり、幅1インチあたりに存在するピクセルの数である「ppi」(pixel per inch:ピクセル毎インチ)や隣り合うピクセルの中心間の距離である「画素ピッチ」(pixel pitch)などの単位で表す。

サブピクセル (subpixel)

物理媒体上では画素の色を原色の組み合わせで表現するため、ディスプレイなどの発光体では赤・緑・青の光の三原色(RGB)に対応する発光素子を、印刷物などの反射体ではシアン・マゼンタ・イエローの色の三原色(CMY)に対応するインク滴などを隣り合わせて一つの画素を表現する。

人間の目には三色が組み合わさって一つの色に見えるが、拡大すると各画素ごとに三色が規則正しく並んでいる様子が分かる。画素をこれらの三色に分解した構成単位を「サブピクセル」(subpixel:副画素)と呼ぶことがある。

ソフトウェアや機器によっては画像の表現をより精細にするため、サブピクセル単位で表示や印刷を制御する「サブピクセルレンダリング」(subpixel rendering)が行われる場合もある。

ドット

点、点を打つ、などの意味を持つ英単語。IT分野では、「.」などの点一つの記号文字のことや、画面を構成する画素(ピクセル)などのことをドットということが多い。

画像や画面、印刷におけるドット

画像データやディスプレイ画面、印刷装置などでは、色の付いた微細な点を縦横に規則正しく敷き詰めて像を構成している。この画像の構成単位となる一つ一つの点のことを「ドット」あるいは「画素」「ピクセル」(pixel)などという。

ドットと画素、ピクセルは通常同じ意味であることが多いが、プリンタなどではトナーやインクの微細な点を極近い場所に複数(多数)射出して一つの識別可能な画素を構成する方式のものもあり、その場合は前者をドット、後者をピクセルという。

文字、記号のドット

「・」(中黒)や「.」(ピリオド)など、点が一つだけ打たれた記号文字のことをドットということがある。日本語では「.」のことはピリオドと呼ぶのが一般的だが、ドメイン名のラベルの区切りで「.com」を「ドットコム」と読むように、符号の区切り記号としてピリオドを用いる場合は英語表現にならってドットと読むことが多い。

「・」は日本語では「中黒なかぐろ」と呼ばれ、単語の併置や外来語の単語の区切りを表す約物として用いられるが、数学では「a・b」のように乗算を表す記号としてよく知られる。数の計算では乗算記号「×」と同じ意味だが、ベクトルなど分野によっては「×」と「・」が異なる計算を表すことがある。

また、日本ではあまり馴染みがないが、一部の言語で用いるアルファベットの修飾記号(ダイアクリティカルマーク)として、「ė」のように文字の近傍に点を一つ打ったものがあり、これをドット符号ということがある。

解像度 【レゾリューション】 ⭐⭐⭐

機器などの性能の尺度の一つで、対象をどこまで細かく観測あるいは描写できるかを表すもの。ITの分野では、画像や画面、紙面などを構成する画素(ピクセル/ドット)の密度を指すことが多い。

コンピュータは画像を色の付いた微細な点あるいは格子を縦横に規則正しく敷き詰めた集合として取り扱う。この点の細かさ、すなわち、物理的な単位長さあたりの点の数(画素密度)のことを一般に解像度という。

解像度が高いほど点は微細になり、より精細できめの細かい表現が可能となるが、データ量は点の数に比例して増大し、保存や伝送に大きな容量を必要とする。解像度が低くなると次第に個々の点や格子が視認できるようになり、モザイク状のぼやけた表現となる。

ディスプレイやプリンタなどの出力装置の場合には、画面に表示する像や、紙面へ印刷する像の微細さを表す。イメージスキャナやカメラなど画像・映像の入力装置の場合には、取り込んだ光学的な像を画素に分解する細かさ(分解能)を表す。

解像度の単位

単位は一般に幅1インチ(約2.54cm)あたりに並ぶ点の個数である「ピクセル毎インチ」(ppi:pixel per inch)あるいは「ドット毎インチ」(dpi:dot per inch)が用いられる。例えば、100ppiなら1インチを100の点に分解して扱うことを意味し、一つの画素は直径0.254mmの円か幅0.254mmの格子となる。

ppiとdpiはコンピュータ上での画像データの画素と装置の取り扱う微細な点が一対一に対応する場合には同一だが、装置の原理によっては複数のドットの集合によって一つのピクセルを表現する場合もあり、そのような機器では後者の方が数倍から十数倍大きくなる。

ディスプレイの画面解像度

ディスプレイ装置では本来の解像度の意味である画素密度(ppi)の他に、慣用的に画面の構成画素数(総画素数)のことを解像度ということがある。横方向の画素数を縦方向の画素数をかけ合わせたもので、1920×1080といったように記述する。

同じ総画素数の機種同士でも、画面の物理的なサイズが異なれば画素の大きさも異なるため、本来の意味での解像度(画素密度)は異なる。歴史的な経緯から、よく使われる画素数には通称がついており、例えば640×480は「VGA」、1024×768は「XGA」と呼ばれる。

ppi 【ピクセル毎インチ】

主にディスプレイで使われる解像度の単位で、幅1インチ(約2.54cm)あたりに何個の画素(ピクセル)を表示できるかを表す値。この値が高いほど表示面積あたりの画素密度が高く、精細な表示が可能となる。

例えば144ppiの液晶ディスプレイは、表示面の1インチ幅あたりに144個、面積1平方インチあたりに20,736個の画素を表示することができ、72ppiの機種に比べ長さあたりで2倍、面積あたりで4倍の密度で表現することができる。

一方、プリンタなどの装置では解像度の単位として、幅1インチあたりの点(ドット)の数を表す「dpi」(dots per inch:ドット毎インチ)が用いられることがある。

ディスプレイなどの場合はコンピュータ上の画像データの画素と表示装置上の表示素子が一対一に対応するためppi値もdpi値も同じだが、プリンタなどは品質を安定させるため装置が印刷する微細な点をたくさん集めて一つの画素を表現することがあり、ppi値がdpi値の数分の一となる。

例えば、1600dpiのプリンタが一つのピクセルを縦横4つずつ、16のドットの集まりとして表現する場合、その画素密度はdpi値の1/4の400ppiとなる。イメージスキャナにはこのような事情はないため、ディスプレイなどと同じようにdpiはppiは同義である。

JPEG 【Joint Photographic Experts Group】 ⭐⭐

静止画像のデータ圧縮形式の一つ。フルカラーの画像を多少の劣化を伴いながら高い圧縮率で符号化できるのが特徴で、写真など自然画像の記録に向いている。

画像の一部の不可逆的な変化や画質の劣化、情報の欠損を許容する代わりに極めて小さなデータに圧縮することができる「非可逆圧縮」(lossy compression)方式を採用しているのが大きな特徴で、圧縮前の状態に完全に復元することはできない。ファイル名の標準の拡張子は「.jpg」あるいは「.jpeg」である。

非可逆圧縮では画質の劣化の度合いが大きくなるほど圧縮率を高められるため、保存時にどの程度の画質とするかを係数の形で利用者が指定することができる。人間の目にはほとんど見分けがつかない画質でも元のデータの数分の一程度には圧縮することができ、最も低い画質では数十分の一から百分の一以下になることもある。

圧縮方式の特性やノイズの発生などから、図やグラフ、イラストなど同じ色が連続するのっぺりした質感の画像には向いておらず、写真や絵画など画素の色味が細かく変化する画像の保存に適している。このため、インターネットなどでは写真などの画像にはJPEGを使い、図表やアイコン、イラストなどの画像にはGIFやPNGなどで保存するなど、特徴の異なる画像形式を使い分けることが多い。

ベースラインとプログレッシブ

JPEGでは画像を8×8ピクセルの正方形の領域(ブロック)に分け、ブロックごとに色情報を記録していく。通常のデータ形式では左上のブロックから右下に向かって一段ずつ記録され、表示時には上から順番に画像が表示される。この方式を「ベースラインJPEG」という。

一方、各ブロックの情報を細かく分割し、何回かに分けて記録する方式も規定されており「プログレッシブJPEG」という。表示時にはまず全体がぼやけた画像で表示され、読み込みが進むにつれて次第に鮮明になっていく。低速回線で大きな画像を表示する際に素早く全体像が分かるため、Webサイトなどで用いられる。

ロスレスJPEG (Lossless JPEG/JPEG-LS)

JPEGでは元の状態に完全に復元できる「可逆圧縮」(lossless compression/ロスレス圧縮)を行う符号化方式も拡張仕様として追加されている。圧縮率は通常の非可逆圧縮を行う方式よりも悪いが、圧縮前の完全な画像を取り出すことができる。

1993年に追加された「Lossless JPEG」と1999年に追加された「JPEG-LS」の二方式があり、符号化方式やデータ形式が異なっている。後者の方が圧縮率が高く、復号後データのゆがみをパラメータで指定された誤差の範囲内に収めることができる「準可逆圧縮」(near-lossless compression/ニアロスレス圧縮)を行うこともできる。

可逆圧縮を行う画像形式としてはPNGなどが一般的であまり馴染みがないが、医用画像の保管システムなどに採用例がある。JPEGの後継規格のJPEG 2000やJPEG XR(HD Photo/JXR)には当初から可逆圧縮モードが用意されている。

標準規格

JPEG規格はISO/IEC JTC 1(ISOとIECの情報分野の合同委員会)とITU-Tの合同作業部会であるJoint Photographic Experts Groupが1992年に策定したもので、この部会の名称がそのまま画像形式の名称として用いられている。

策定された規格はITU-TではT.81として1992年に、ISO/IECではISO/IEC 10918として1994年に、ぞれぞれ標準化された。日本でも両規格を参照して同内容のものがJIS X 4301として1995年に国内規格化されている。

ファイル形式

JPEG規格では当初は画像データの圧縮符号化方式のみを定め、標準のファイル形式(コンテナフォーマット)を規定しなかったため、「JFIF」(JPEG File Interchange Format)と呼ばれる形式が広く普及し事実上の標準となった。

JPEG画像が保存されているファイル(拡張子が「.jpg」のファイル)は一般的にはJFIF形式か、あるいはその拡張形式のExif形式(カメラの撮影時などに使用)であることが多い。JFIF形式は2011年にITU-Tによって、2013年にISO/IECによってJPEG規格の一部として標準化されている。

ジャギー

デジタル化された画像や動画に発生する乱れ(ノイズ)の一種で、線や輪郭に現れる階段状のギザギザのこと。

ビットマップ形式の画像(ラスター画像)を拡大した時などによく見られるもので、画像を縦横に格子状に並んだ微細な正方形の集合として表現しているため、拡大によって曲線や斜線なっている部分がガタガタした階段状になってしまう。

周囲に背景と線(あるいは輪郭の内と外)の中間色を配置してジャギーを目立たなくする画像処理を「アンチエイリアシング」(アンチエイリアス)あるいは「スムージング」という。これによりジャギーは目立たなくなるが、輪郭がぼやける代償がある。

かつてはディスプレイやプリンタの解像度が低く表示・印刷された個々の画素が視認できるほど大きかったため通常の使用法でもジャギーを意識したり対策することがあったが、近年では両機器とも極めて高解像度になったため、ジャギーを意識する機会は画像の拡大処理を行う場合くらいとなっている。

ビットマップ画像 【ラスター画像】 ⭐⭐⭐

画像データの表現形式の一つで、画像を色のついた点(画素/ピクセル)が縦横に規則正しく並んだ矩形として表現したもの。画面表示や印刷の際には最終的にこの形式で出力する必要がある。

ディスプレイ画面への表示やプリンタによる印刷はビットマップ形式で行われるため、コンピュータでも基本的には画像をビットマップ画像として表現・保存・処理することが多い。ファイル形式としては無圧縮のBMP(Windows Bitmap)、可逆圧縮のGIFやPNG、不可逆圧縮のJPEGなどが有名である。

任意の画像を表現することができ、特に写真など図形の組み合わせでは表現できない画像の保存に適しているが、内容についての幾何学的な情報などは持たないため、拡大や縮小、変形、合成などの処理を行うと内容が不可逆に変質し、画質の劣化、不鮮明化の原因となる。

ビットマップ画像は縦横それぞれの画素数が決まっており、その積が画像を構成する総画素数となる。例えば横1024ピクセル×縦768ピクセルの画像ならば78万6432画素の色情報が並んだデータとして表現される。画像形式によっては解像度(単位長さあたりに並ぶ画素数)の情報を持つものがあり、表示や印刷の際の画像の実際の大きさに反映される。

色情報と色深度

個々の画素が持つ色情報の大きさを色深度(color depth)と呼び、色情報のビット数(bpp:bits per pixel)で表す。例えば、色深度が1bppの場合は各画素は0と1の二値の色情報を持ち、通常は0を黒、1を白に対応付けた白黒画像のことを意味する。

色情報はRGB(Red-Green-Blue)形式など色自体の属性を直接表記したものと、色に番号をつけ、番号と実際の色情報(RGB値など)の対応関係を別のデータとして与えるインデックスカラー(indexed color)方式がある。16~32bppの場合は前者の方式(RGBの各値を5~8ビットずつ並べる)であることが多く、8bppの場合は後者の場合が多い。8bpp(256色)はインデックスカラー以外にもモノクロ256階調のグレースケール形式(白黒と254段階の灰色)にも用いられる。

また、色情報として透明色を設定したり、各画素ごとに透明度(アルファ値)を設定できる形式もあり、他の画像と重ね合わせたときに背後の色が透ける表現ができる。32bppの場合はRGB各8ビットに透明度8ビット(256段階)とすることが多い。

ベクター画像

一方、画像を図形を表す数値情報の集合として表現した形式はベクター画像(ベクトルグラフィックス)と呼ばれる。画像を点や線分、面などの図形の描画情報の組み合わせとして表したもので、画質を劣化させることなく自由に拡大・縮小や変形ができる利点がある。表示や印刷を行う際には最終的に特定の画素数のビットマップ画像に変換(ラスタライズ)される。

ペイントソフト 【ペインティングソフト】 ⭐⭐

グラフィックスソフトの一種で、紙やキャンバスにペンや絵筆で絵を描くように画像を描画できるソフトウェア。

マウスなどを使ってカーソルをペン先や筆先のように動かし、画面上に絵を描いていくことができる。タッチパネル操作の機種では指や専用のスタイラスペンで画面に直に触れて描くこともできる。できた画像はビットマップ画像として保存される。

筆先の質感やタッチを自由に選択できるほか、画像の一部あるいは全体にぼかしやモザイク、水面の波紋などの特殊効果をかけられるフィルター機能、画像の一部を切り抜いたり変形したりする編集機能、複数の画像を重ね合わせるレイヤー機能などを備えているものが多い。

近年では、アニメーション制作を支援する製品、マンガ原稿の制作を支援する製品、複数人で共同作業できる製品、ペンタブレットでの操作を重視した製品、ネットサービスとしてWebブラウザ上で操作する製品など、様々な特色ある製品が登場している。

描画機能よりも、写真など既存の画像にフィルターや色の調整などの編集を行うことに力点を置いたソフトもあり、「フォトレタッチソフト」(photo editting software)と呼ばれる。また、ペイントソフトとは異なり、点や曲線、領域の塗りつぶしなどを組み合わせて図形やイラストレーションを作成するソフトは「ドローソフト」という。

「ペイントソフト」「ドローソフト」といった呼称は和製英語で、英語ではペイントソフトを “raster graphics editor” (ラスター画像編集ソフト)、ドローソフトを “vector graphics editor” (ベクター画像編集ソフト)といったように編集対象の画像形式によって呼び分けることが多い。

ベクター画像 【ベクターデータ】 ⭐⭐⭐

画像データの表現形式の一つで、画像を図形を表す数値情報の集合として表現したもの。拡大・縮小・変形しても画質が劣化せず、サイズや解像度によらず同じ品質の出力結果を得ることができる。

画像を単純な図形の集合として表現する方式で、輪郭などを構成する点の位置や、それらを結ぶ直線や曲線を表す方程式のパラメータ、変形・回転など操作情報、線や面の色情報などの組み合わせとして記述する。“vector” の表記は「ベクター」「ベクタ」「ベクトル」の揺れがあるが、意味の違いはない。

一方、画像を最小単位の小さな点である画素(ピクセル)の集合として表し、各画素の色情報を端から順に縦横に規則正しく並べた形式の画像データは「ビットマップ画像」(bitmap image)あるいは「ラスター画像」(raster image)と呼ばれる。

コンピュータのディスプレイやプリンタなどの出力装置はビットマップ方式で画像を扱うため、ベクター画像はそのままでは表示・印刷することができない。表示する際には画像の縦横の画素数を決めて、その範囲の中で実際に各図形を描画してビットマップ画像を得る。この描画処理のことを「ラスタライズ」(rasterization)という。

ビットマップ形式はどのような画像でも同じように記録できるが、ベクター画像は原理的に写真のような像の表現には向かず、文字や図、イラスト、デザインなど図形の組み合わせで表現しやすい像の記録に向いている。実際、コンピュータで扱う文字の形状データを収録したフォントデータの多くはベクター画像で表現されたアウトラインフォント(outline font)である。

ベクター画像を作成・編集するソフトウェアもあり、米アドビ社の「Adobe Illustrator」(アドビ・イラストレーター)などが有名である。汎用のベクター画像記録用の画像ファイル形式もいくつかあり、Illustrator標準の「AI形式」(.aiファイル)や、Webページなどでベクター画像を扱えるXMLベースの「SVG」(Scalable Vector Graphics)形式などがよく知られる。

ドローソフト 【ドローイングソフト】 ⭐⭐

画像の描画や編集を行うソフトウェアの一種で、画像を図形を組み合わせとして構成するベクター形式のイラストやデザインを作成するためのもの。

画面上でマウス操作やペン操作、タッチ操作により位置を指定して図形を描画していくソフトで、点や直線、曲線、多角形、円などの図形、アウトラインフォントの文字などを配置していき、これらに描画色を設定したり、囲まれた領域を塗りつぶすなどの編集を行って画像を作成する。

作成された画像は構成要素の点の座標や曲線方程式のパラメータなどの集合として表されたベクター画像として記述・保存されるため、算術的な変換により容易に変形や拡大・縮小を行うことができる。そのような変形処理によって画質が劣化しないという特徴がある。

1988年に初版が発売された米アドビ(Adobe)社の「Adobe Illustrator」(アドビ・イラストレーター)が本格的なプロ向けのソフトウェアとして広く普及している。他に米コーレル(Corel)社の「CorelDRAW」や、日本ではジャストシステムの「花子」などが有名で、「Inkscape」などのフリーソフトウェアもある。

主にベクター形式の画像を扱うソフトウェアとしては「CAD」(Computer Aided Design)ソフトなどもあるが、こちらは工業製品や建築物の設計図面の作成のための機能が充実しており、主にイラストレーションやグラフィックスの作成、デザインのために用いられるドローソフトとは区別される。

「Microsoft Visio」のようにダイアグラムなどの作図に特化したソフトウェアも、機能的な重複は大きいが主目的が異なるため区別されることが多い。ワープロソフトなどDTPソフトの中にも、線分や多角形、円、吹き出しなどドローソフトに似た簡易な作図機能を有するものは多くあり、この機能を「ドローツール」などと呼ぶこともある。

一方、同じ画像編集ソフトでも、画像を微細な色の付いた点(画素/ピクセル)の集合として取り扱うものを「ペイントソフト」と呼ぶ。絵画のようなきめ細かい描写や、写真の編集、合成などを行うことができるが、拡大や縮小、変形を行うと画質が劣化する。ドローソフトとは必要な画像の種類に応じて使い分ける必要がある。

彩度

色を表す属性の一つで、色の鮮やかさのこと。白・黒・灰色の無彩色で0となり、純色で最大値となる。彩度を用いる表色系では最大値を100とするパーセンテージで表すことが多い。

表色系によって詳細は異なるが、彩度が高いほど純粋で鮮やか、くっきりした色合いとなる。彩度を下げていくと白・黒・灰色に近づいていき、ぼんやりしたくすんだ色合いになる。一般に多くの種類の色を混ぜるほど彩度は下がっていく。

コンピュータ上の表色系でよく用いられるHLS(HSL)、HSV、HSBなどの色空間では「S」(Saturation)が彩度を表しており、0を最小として1あるいは100を最大とする尺度で表される。これらの体系では残りの二つの属性として、色味を表す「色相」(H:Hue)、明るさを表す「輝度」(L:Lightness)あるいは「明度」(B:Brightness)が用いられる。

明度

色を表す属性の一つで、色の明るさのこと。実際に放たれる光の強さのことではなく、色から受ける印象が明るいか暗いかを表す心理的な尺度である。

人間は色について「明るい色」「暗い色」という感覚を持っており、その度合いを何らかの尺度を用いて表したものを明度という。色合い・色味を表す「色相」(hue)、色の鮮やかさを表す「彩度」(saturation)と合わせて「色の三属性」という。

例えば、無彩色で考えると白が最も明度が高く、黒が最も明度が低い。灰色はその濃さに応じて両者の中間に位置する。彩度の高い色の場合には、明度が高いときに最もくっきりした色合いとなり、明度が0で彩度も色相も失われ黒になる。

色を数値で表す表色系では、黒を0、白を1または100とする尺度で表される。HSV色空間では「V」(Value)が明度を示している。似た表色系のHLS色空間(HSL色空間)などでは、ほぼ同じ概念を「輝度」(L:LightnessあるいはLuminance)と呼んでいる。

色相

色を表す要素の一つで、赤、青、緑などといった色合い、色味のこと。可視光線は波長の違いにより人の目にそれぞれ異なった色として映り、この色の違いや種類のことを色相という。

赤、青、緑、黄、橙、紫など、日常的によく用いられる色には名前がついているが、波長は連続量であり中間色は無数にある。色相の全体像は色味が連続的に変化する図で示され、帯状に表したものを「色相スケール」、円環状に表したものを「色相環」という。

色を表す要素には色相のほかに、色の明るさ(明度/輝度)と鮮やかさ(彩度)がある。これらを組み合わせて一つの色を表すことができ、こららを「色の三属性」または「色の三要素」という。例えば、同じ赤の色相でも、明度が低ければ「暗い赤」に、彩度が低ければ「くすんだ赤」になる。

コンピュータの表色系でも色相(H:Hue)を用いるものがあり、彩度(S:Saturation)、輝度(L:LightnessあるいはLuminance)と組み合わせたものを「HSL色空間」あるいは「HLS色空間」、輝度に替えて明度(V:ValueあるいはB:Brightness)を組み合わせたものを「HSV色空間」「あるいは「HSB色空間」という。

補色

色相環でちょうど反対の位置にある色の組み合わせのこと。また、ある色の反対側にある色のこと。

様々な色味を、対応する光の波長の連続的な変化に応じて円環状に並べたものを「色相環」(color circle)という。波長が最長の赤の隣に最短の紫を繋いで環状としている。この中で、ちょうど環の反対側にある色同士を補色という。

色相環の色と位置の対応関係は色の表現方法(表色系)によって微妙に異なるため、系によって色の組み合わせも異なるが、絵の具や印刷物など減法混色の系でよく知られるRYB色相環やマンセル色相環では「赤-緑」「黄-紫」「青-橙」の組み合わせがよく知られる。

補色の組み合わせは互いがくっきりと際立つ効果があるため、目立たせたい場所などに使うと効果的であるとされる。ただし、明度の赤い補色同士を直接隣り合わせると目がチカチカしてかえって見にくい状態になることがある。

類似色

色相環で隣や近くにある色の組み合わせのこと。また、ある色の近くにある別の色のこと。

様々な色味を、対応する光の波長の連続的な変化に応じて円環状に並べたものを「色相環」(color circle)という。波長が最長の赤の隣に最短の紫を繋いで環状としている。この中で、位置が近い色同士を類似色という。

色相環の色と位置の対応関係は色の表現方法(表色系)によって微妙に異なるが、おおむね赤-赤紫-紫-青紫-青-水色-エメラルドグリーン-緑-黄緑-黄-橙-赤の順に並んでいる。この中で、例えば、「黄-橙-赤」や「緑-水色-青」、「青紫-赤紫-赤」といった組み合わせが類似色となる。

配色で類似色の組み合わせを用いると統一感や安定感が増し、暖色の組み合わせであれば明るさや優しさ、寒色の組み合わせであれば落ち着きや涼しさなどを演出することができる。一方、色相環で反対側にある色同士の組み合わせは「補色」と呼ばれ、対照的で目立つ組み合わせとされる。

色相環 ⭐⭐

様々な色味を、対応する光の波長の連続的な変化に応じて円環状に並べたもの。波長が最長の赤の隣に最短の紫を繋いで環状としている。

光は波長の違いにより人の目にそれぞれ異なった色として映り、赤、青、緑といった人間が感じる色の種類(色味)のことを「色相」(hue)という。波長の変化に応じて連続的に色味が変化する様子を円環状に表したものを色相環という。

色と位置の対応関係は色の表現方法(表色系)によって微妙に異なるが、名前のある主な色で言うと赤-赤紫-紫-青紫-青-水色-エメラルドグリーン-緑-黄緑-黄-橙-赤の順に並ぶ。いわゆる「光の三原色」(赤・緑・青)や「色の三原色」(水色・薄紫・黄)は、概ね各色が120度ずつ離れた配置となる。

色相環で隣や近くにある色同士を「類似色」、中心を挟んでちょうど反対側にある色同士を「補色」という。補色については表色系によって色の組み合わせも微妙に異なるが、絵の具や印刷物など減法混色の系でよく知られるRYB色相環やマンセル色相環では「赤-緑」「黄-紫」「青-橙」などが補色となる。

三原色

混合すると様々な色を表現することができる、元となる色のこと。発光体における赤・緑・青の「光の三原色」と、反射体におけるシアン・マゼンタ・イエローの「色の三原色」がある。

光の三原色と加法混色

人間の視覚は主に赤(red)・緑(green)・青(blue)の各色の光に強く反応する色覚受容体で構成され、これらの組み合わせとして様々な色を知覚している。この三色を「光の三原色」と呼び、各色の頭文字を取って「RGB」(Red-Green-Blue)という略号で表される。

テレビやディスプレイ装置の表示画面や照明のような発光体の色はこの三色の組み合わせにより表現される。三色の強度を高めるほど色が明るくなっていき、三色とも最大の強度で足し合わせると白色となる。このような混色系を「加法混色」という。

色の三原色と減法混色

印刷物など光の反射体の色は、シアン(cyan:濃い水色)、マゼンタ(magenta:薄紫)、イエロー(yellow:黄色)の三色の組み合わせによって表現することができる。この三色を「色の三原色」と呼び、各色の頭文字を取って「CMY」(Cyan-Magenta-Yellow)の略号で表される。

この三色は白色光から光の三原色のいずれか一つを遮った(残りの二色を同強度で混合した)色である。シアンとマゼンタを混ぜると青に、マゼンタとイエローを混ぜると赤に、イエローとシアンを混ぜると緑になるという関係にある。

我々は色の三原色の混合を絵の具の色を混ぜることにより身近に体験している。三色の強度を高めるほど色は暗くなっていき、三色を最大の強度で足し合わせると(理屈の上では)黒色となる。このような混色系を「減法混色」という。

光の三原色 ⭐⭐

発光体の色のうち、組み合わせることで様々な色を合成することができる、赤・緑・青の三つの原色のこと。各色の頭文字を取って「RGB」(Red-Green-Blue)という略号で表される。

人間の視覚は主に赤・緑・青の各色の光に強く反応する色覚受容体で構成されているため、この三色の光を様々な強さで組み合わせることで、任意の色を構成することができる。実際には、緑は明るい黄緑に近い色、青はわずかに紫がかった群青に近い色が用いられる。

テレビやディスプレイ装置など発光して像を映し出す装置では、表示面にこの三色に対応する微細な発光素子が敷き詰められており、それぞれの強さを制御して各点の色を表現している。各色の強度を高めるほど色が明るくなっていき、三色とも最大の強度で足し合わせると白色、最低の強度で黒色となる。このような混色系を「加法混色」という。

一方、絵の具や印刷物のインクなど光の反射体の色は、シアン(cyan:濃い水色)、マゼンタ(magenta:薄紫)、イエロー(yellow:黄色)の三色の組み合わせによって表現することができる。この三色を「色の三原色」と呼び、各色の頭文字を取って「CMY」(Cyan-Magenta-Yellow)の略号で表される。

加法混色 ⭐⭐

光(光源、発光体)で様々な種類の色を表現するときの色の混合方法。最も一般的な方式は、赤(Red)、青(Blue)、緑(Green)のいわゆる「光の三原色」を混合してすべての色を表現する手法で、そのような系を三色の頭文字を取って「RGB」と呼ぶ。

RGBによる加法混色の系では、赤と緑を混ぜると黄色、オレンジ色、茶色を、青と緑を混ぜると水色を、赤と青を混ぜると紫色を、三色を同じ強度で混ぜると黒、灰色、白を、それぞれ表現することができる。

これに対し、光を反射する媒体で色を表現する場合の色の混合方法は「減法混色」という。コンピュータのディスプレイ装置などは加法混色の系で、印刷物などは減法混色の系(CMYやCMYKなど)であるため、コンピュータで作成した文書などを印刷するためには系の変換が必要になる。

色の三原色 ⭐⭐

印刷物など光の反射体の色のうち、組み合わせることで様々な色を合成することができる、シアン(cyan:濃い水色)、マゼンタ(magenta:薄紫)、イエロー(yellow:黄色)の三色の組み合わせ。各色の頭文字を取って「CMY」(Cyan-Magenta-Yellow)の略号で表される。

人間の視覚は主に赤・緑・青の各色の光に強く反応する色覚受容体で構成されているため、この三色の光を様々な強さで組み合わせることで、任意の色を構成することができる。これを「光の三原色」と呼び、各色の頭文字を合わせて「RGB」(Red-Green-Blue)という。

色の三原色は外光の反射によって色を発する物体における原色で、白色光から光の三原色のいずれか一つを遮った(残りの二色を同強度で混合した)色である。シアンとマゼンタを混ぜると青に、マゼンタとイエローを混ぜると赤に、イエローとシアンを混ぜると緑になるという関係にある。

我々は色の三原色の混合を絵の具の色を混ぜることにより身近に体験している。三色の強度を高めるほど色は暗くなっていき、三色を最大の強度で足し合わせると(理屈の上では)黒色となる。このような混色系を「減法混色」という。

白、黒、灰色といった無彩色は、理論上は三原色を同量ずつ混合することにより作り出すことができる。発光体の制御と異なり着色剤の混合で灰色や黒を作ろうとするとくすんだ汚い色になってしまうため、印刷などの実用上は灰色や黒の着色剤を三色と別に用意することが多い。そのようなカラーモデルを「CMYK」という。「K」は黒色印刷に用いる冶具 “key plate” に由来する。

減法混色 ⭐⭐

光を反射する媒体で様々な種類の色を表現するときの色の混合方法。最も一般的な方式は、水色(Cyan:シアン)、赤紫色(Magenta:マゼンタ)、黄色(Yellow:イエロー)の三色を原色として、これらの混合によりすべての色を表現する手法で、そのような系を三色の頭文字を取って「CMY」と呼ぶ。

CMYによる減法混色の系では、シアンとマゼンタを混ぜると青を、マゼンタとイエローを混ぜると赤を、イエローとシアンを混ぜると緑を、三色を同じ強度で混ぜると黒、灰色、白を、それぞれ表現することができる。印刷などで用いる場合には、カラーインクの混合でモノトーンを表現するとくすんだ汚い色になりがちなため、灰色や黒のインクを別に用意することが多い。三原色に黒を追加した系を「CMYK」という。

これに対し、光(光源、発光体)で色を表現する場合の色の混合方法は「加法混色」という。コンピュータのディスプレイ装置などは加法混色の系(RGBなど)で、印刷物などは減法混色の系であるため、コンピュータで作成した文書などを印刷するためには系の変換が必要になる。

階調 【階調数】 ⭐⭐⭐

コンピュータが画像を扱う際に、色の濃さや明るさを何段階で表現することができるかを表す数。この数が大きいほど細かな色や明るさの違いを表現できるが、画素あたりのデータ量は増大する。

自然界では色は光の波長によって異なり、連続量の一種だが、コンピュータで画像を扱う際にはこれを離散量(有限桁の数値)に変換する必要がある。その際、ある色の最も明るい(濃い)状態と暗い(薄い)状態の間を何段階で識別・表現することができるかを表す値が階調である。

モノクロの階調

最も単純な階調は白黒画像(モノクロ2階調)であり、すべての画素が真っ白と真っ黒のいずれかで表現される。色は「0」(黒)と「1」(白)の2値で識別され、各画素につき1ビットで表現することができる。

一方、一般に「モノクロ画像」あるいは「グレースケール画像」と呼ばれるものは白と黒の中間に明るさ(濃さ)の異なる複数の灰色を表現することができるものを指すことが多い。よく用いられる256階調(各画素の情報量は8ビット)のモノクロ画像では、白、黒、254段階の灰色の計256色を表現できる。

カラーの階調

カラー画像の場合は色を複数の原色に分解し、各色の階調の組み合わせで表現できる色の数が決まる。コンピュータ上で画像データを扱う際には色を赤(Red:R)・緑(Green:G)、青(Blue:B)の「光の3原色」に分解し、それぞれを同じ階調で表現することが多い。

人間の目にとって自然の光景と区別がつかない表現は、この各色について256段階(8ビット)程度の階調が必要であると言われており、これを「フルカラー」(full color)あるいは「トゥルーカラー」(true color)という。256の3乗で1677万7216色を表現することができる。

通常の用途ではフルカラーで十分なことが多いが、赤外線暗視映像のように特定の色味しか現れない特殊な表現の場合は単色256階調では色の境界が階段状になってしまうなど表現力が不足する場合がある。そのような状況にも対応できるよう、業務用の機器などでは内部的に各色10ビット(1024階調)や12ビット(4096階調)で表現するものもある。

24ビットカラー 【1677万色】

コンピュータが扱う色情報の種類・範囲やその表現方法の一つで、24ビットの値で色を識別する方式。最大で1677万7216色を表現することができる。

光の三原色である赤・緑・青(RGB:Red Green Blue)をそれぞれを8ビット(256段階)で表し、24ビットで色情報を表現する。通常使用する範囲では人間の目にはほとんど色の違いがわからないほど自然な表現が可能なため、コンピュータや録画・撮影機器、表示機器、および画像データや動画データは、24ビットカラーを取り扱える最大の色数とするものが多い。

24ビットの色情報に加えて8ビットの追加の情報を加え、1画素あたり32ビットで表す方式は「32ビットカラー」という。8ビットは256段階の透明度(透過度)を表すのに用いることが多いが、単に32ビット単位でデータを扱うために何も記録しない場合もある。

24ビットカラーと32ビットカラーを合わせて「フルカラー」(full color)あるいは「トゥルーカラー」(true color)と呼ぶこともあるが、24ビットをフルカラー、32ビットをトゥルーカラーと呼び分ける場合もある。あまり一般的ではないが、16ビットや32ビット以上も含め原色の階調情報を組み合わせた色表現方式の総称をフルカラー、そのうち24ビットあるいは32ビットの方式をトゥルーカラーとすることもある。

周波数

規則正しく繰り返される現象の、単位時間あたりの繰り返し回数のこと。1秒あたりの繰り返し数を「Hz」(ヘルツ)という単位で表す。

音や光、電波、電気信号などの性質の記述によく用いられ、1秒間に1回繰り返す現象は1Hzとなる。1回の繰り返しにかかる時間の長さを「周期」(cycle)というが、これは周波数の逆数となる。

クロック周波数

コンピュータ内部の回路間や装置間の通信、デジタル伝送方式による機器間の通信などでは、信号を伝送するタイミングを揃えるためにクロック信号と呼ばれる周期的な電気信号を利用する。

このクロック信号の周波数が高ければ高いほど、単位時間あたりに多数の伝送や処理を行うことができ、伝送速度や処理性能を高めることができる。

1970年代の初期のマイクロプロセッサは数百kHz(キロヘルツ:1kHzは1000Hz)で動作していたが、半導体技術の急速な発展により現代では数GHz(ギガヘルツ:1GHzは10億Hz)で動作するチップが一般的になっている。

電磁波の周波数

電磁波は周波数により大きく特性が異なり、周波数の範囲によって呼び名が代わる。真空中では光速を周波数で割ると波長に、波長で割ると周波数になるという関係にある。

概ね3THz(テラヘルツ:1THzは1兆Hz)以下のものは「電波」(radiowave)と呼ばれ、放送や通信、レーダーなど様々な用途で広く活用されている。

概ね400~800THzは人間の目に光として認識される「可視光線」(visible light)で、単に光とも呼ばれる。人間の視覚は光の周波数の違いを色の違いとして知覚し、例えば最も低い領域は赤く、最も高い領域は紫に見える。可視光と電波の中間は「赤外線」(infrared:「赤い光より低い」の意)、可視光より高い周波数は「紫外線」(ultraviolet:「紫の光より高い」の意)である。

紫外線より高く、概ね30PHz(ペタヘルツ:1PHzは1000兆Hz)以上の領域は「X線」(エックス線)、さらに高い3EHz(エクサヘルツ:1EHzは100京Hz)程度より上の領域は「γ線」(ガンマ線)と呼ばれ、両者は放射線の一種に分類される。

音波の周波数

音は周波数によって高さが決まり、小さい周波数の音は低く、大きな周波数の音は高く聞こえる。人間の聴覚で聞き取れる可聴周波数は概ね20~20000Hz(20kHz)程度と言われ、それより低い低周波音や高い超音波は聞くことができない。

この範囲には個人差があるほか、加齢により高音(上限に近い周波数の音)が次第に聞こえなくなっていくことが知られている。動物の中にはこのような人間には聞こえない低いあるいは高い音を利用してコミュニケーションや反響定位(エコーロケーション)を行うものもいる。

Hz 【Hertz】

周期的な現象の頻度を表す単位で、1秒あたりの生起回数(毎秒何回起きるか)を示したもの。1ヘルツは毎秒1回を意味し、周波数や振動数の単位として用いられる。

国際単位系(SI)に定められた単位で、19世紀に電磁波の研究をしていたドイツの物理学者、ハインリヒ・ヘルツ(Heinrich Rudolf Hertz)の名に由来する。基本単位の組み合わせ(組立単位)としては秒(s:second)を用いてその逆数「/s」「s-1」で表される。

ヘルツは周期が一定の現象についてのみ用いられ、同じ1秒あたりの数を表していても、ランダムに起きる事象の頻度などには「/s」(毎秒)が、1秒あたりの原子核の崩壊数については「Bq」(ベクレル)が用いられる。

ITの分野では、無線電波の周波数や電子回路の同期信号(クロック信号)の周波数、音声のサンプリング周波数などの単位としてなじみ深い。値が大きい場合は接頭辞をつけて、1000倍を「kHz」(キロヘルツ)、100万倍を「MHz」(メガヘルツ)、10億倍を「GHz」(ギガヘルツ)、1兆倍を「THz」(テラヘルツ)のように呼ぶ。

サンプリング周波数 【標本化周波数】 ⭐⭐

アナログ信号をデジタルデータに変換する際に、信号の変位を測定するサンプリング(標本化)を行う頻度。1秒間に何回サンプリングを行うかをHz(ヘルツ)で表す。

音声など連続的に変化する物理量をデジタルデータとして記録するには、ある瞬間の信号の変位量を測定するサンプリングを行い、得られた測定値を一定の桁数の離散値で表す量子化を行う。

この変換処理の頻度が標本化周波数で、周波数が高いほど短いサンプリング周期で頻繁に標本を得るため、もとの信号をより忠実に記録することができるが、その分だけ変換後の単位時間あたりのデータ量は増大する。

サンプリング定理により、標本化周波数の半分の周波数の信号まで正しく再現できるとされる。例えば、音声信号の場合、人間の耳に聞こえる最も高い音は20kHz(キロヘルツ)程度とされるため、音楽CDなどの標本化周波数は44.1kHzに設定されている。

サンプリング周期 【サンプリング間隔】

アナログ信号をデジタルデータに変換する際に、信号の変位を測定するサンプリング(標本化)を行う周期。ある瞬間に信号の標本を得てから次の標本を得るまでの間隔を秒で表す。サンプリング周波数の逆数。

音声など連続的に変化する物理量をデジタルデータとして記録するには、ある瞬間の信号の強度や変位量を測定するサンプリングを行い、得られた測定値を一定の桁数の離散値で表す量子化を行う。

この標本化処理は一定の周期で行われ、その間隔を標本化周期という。周期が短ければ短いほど高頻度で標本を得るため、もとの信号をより忠実に記録することができるが、その分だけ変換後の単位時間あたりのデータ量は増大する。

通常、標本化の頻度は周期の逆数であるサンプリング周波数で表される。例えば、周期が0.01秒であれば、周波数は100Hz(ヘルツ)で表される。音楽CDなどに記録されている音声信号は人間の耳が聞き取れる可聴音(約20kHzまでの音波)を収録するため44.1kHz(44100Hz)でサンプリングされているが、これは標本化周期で表すと1/44100で約0.0000227秒、22.7マイクロ秒となる。

標本化定理 【サンプリング定理】

アナログ信号をデジタル信号に正確に変換するには、元の信号の最大周波数の2倍のサンプリング周波数で標本化すればよいことを示した定理。

アナログ信号をデジタル化するには、一定の周期で振幅を計測して離散値に変換するサンプリング(標本化)処理を行う。この周期が短い(サンプリング周波数が高い)ほど、より高い精度で元の波形を記録することができるが、その分だけデジタル化後のデータ量は増大する。

どの程度のサンプリング周波数で記録すれば正確に元の波形を再構成できるかを示したのが標本化定理で、元の信号に含まれる最も高い周波数の2倍を超えるサンプリング周波数なら、デジタル化された後のデータから元のアナログ信号の波形を正確に再現できることを示している。

これは、デジタル化された信号からはサンプリング周波数の半分の周波数までの信号しか正確に復元できない、と表現することもできる。この再現可能な最大周波数(サンプリング周波数の半分)のことを「ナイキスト周波数」(Nyquist frequency)という。

PCM 【Pulse Code Modulation】 ⭐⭐

音声などのアナログ信号をデジタルデータに変換する方式の一つ。信号の強度を一定周期で標本化(サンプリング)したもの。そのまま保存すれば非圧縮音声データとなる。

音波をマイクなどでアナログ電気信号に変換し、その強度をサンプリング周波数に従って一定周期で測定する。各測定値は定められた量子化ビット数の範囲で整数値として記録する。

例えば、CDの音声はサンプリング周波数44.1kHz(キロヘルツ)、量子化16ビットのPCM方式で記録される。これは毎秒44,100回信号を測定し、その強度を65,536(216)段階の値で表していることを意味する。

サンプリング周波数と量子化ビット数を高めるほど高品質のデータを得ることができるが、その分データ量は増大する。標本化定理により、サンプリング周波数の半分の周波数までの信号は再現可能とされており、これを「ナイキスト周波数」という。

音声の場合は人間の可聴音の上限が20kHz程度であることが知られており、40kHzを超えるサンプリング周波数を用いれば録音データからおおむね自然な音が再生できるようになると言われる。

通常のPCM方式は「リニアPCM」(LPCM:Linear PCM)とも呼ばれ、毎回の標本化で得られたデータを単純に順番に並べた形式だが、一つ前のデータとの差分を記録していく方式を「DPCM」(Differential PCM:差分PCM)という。

さらに、DPCMの各標本の量子化ビット数を直前の標本の変動幅に応じて適応的に変化させる方式を「ADPCM」(Adaptive Defferential PCM:適応的差分PCM)という。PCMとほぼ同じ品質を保ちながら符号化後のデータ量を削減できるため、実用上はこちらが用いられることも多い。

AAC 【Advanced Audio Coding】

MPEG-2およびMPEG-4の一部として規定されている、音声の圧縮符号化方式の一つ。主に動画データに付随する音声データの記録に用いられるが、単体の音声ファイルとしても用いられることがある。

MPEG形式の動画データに含まれる音声データの標準圧縮方式の一つで、MPEG-1に採用され広く普及した「MP3」(MPEG-1 Audio Layer-3)の後継として、1997年にISOとIECが共同で標準規格を策定した。音声ファイル単体の圧縮方式としてもよく利用される。

サンプリング周波数は最大96kHz、使用できるチャンネル数は最大48チャンネルとなっており、MP3の48kHz、2チャンネルから大幅に拡張されている。圧縮方式の改良により、MP3に比べ同じ程度の音質なら1.4倍ほど効率よく圧縮することができるとされる。

MPEG形式の動画に付随する音声の記録に用いられ、AVIやMOV、MP4、Matroska(.mkvファイル)、MPEG-2 TS(.m2tsファイル)などの動画ファイルに含まれることがある。単体で音声ファイルとして記録されることもあり、音声ファイル形式として.m4aファイルや.aacファイル、.3gpファイル、.3g2ファイルなどが用いられる。

仕様のバリエーション

様々な拡張機能が用意されており、用途に応じて「プロファイル」(profile)と呼ばれる機能や設定値の組み合わせが定義されている。標準として設計されたのは「AAC-Main」方式だが、一般的な用途では基本機能のみで最も処理負荷の軽い「AAC-LC」(Low Complexity)が用いられることが多い。

MPEG-2規格(ISO/IEC 13818)に含まれる仕様(MPEG-2 AAC)と、これを拡張したMPEG-4規格(ISO/IEC 14496)に含まれる仕様(MPEG-4 AAC)がある。基本仕様は同一であり、通常はあまり区別されない。MPEG-4規格では低ビットレート時の音質を改善する拡張仕様が追加され、「HE-AAC」あるいは「aacPlus」と呼ばれる。

H.264 【MPEG-4 AVC】

2003年5月にITU-T(国際電気通信連合)によって勧告された、動画データの圧縮符号化方式の標準規格。2010年代に動画配信やデジタルテレビ放送、デジタルビデオカメラなどで広く普及した。

H.264は携帯電話のテレビ電話といった低画素数、低画質の用途から、HD画質のデジタルテレビ放送などの高画素数、高画質の動画まで幅広い用途に用いることができる。前世代のMPEG-2やH.263に比べ圧縮効率が改善されており、同じ画質なら概ね半分程度のデータ量で済むようになっている。

2007年にISOとIECによってMPEG-4規格の追加仕様(MPEG-4 Part 10)の一つとして「Advanced Video Coding」(AVC)の名称で同じ内容が勧告されているため、「H.264/MPEG-4 AVC」「H.264/AVC」のように両者の呼称を併記することが多い。

H.264の符号化の基本的な方式はH.263などの従来方式を踏襲しており、動き補償、フレーム間予測、DCT(離散コサイン変換)、エントロピー符号化などを組み合わせたアルゴリズムを利用する。それぞれの技術について、浮動小数点演算を整数演算で代替するなど処理方式を改良したり、新しい技術を取り込むことにより従来方式よりも優れた圧縮率を達成している。

フレーム予測技術や圧縮符号化方式(圧縮アルゴリズム)に関していくつかの方式から選べるため、それらの組み合わせが「プロファイル」として複数定義されている。目的に応じて使い分けることで、要求される処理性能やビットレートの違いに柔軟に対応できる。

MPEG-4では当初別の動画圧縮方式が定義されていたが、より効率の良いAVC方式が策定されたことにより、2000年代後半以降はこのAVC形式が一般的となっている。MP4ファイルに格納される動画データの大半は実際にはこの形式である。

一部のデジタル放送方式やAVCHDおよびAVCREC、Blu-ray Discのコーデックの一つにも採用されている。Adobe FlashのFlash Video(FLV)のコーデックに採用されたことからインターネット上の動画共有サービスなどにも広く採用された。現在はFlashが廃止されたこともありネット上の動画形式は後継世代のVP9やAV1、H.265などへ移行中である。

MPEG-4 【Moving Picture Experts Group phase 4】

動画・音声データの圧縮方式の国際的な標準規格の一つ。ISO(国際標準化機構)とIEC(国際電気標準会議)の合同作業部会であるMPEG委員会がMPEG-2に次いで策定した規格で、1999年にISO/IEC 14496として最初の仕様が発行された。

MPEG-1/2の主な用途として想定された蓄積型メディア、放送・通信などに加え、携帯端末や携帯データ通信の普及を見据え、低速な通信回線でも実用に耐える仕様として規格化が進められた。動画・音声データの圧縮・符号化(正確には復号)方式の標準に加え、データを格納するためのファイルフォーマットや様々な映像関連技術の標準仕様を規定している。

圧縮符号化方式

MPEG-4における動画圧縮方式は二つあり、一つは当初規定された「ISO/IEC 14496-2」である。これは以前に標準化されたMPEG-1/2およびITU-TのH.263標準を参考に、離散コサイン変換(DCT)やエントロピー符号化、動き補償、フレーム間予測などの技術を基盤に構成され、さらに人間の体や顔(表情)などを3Dグラフィックスで合成する技術など野心的な仕様も盛り込まれた。

もう一方は2007年に追加された「ISO/IEC 14496-10」、通称「MPEG-4 AVC」(Advanced Video Coding)である。ISO/IECがITU-T(国際電気通信連合・電気通信標準化セクタ)と共同で策定したため、ITU側では同じ規格を「H.264」として標準化している。現代では一般にMPEG-4形式という場合はこちらを指すことが多い。

ISO/IEC 14496-2が撮影された映像の圧縮に留まらず様々な映像生成・制御技術を取り込んで肥大化してしまい、そのほとんどが利用されなかった反省を踏まえ、AVCは一般的な動画の圧縮・伸張に特化した仕様となっている。浮動小数点演算を整数演算で代替するなど処理方式を改良することにより、同じ画質でより高い圧縮率を得ることができる。

音声の圧縮方式「MPEG-4 Audio」では数十の形式を規定しており、情報の損失のないロスレス圧縮方式や楽器の演奏データを表現するMIDI形式などが利用できるようになった。最もよく使われる形式はMPEG-2 AACとほぼ同じMPEG-4 AAC形式だが、用途に応じてLC-AAC(Low Complexity AAC)やHE-AAC(High Efficient AAC)などの派生形式が追加された。

格納形式と用途

MPEG-4では米アップル(Apple)社のQuickTime技術を元に動画・音声を格納するための「MP4ファイル形式」を定めており、一般的には「.mp4」という拡張子が用いられる。ファイル形式は符号化方式とは分離されており、様々な形式のデータを格納できるため、MP4ファイルであっても動画や音声の圧縮方式がMPEG-4のものであるとは限らない。

MPEG-4は携帯電話の動画形式の標準である3GPP形式/3GPP2形式や、Blu-ray Discの動画記録形式の標準の一部、地上デジタル放送の移動体受像機向けの1セグメント放送(ワンセグ放送)などに採用され、デジタルカメラやデジタルビデオカメラ、スマートフォンの動画撮影・録画機能の動画形式としてもよく利用されている。また、インターネット上のサービスやコンテンツにおける標準的な動画形式として広く普及している。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる