ご依頼内容

  • 比較的相関の高い滑らかな画像データの圧縮に関し、現状の圧縮方式の約10倍以上の圧縮率を達成しつつ、画質は殆ど変わらないようにして欲しい。
  • 最終的にはFPGAかASIC化するので、回路規模の小さい、出来るだけ簡潔な方式で行いたい。
  • また、現行の圧縮ソフトウェアはC#言語とC++言語で作成しているが、このソフトウェアから直接処理が呼べるように、Matlabでは無く、DLLの形式で提供して欲しい。

との、かなり難易度の高いご要望がありました。

課題

  • 現在の圧縮方式から、画質を殆ど落とさずに、更に約10倍の圧縮率を達成すること。
  • 回路化した時に、ゲート数が少なくなるような、単純な方式で行うこと。
  • 現行の圧縮方式との互換性が保たれれば、なお良い。
  • 回路化するのは、デコーダ部分であり、エンコーダについては既存のソフトにDLLで追加する形で実装すること。

ソリューション

お客様の現行の画像圧縮方式でも、元データの約1000分の1の圧縮率と、かなり高い性能であったが、そこから画質を落とさずに、約10倍以上の圧縮率を達成するのは、かなり困難であるが、下記の方式の開発・評価を行い、ご提案した。

  • お客様の現行の圧縮方式は、ブロック単位の圧縮方式であったが、現行方式との互換性を保つため、ブロックサイズをより拡大し、圧縮率を高める。
  • ブロックサイズを拡大し圧縮率を高めれば、画質は劣化する。お客様の現行の圧縮方式は計算量を減らすため、最適解では無く、近似計算を行っていたため、最適解を計算して、画質の劣化を防ぐことにする。この時、圧縮時の計算時間が一気に増大するが、Matlab高速化の様々な手法を駆使し、従来の計算時間と同等まで抑える。
  • 更に画質を維持するため、ブロック単位の圧縮で落ちた詳細情報を、別途、機械学習を用いてブロック内のデータ変化のパターンの特徴を抽出し、少数の特徴ベクトルのみを用いて再現する。(いわゆる、2パスの圧縮方式を採用。)
  • 圧縮処理は、お客様の現行のソフトウェアに、DLLで追加する必要があるので、Matlab Compilerを用いて、処理のDLL化を行う。

結果

  • お客様の現状の圧縮方式から、更に約10倍の圧縮率を達成した。画質も殆ど劣化が無く、場合によっては、10倍の圧縮の方が、画質が良い場合もあった。
  • ご提案した方式は、従来方式をベースに、それに追加する形であり、互換性があると共に、回路化した際も、従来の回路を利用出来るため、全体の回路規模を抑えることが出来た。
  • お客様の圧縮ソフトウェアにDLLで追加するために、Matlab CompilerでDLL化したものをご提供した。
  • 計算時間は、近似計算から最適解を求める方式に変更したにも関わらず、Matab高速化を駆使したため、現行の計算時間と同程度の速度で行うことを可能とした。

ということで、かなり難易度の高い案件であったが、お客様の要求水準を達成することが出来た。

ブロック内の詳細情報から機械学習により特徴ベクトルを抽出した結果

ブロック内の詳細情報から、機械学習により特徴ベクトルを抽出した結果

  • 画像圧縮や画像処理には、様々な方式があり、お客様の処理したいデータの性質にも、大きく依存します。弊社の経験豊富な技術者は、お客様の課題を解決するため、適切なソリューションを提案出来ると考えています。
  • Matlab処理の高速化には、様々な方法があります。アルゴリズムごとに、やり方は異なりますので、高速化をご検討の方は、お気軽にお問い合わせ下さい。
  • お客様が、C#/C++/Java等、Matlabとは異なる言語で開発されていても、アルゴリズムはDLL形式や実行形式で提供することが出来ます。これにより、お客様のプログラムから、直接アルゴリズムを呼び出すことが可能となります。ご関心のあるお客様は、お気軽にお問い合わせ下さい。

お問い合わせ

開発事例にご興味ありましたら、お気軽にお問い合わせ下さい。
下記の、「今すぐお問い合わせ」をクリックして、フォームにご記入下さい。
早急に回答致します。
 
LP_imasugu_toiawase