エンコードとデコードで同じ符号化方式(ある順変換とそれに対応する逆変換)を使うことによって、符号から正しいデータが復元されることが担保される。デジタルデータの伝送はこの前提で成り立っている。しかし、異なる方式を用いると符号は正しく復元されず、意味のないデータが生成され、判読不可となる。文字符号化方式の場合は異なる文字コードを使用すると誤った文字に変換され、文字化けの原因となる。例えばShift_JIS形式で記述されているWebページのHTMLファイルをISO-2022-JP形式またはUTF-8(Unicode)形式として読み込むと文字化けする[注釈 1]。 例えば「&」「<」「>」「"」といった、HTMLとして特殊な意味を持つ文字(特殊文字またはメタ文字)を、意味を持たない別の文字列に置換することを「HTMLエンコード」と呼ぶ。前述の特殊文字の場合は「&」「<」「>」「"」に置換する。この処理を怠ると、input要素などで、メタ文字として扱われるデータの入力を許すことになる。これはクロスサイトスクリプティングなどの脆弱性(セキュリティホール)の原因になる[7][8]。 URL(URI)として直接使用できない文字を表現するため、パーセント記号(%)を使用して符号化する方式をパーセントエンコーディングと呼ぶ。「URLエンコード」や「URIエンコード」と呼ばれることもある[9]。詳細は「パーセントエンコーディング」を参照 デジタルカメラやデジタルビデオカメラでは、デジタルセンサーから取得した生のマルチメディアデータを加工して、補助記憶装置(ストレージデバイス)に次から次へと符号化しながら静止画や動画のファイルとして保存していく。これらは特にリアルタイム性(即応性)が重要視され、高速かつ高スループットのパイプライン処理性能が欠かせないため、専用設計のICチップがハードウェアエンコーダとして採用される[10]。JPEGやH.264といった、特によく使われる符号化方式は、機器固有のネイティブデータ形式とともに、専用のICチップに固定機能としてハードウェアレベルで実装されている。 パーソナルコンピュータの場合、ソフトウェアによるエンコード/デコード処理は、デジタルデータに対して任意の符号化方式を柔軟に実装することが可能であるが、高解像度・高精細なメディアデータを大量に処理するのはCPUへの負荷が高い。そのため、パイプライン処理や並列処理に特化したGPUなどによるハードウェアアクセラレーションを活用してCPUの負担を減らすこともよくある[11]。特に動画再生は、画面描画処理を担当するGPUに任せることで、エンコード(圧縮)されたデータをビデオメモリに転送し、画面表示の際に都度デコード(展開)するだけで済むため都合がよい。描画時にGPUによってフレームをリアルタイムに補間することで、実際に記録されている動画データのフレームレート以上に再生を滑らかに見せる技術も開発されている[12]。モバイルデバイスの場合、SoCにハードウェアコーデックが実装されていることが多い。オペレーティングシステムの提供するAPIを利用することで、アプリケーションソフトウェアはハードウェアでサポートされているコーデックを必要に応じて選択・利用することができる[13][14]。オンライン会議などで使用される配信用アプリでは、Webカメラによってキャプチャされた動画および音声のデータを圧縮しつつネットワーク経由で受信者にブロードキャストしていくが、エンコード/デコードを対応ハードウェアに任せることでCPUの負担を軽減できる。 この節は検証可能な参考文献や出典が全く示されていないか、不十分です。
HTMLエンコード
URLエンコード
ハードウェアエンコード/デコード
デジタル機器におけるエンコーダー/デコーダーの凡例
Size:28 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef