問題タブ [dct]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
7483 参照

python - opencvを使用してPythonで画像のdctを取得する方法

私は画像のDCTを取得する方法を見つけようとしてきました。画像を取得して一連のフィルタリングを行った後、DCTを計算したいと思います。コードスニプレットは次のとおりです。

私はここで与えられた説明をいじってみましたが、成功しませんでした。私が次のようなことを試したとき:

次のようなエラーが発生します:

エラーから理解できることは、入力が32ビット浮動小数点ではなく8ビットであるということです。どうすれば変換して32ビット浮動小数点として渡すことができますか?問題はよくわかりません。よろしくお願いします。DCTを取得するにはどうすればよいですか?私はopenCVとpythonにかなり慣れていません。同じトピックで他の2/3スレッドを検索しましたが、機能しませんでした。

0 投票する
4 に答える
14411 参照

fft - ビデオ/画像圧縮で他の変換よりも DCT 変換が好まれる理由

画像およびビデオの圧縮規格で DCT (離散コサイン変換) がどのように使用されているかを説明しました。

しかし、なぜ dft や dst などの他の変換よりも DCT のみが好まれるのでしょうか?

0 投票する
1 に答える
731 参照

java - Java の離散コサイン変換ライブラリ

対数時間でDCTを計算するJavaのDCTライブラリはありますか? DCTはFFTアルゴリズムで計算できると読んだので、dctには対数時間アルゴリズムもあるはずです。

0 投票する
1 に答える
617 参照

c++ - ロフラーのバージョンのフォワード DCT のこの実装が機能しないのはなぜですか?

Loeffler のバージョンの 1D DCT を実装しようとしていますが、結果はありません... フロー ダイアグラムに示されている操作のチェーンに従いましたが、画像が白くなりました :( 何が間違っているのでしょうか?

ダイアグラム:

1D DCT 8 バイ ロフラー

コード:

含む

Lena の pic 64 x 64 ピクセルの結果:

0 投票する
1 に答える
1421 参照

opencv - FFTW fftwf_plan_r2r_2d() と同等の FFTW_REDFT01

FFTW を使用するコードを KissFFT を使用するように移植しようとしています。
コードはfftwf_plan_r2r_2d()with をFFTW_REDFT01使用します。

KissFFT での同等の呼び出しは何ですか?

この呼び出し ( with ) が DCT と同等である場合、代わりにOpenCVFFTW_REDFT01などの直接 DCT 変換を使用できますか? 反射や対称化など、必要な入力データの変更はありますか?cv::dct

0 投票する
0 に答える
1673 参照

c# - 離散コサイン変換 C#

C# で DCT を実行できるプログラムを作成しました。

これは私のコードです:

この部分は、c[0,0] DCT を取得することです。

そして、この部分は、平均画像 DC DCT 係数を取得することです。

問題はメインプログラムにあります。x = exp(- ((miuN - miu)^2)) のように指数関数を計算したいのですが、私のプログラムは常に 0 を返します。

これは、メイン プログラムのコードです。

誰でもこの問題を解決するのを手伝ってもらえますか? ありがとう!

0 投票する
1 に答える
986 参照

math - 「八の法則」とは?

JPEG の進化に関するこのドキュメントを調べているときに、上記のドキュメントのセクション 7.3 で「8 の法則」に出くわしました。

SmartScale 拡張により 1 から 16 までの他のブロック サイズが導入されたにもかかわらず、元の JPEG 規格の固定サイズ 8 を超えて、8 のブロック サイズが依然としてデフォルト値であり、他のすべてのサイズの DCT が標準の 8x8 DCT を基準にスケーリングされます。

「<strong>8 の法則」は、なぜサイズ 8 が DCT サイズの正しいデフォルトおよび基準値であるかを説明しています。

私の質問は

この「八の法則」とは一体何なのでしょうか?

  • 歴史的に、サンプルからの多数の画像を評価して、DCT を使用した圧縮技術をサポートするのに十分な冗長データが8x8画像ブロックに含まれているという結論に達する研究が行われましたか? 8M(4Kx4K) のような非常に大きな画像サイズがほとんどのデジタル画像/ビデオで急速に標準になっていますが、この仮定はまだ有効ですか?

  • マクロ ブロックを 8x8 に制限するもう 1 つの歴史的な理由は、より大きなマクロ ブロックの計算上、画像データ サイズが非常に大きくなることです。最新のスーパースカラー アーキテクチャ (CUDA など) では、その制限は適用されなくなりました。

以前の同様の質問が存在します- 1、2、および3しかし、この神秘的な基本的な「 8の法則」への詳細/リンク/参照について気にする人は誰もいません.


1. 8x8 マクロ ブロックが最適であることの有効性をテストするために、非常に大きなサイズの画像を含む最新のデータセットでそれを繰り返したいので、元の研究の参照/抜粋/詳細は高く評価されます。

2. 同様の研究が最近実施された場合は、それへの言及も歓迎します。

3. SmartScale物議を醸していること理解しています。明確な潜在的な利点はありませんが1、せいぜい jpeg 標準の他の下位互換拡張機能と同等です2。私の目標は、DCT ブロック サイズ (JPEG 画像圧縮標準) として 8x8 を選択した元の理由が依然として関連しているかどうかを理解することです。そのため、8 の法則が何であるかを知る必要があります。

0 投票する
0 に答える
930 参照

image - matlab で DCT2D を使用している画像圧縮コードのエラー

既に存在するプログラムを修正しようとしていますが、常にこのエラーが発生します " Error in ==> DCT1 at 254 decm_eq BIN2DEC = ([I_runco​​de (a, b) code (1 + m * (c_indx-1). M * c_indx) DEC2BIN (0 bpp_diff)]). "どうすればよいかわかりません。私を助けてください