圧縮アーティファクト

圧縮アーティファクト（あっしゅくアーティファクト、）とは、非可逆圧縮の適用によって引き起こされるメディア（画像、音声、映像）の顕著な歪みである。単にアーティファクトともいい、日本語ではアーチファクトとも表記・発音される。
非可逆圧縮では、必要なディスクスペースに格納するか、帯域幅（ストリームされるメディアのビットレート）の制限内で送信（またはストリーミング）するのに十分なように、メディアのデータの一部が破棄される。圧縮機構にて、圧縮されたデータから元のデータを再現するのに十分なデータを生成できなかった場合、再生時に品質の低下もしくは圧縮アーティファクトが現れることになる。あるいは、圧縮アルゴリズムは、主観的に重要でない歪みと視聴者にとって不快な歪みとを区別するのに十分にインテリジェントではないかもしれない。 
圧縮アーティファクトは、DVD、JPEG、MP3、MPEGなどの一般的なコンピュータファイルフォーマット、ミニディスクフォーマットなどのコンパクトディスクの代替品など、多くの一般的なメディアで発生する。非圧縮メディア（レーザーディスク、オーディオCD、WAVファイルなど）や可逆圧縮メディア（FLAC、PNGなど）は、圧縮アーティファクトの影響を受けない。
知覚可能な圧縮アーティファクトの最小化は、非可逆圧縮アルゴリズムを実装する際の重要な目標である。しかし、圧縮アーティファクトは時には、グリッチ・アートやデータモッシュとして知られるスタイルで芸術的目的のために意図的に制作される。
技術的に言えば、圧縮アーティファクトは、通常、非可逆圧縮におけるの結果である、特定のクラスのデータ誤りである。が使用される場合、それらは、通常、符号化器の変換空間の基底関数の1つの形式をとる。
画像.
JPEG画像圧縮などの量子化のためのブロックベースの符号化を実行する場合、いくつかのタイプのアーティファクトが現れる可能性がある。
パターンマッチングを使用して類似のシンボルを重複排除する他の非可逆圧縮アルゴリズムでは、印刷されたテキストのエラーを検出するのが困難である。例えば、数字の「6」と「8」が置き換えられることがある。これは特定の複写機でJBIG2を使用すると発生することが確認されている。
ブロックノイズ.
低ビットレートでは、ブロックベースの非可逆圧縮の符号化方式において、ピクセルブロックおよびブロック境界に目に見えるアーティファクトが発生する。これらの境界は、変換ブロック境界、予測ブロック境界、またはその両方に発生し、マクロブロックの境界と一致することもある。マクロブロックという用語は、アーティファクトの原因にかかわらず、一般的に使用される。他の名前にはタイル化 (tiling)、モザイク化 (mosaicing)、ピクセル化 (pixelating)、キルト化 (quilting)、チェッカーボード化 (checkerboarding) などがある。
ブロックアーティファクトは、ブロック変換符号化の原理の結果である。変換（離散コサイン変換など）は、画素ブロックに適用され、非可逆圧縮を達成するために、各ブロックの変換係数が量子化される。ビットレートが低いほど、係数はより粗く表され、より多くの係数はゼロに量子化される。統計的には、画像は高周波成分よりも低周波成分を含んでいるため、量子化後に残る低周波成分であり、ぼやけた低解像度のブロックになる。最も極端な場合には、ブロックの平均色を表す係数であるDC係数のみが保持され、変換ブロックは再構成後に単色になる。
この量子化プロセスは各ブロックに個別に適用されるため、隣接するブロックは係数を別々に量子化する。これにより、ブロック境界で不連続性が発生する。これらは、この効果をマスクするディテールがほとんどない平坦な領域で最もよく見える。
画像のアーティファクトの削減.
画像圧縮効果を低減するために様々なアプローチが提案されている。これらの方法の多くは、標準化された圧縮・展開技術を使用し、圧縮の利点（伝送コストやストレージコストの低減など）を維持するために、「後処理」、すなわち、受信または閲覧したときに画像を処理する。全ての場合において、画像品質を改善するための後処理技術は示されていない。結果的に、広く普及しているものはないが、一部は実装されており、独自のシステムで使用されている。例えば、多くの写真編集プログラムには、独自のJPEGアーティファクト低減アルゴリズムが組み込まれている。コンシューマ機器では、この後処理は「MPEGノイズリダクション」と呼ばれることがある。
映像.
MPEG-1、MPEG-2、MPEG-4のように動き予測を使用すると、圧縮アーティファクトが数世代の圧縮解除されたフレームに残り、画像の視覚的な流れに伴って移動し、ペイント効果とシーン内のオブジェクトと一緒に動く「汚れ」の間の一部分として特有の効果をもたらす傾向がある。
圧縮されたビットストリームのデータエラーは、おそらく伝送エラーのために、大きな量子化エラーに似たエラーを引き起こすか、またはデータストリームの解析を短時間中断させ、ピクチャの「分割」につながる。ビットストリームに大きなエラーが発生した場合、デコーダは、次の独立して圧縮されたフレームを受信するまで、「ゴーストイメージ」効果を生成しながら、短い間隔で破損した画像に更新を適用し続ける。MPEG画像符号化では、これらはとして知られる（'I' は "intra" を意味する）。次のIフレームが到着するまで、デコーダはデータを補完するを行うことができる。
動き補償ブロックノイズ.
ブロック境界の不連続性は、動き補償予測ブロックのエッジで発生する可能性がある。動き補償された映像圧縮では、現在のピクチャは、以前に復号されたフレームからのピクセルのブロック（マクロブロック、パーティション、または予測単位）をシフトすることによって予測される。2つの隣接するブロックが異なる動きベクトルを使用する場合、ブロック間のエッジに不連続性が存在する。
モスキートノイズ.
映像の圧縮アーティファクトは、静止画像の圧縮の累積結果を含む。例えば連続する静止画像におけるリンギングなどの輪郭の複雑さは、輪郭周辺の点滅するぼやけとして連続して現れる。これは、物体の周りに蚊が集まっている様子に似ているので、モスキートノイズと呼ばれる。
映像のアーティファクトの削減.
ブロックノイズは、を適用することによって低減できる。静止画像符号化の場合と同様に、デブロッキングフィルタを後処理としてデコーダ出力に適用することが可能である。
閉じた予測ループを有する動き予測映像符号化では、エンコーダは、デコーダ出力を将来のフレームが予測される予測基準として使用する。その目的のために、エンコーダは概念的にデコーダを統合する。このデコーダがデブロッキングを実行する場合、デブロックされたピクチャは、動き補償のための参照ピクチャとして使用され、フレームにわたるブロックアーチファクトの伝播を防止することによって符号化効率を向上させる。これは、ループ内デブロッキングフィルタと呼ばれる。ループ内デブロッキングフィルタを規定する規格には、VC-1、H.263 Annex J、H.264/AVC、H.265/HEVCがある。
音声.
非可逆音声圧縮は、通常、人間の聴覚の認識のモデルである音響心理学モデルで動作する。非可逆音声圧縮フォーマットは、典型的には、修正離散コサイン変換のような時間/周波数領域変換の使用を含む。音響心理学モデルでは、同時マスキングや経時マスキングなどのマスキング効果が利用されるため、人間が知覚できない音は録音されない。 例えば、人間は一般に、同じような周波数の音が同時に鳴っている場合、小さいほうの音を知覚することができない。非可逆圧縮技術は、この小さな音を識別し、それを除去しようとする。また、量子化ノイズは、より顕著な音によってマスクされるところで隠されることがある。
音響心理学モデルが不正確である場合、変換ブロックサイズが制限される場合、または積極的な圧縮が使用される場合、圧縮アーティファクトが生じることがある。圧縮された音声の圧縮アーティファクトは、通常、リンギング、、バーディーアーティファクト (birdie artifacts)、ドロップアウト、ガタガタした音 (rattling)、メタルリンギング (metallic ringing)、水中感 (underwater feeling)、ヒスシング (hissing)、または粒状感 (graininess) として現れる。 
音声の圧縮アーティファクトを観察する良い方法は、比較的高圧縮の音声ファイル（96 kbit/sのMP3など）で拍手を聞くことである。一般に、楽器音は繰り返し波形を持ち、音量の変化は予測可能だが、拍手音は本質的にランダムであり、圧縮が困難である。高圧縮された拍手のトラックは、メタルリンギングなどの圧縮アーティファクトが非常によく現れる。
芸術への利用.
圧縮アーティファクトは芸術的目的のために意図的に制作されることがある。これはグリッチ・アートと呼ばれる。
静止画像では、ドイツの写真家トーマス・ルフによる『jpegs』の例がある。これは意図的なJPEGアーティファクトを画像のスタイルの基礎として使用している。
ビデオ・アートでは、2つの映像がインターリーブされ、中間フレームが2つの別々のソースから補間される、「データモッシュ」("datamoshing") という手法がある。他の手法として、ある非可逆映像フォーマットから別の非可逆映像フォーマットへ変換をかけるだけというものがあり、それぞれのビデオコーデックが動きや色情報をどのように処理するかの違いを利用する。