スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 再生にも問題がある様だ | トップページ | 編集は分割だけにした »

やはり演算精度だった

今日は、AGMPlayerの再生品質がAG-ムービーカッターよりも悪かった問題を解決したのだが、やはり、演算精度の問題だった様で、AG-ムービーカッターと同一の演算精度にすると画質は向上した。演算誤差はある程度蓄積するので微妙な誤差でも影響が出る。

AG-ムービーカッターと比較して画質が微妙に悪かったのは、AGM形式のDCT+モードで、このモードの場合、エンコード/デコード時にフィードバック処理が入る事になるため、エンコーダーとデコーダーで演算誤差があると、ちょっとした誤差でも蓄積していく格好になる。

と、いう事で、AGMPlayerでは処理性能を鑑みて、AG-ムービーカッターよりも演算精度を落としていた部分があったのだが、とりあえず、現在変更中のWindows用については、演算精度を上げる事で、エンコードパラメータを色々と弄っている時に発生していた異常な画質低下というのは無くなった。

で、現行のデフォルトエンコードパラメータでエンコードされた動画の場合には、画質の低下は気づかなかった訳なのだが、画質低下自体は発生していたので、演算精度を向上させた後では再生画質も微妙に向上した。

なので、エンコードパラメータについての調整も、今日の時点の変更で良しとする事にしたので、明日からはAGM形式動画の無劣化分割/結合処理を入れていく事になる。

ちなみに、エンコードパラメータの調整ではどんな変更を行ったのか、というと、エンコード画質の劣化程度を見て、劣化が酷い場合にはキーフレームを自動生成する機能を動作させなくし、変わりに、一定周期毎の高品質エンコードの品質を上げ、かつ、キーフレームのエンコード品質も向上させた。

上記を見ていても、去年の秋頃にこのブログに書いたDCT+モードのエンコード方式を知らない人には何のことやら判らないと思われるのだが、DCT+モードというのは、画像変化をDCT変換する方式なので、通常のエンコード品質は確信犯的に低く設定してある訳だ。

つまり、画像が変化している状況では、少々画像にノイズが乗っていても気にならないので、画像変化中の画質は悪くし、画像が安定した時に高品質のデータを生成する事で、全体的な画質を確保しつつ、圧縮率を向上させている訳だ。

しかし、前述の様に、DCT+モードでは演算誤差は蓄積していく訳なので、低品質のエンコードが暫く続くと、画質はどんどん劣化していく。

このため、元々、一定周期毎に高品質のエンコードを行って蓄積された誤差をクリアする格好になっていたのだが、今回、その時のエンコード品質を少し向上させた訳だ。

その代わり、エンコード結果を見て、蓄積されたノイズ量が一定値を超えた場合に、確実に蓄積誤差をクリアするために行っていたキーフレーム生成処理をやめた。

これは何故なのか、というと、ノイズが入りまくっている様なオリジナル動画を再エンコードする場合には、低品質のエンコードパラメータでは品質が足りない事が頻発し、キーフレームが頻繁に生成されすぎていたからだ。

このため、そういうキーフレームの生成を抑制するために、一定周期毎の誤差クリア用のエンコード品質を上げてみたのだが、それでもまだ過剰なキーフレームが生成される場合があったため、キーフレームによる誤差クリア処理はやめてしまった。

その代わり、元々のパラメータでは上記の様なキーフレームの生成頻度が高かったために、キーフレームの品質を高くすると圧縮率を上げられなかったのだが、今回の変更で生成頻度は減ったため、キーフレームの品質は上げておいた訳だ。

と、いう事なので、今回の変更で、画像変化時に発生するノイズは瞬間的には増える場面も出て来る筈なのだが、画像がある程度安定した後の画質は向上する事になる筈だ。

= この記事に関連する公開中ソフト =

AmuseGraphics

AmuseGraphics

(2013/12/08追加)

« 再生にも問題がある様だ | トップページ | 編集は分割だけにした »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/57569264

この記事へのトラックバック一覧です: やはり演算精度だった:

« 再生にも問題がある様だ | トップページ | 編集は分割だけにした »

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google