# エンコード

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

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

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

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

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

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

## デジタルデータのエンコード／デコード

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

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

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

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

### 符号化方式

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

### HTMLエンコード

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

### URLエンコード

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

→詳細は「パーセントエンコーディング」を参照
### ハードウェアエンコード／デコード

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

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

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

* デジタル映像・音楽再生専用機
例：DVDプレーヤ、CDプレーヤ、MDプレーヤ、ダウンロード音楽プレーヤなど
搭載機能：デコーダのみ（再生用）
* デジタル映像録画機・デジタル音楽録音機
例：BDレコーダ、DVDレコーダ、D-VHSレコーダ、CDレコーダ、DATレコーダ、MDレコーダ（Hi-MDレコーダ含む）、リニアPCMレコーダ（一部のICレコーダ含む）、デジタルビデオカメラ、録音機能付きダウンロード音楽プレーヤ、HDDレコーダなど
搭載機能：デコーダ（再生用）／エンコーダ（録画／録音用）を併載
* デジタル放送受信機
例：デジタル放送対応テレビ、デジタル放送受信チューナー
搭載機能：デコーダ（再生用）のみ

* 文字コード
* データ圧縮
* コーデック
* トランスコード
* 復号手法
* ゲーデル数
* パルス符号変調
* 音声符号化
* コード (暗号)
* Base64