スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« やはりGPUに任せる | トップページ | 動画を見るのには便利 »

ストリーミング圧縮も三段階

今は、Mirror-DTCの次バージョンを開発中で、大体の変更は終わったのだが、今日は、映像圧縮系の減色での圧縮率向上とストリーミング圧縮での更なる圧縮率向上を行った。ただし、ストリーミング圧縮でも圧縮率を上げると画質は落ちるので、三段階の選択方式にする。

まず、現行版の映像圧縮では、減色を行っても圧縮率の向上は少ないのだが、次バージョンでは、2倍程度の圧縮率向上が見込める。

何故、違いが出るのか、というと、現行版の減色処理は、基本的には、デスクトップ圧縮用に搭載した機能なので、デスクトップ圧縮で都合が良い様に、減色処理を行っていたからだ。

具体的には、減色時には、RGBの各色に0xFCなんかのマスクをかけただけだったのだが、デスクトップ圧縮では、使用される色数が減るのに対応して最終段で行っているハフマン圧縮で、より短い出力コードが選択可能になる事から、圧縮率が向上できた訳だ。

これに対して、映像圧縮系では、デスクトップ圧縮とは異なり、出力コードは値が小さい程、短いコードが割り当てられる固定変換方式になっている。

なので、色数が減っても、差分圧縮で若干の効果はあるにしても、コード生成段階での圧縮率向上が無かったので、減色にはデスクトップ圧縮並の効果はなかった訳だ。

と、いう事なので、次バージョンでは映像圧縮系の減色時には上記の様な色数の減らし方ではなく、RGBの各色を2で割った値を使用する格好にした。

こういう格好にしておくと、DCT変換ルーチンへの入力値の大きさが半分になるので、普通は、出力コードの値も小さくなるので、コード生成処理での圧縮率向上が可能になる訳だ。

もっとも、上記の通りなので、減色時には、DCT変換結果を逆変換しても元の画像には戻らないので、クライアント側で、そのRGB画像を今度は2倍する処理も必要になる。

なので、Ver1.3.0の減色処理での圧縮率向上が期待できるのはVer1.3.0同士の接続時に限られる、という事になる訳だ。

上記の通りなので、減色時には色数が減るだけではなく、些細な変化は無視される傾向が強まるので、画質も若干劣化するのだが、そもそも減色処理というのは、圧縮率を向上させたい場合に使うモノの筈なので、これはこれで問題無しとした。

で、減色の効果はストリーミング圧縮でも有効なのだが、ストリーミング圧縮では全く別方式での圧縮率向上オプションも用意する事にした。

これは何故なのか、というと、ストリーミング圧縮はオーバーヘッドが映像圧縮よりも2倍程度大きいので、映像圧縮と比べて劇的な圧縮率向上が行えないと格好が付かないからだ。

もっとも、流石に、劇的な圧縮率向上を行おうとすると、画質の劣化も発生するので、このモードは、どうしても圧縮率を上げたい場合用の高圧縮モード、という事にして、元々開発していた通常画質モードをメイン、つまり、バランスモードにする。

で、現行の映像圧縮は三段階に分かれているので、ついでにストリーミング圧縮についてもより高画質な高品質モードも選択可能にしておく事にする。

ちなみに、ストリーミング圧縮の高圧縮モードというのは、どういう事をやって圧縮率を上げているのか、というと、感覚的には、何もしない事で圧縮率を上げている。

具体的には、ストリーミング圧縮のベースはAGM-DCT+で、このコーデックには動き補償機能がある訳だ。

で、通常は、エンコード時には、現画像と動きベクトルが示す前画像との差分をDCT変換して動きベクトルと合わせて出力するのだが、高圧縮モードでは、基本的には、DCT変換は行わず、動きベクトルのみを出力する格好にする。

当然の事ながら、上記だけではマトモな画像が得られない場合があるのだが、元々、この様な場合には、動きベクトルを使わない別方式のエンコード出力を使う様にしていて、この方式はそのまま残す。

つまり、動きベクトルだけで、それなりの画像が得られる場合には、その画像を補正するためのDCT変換は行わない格好にするので、そのDCT変換結果分の圧縮率向上と負荷軽減が見込める訳だ。

で、既に、上記の方式は完成しているので、色々な動画をみたりしながら動作確認しているのだが、動きベクトルだけでも、結構、マトモな映像になる。

ただし、これはあくまでも一般動画を見ている場合で、デスクトップ操作でこんな映像が表示されたらたまったものではない。

しかし、ストリーミング圧縮では、動きが無い領域については、高品位なエンコードを別途行っているので、高圧縮モードを選択しても、例えば、ウインドウ表示で動画を見ている場合に劣化が発生するのは、その動画部分だけ、になる。

なので、Mirror-DTC的には、この高圧縮モードでの画像劣化は、然程、問題にはならない訳だ。

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

Mirror-DTC

Mirror-DTC

(2016/05/04追記)

« やはりGPUに任せる | トップページ | 動画を見るのには便利 »

トラックバック

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

この記事へのトラックバック一覧です: ストリーミング圧縮も三段階:

« やはりGPUに任せる | トップページ | 動画を見るのには便利 »

2017年12月
          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 のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google