これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド pnmtojpeg です。
プログラム:
NAME
pnmtojpeg - PNM 画像を JFIF (「JPEG」) 画像に変換します
SYNOPSIS
pnmtojpeg [ オプション ] [ ファイル名 ]
DESCRIPTION
pnmtojpeg 指定された PBM、PGM、または PPM イメージ ファイルを変換するか、ファイルがない場合は標準入力を変換します
という名前が付けられ、標準出力の JFIF ファイルに出力されます。
pnmtojpeg Independent JPEG Group の JPEG ライブラリを使用して出力ファイルを作成します。 見る
http://www.ijg.org 図書館についての情報をご覧いただけます。
「JFIF」は、一般に「JPEG」として知られる画像フォーマットの正しい名前です。 厳密に
つまり、JPEG は圧縮方法の XNUMX つです。 JPEG圧縮を使用した画像フォーマット
最も一般的なのは JFIF です。 JPEGを使用するTIFFのサブフォーマットもあります
圧縮。
EXIF は、JFIF のサブフォーマットである画像フォーマットです (つまり、
APP1 マーカーとしての EXIF ヘッダー)。 pnmtojpeg を指定すると EXIF イメージが作成されます。
-exif オプションを選択します。
OPTIONS
基本的なオプションは次のとおりです。
--exif=ファイルスペック
このオプションは、出力画像が EXIF (JFIF のサブフォーマット) であることを指定します。
つまり、JFIF APP1 マーカーとして EXIF ヘッダーが含まれます。 その内容は
マーカーは、指定されたファイルの内容です。 特別な値 - 読むという意味
標準入力からの EXIF ヘッダーの内容。 標準の指定は無効です
EXIF ヘッダーと入力画像の両方の入力。
EXIF ファイルは、ファイルの長さを表す XNUMX バイトのフィールドで始まります。
長さフィールドを含む、純粋なバイナリで、最上位バイトが最初になります。 の
長さフィールドの特別な値 XNUMX は、EXIF ヘッダーがないことを意味します。
つまり、いいえと同じです -exif オプション。 これは、ファイルを変換する場合に便利です。
JFIF から PNM への使用 jpegtopnm、それを変換してから、次のようにして JFIF に変換し直します。
pnmtojpeg、EXIFヘッダーが含まれているかどうかはわかりません。 jpegtopnm
入力 JFIF の場合、XNUMX バイトのゼロのみを含む EXIF ファイルが作成されます。
ファイルには EXIF ヘッダーがありません。 したがって、入力から任意の EXIF ヘッダーを転送できます。
EXIF ヘッダーが実際にあるかどうかを気にせずに、JFIF を出力 JFIF に変換します。
存在しています。
EXIF ファイルの長さフィールド以降の内容は、バイトごとに正確です。
APP1 マーカーの内容 (長さフィールドはカウントされません)。
EXIFヘッダー。
--quality =n
量子化テーブルをスケールして画質を調整します。 n 0 (最悪) ~ 100 (最高) です。
デフォルトは 75 です。(詳細については以下を参照してください。)
-グレースケール
-グレースケール
グレースケールのJFIFファイルを作成します。 このオプションを使用すると、 pnmtojpeg カラー入力をに変換します
グレースケール。 このオプションを指定しない場合、出力ファイルはカラー形式になります。
入力が PPM の場合はグレースケール形式、入力が PBM または PGM の場合はグレースケール形式です。
PPM 入力の場合、画像内のすべての色がグレーであっても、出力は
カラー形式で。 もちろん、色はグレーのままです。 違いは
このカラー形式はより多くのスペースを必要とし、作成と処理に時間がかかります。
- 最適化
エントロピーエンコーディングパラメータの最適化を実行します。 これがなければ、 pnmtojpeg 使用されます
デフォルトのエンコードパラメータ。 - 最適化 通常、JFIF ファイルは少し作成されます
小さいですが pnmtojpeg 動作が若干遅くなり、より多くのメモリが必要になります。 画像
解凍の品質と速度は影響を受けません。 - 最適化.
- プログレッシブ
プログレッシブ JPEG ファイルを作成します (下記を参照)。
-コメント=클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다.
JFIF 出力にコメント テキストを含むコメント マーカーを含めます。 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. 。 これなしで
オプションを使用すると、出力にコメント マーカーは表示されません。
この - 品質 このオプションを使用すると、圧縮ファイルのサイズと品質をトレードオフできます。
再構築されたイメージ: 品質設定が高くなるほど、JFIF ファイルは大きくなり、
出力画像が元の入力に近くなります。 通常は使用したい
視覚的に何かに解凍する最低品質設定(最小ファイル)
元の画像と見分けがつかない。 この目的のために、品質設定は次のようになります。
50から95の間; 多くの場合、デフォルトの75はほぼ正しいです。 で欠陥が見られる場合
--品質=75その後、満足のいく出力が得られるまで、一度に 5 または 10 カウントずつ増やします。
画像。 (最適な設定は画像ごとに異なります。)
--品質=100 すべて 1 の量子化テーブルを生成し、データの損失を最小限に抑えます。
量子化ステップ(ただし、サブサンプリングと丸めで情報が失われる可能性があります
エラー)。 この設定は、主に実験目的で重要です。 品質値
約95以上は 通常の使用をお勧めします。 圧縮ファイルサイズが大きくなります
劇的に出力画質の向上はほとんどありません。
逆に、品質値が50未満の場合、画像の少ない非常に小さなファイルが生成されます。
品質。 大きな画像のインデックスを作成するには、5〜10程度の設定が役立つ場合があります
たとえば、ライブラリ。 試す --品質=2 (またはそのくらい) いくつかの面白いキュビズム効果のために。 (注記:
約25未満の品質値は、2バイトの量子化テーブルを生成します。
JFIF 標準ではオプションです。 pnmtojpeg このようなものを与えると警告メッセージが表示されます。
他の一部の JFIF プログラムは結果の品質値をデコードできない可能性があるため、
ファイル。 使用 --ベースライン 低品質の値で互換性を確保する必要がある場合。)
この - プログレッシブ オプションは「プログレッシブ JPEG」ファイルを作成します。 このタイプの JFIF ファイルでは、
データは複数回のスキャンで保存され、品質が向上します。 ファイルが
低速の通信リンクを介して送信されると、デコーダは最初のスキャンを使用して表示することができます。
低品質の画像をすぐに表示できるため、後続の画像を表示するたびに表示を改善できます。
スキャン。 最終的なイメージは、同じ品質の標準的な JFIF ファイルとまったく同等です。
設定すると、合計ファイル サイズはほぼ同じになります (多くの場合、若干小さくなります)。 ウォールタイム -
プログレッシブ JPEG はまだ広く実装されていないため、多くのデコーダは画像を表示できません。
プログレッシブ JPEG ファイルです。
上級ユーザー向けのオプション:
--dct=int
整数DCT法を使用します(デフォルト)。
--dct=高速
高速整数 DCT を使用します (精度は低くなります)。
--dct=浮動小数点
浮動小数点 DCT 方式を使用します。 float メソッドの方がわずかに正確です
int メソッドよりも優れていますが、マシンのフローティングが非常に高速でない限り、はるかに遅くなります。
ポイントハードウェア。 浮動小数点法の結果は異なる場合があることにも注意してください。
整数メソッドでは同じ結果が得られるはずですが、マシン間でわずかに異なります。
どこにでも。 高速整数法は、他の XNUMX つよりも精度がかなり低くなります。
--restart=n
JPEG リスタート マーカーを次の間隔で発行します。 n MCU 行、またはすべての n 追加すると MCU ブロック B
数に。 - 再起動 0 (デフォルト)は、再起動マーカーがないことを意味します。
--スムーズ=n
入力画像を滑らかにしてディザリング ノイズを除去します。 n1 から 100 までの範囲、
スムージングの強さを示します。 0(デフォルト)はスムージングがないことを意味します。
--maxmemory=n
大きな画像の処理に使用するメモリ量の制限を設定します。 値が入っています
追加する場合は数千バイト、または数百万バイト M 番号に。 のために
例、 --最大=4m 4,000,000 バイトを選択します。 もし pnmtojpeg より多くのスペースが必要になりますが、
一時ファイルを使用します。
-詳細
変換プロセスに関するメッセージを標準エラー ファイルに出力します。 これはできる
問題のデバッグに役立ちます。
この - 再起動 オプションは言う pnmtojpeg JPEG デコーダが次のことを実行できるようにする追加のマーカーを挿入します。
送信エラー後に再同期します。 リスタートマーカーがないと、
圧縮ファイルは通常、エラーの発生点からファイルの最後までのイメージを破壊します。
画像; リスタート マーカーを使用すると、損傷は通常、画像の上の部分に限定されます。
次のリスタートマーカーまで。 もちろん、再起動マーカーは余分なスペースを占有します。 私たちは
推奨する --restart=1 信頼性の低いネットワークを介して送信される画像の場合
ユーズネットとして。
この - スムーズ オプションは入力をフィルタリングして、細かいスケールのノイズを排除します。 これはしばしば役に立ちます
ディザリングされた画像を JFIF に変換する場合: 10 ~ 50 の適度な平滑化係数で除去されます。
入力ファイル内のディザリング パターンの数を減らすことで、JFIF ファイルが小さくなり、パフォーマンスが向上します。
探している画像。 ただし、スムージング係数が大きすぎると、画像が目に見えてぼやけます。
ウィザードのオプション:
--ベースライン
ベースライン互換の量子化テーブルを強制的に生成します。 このクランプ
低品質の設定でも8ビットまでの量子化値。 (このスイッチは不十分です
出力が実際にベースラインJPEGであることを保証しないため、名前が付けられています。 にとって
たとえば、次を使用できます --ベースライン と - プログレッシブ 一緒。)
--qtables=ファイルスペック
指定されたテキストファイルで指定された量子化テーブルを使用します。
--qslots=n[,...]
各色成分に使用する量子化テーブルを選択します。
--サンプル=HxV [、...]
各色成分のJPEGサンプリング係数を設定します。
--スキャン=ファイルスペック
指定されたテキスト ファイルで指定されたスキャン スクリプトを使用します。 詳細については、以下を参照してください。
スクリプトをスキャンします。
「ウィザード」オプションは、JPEG の実験を目的としています。 何かわからない場合は
あなたがやっている、 しない つかいます それら。 これらのスイッチは、ファイルでさらに文書化されています
Independent JPEG Group の JPEG ライブラリに付属する wizard.doc。
例
この例では、PPMファイルfoo.ppmを品質係数60で圧縮し、
foo.jpgとして出力:
pnmtojpeg --品質=60 foo.ppm > foo.jpg
cat foo.bmp | bmptoppm | pnmtojpeg > foo.jpg
ヒント
JFIF は、漫画、線画、および数個しか含まれていないその他の画像には最適ではありません。
独特の色。 そういう人は、代わりに試してみてください pnmtopng or ppmtobmp。 変換する必要がある場合
JFIF にとってはそのようなイメージですが、試してみるべきです。 pnmtojpeg's - 品質 と
- スムーズ 満足のいく変換を得るためのオプション。 - スムーズ 10 またはそれくらいが役立つことがよくあります。
JPEG 圧縮は、「不可逆性」があることで知られています。 これは、ほとんどの場合とは異なり、
グラフィックス変換では、変換時に情報、つまり画質が失われます。
JFIF。 PPM から JFIF への変換とその逆の変換を繰り返し行うと、画質が低下します。
蓄積する。 XNUMX サイクルほど経つと、画像は以前よりも著しく悪化する可能性があります。
XNUMXサイクル。
このため、画像に対して行う必要があるすべての操作は、いくつかの方法で実行する必要があります。
他の形式を選択し、最後のステップとして JFIF に変換します。 そして、コピーを保存できる場合は、
オリジナルのフォーマットであればあるほど良いです。 PNG はロスレス形式に適しています。
それでいてかなりコンパクト。 GIF を使用することもできますが、GIF を作成できない可能性があります。
LZWの特許保有者であるUnisysとIBMに多額の借金をせずに画像を作成
GIF 形式で使用される圧縮。
この - 最適化 オプション pnmtojpeg 「最終」バージョンを作成するときに使用する価値があります
投稿またはアーカイブ用。 低品質の設定を使用している場合にも有利です。
非常に小さい JFIF ファイル。 多くの場合、改善率は大規模な場合よりもはるかに大きくなります。
ファイル。 (現在のところ、 - 最適化 モードは、
プログレッシブ JPEG ファイル)。
別の番組では、 cjpeg、 似ています。 cjpeg Independent JPEG Group によって維持されており、
JPEGライブラリに同梱されている pnmtojpeg すべての JPEG 作品に使用されます。 のため
つまり、より最新の JPEG 機能を活用することが期待されるかもしれません。 また、そうしなければならないので、
実行するライブラリを用意する pnmtojpeg、しかしその逆はありません、 cjpeg もっと一般的かもしれない
にアクセスできるようにしています。
一方、 cjpeg は、入力の処理に NetPBM ライブラリを使用しません。
などの NetPBM ツール pnmtojpeg する。 これは、以下と一致する可能性が低いことを意味します。
NetPBM 形式を処理する他のすべてのプログラム。 また、コマンド構文は、
pnmtojpeg とは異なり、他の Netpbm ツールと一貫性があります。 cjpeg.
スキャン スクリプト
-スキャン スキャン スクリプトを指定するオプション。 または、 -プログレッシブ 指定するオプション
特定の組み込みスキャン スクリプト。
スキャン スクリプトとは何か、およびスキャン スクリプト ファイルの基本形式については、「スキャン スクリプト」で説明します。
ウィザード.doc Independent JPEG Group の JPEG ライブラリに付属するファイルです。 スキャン
スクリプトは同じです pnmtojpeg として cjpeg.
このセクションには、含まれていないが、おそらく含まれるべき追加情報が含まれています。
の資料をご参照ください。
まず、有効なスキャン スクリプトには多くの制限があります。 JPEGライブラリと
こうして pnmtojpegこれらの制限に違反していないか徹底的にチェックしますが、
スクリプトがどのように準拠していないのかについてはほとんどわかりません。 メッセージは非常に一般的であり、
時には真実ではありません。
まず、DC 係数のエントリは AC 係数のエントリより前になければなりません。
係数。 DC 係数は係数 0 です。 他のすべての係数は AC です
係数。 したがって、DC 係数のエントリでは、コロンの後の XNUMX つの数値が必要です。
AC 係数のエントリでは、コロンの後の最初の数値は次の値であってはなりません。
0.
DC エントリでは、色コンポーネントは昇順である必要があります。 例: の前に「0,2,1」
コロンは間違っています。 「0,0,0」も同様です。
AC 係数のエントリでは、色成分を XNUMX つだけ指定する必要があります。 つまりそこにあります
コロンの前には数字を XNUMX つだけ指定できます。
特定の色成分の特定の係数の最初のエントリでは、「Ah」
値はゼロでなければなりませんが、Al 値は任意の有効なビット番号にすることができます。 その後のエントリーでは、
Ah は、前のエントリの Al 値でなければなりません (その色の係数の場合)
コンポーネント)、Al 値は Ah 値より XNUMX 小さい必要があります。
スクリプトは最終的に、各色の DC 係数の少なくとも一部を指定する必要があります。
成分。 そうしないと、「スクリプトはすべてのデータを送信しません」というエラー メッセージが表示されます。
DC 係数のすべてのビット、または AC 係数のいずれかを指定する必要はありません。
JPEG ライブラリの構築には、スキャン スクリプト機能を省略する標準オプションがあります。
何らかの理由でライブラリがこのオプションを使用してビルドされた場合、「リクエストされました」というメッセージが表示されます。
この機能はコンパイル時に省略されました。」
ENVIRONMENT
JPEGEM
この環境変数が設定されている場合、その値がデフォルトのメモリ制限になります。 NS
値は、の説明に従って指定されます --maxmemory オプション。 明示的な
--maxmemory オプションはすべてをオーバーライドします JPEGEM.
onworks.net サービスを使用してオンラインで pnmtojpeg を使用する