エンコード

アナログ信号やデジタルデータに対する操作
デコードから転送)

エンコード: encode)、符号化(ふごうか)は、アナログ信号やデジタルデータといった情報を、特定の方法で復元可能な別の状態に変換する処理である。対義語はデコード: decode)で、エンコードされた情報を元に戻す復号(ふくごう)の意味を持つ。

一般的にエンコードおよびデコードに用いる機器、回路、プログラムなどをそれぞれ、エンコーダ: encoder、エンコーダーとも)およびデコーダ: decoder、デコーダーとも)と称する。狭義では、音声や動画などのコーデックを用いるデータ圧縮・展開処理を指す。

アナログ信号のエンコードとデコード

編集

録音機器のノイズリダクションで用いられたdbxは、音声信号の大小で増幅率が変化する増幅器を用い、音量の変化を対数比1/2に抑えて録音して再生時に2倍にする。録音機やテープ由来の雑音と歪みは信号に比して小さく、再生時に対数伸長すると一層小さくなり、相対的に可聴音域のSN比が低下する。似た原理の雑音低減装置がHiFiビデオやカセットレコーダに広く用いられた。

ディスクリート4chのレコードで、サブキャリアを変調し重畳して記録することもエンコードと呼ばれた。

FMラジオ放送やLPレコード、アナログテープレコーダでも、クラシック音楽では振幅が比較的小さい高音の成分を予め強調して放送/録音し、再生時に高音を減衰させる方法が取られた。DATCDDTRSのようなデジタル機器でも、同様な方法で見かけの量子化雑音を減らす機能がある。これらは通常エンファシスと呼ぶ。中波放送で放送法に触れない程度まで高域を強調する装置もあった。RIAA特性も参照。

デジタルデータのエンコード/デコード

編集

エンコードは、デジタルデータを一定の法則で目的に応じた符号に変換する符号化作業である。符号化方式に詳述がある。逆変換をデコードと呼ぶ。

音声・静止画・動画などのマルチメディアデータ圧縮や一般的なデジタルデータファイル全般の圧縮あるいは暗号化を指す場合もある。もともとcode(コード)という語は、「符号」や「符号化する」という意味のほかに、「暗号」や「暗号化する」という意味も持つ英単語である[1][2]。ただし、セキュリティ対策手法の意味で「暗号化」を指すときは、英語では一般的に動詞encrypt(エンクリプト)[3]や名詞encryption(エンクリプション)[4]を使い、明確に区別される。日本語では「暗号化」の対義語として「解読」のほかに「復号」も使われるが、英語の対義語は動詞decrypt(デクリプト)[5]や名詞decryption(デクリプション)[6]である。

エンコード機能を有するソフトウェアやハードウェアを「エンコーダ」と称し、逆に復号する機能を有するものを「デコーダ」と称する。情報の通信記録を行う装置によっては、エンコーダとデコーダの両方を備える場合があり、このような双方向の変換機能あるいは変換装置、アルゴリズムなどはコーデックと総称する。

コンピュータマイクロプロセッサでは、与えられた機械語を内部表現として解釈することをデコードと呼び、その論理回路をデコーダと呼ぶ。デコーダを中心に、命令とデータを収集し、演算部に情報を送る機構全体はフロントエンドと称する。

符号化方式

編集

エンコードとデコードで同じ符号化方式(ある順変換とそれに対応する逆変換)を使うことによって、符号から正しいデータが復元されることが担保される。デジタルデータの伝送はこの前提で成り立っている。しかし、異なる方式を用いると符号は正しく復元されず、意味のないデータが生成され、判読不可となる。文字符号化方式の場合は異なる文字コードを使用すると誤った文字に変換され、文字化けの原因となる。例えばShift_JIS形式で記述されているWebページのHTMLファイルをISO-2022-JP形式またはUTF-8Unicode)形式として読み込むと文字化けする[注釈 1]

HTMLエンコード

編集

例えば「&」「<」「>」「"」といった、HTMLとして特殊な意味を持つ文字(特殊文字またはメタ文字)を、意味を持たない別の文字列に置換することを「HTMLエンコード」と呼ぶ。前述の特殊文字の場合は「&amp;」「&lt;」「&gt;」「&quot;」に置換する。この処理を怠ると、input要素などで、メタ文字として扱われるデータの入力を許すことになる。これはクロスサイトスクリプティングなどの脆弱性(セキュリティホール)の原因になる[7][8]

URLエンコード

編集

URLURI)として直接使用できない文字を表現するため、パーセント記号%)を使用して符号化する方式をパーセントエンコーディングと呼ぶ。「URLエンコード」や「URIエンコード」と呼ばれることもある[9]

ハードウェアエンコード/デコード

編集

デジタルカメラデジタルビデオカメラでは、デジタルセンサーから取得した生のマルチメディアデータを加工して、補助記憶装置(ストレージデバイス)に次から次へと符号化しながら静止画や動画のファイルとして保存していく。これらは特にリアルタイム性(即応性)が重要視され、高速かつ高スループットのパイプライン処理性能が欠かせないため、専用設計のICチップがハードウェアエンコーダとして採用される[10]JPEGH.264といった、特によく使われる符号化方式は、機器固有のネイティブデータ形式とともに、専用のICチップに固定機能としてハードウェアレベルで実装されている。

パーソナルコンピュータの場合、ソフトウェアによるエンコード/デコード処理は、デジタルデータに対して任意の符号化方式を柔軟に実装することが可能であるが、高解像度・高精細なメディアデータを大量に処理するのはCPUへの負荷が高い。そのため、パイプライン処理や並列処理に特化したGPUなどによるハードウェアアクセラレーションを活用してCPUの負担を減らすこともよくある[11]。特に動画再生は、画面描画処理を担当するGPUに任せることで、エンコード(圧縮)されたデータをビデオメモリに転送し、画面表示の際に都度デコード(展開)するだけで済むため都合がよい。描画時にGPUによってフレームをリアルタイムに補間することで、実際に記録されている動画データのフレームレート以上に再生を滑らかに見せる技術も開発されている[12]。モバイルデバイスの場合、SoCにハードウェアコーデックが実装されていることが多い。オペレーティングシステムの提供するAPIを利用することで、アプリケーションソフトウェアはハードウェアでサポートされているコーデックを必要に応じて選択・利用することができる[13][14]。オンライン会議などで使用される配信用アプリでは、Webカメラによってキャプチャされた動画および音声のデータを圧縮しつつネットワーク経由で受信者にブロードキャストしていくが、エンコード/デコードを対応ハードウェアに任せることでCPUの負担を軽減できる。

デジタル機器におけるエンコーダー/デコーダーの凡例

編集

脚注

編集

注釈

編集
  1. ^ Shift_JISのシーケンスには、UTF-8のシーケンスとしては不正なものも含まれるため、表示環境によっては何も表示されなくなることもある。
  2. ^ 民生の録画機・録音機は現実的には録画・再生兼用機器。
  3. ^ デジタル放送のダイレクト録画にはエンコーダは不要(アナログ放送のデジタル録画にはエンコードが不可避となる)。エンコーダが必要な場合は以下の通り。
    • デジタル放送の非ダイレクト録画
    • デジタル放送のダイレクト記録が不可能なメディアへのダビング
    • 記録可能時間を変更(圧縮率を変更)したダビング
  4. ^ デジタル放送地上波放送BS放送CS放送全て(単載、混載を問わない)を含む。
  5. ^ エンコーダ/デコーダを搭載する機器としての観点から言えば、デジタル放送のテレビやチューナーもデジタル映像再生専用機の一部であるとも言えるが、放送波からデジタルコンテンツとしてのデータを取り出す機能も併載しているという点が明確に異なることから別項目として解説している。
  6. ^ デジタル放送受信機で録画機能付きのものは広義として、あるいはこの項目(記事)内の扱いとしては録画機に含まれる。但しデジタル放送をダイレクトに録画(エンコードが不要な録画)するものはデコーダのみ。ダイレクト録画が不可能なものに録画やダビングする機能がある場合はエンコーダ(この場合のエンコードは総論としては映像の再エンコードに当たる)の搭載も必要になる。

出典

編集

関連項目

編集