| JPEG | |
|---|---|
圧縮率とそれに伴う損失が左から右に減少するヨーロッパヤマネコの写真 | |
| ファイル名拡張子 | .jpg、、、、、.jpeg.jpe.jif.jfif.jfi |
| インターネットメディアの種類 | 画像/jpeg |
| タイプコード | JPEG |
| 統一型識別子(UTI) | パブリック.jpeg |
| 魔法の数字 | ff d8 ff |
| 開発者 | 共同写真専門家グループ、IBM、三菱電機、AT&T、キヤノン株式会社[ 1 ] |
| 初回リリース | 1992年9月18日 (1992年9月18日) |
| フォーマットの種類 | 非可逆画像圧縮形式 |
| 圧縮 | ID |
| 延長 | JPEG 2000 |
| 標準 | ISO/IEC 10918、ITU-T T.81、ITU-T T.83、ITU-T T.84、ITU-T T.86 |
| Webサイト | jpeg |
JPEG(/ ˈ dʒ eɪ p ɛ ɡ / JAY -peg、Joint Photographic Experts Groupの略で、過去に遡ってJPEG 1と呼ばれることもある)[ 2 ] [ 3 ]は、デジタル画像、特にデジタル写真で作成された画像によく使用される非可逆圧縮方式です。圧縮度合いは調整可能で、ストレージサイズと画質の間で選択的なトレードオフが可能です。JPEG は通常、顕著ではあるものの、広く受け入れられている知覚可能な画質の損失を伴う 10:1 の圧縮を実現します。[ 4 ] JPEG は 1992 年の導入以来、世界で最も広く使用されている画像圧縮規格であり[ 5 ] [ 6 ]、最も広く使用されているデジタル画像形式で、2015 年現在、毎日数十億枚の JPEG 画像が作成されています。[ 7 ]
Joint Photographic Experts Group は1992 年に、離散コサイン変換(DCT) アルゴリズムに基づいて標準を作成しました。 [ 8 ] [ 9 ] [ 10 ] JPEG は、インターネット、そして後にソーシャルメディアにおけるデジタル画像とデジタル写真の普及に大きく貢献しました。[ 11 ] JPEG 圧縮は多くの画像ファイル形式で使用されています。JPEG/ Exif は、デジタルカメラやその他の写真画像キャプチャデバイスで使用される最も一般的な画像形式です。JPEG/ JFIFとともに、ワールドワイドウェブ上で写真画像を保存および転送するための最も一般的な形式です。[ 12 ]これらの形式のバリエーションは区別されないことが多く、単に JPEG と呼ばれます。
JPEGのMIMEメディアタイプは「image/jpeg」です。ただし、古いバージョンのInternet Explorerでは、JPEG画像をアップロードする際に「image/pjpeg」というMIMEタイプが提供されます。[ 13 ] JPEGファイルは通常、 「jpg」または「jpeg」というファイル名拡張子を持ちます。JPEG/JFIFは最大65,535×65,535ピクセルの画像サイズをサポートしており、[ 14 ]アスペクト比1:1の場合、最大4ギガピクセルまで対応します。2000年、JPEGグループは後継となるJPEG 2000というフォーマットを発表しましたが、JPEGに取って代わる主流の画像規格にはなりませんでした。[ 15 ]
1992年に公開されたオリジナルのJPEG仕様は、CCITT(現在のITU-T )とJoint Photographic Experts Groupによって引用された様々な初期の研究論文や特許のプロセスを実装しています。[ 1 ]
JPEGの非可逆圧縮アルゴリズムの基礎は離散コサイン変換(DCT)[ 9 ] [ 10 ]であり、これは1972年にナシル・アーメドによって画像圧縮技術として初めて提案されました[ 16 ] [ 10 ]。アーメドは1974年の論文[ 17 ]でT.ナタラジャンとKRラオと共同でDCTアルゴリズムを発表し、 JPEG仕様書にも引用されています[ 9 ] 。
JPEG仕様は複数の企業の特許を引用しています。以下の特許が算術符号化アルゴリズムの基礎となっています。[ 1 ]
JPEG仕様は、IBMの他の3つの特許も引用している。特許保有者として挙げられている他の企業には、AT&T(2件)とキヤノン株式会社がある。 [ 1 ]このリストには、 Compression LabsのWen-Hsiung ChenとDaniel J. Klenkeが1986年10月に出願した米国特許4,698,672号が含まれていない。この特許はDCTベースの画像圧縮アルゴリズムを規定しており、後に2002年に論争を巻き起こした(下記の特許論争を参照)。[ 18 ]しかし、JPEG仕様は、Wen-Hsiung Chenが1977年と1984年に発表した2つの先行研究論文を引用している。[ 1 ]
「JPEG」はJoint Photographic Experts Group(合同写真専門家グループ)の略称で、JPEG規格およびその他の静止画像符号化規格を策定した委員会の名称です。「Joint」はISO TC97 WG8とCCITT SGVIIIの略称です。1986年に設立されたこのグループは、1980年代後半にJPEG規格を開発しました。同グループは1992年にJPEG規格を公開しました。[ 5 ]
1987年に、ISO TC 97はISO/IEC JTC 1となり、1992年にCCITTはITU-Tとなった。現在JTC1側では、JPEGはISO / IEC合同技術委員会1、小委員会29、作業部会1(ISO/IEC JTC 1/SC 29 /WG 1)の2つのサブグループの1つであり、静止画像の符号化と題されている。[ 19 ] [ 20 ] [ 21 ] ITU-T側では、ITU-T SG16がそれぞれの組織である。最初のJPEGグループは1986年に組織され、[ 22 ] 1992年に最初のJPEG標準を発行し、これは1992年9月にITU-T勧告T.81として承認され、[ 23 ]、1994年にISO / IEC 10918-1として承認された。
JPEG規格では、画像をバイトストリームに圧縮し、画像に解凍する方法を定義するコーデックを指定しますが、そのストリームを格納するために使用されるファイル形式は定義していません。 [ 24 ] Exif規格 とJFIF規格は、JPEG圧縮画像の交換に一般的に使用されるファイル形式を定義します。
JPEG規格は正式には「情報技術 - 連続階調静止画像のデジタル圧縮および符号化」と称されます。ISO/IEC 10918は以下の部分で構成されています。
| 一部 | ISO/IEC規格 | ITU-T勧告 | 最初の公開日 | 最新の改正 | タイトル | 説明 |
|---|---|---|---|---|---|---|
| パート1 | ISO/IEC 10918-1:1994 | T.81 (09/92) | 1992年9月18日 | 要件とガイドライン | ||
| パート2 | ISO/IEC 10918-2:1995 | T.83 (11/94) | 1994年11月11日 | コンプライアンステスト | ソフトウェア適合に関するルールとチェック (パート 1 に準拠)。 | |
| パート3 | ISO/IEC 10918-3:1997 | T.84 (07/96) | 1996年7月3日 | 1999年4月1日 | 拡張機能 | 静止画像交換ファイル形式(SPIFF)を含む、パート1を改善するための拡張機能のセット。 [ 26 ] |
| パート4 | ISO/IEC 10918-4:2024 | T.86 (06/98) | 1998年6月18日 | Appnマーカー | JPEGを拡張するために使用されるパラメータの一部を登録する方法 | |
| パート5 | ISO/IEC 10918-5:2013 | T.871 (05/11) | 2011年5月14日 | JPEG ファイル交換フォーマット (JFIF) | JPEG規格でエンコードされた画像のファイル形式として事実上の標準となっている、広く普及したフォーマットです。2009年、JPEG委員会はJFIFをJPEG Part 5として標準化するためのアドホックグループを正式に設立しました。[ 27 ] | |
| パート6 | ISO/IEC 10918-6:2013 | T.872 (06/12) | 2012年6月 | 印刷システムへの応用 | 印刷用に ISO/IEC 10918-1 に従ってエンコードされた画像を交換するための機能とアプリケーション ツールのサブセットを指定します。 | |
| パート7 | ISO/IEC 10918-7:2023 | T.873 (06/21) | 2019年5月 | 2023年11月 | リファレンスソフトウェア | JPEGコアコーディングシステムのリファレンス実装を提供します |
Ecma International TR /98はJPEGファイル交換フォーマット(JFIF)を規定しており、初版は2009年6月に発行されました。[ 28 ]
2002年、フォージェント・ネットワークスは、1986年10月27日に出願され1987年10月6日に認可された特許(Compression Labsのウェン・ヒュン・チェンとダニエル・J・クレンケによる米国特許4,698,672 )に起因するJPEG技術の特許権を所有しており、それを行使すると主張した。 [ 18 ] [ 29 ]当時フォージェントはCompression Labsを所有していなかったが、チェンは後にシスコで働く前にCompression Labsをフォージェントに売却した。これによりフォージェントが特許の所有権を取得した。[ 18 ]フォージェントの2002年の発表は、ユニシスがGIF画像圧縮規格に対する権利を主張しようとした時を 彷彿とさせる騒動を巻き起こした。
JPEG委員会は2002年に特許請求の範囲を調査し、先行技術によって無効であるとの見解を示しました。[ 30 ]この見解は様々な専門家によって共有されています。[ 18 ] [ 31 ]
2002年から2004年の間に、フォージェントは約30社に特許をライセンス供与することで約1億500万ドルの収益を得た。2004年4月、フォージェントはさらなるライセンス料の支払いを求めて31社を提訴した。同年7月、大手コンピュータ企業21社の連合が特許の無効化を目的とした反訴を起こした。さらに、マイクロソフトも2005年4月にフォージェントに対して別の訴訟を起こした。[ 32 ] 2006年2月、米国特許商標庁はパブリック・パテント・ファウンデーションの要請を受け、フォージェントのJPEG特許の再審査に同意した。[ 33 ] 2006年5月26日、USPTOは先行技術に基づき特許を無効と判断した。USPTOはまた、フォージェントが先行技術を認識していたにもかかわらず、特許庁への報告を意図的に避けていたと判断した。このため、特許の回復を求めるいかなる訴えも認められる可能性は極めて低かった。[ 34 ]
フォージェント社は1994年に欧州特許庁から同様の特許を取得しているが、その執行力がどの程度かは不明である。[ 35 ]
2006年10月27日現在、米国特許の20年の有効期間は満了したと見られ、2006年11月にフォージェントはJPEG標準の使用に対する特許請求の執行を放棄することに同意した。[ 36 ]
JPEG 委員会は、その標準規格 (特にベースライン方式) がライセンス料を支払うことなく実装可能であることを明確な目標の 1 つとしており、 20 を超える大規模な組織からJPEG 2000標準規格に対する適切なライセンス権を確保しています。
2007年8月初旬、別の会社であるGlobal Patent Holdings, LLCは、1993年に発行された特許(米国特許5,253,341)が、ウェブサイトまたは電子メールを介したJPEG画像のダウンロードによって侵害されていると主張しました。無効とされなければ、この特許はJPEG画像を表示するあらゆるウェブサイトに適用される可能性があります。この特許は、2000年から2007年まで米国特許商標庁によって再審査されていました。2007年7月、特許庁は特許の元のクレームをすべて取り消しましたが、Global Patent Holdingsが提案した追加のクレーム(クレーム17)は有効であると判断しました。[ 37 ] Global Patent Holdingsはその後、特許のクレーム17に基づいて数件の訴訟を起こしました。
再審査後の最初の2件の訴訟はいずれもイリノイ州シカゴで起こされ、Global Patent Holdingsは、 Green Bay Packers、CDW、Motorola、Apple、Orbitz、Officemax、Caterpillar、Kraft、Peapodを被告として訴えた。3件目の訴訟は2007年12月5日に南フロリダでADT Security Services、AutoNation、Florida Crystals Corp.、HearUSA、MovieTickets.com、Ocwen Financial Corp.、Tire Kingdomを相手取って起こされ、4件目の訴訟は2008年1月8日に南フロリダでBoca Raton Resort & Clubを相手取って起こされた。5件目の訴訟はGlobal Patent Holdingsを相手取ってネバダ州で起こされた。この訴訟はGlobal Patent Holdingsから脅迫を受けたとされるZappos.com , Inc.が起こしたもので、'341特許は無効であり侵害されていないという司法宣言を求めた。
グローバル・パテント・ホールディングスは、グレゴリー・アハロニアン[ 38 ]や「パテント・トロール・トラッカー」として知られるウェブサイトブログの匿名運営者[ 39 ]など、広範なソフトウェア特許に対する批判者を訴えたり脅迫したりするために、'341特許を利用していた。 2007年12月21日、シカゴの特許弁護士ヴァーノン・フランシセンは、米国特許商標庁に対し、新たな先行技術に基づいて、'341特許の唯一の残存請求項を再審査するよう要請した。[ 40 ]
2008年3月5日、米国特許商標庁は、新たな先行技術が特許の有効性に関して重大な新たな疑問を提起していると判断し、'341特許の再審査に同意した。[ 41 ]再審査の結果を受けて、係属中の5件の訴訟のうち4件の侵害被疑者は、米国特許商標庁による'341特許の審査が完了するまで訴訟を一時停止(停止)する申立てを行った。2008年4月23日、イリノイ州シカゴで2件の訴訟を担当する判事は、これらの申立てを認めた。[ 42 ] 2008年7月22日、特許庁は2回目の再審査における最初の「オフィスアクション」を発行し、19の個別の根拠に基づき、当該クレームは無効であると判定した。[ 43 ] 2009年11月24日、すべてのクレームを取り消す再審査証明書が発行された。
2011年から2013年初頭にかけて、テキサス州東部に拠点を置くプリンストン・デジタル・イメージ・コーポレーション[ 44 ]は、米国特許4,813,056号を侵害したとして多数の企業を提訴し始めた。プリンストンは、JPEG画像圧縮規格が特許4,813,056号を侵害していると主張し、多数のウェブサイト、小売業者、カメラおよび機器メーカー、再販業者を提訴している。この特許は元々ゼネラル・エレクトリック社が所有し、譲渡していた。この特許は2007年12月に失効したが、プリンストンはこの特許の「過去の侵害」を理由に多数の企業を提訴している。 (米国特許法では、特許権者は訴訟提起の6年前まで「過去の侵害」を理由に訴訟を起こすことができるため、プリンストンは理論上、2013年12月まで企業を訴え続けることができた。)2013年3月時点で、プリンストンはニューヨーク州とデラウェア州で55社以上の企業を相手取った訴訟を係属中であった。ゼネラル・エレクトリックがこの訴訟に関与していたかどうかは不明であるが、裁判記録によると、同社は2009年にプリンストンに特許を譲渡し、特許に関する一定の権利を保持している。[ 45 ]
JPEG圧縮アルゴリズムは、滑らかな色調の変化を持つ写実的な風景の写真や絵画に最適です。レスポンシブなプレゼンテーションを実現するために画像データ量の削減が重要なWeb用途では、JPEGの圧縮率の高さからJPEGが広く使用されています。JPEG/ Exifは、デジタルカメラで保存される最も一般的な形式でもあります。
しかし、JPEGは線画やその他のテキストやアイコンのグラフィックには適していません。隣接するピクセル間の強いコントラストが目立つアーティファクトを引き起こす可能性があるためです。[ 46 ]このような画像は、 TIFF、GIF、PNG、またはRAW画像形式などのロスレスグラフィック形式で保存する方が適切です。JPEG規格にはロスレスコーディングモードが含まれていますが、ほとんどの製品ではサポートされていません。
JPEGは一般的に非可逆圧縮方式であり、画像の忠実度が低下するため、画像データの正確な再現(一部の科学・医療用画像処理アプリケーションや特定の技術画像処理作業など)には適していません。[ 46 ]
JPEGは、画像が再圧縮されるたびに画質が多少低下するため、複数回の編集が行われるファイルには適していません。特に、画像が切り取られたり、シフトされたり、エンコードパラメータが変更されたりすると、画質が低下します(詳細はデジタル生成ロスを参照)。連続編集や繰り返し編集による画像情報の損失を防ぐには、最初の編集をロスレス形式で保存し、その後もロスレス形式で編集を行い、最終的にJPEG形式で公開して配布するという方法があります。
JPEG は、離散コサイン変換 (DCT)に基づく非可逆圧縮形式を使用します。この数学的演算により、ビデオ ソースの各フレーム/フィールドが空間 (2D) 領域から周波数領域 (別名、変換領域) に変換されます。これは、人間の心理視覚システムが高周波数情報 (つまり、明度と色相の急激な変化) をどのように破棄するかに大まかに基づいた知覚モデルです。変換領域では、情報を削減するプロセスは量子化と呼ばれます。簡単に言えば、量子化とは、大きな数値スケール (各数値の出現頻度が異なる) をより小さなスケールに最適に削減する方法であり、変換領域は画像を表現するのに便利です。これは、他の係数よりも画像全体への寄与が少ない高周波数係数が、圧縮率の高い小さな値であるという特性があるためです。量子化された係数は、その後、順序付けされ、出力ビットストリームに可逆的にパックされます。JPEG のほぼすべてのソフトウェア実装では、ユーザーが圧縮率 (およびその他のオプション パラメーター) を制御できるため、画質を犠牲にしてファイル サイズを小さくすることができます。組み込みアプリケーション (同様の DCT 圧縮方式を使用する miniDV など) では、パラメータはアプリケーションに対して事前に選択され、固定されます。
圧縮方式は通常、非可逆圧縮です。つまり、元の画像情報の一部が失われ、復元できないため、画質に影響する可能性があります。JPEG規格では、オプションとしてロスレスモードが定義されています。ただし、このモードは多くの製品でサポートされていません。
インターレース・プログレッシブJPEG形式も存在します。この形式では、データは複数のパスで段階的に高精細化され、圧縮されます。これは、低速回線でダウンロードしながら表示する大きな画像に最適で、データの一部のみを受信した場合でも、十分なプレビューが可能です。ただし、プログレッシブJPEG形式は広くサポートされているわけではありません。プログレッシブJPEG形式をサポートしていないプログラム(Windows 7より前のバージョンのInternet Explorerなど)[ 47 ]でプログレッシブJPEG形式を受信すると、ソフトウェアは画像が完全にダウンロードされた後にのみ表示します。
医療画像、交通情報、カメラなどのアプリケーションの中には、12ビットJPEG画像(グレースケールとカラーの両方)を作成・処理するものもあります。12ビットJPEG形式は、JPEG仕様の拡張部分に含まれています。libjpegコーデックは12ビットJPEGをサポートしており、高性能版も存在します。[ 48 ]
画像サイズが1MCUブロック(最小符号化単位)の倍数(通常、4:2:0クロマサブサンプリングでは両方向とも16ピクセル)である限り、JPEG画像へのいくつかの変更はロスレス(つまり、再圧縮やそれに伴う画質の低下なし)で実行できます。これを実装するユーティリティには、以下が含まれます。
ブロックは90度単位で回転したり、水平、垂直、対角軸で反転したり、画像内で移動したりできます。元の画像のすべてのブロックを修正後の画像で使用する必要はありません。
JPEG画像の上端と左端は8×8ピクセル(MCUサイズが大きい場合は16×16ピクセル)のブロック境界上になければなりませんが、下端と右端は必ずしもそうである必要はありません。これにより、ロスレスクロップ処理の可能性が制限され、下端または右端が全チャンネルのブロック境界上にない画像の反転や回転が防止されます(ブロック境界が必須である上端または左端にエッジが重なるためです)。
画像が8または16の倍数(彩度サブサンプリングの度合いによって異なる)でない場合の回転はロスレスではありません。このような画像を回転すると、ブロックが再計算され、画質が低下します。[ 49 ]
ロスレスクロッピングを使用する場合、クロップ領域の下部または右側がブロック境界上にない場合、部分的に使用されたブロックの残りのデータはクロップされたファイルに残り、復元できます。また、ベースライン形式とプログレッシブ形式の間では、係数がファイル内に配置される順序のみが異なるため、品質を損なうことなく変換できます。
さらに、複数の JPEG 画像は、同じ品質で保存され、エッジがブロック境界と一致している限り、ロスレスで結合できます。
「JPEG交換フォーマット」(JIF)として知られるファイル形式は、この規格の附属文書Bで規定されています。しかし、この「純粋な」ファイル形式は、主に規格のあらゆる側面を完全に実装したエンコーダとデコーダのプログラミングの難しさ、そして規格自体にいくつかの欠点があることから、ほとんど使用されていません。
これらの問題に対処するため、いくつかの追加規格が開発されました。最初の規格は1992年にリリースされたJPEGファイル交換フォーマット(JFIF)で、近年ではExif( Exchangeable image file format)とICCカラープロファイルがそれに続きました。これらのフォーマットはどちらも、異なるマーカーで構成されるJIFバイトレイアウトを使用していますが、さらにJIF規格の拡張ポイントの1つであるアプリケーションマーカーも採用しています。JFIFはAPP0を使用し、ExifはAPP1を使用します。JIF規格で将来使用するために残され、JIF規格では読み込まれないファイルセグメント内に、これらの規格は特定のメタデータを追加します。
したがって、JFIFは、特定の制約(例えば、すべての異なるエンコードモードを許可しないなど)を規定している点で、ある意味ではJIF標準の簡略版である一方、メタデータが追加されているため、別の意味ではJIFの拡張版であると言える。オリジナルのJFIF標準のドキュメントには、次のように記載されている。[ 50 ]
JPEGファイル交換フォーマットは、JPEGビットストリームを様々なプラットフォームやアプリケーション間で交換するための最小限のファイルフォーマットです。この最小限のフォーマットには、TIFF JPEG仕様やアプリケーション固有のファイルフォーマットに見られるような高度な機能は含まれていません。また、この簡素化されたフォーマットの唯一の目的はJPEG圧縮画像の交換を可能にすることであるため、これらの機能は含まれるべきではありません。
JPEG圧縮方式を採用した画像ファイルは一般に「JPEGファイル」と呼ばれ、JIF画像形式のバリエーションで保存されます。JPEGを出力する画像キャプチャデバイス(デジタルカメラなど)のほとんどは、実際にはカメラ業界がメタデータ交換のために標準化したExif形式でファイルを作成しています。一方、Exif規格ではカラープロファイルが許可されていないため、ほとんどの画像編集ソフトウェアはJPEGをJFIF形式で保存し、ExifファイルのAPP1セグメントをほぼ準拠した方法でメタデータとして取り込みます。JFIF規格はある程度柔軟に解釈されます。[ 51 ]
厳密に言えば、JFIF規格とExif規格は互換性がありません。なぜなら、それぞれの規格では、マーカーセグメント(それぞれAPP0またはAPP1)が最初に出現するように規定されているからです。実際には、ほとんどのJPEGファイルには、Exifヘッダーの前にJFIFマーカーセグメントが含まれています。これにより、古い形式のリーダーは古い形式のJFIFセグメントを正しく処理できますが、新しいリーダーは、先頭に出現することの要件をそれほど厳しくせずに、後続のExifセグメントもデコードします。
JPEG圧縮を使用するファイルの最も一般的なファイル名拡張子はと.jpgですが.jpeg、、も使用されます。[ 52 ] JPEGデータは他のファイルタイプに埋め込むことも可能です。TIFFで.jpeエンコードされたファイルには、メイン画像のサムネイルとしてJPEG画像が埋め込まれることが多く、 MP3ファイルにはID3v2タグにカバーアートのJPEGを含めることができます。 .jfif.jif
多くのJPEGファイルにはICCカラープロファイル(カラースペース)が埋め込まれています。一般的に使用されるカラープロファイルには、 sRGBやAdobe RGBなどがあります。これらのカラースペースは非線形変換を使用するため、8ビットJPEGファイルのダイナミックレンジは約11ストップです。ガンマカーブを参照してください。
画像にカラープロファイル情報が指定されていない場合(タグなし)、ウェブページに表示するためにカラースペースはsRGBであるとみなされます。[ 53 ] [ 54 ]
JPEG画像は、一連のセグメントで構成されます。各セグメントはマーカーで始まり、各マーカーは0xFFバイトで始まり、その後にマーカーの種類を示すバイトが続きます。マーカーの中には、この2バイトのみで構成されるものもあれば、2バイト(上位バイト、下位バイト)が続くものもあります。この2バイトは、マーカー固有のペイロードデータの長さを示します。(長さには、長さを表す2バイトが含まれますが、マーカーを表す2バイトは含まれません。)一部のマーカーの後にはエントロピー符号化データが続きますが、そのようなマーカーの長さにはエントロピー符号化データは含まれません。連続する0xFFバイトはパディング用のフィルバイトとして使用されますが、このフィルバイトによるパディングは、エントロピー符号化スキャンデータの直後に続くマーカーに対してのみ行われるべきです(詳細はJPEG仕様のセクションB.1.1.2およびE.1.2を参照してください。特に「圧縮データの後にマーカーが追加されるすべてのケースにおいて、オプションの0xFFフィルバイトがマーカーの前にあっても構いません」)。
エントロピー符号化データ内では、0xFFバイトの後に、次のバイトの前にエンコーダによって0x00バイトが挿入されます。これにより、本来マーカーがない場所にマーカーがあるようには見えなくなり、フレーミングエラーを防止できます。デコーダはこの0x00バイトをスキップする必要があります。バイトスタッフィングと呼ばれるこの手法(JPEG仕様セクションF.1.2.3を参照)は、エントロピー符号化データにのみ適用され、マーカーペイロードデータには適用されません。ただし、エントロピー符号化データには独自のマーカーがいくつかあることに注意してください。具体的には、リセットマーカー(0xD0~0xD7)は、エントロピー符号化データの独立したチャンクを分離して並列デコードを可能にするために使用されます。エンコーダはこれらのリセットマーカーを一定の間隔で自由に挿入できます(ただし、すべてのエンコーダがこれを実行するわけではありません)。
| 短縮名 | バイト | ペイロード | 名前 | コメント |
|---|---|---|---|---|
| ソイ | 0xFF、0xD8 | なし | 画像の開始 | |
| ソフ0 | 0xFF、0xC0 | 可変サイズ | フレームの開始(ベースラインDCT) | これはベースライン DCT ベースの JPEG であることを示し、幅、高さ、コンポーネントの数、およびコンポーネントのサブサンプリング (例: 4:2:0) を指定します。 |
| SOF2 | 0xFF、0xC2 | 可変サイズ | フレームの開始(プログレッシブ DCT) | これはプログレッシブ DCT ベースの JPEG であることを示し、幅、高さ、コンポーネントの数、およびコンポーネントのサブサンプリング (例: 4:2:0) を指定します。 |
| DHT | 0xFF、0xC4 | 可変サイズ | ハフマンテーブルを定義する | 1 つ以上のハフマン テーブルを指定します。 |
| DQT | 0xFF、0xDB | 可変サイズ | 量子化テーブルを定義する | 1 つ以上の量子化テーブルを指定します。 |
| ドライ | 0xFF、0xDD | 4バイト | 再起動間隔を定義する | RST nマーカー間の間隔を最小符号化単位(MCU)で指定します。このマーカーの後には、固定サイズを示す2バイトが続くため、他の可変サイズセグメントと同様に扱うことができます。 |
| SOS | 0xFF、0xDA | 可変サイズ | スキャン開始 | 画像の上から下へのスキャンを開始します。ベースラインDCT JPEG画像では通常、スキャンは1回のみです。プログレッシブDCT JPEG画像では通常、複数のスキャンが含まれます。このマーカーは、どのデータスライスが含まれるかを指定し、その直後にエントロピー符号化されたデータが続きます。 |
| RST n | 0xFF、0xD n ( n =0..7) | なし | 再起動 | rマクロブロックごとに挿入されます。ここでrはDRIマーカーによって設定された再開間隔です。DRIマーカーがない場合には使用されません。マーカーコードの下位3ビットは0から7までの値を循環します。 |
| アプリn | 0xFF、0xE n | 可変サイズ | アプリケーション固有 | たとえば、Exif JPEG ファイルは、 TIFFに基づいた構造でレイアウトされたメタデータを保存するために APP1 マーカーを使用します。 |
| コム | 0xFF、0xFE | 可変サイズ | コメント | テキストコメントが含まれます。 |
| EOI | 0xFF、0xD9 | なし | 画像の終わり |
他の種類の JPEG エンコーディングを導入する 他のStart Of Frameマーカーもあります。
複数のベンダーが同じ APP nマーカー タイプを使用する可能性があるため、アプリケーション固有のマーカーは、標準名またはベンダー名 (「Exif」や「Adobe」など) またはその他の識別文字列で始まることがよくあります。
リスタートマーカーでは、ブロック間の予測変数がリセットされ、ビットストリームはバイト境界に同期されます。リスタートマーカーは、信頼性の低いネットワークを介した伝送やファイル破損などのビットストリームエラーからの回復手段を提供します。リスタートマーカー間のマクロブロックの連続は独立してデコードできるため、これらの連続は並列にデコードできます。
JPEGファイルは様々な方法でエンコードできますが、最も一般的なのはJFIFエンコードです。エンコードプロセスはいくつかのステップで構成されます。
デコード処理では、量子化は不可逆であるため、これらの手順を逆に実行します。このセクションの残りの部分では、エンコードとデコードの処理についてより詳しく説明します。
JPEG規格のオプションの多くは一般的には使用されていません。前述の通り、ほとんどの画像ソフトウェアはJPEGファイルを作成する際に、よりシンプルなJFIF形式を使用しています。この形式では、エンコード方式などが規定されています。ここでは、1ピクセルあたり24ビット(赤、緑、青それぞれ8ビット)の入力データに適用する場合の、より一般的なエンコード方式の1つについて簡単に説明します。このオプションは非可逆圧縮方式です。これらのオプションは、以下のマトリックスで表されます。
まず、画像をRGB(デフォルトではsRGB [ 53 ] [ 54 ]だが、他の色空間も可能)からY′C B C R(または、非公式にはYCbCr)と呼ばれる異なる色空間に変換する必要があります。この色空間には、Y'、C B、およびC Rの3つの要素があります。Y'要素はピクセルの明るさを表し、C BおよびC R要素は彩度(青と赤の要素に分割)を表します。これは基本的に、デジタルカラーテレビやビデオDVDなどのデジタルビデオで使用されている色空間と同じです。Y′C B C R色空間変換により、知覚的な画質に大きな影響を与えることなく、より高い圧縮率を実現できます(または、同じ圧縮率でより高い知覚的な画質を実現できます)。最終的な画像の知覚的な品質にとってより重要な明るさの情報が1つのチャネルに限定されるため、圧縮効率が向上します。これは、人間の視覚システムにおける色の知覚に近いものです。また、色変換により、統計的な相関除去によって圧縮率も向上します。
JFIF規格では、Y′C B C Rへの特別な変換が規定されており、JPEGファイルの互換性を最大限に高めるためには、この変換を行う必要があります。しかし、「最高品質」モードの一部のJPEG実装では、この変換処理を適用せず、代わりにRGBカラーモデルで色情報を保持します。この場合、画像は赤、緑、青の輝度成分ごとに別々のチャネルに格納されます。これにより圧縮効率が低下し、ファイルサイズが特に重要な場合には使用されない可能性があります。
人間の目には色と明るさに敏感な受容体が密集しているため、人間は画像の色相と彩度(Cb成分とCr成分)よりも、画像の明るさ(Y'成分)においてはるかに細かいディテールを認識することができます。この知識を活用することで、より効率的に画像を圧縮するエンコーダを設計することができます。
Y′C B C Rカラーモデルへの変換により、次に行われる通常のステップ、つまり Cb および Cr 成分の空間解像度を下げる処理(「ダウンサンプリング」または「クロマサブサンプリング」と呼ばれる)が可能になります。JPEG 画像で通常行われるダウンサンプリングの比率は、4:4:4(ダウンサンプリングなし)、4:2:2(水平方向に 2 分の 1 に縮小)、または(最も一般的には)4:2:0(水平方向と垂直方向の両方で 2 分の 1 に縮小)です。圧縮プロセスの残りの部分では、Y′、Cb、および Cr はそれぞれ非常によく似た方法で個別に処理されます。
サブサンプリング後、各チャンネルは8×8のブロックに分割されます。クロマサブサンプリングの方式に応じて、8×8(4:4:4 - サブサンプリングなし)、16×8(4:2:2)、または最も一般的には16×16(4:2:0)の最小符号化単位(MCU)ブロックが生成されます。ビデオ圧縮では、MCUはマクロブロックと呼ばれます。
チャンネルのデータが整数個のブロックを表さない場合、エンコーダーは不完全なブロックの残りの領域を何らかのダミーデータで埋める必要があります。エッジを固定色(例えば黒)で塗りつぶすと、境界の可視部分にリンギングアーティファクトが発生する可能性があります。エッジピクセルを繰り返すことは、このようなアーティファクトを軽減する(必ずしも完全に除去できるわけではありません)一般的な手法であり、より高度な境界塗りつぶし手法を適用することもできます。

次に、各成分(Y、Cb、Cr)の8×8ブロックそれぞれが、正規化された2次元タイプII離散コサイン変換(DCT)を用いて周波数領域表現に変換されます。離散コサイン変換については、引用文献1を参照してください。DCTは、離散コサイン変換などの変換群の文脈では「タイプII DCT」と呼ばれることもあり、対応する逆変換(IDCT)は「タイプIII DCT」と呼ばれます。
たとえば、8×8 8ビットのサブイメージは次のようになります。
8×8ブロックのDCTを計算する前に、その値は正の範囲からゼロを中心とした範囲にシフトされます。8ビット画像の場合、元のブロックの各エントリは範囲 に含まれます。範囲の中点(この場合は値128)が各エントリから差し引かれ、ゼロを中心としたデータ範囲が生成されます。これにより、修正された範囲は になります。このステップにより、後続のDCT処理段階でのダイナミックレンジ要件が削減されます。
このステップの結果、次の値が生成されます。

次のステップは、次のように表される 2 次元 DCT を実行することです。
どこ
上記の行列にこの変換を実行すると、次のようになります (小数点以下 2 桁に丸められます)。
左上隅のかなり大きな値を持つエントリに注目してください。これはDC係数(定数成分とも呼ばれます)であり、ブロック全体の基本的な色相を定義します。残りの63個の係数はAC係数(交流成分とも呼ばれます)です。[ 57 ] DCTの利点は、上記のように、信号の大部分を結果の片隅に集約する傾向があることです。続く量子化ステップでは、この効果が強調されると同時に、DCT係数の全体的なサイズが縮小され、エントロピー段階で効率的に圧縮しやすい信号が生成されます。
DCTは、8ビット/コンポーネント画像のDCT係数の保存に最大11ビット以上(DCT計算の忠実度によって異なります)を要するため、データのビット深度を一時的に増加させます。これにより、コーデックはこれらの係数を保持するために一時的に16ビットの数値を使用する必要があり、この時点で画像表現のサイズが2倍になります。これらの値は通常、量子化ステップによって8ビット値に戻されます。この段階での一時的なサイズの増加は、ほとんどのJPEG実装ではパフォーマンス上の問題にはなりません。これは、通常、画像のエンコードまたはデコード処理中、完全なDCT形式で保存されるのは画像のごく一部だけであるためです。
人間の目は、比較的広い範囲における小さな明るさの違いを見分けるのは得意ですが、高周波数の明るさの変化の強さを正確に見分けるのは得意ではありません。そのため、高周波成分の情報量を大幅に削減することができます。これは、周波数領域の各成分をその成分の定数で単純に割り、最も近い整数に丸めるだけで実現できます。DCT計算が十分に高い精度で実行されている場合、この丸め操作は、処理全体の中で(クロマサブサンプリングを除く)唯一のロスのある操作です。この結果、通常、高周波成分の多くはゼロに丸められ、残りの多くは小さな正または負の数となり、表現に必要なビット数が大幅に少なくなります。
量子化マトリックスの要素は圧縮率を制御し、値が大きいほど圧縮率も高くなります。典型的な量子化マトリックス(元のJPEG規格で規定されている品質50%の場合)は以下のとおりです。
量子化されたDCT係数は次のように計算される。
ここで、 は量子化されていない DCT 係数、は上記の量子化行列、 は量子化された DCT 係数です。
この量子化行列を上記の DCT 係数行列と併用すると、次のようになります。

例えば、-415(DC係数)を使用し、最も近い整数に丸めると、
サブブロックの高周波要素のほとんど (つまり、xまたはy空間周波数が 4 を超える要素) はゼロ値に量子化されていることに注意してください。

エントロピー符号化は、ロスレスデータ圧縮の特殊な形式です。画像成分を「ジグザグ」に並べ、類似周波数をグループ化するランレングス符号化(RLE)アルゴリズムを用いて、長さ符号化のゼロを挿入し、残った成分に ハフマン符号化を適用します。
JPEG規格では、デコーダが算術符号化をサポートすることも許可されていますが、必須ではありません。算術符号化は数学的にはハフマン符号化よりも優れています。しかし、この機能は歴史的にロイヤリティ負担を伴うライセンスを必要とする特許で保護されており、またハフマン符号化に比べてエンコードとデコードが遅いため、ほとんど使用されていません。算術符号化は通常、ファイルサイズを約5~7%小さくします。[ 58 ]
前回の量子化DC係数は、現在の量子化DC係数を予測するために使用されます。実際の値ではなく、両者の差が符号化されます。63個の量子化AC係数の符号化では、このような予測差分は使用されません。
上記の量子化係数のジグザグシーケンスを以下に示します。(示されている形式は、理解と表示を容易にするためのものです。)
| −26 | |||||||
| −3 | 0 | ||||||
| −3 | −2 | −6 | |||||
| 2 | −4 | 1 | −3 | ||||
| 1 | 1 | 5 | 1 | 2 | |||
| −1 | 1 | −1 | 2 | 0 | 0 | ||
| 0 | 0 | 0 | −1 | −1 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 0 | 0 | 0 | ||
| 0 | 0 | 0 | 0 | 0 | |||
| 0 | 0 | 0 | 0 | ||||
| 0 | 0 | 0 | |||||
| 0 | 0 | ||||||
| 0 |
i番目のブロックが で表され、各ブロック内の位置が で表され(および)、DCT 画像内の任意の係数は で表すことができます。したがって、上記の方式では、 ( i番目のブロックの )ピクセルのエンコード順序は、...

このエンコード モードは、ベースラインシーケンシャルエンコードと呼ばれます。ベースライン JPEG は、プログレッシブエンコードもサポートしています。シーケンシャル エンコードでは 1 度に 1 つのブロックの係数を (ジグザグに) エンコードしますが、プログレッシブ エンコードでは、すべてのブロックの係数の同様の位置にあるバッチ (スキャン と呼ばれる)を 1 回でエンコードし、その後にすべてのブロックの次の係数のバッチをエンコードする、というように繰り返します。たとえば、画像が N 個の 8×8 ブロック に分割されている場合、3 スキャン プログレッシブ エンコードでは、最初のスキャンですべてのブロックの DC 成分、つまりすべての についてをエンコードします。その後に 2 番目のスキャンが続き、そこではさらにいくつかの成分 (さらに 4 つの成分があると仮定すると、それらはから まで、依然としてジグザグに) の係数をすべてのブロック (したがって、シーケンスは) の係数をエンコードし、最後のスキャンですべてのブロックの残りの係数をすべてエンコードします。
類似位置にある係数がすべてエンコードされると、次にエンコードされる位置は、上図に示すように、ジグザグ走査で次に発生する位置になります。ベースライン・プログレッシブJPEGエンコードは、各「スキャン」または「パス」(類似位置にある係数を含む)ごとに異なる周波数に合わせて調整された異なるハフマンテーブル(下記参照)を使用できるため、ベースライン・シーケンシャルJPEGと比較して、通常は圧縮率が向上することが分かっていますが、その差はそれほど大きくありません。
この記事の残りの部分では、生成される係数パターンはシーケンシャル モードによるものであると想定します。
上記で生成された係数パターンをエンコードするために、JPEGはハフマン符号化を使用します。JPEG規格では汎用のハフマンテーブルが提供されていますが、エンコーダはエンコード対象の画像の実際の周波数分布に合わせて最適化されたハフマンテーブルを生成することもできます。
ジグザグ量子化データをエンコードするプロセスは、以下で説明するランレングスエンコードから始まります。
ランレングス符号化は、各非ゼロAC係数xを調べ、前のAC係数の前にゼロがいくつあったかを判断することで機能します。この情報に基づいて、2つのシンボルが生成されます。
| シンボル1 | シンボル2 |
|---|---|
| (ランレングス、サイズ) | (振幅) |
RUNLENGTHとSIZEは同じバイトに格納されるため、それぞれ4ビットの情報しか含まれません。上位ビットはゼロの数を表し、下位ビットはxの値をエンコードするために必要なビット数を表します。
これは、シンボル1が非ゼロAC係数の前の最初の15個のゼロに関する情報しか格納できないという直接的な意味合いを持ちます。しかし、JPEGは2つの特別なハフマン符号語を定義しています。1つは、残りの係数がゼロの場合にシーケンスを途中で終了させるためのもの(「End-of-Block」または「EOB」と呼ばれます)で、もう1つは、非ゼロAC係数に達する前にゼロの連続が15を超える場合に使用されます。このように、ある非ゼロAC係数の前に16個のゼロが出現する場合、シンボル1は「特別に」(15, 0)(0) としてエンコードされます。
全体的なプロセスは、(0, 0) で表される「EOB」に到達するまで継続されます。
これを念頭に置くと、先ほどのシーケンスは次のようになります。
(行列の最初の値 -26 は DC 係数であり、同じ方法でエンコードされません。上記を参照してください。)
ここから、係数の出現頻度に基づいて頻度計算が行われます。この例のブロックでは、量子化された係数のほとんどは、直前にゼロ係数が存在しない小さな数値です。このような頻度の高いケースは、より短いコードワードで表されます。



結果として得られる圧縮率は、量子化フェーズで使用する除数の強さを調整することで、必要に応じて調整できます。10:1の圧縮率では、通常、元の画像と目で見分けがつかない画像になります。100:1の圧縮率も通常は可能ですが、元の画像と比べて明らかにアーティファクトが目立ちます。適切な圧縮レベルは、画像の使用目的によって異なります。
| 外観画像 | |
|---|---|
ワールドワイドウェブを利用する人なら、JPEG画像に現れる圧縮アーティファクトと呼ばれる不規則性に馴染みがあるかもしれません。これは、コントラストの強いエッジ(特に曲線や角)の周囲にノイズとして現れたり、画像が「ブロック状」になったりすることがあります。これはJPEGアルゴリズムの量子化ステップに起因します。特に、コントラストの強い色の間の鋭角な角の周囲では顕著です(このような角が多数含まれるテキストが良い例です)。MPEGビデオにおける同様のアーティファクトは、モスキートノイズと呼ばれます。これは、結果として生じる「エッジの混雑」と、時間の経過とともに変化する不自然な点が、物体の周りに群がる蚊のように見えるためです。[ 59 ] [ 60 ]
これらのアーティファクトは、圧縮レベルを低くすることで軽減できます。ロスレスファイル形式で画像を保存すれば、これらのアーティファクトを完全に回避できますが、ファイルサイズは大きくなります。レイトレーシングプログラムで作成された画像では、地形にブロック状の形状が目立ちます。低強度圧縮によるアーティファクトの中には、画像を見るだけであれば許容できるものもありますが、その後画像を処理すると強調され、通常は許容できない品質になってしまいます。以下の例は、エッジ検出処理におけるロスレス圧縮の影響を示しています。
| 画像 | ロスレス圧縮 | 非可逆圧縮 |
|---|---|---|
| オリジナル | ||
| Cannyエッジ検出器で処理 |
一部のプログラムでは、個々のブロックの圧縮率を調整できます。アーティファクトの少ない画像領域には、より強い圧縮が適用されます。これにより、画質の低下を抑えながら、JPEGファイルのサイズを手動で縮小することが可能です。
量子化段階では常に情報が失われるため、JPEG規格は常に非可逆圧縮コーデックです。(浮動小数点数の量子化と丸めの両方で情報が失われます。)量子化行列が1の行列であっても、丸めの段階では情報が失われます。
画像を表示するためのデコードは、上記のすべてを逆に実行することで構成されます。
DCT係数行列を取得する(DC係数の差を戻した後)
そして、上記の量子化行列と エントリごとの積をとると、次のようになる。
これは、左上の部分の元の DCT 係数行列によく似ています。
次のステップは、次のように表される 2 次元逆 DCT (2D タイプ III DCT) を実行することです。
どこ
出力を整数値に丸めると(元の値は整数値だったため)、値を持つ画像が生成されます(それでも128だけ下方にシフトされています)。
各エントリに128を加算する
これは解凍されたサブイメージです。一般的に、解凍処理によって元の入力範囲を超える値が生成されることがあります。このような場合、デコーダーは出力値をクリップしてその範囲内に収め、解凍画像を元のビット深度で保存する際にオーバーフローを防ぐ必要があります。
圧縮解除されたサブイメージを元のサブイメージと比較すると (右側の画像も参照)、差 (元のサブイメージ - 圧縮されていないサブイメージ) は次のエラー値になります。
平均絶対誤差はピクセルあたり約 5 値 (つまり、) です。
エラーは左下隅で最も顕著で、左下のピクセルがそのすぐ右のピクセルよりも暗くなります。
JPEG コーデックに必要な実装精度は、JPEG 標準への準拠のために策定された要件を通じて暗黙的に定義されます。これらの要件は、ITU.T 勧告 T.83 | ISO/IEC 10918-2 で指定されています。MPEG 標準やそれ以降の多くの JPEG 標準とは異なり、上記のドキュメントでは、参照テスト ストリームによって決定される DCT 領域での順方向 DCT と逆 DCT の最大許容誤差によって、JPEG コーデックのエンコード プロセスとデコード プロセスの両方に必要な実装精度を定義しています。たとえば、デコーダ実装の出力は、上記の標準の一部として提供される参照テスト コードストリームに適用された場合、DCT 領域で 1 量子化単位の誤差を超えてはなりません。他の多くのより現代的な標準とは異なり、ITU.T T.83 | ISO/IEC 10918-2 では画像領域での誤差境界は策定されていません。
JPEG 圧縮アーティファクトは、細かく不均一なテクスチャを持つ写真によく溶け込み、高い圧縮率を実現します。高い圧縮率が、まず画像の左上隅にある高周波テクスチャに影響を与え、コントラストの強い線がぼやけていく様子に注目してください。非常に高い圧縮率は画像の品質に深刻な影響を与えますが、全体的な色と画像の形状は依然として認識可能です。ただし、色の精度は (人間の目にとって) 輪郭の精度 (輝度に基づく) ほど低下しません。このことから、輝度面の精度をより多くの情報ビットで維持するために、まず輝度と色情報を分離するカラー モデルで画像を変換し、その後で色平面をサブサンプリングする (この場合も低品質の量子化が使用される可能性があります) 必要があることがわかります。

参考までに、以下の非圧縮 24 ビット RGB ビットマップ イメージ (73,242 ピクセル) には、219,726 バイト (他のすべての情報ヘッダーを除く) が必要です。以下に示すファイル サイズには、内部 JPEG 情報ヘッダーといくつかのメタデータが含まれています。最高品質イメージ (Q=100) の場合、カラー ピクセルあたり約 8.25 ビットが必要です。グレースケール イメージでは、最低でも 6.5 ビット/ピクセルで十分です (同等の Q=100 品質のカラー情報には、約 25% 多くのエンコード ビットが必要です)。以下の最高品質イメージ (Q=100) はカラー ピクセルあたり 9 ビットでエンコードされ、中品質イメージ (Q=25) はカラー ピクセルあたり 1 ビットを使用します。ほとんどのアプリケーションでは、低品質イメージで示されているように、品質係数はピクセルあたり 0.75 ビット (Q=12.5) を下回ってはなりません。最低品質のイメージはピクセルあたり 0.13 ビットしか使用せず、非常に粗い色で表示されます。これは、イメージを大幅に縮小して表示する場合に便利です。Q係数の代わりにPSNRを使用して、与えられた画質に対してより良い量子化行列を作成する方法がMinguillón & Pujol (2001)に記載されている。 [ 61 ]
| 画像 | 品質 | サイズ(バイト) | 圧縮比 | コメント |
|---|---|---|---|---|
| 最高品質(Q = 100) | 81,447 | 2.7:1 | 極めて小さな遺物 | |
| 高品質(Q = 50) | 14,679 | 15:1 | サブイメージアーティファクトの初期兆候 | |
| 中品質(Q = 25) | 9,407 | 23:1 | より強いアーティファクト、高周波情報の損失 | |
| 低品質(Q = 10) | 4,787 | 46:1 | 深刻な高周波損失は、サブイメージの境界に明らかなアーティファクト(「マクロブロッキング」)をもたらします。 | |
| 最低品質(Q = 1) | 1,523 | 144:1 | 色と細部が極度に失われており、葉はほとんど認識できません。 |
中品質の写真は、非圧縮画像に必要なストレージ容量のわずか4.3%しか使用せず、目立ったディテールの損失や目に見えるアーティファクトはほとんどありません。しかし、圧縮率が一定の閾値を超えると、圧縮画像には目に見える欠陥がますます現れます。この閾値効果の数学的説明については、レート歪み理論の記事を参照してください。この点におけるJPEGの特有の制約は、オーバーラップしない8×8ブロック変換構造です。JPEG 2000やJPEG XRなどのより現代的な設計では、低周波数係数に対してより広い空間範囲を持つ変換を使用し、オーバーラップする変換基底関数を使用することで、ビット使用量の減少に伴う品質の低下がより緩やかになっています。
2004年から2008年にかけて、JPEG画像に含まれるデータを、表現された画像を変更することなくさらに圧縮する方法に関する新たな研究が発表されました。[ 62 ] [ 63 ] [ 64 ] [ 65 ]これは、元の画像がJPEG形式でしか入手できず、アーカイブや伝送のためにサイズを縮小する必要があるシナリオに応用できます。標準的な汎用圧縮ツールでは、JPEGファイルを大幅に圧縮することはできません。
通常、このような方式は、DCT 係数をコーディングするための単純な方式の改良を利用しますが、次の点が考慮されていません。
JPEG には、DCT 係数の符号化効率を向上させるための標準的ではあるがあまり使用されていないオプションがいくつか既に存在している。算術符号化オプションとプログレッシブ符号化オプション (各係数の値が独立して符号化され、各係数の分布が大きく異なるため、ビットレートが低くなる) である。現代の手法では、係数を並べ替えて大きな値の係数をグループ化する、[ 62 ]隣接する係数とブロックを使用して新しい係数値を予測する、[ 64 ]ブロックまたは係数を、その統計と隣接する値に基づいて少数の独立して符号化されたモデルに分割する、[ 63 ] [ 64 ]そして最近では、ブロックをデコードし、空間領域で後続のブロックを予測し、それらをエンコードして DCT 係数の予測を生成する[ 65 ]などの改良が行われている。
通常、このような方法では既存のJPEGファイルを15~25%圧縮することができ、低品質設定で圧縮されたJPEGの場合は最大65%の改善が得られます。[ 64 ] [ 65 ]
packJPGと呼ばれる無料で入手可能なツールは、2007年の論文「JPEGファイルの冗長性削減の改善」に基づいています。2016年のバージョン2.5kでは、トランスコーディングによって平均20%の削減が報告されています。[ 66 ] 2018年のJPEG XL(ISO/IEC 18181)でも、トランスコーディングによって同様の削減が報告されています。

JPSは、2D画像から3D効果を作成するために使用される立体JPEG画像です。2つの静止画像(左目用と右目用)が含まれ、1つのJPEGファイルに2つの横並びの画像としてエンコードされています。JPEGステレオスコピック(JPS、拡張子.jps)は、立体画像用のJPEGベースの形式です。[ 67 ] [ 68 ] JPEG APP3マーカーフィールドにさまざまな構成が格納されていますが、通常は2倍幅の画像が1つ含まれており、交差した(つまり、画像の右半分に左フレーム、またはその逆)横並びの配置で同じサイズの2つの画像を表します。このファイル形式は、特別なソフトウェアなしでJPEGとして表示することも、他のモードでレンダリング用に処理することもできます。
| JPEG マルチピクチャ | |
|---|---|
| ファイル名拡張子 | .mpo |
| 統一型識別子(UTI) | パブリック.mpo-image [ 69 ] |
JPEGマルチピクチャーフォーマット(MPO、拡張子.mpo)は、複数の画像を1つのファイルに保存するためのJPEGベースのフォーマットです。2つ以上のJPEGファイルが連結されています。[ 70 ] [ 71 ]また、画像記述用のJPEG APP2マーカーセグメントも定義しています。富士フイルム FinePix Real 3D W1、HTC Evo 3D、JVC GY-HMZ1U AVCHD/MVC拡張カムコーダー、ニンテンドー3DS、パナソニック ルミックス DMC-TZ20、DMC-TZ30、DMC - TZ60、DMC-TS4(FT4)、ソニーDSC-HX7Vなど、さまざまなデバイスが3D画像を保存するために使用しています。他のデバイスでは、テレビに表示できる「プレビュー画像」を保存するために使用されています。
ここ数年、立体画像の利用が増えたことにより、科学界は立体画像圧縮アルゴリズムの開発に多大な努力を費やしてきました。[ 72 ] [ 73 ]
JPEGコーデックの非常に重要な実装として、Independent JPEG Groupのフリープログラミングライブラリlibjpegがあります。これは1991年に初めて公開され、標準規格の成功の鍵となりました。このライブラリは数え切れないほどのアプリケーションで使用されました。 [ 3 ]開発は1998年に停止しましたが、2009年のバージョン7でlibjpegが再登場した際に、以前のバージョンとのABI互換性が失われました。2010年のバージョン8では非標準の拡張機能が導入され、これはIJGの元リーダーであるトム・レーン氏から批判されました。[ 74 ]
libjpeg-turboは1998年のlibjpeg 6bからフォークされ、SIMD最適化によってlibjpegを改良しています。当初はlibjpegのメンテナンスされたフォークとして見られていましたが、2009年の互換性のない変更以降、より人気が高まりました。[ 75 ] [ 76 ] 2019年には、ISO/IEC 10918-7およびITU-T T.873としてITU|ISO/IECの参照実装となりました。[ 77 ]
ISO/IEC Joint Photographic Experts Groupは、JPEG XTという名称のもう一つの参照ソフトウェア実装を管理しています。この実装は、ベースJPEG(ISO/IEC 10918-1および18477-1)とJPEG XT拡張(ISO/IEC 18477 Parts 2および6-9)、そしてJPEG-LS(ISO/IEC 14495)の両方をエンコードできます。[ 78 ] 2016年には、「強化版JPEG」がISO JPEG XT参照実装のオプションとして導入されました。[ 79 ]
JPEGを非伝統的な方法でエンコードし、与えられたファイルサイズで画質を最大化することには、根強い関心があります。2014年、Mozillaはlibjpeg-turboからMozJPEGを作成しました。これは、ウェブ画像向けの低速ですが高品質のエンコーダです。[ 80 ] 2017年3月、GoogleはオープンソースプロジェクトGuetzliをリリースしました。これは、エンコード時間を大幅に短縮する代わりに、ファイルサイズを小さくするものです(これは、 PNGやその他のロスレスデータ形式におけるZopfliの機能に似ています)。[ 81 ]
2024年4月、Googleは新しいJPEGコーディングライブラリであるJpegliを導入しました。これは、強化された機能と高品質圧縮設定での圧縮率35%向上を提供し、コーディング速度はMozJPEGに匹敵します。[ 82 ]
Joint Photographic Experts Group は、元の JPEG 形式の機能を補完または置き換えることを目的としたいくつかの新しい標準を開発しました。
1993年にISO-14495-1/ITU-T.87として策定されたJPEG LSは、JPEGのオリジナルのロスレス実装よりも効率的な、複雑さの少ないロスレスファイル形式を提供します。また、ロスレスに近いロッシーモードも備えています。機能は主にこのモードに限定されており、その他の点ではオリジナルのJPEGとほぼ同じ制限事項を共有しています。
JPEG 2000は、2000年12月にISO/IEC 15444として公開されました。離散ウェーブレット変換(DWT)をベースとし、オリジナルのJPEG規格を完全に置き換え、あらゆる点でそれを凌駕することを目指して設計されました。JPEGは、色チャンネルあたり最大38ビット、他のどのフォーマットよりも多くの16384チャンネル、そして多様な色空間とハイダイナミックレンジ(HDR)をサポートします。さらに、アルファ透過符号化、他のどのフォーマットよりも多くの数十億ピクセルの画像、そしてロスレス圧縮をサポートします。ロスレス圧縮率が大幅に向上し、高圧縮レベルにおける目に見えるアーティファクトが大幅に減少しています。[ 83 ]
JPEG XT(ISO/IEC 18477)は2015年6月に公開され、JPEGベースのフォーマットを拡張し、より高い整数ビット深度(最大16ビット)、高ダイナミックレンジ画像と浮動小数点符号化、ロスレス符号化、アルファチャンネル符号化をサポートしています。拡張は、JPEGベースのファイルフォーマットであるJFIFおよび8ビット非可逆圧縮画像と下位互換性があります。JPEG XTは、JFIFに基づく拡張可能なファイルフォーマットを使用します。拡張レイヤーは、JPEGの8ビットベースレイヤーを変更し、高解像度画像を復元するために使用されます。既存のソフトウェアは上位互換性があり、JPEG XTバイナリストリームを読み取ることができますが、デコードできるのはベース8ビットレイヤーのみです。[ 84 ]
JPEG XL(ISO/IEC 18181)は2021年から2022年にかけて公開されました。JPEG形式を新しいDCTベースのロイヤリティフリー形式に置き換え、従来のJPEG画像の保存オプションとして効率的なトランスコードを可能にします。[ 85 ]この新しい形式は、 HEIF HM、Daala、WebPが示す静止画像圧縮性能を上回るように設計されています。数十億ピクセルの画像、適切な伝達関数(PQおよびHLG )による最大32ビット/コンポーネントのハイダイナミックレンジ、ビットマップフォントやグラデーションなどの合成画像のパッチエンコーディング、アニメーション画像、アルファチャンネルコーディング、RGB/YCbCr/ I2CtCpカラーエンコーディングの選択をサポートします。 [ 86 ] [ 87 ] [ 88 ] [ 89 ]
JPEG静止画圧縮レベルは、本研究で5:1から120:1という広い範囲で検討されたにもかかわらず、同様に高い許容度を示した。
{{cite web}}: CS1 maint: bot: original URL status unknown (link){{cite web}}: CS1 maint: numeric names: authors list (link){{cite web}}: CS1 maint: numeric names: authors list (link){{cite web}}: CS1 maint: bot: original URL status unknown (link)