スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 久々に楽しみではある | トップページ | 微妙に違うので »

まずは単純移植から

今は、Mirror-DTCの次バージョンを開発中なのだが、今回、AGM-DCT+相当のエンコーダーを使ったストリーミングモードを追加予定だ。このモードでは、AmuseGraphicsのAGM-DCT+とは異なり、ビットレート指定モドキの制御を入れる予定なのだが、まずは、単純移植する。

と、いう事で、今日は、現行版のエンコード処理部のコード整理を少し行った。

これは何故なのか、というと、Mirror-DTCのエンコード処理部というのは、AGMPlayerなんかとは違って、結構、複雑だったりするからだ。

何故、複雑になっているのか、というと、まず、Mirror-DTCでは、極力、不要なエンコードを行わなくて済む様に、本番エンコード前に前フレームとの差分処理を行い、前フレームと変化が無い部分については、実際のエンコードは行わなくて済む格好にしてあるからだ。

つまり、Mirror-DTCのエンコード部というのは、エンコード対象がデスクトップ映像である事を有効活用している格好になっているので、普通の動画エンコードよりも複雑になっている訳だ。

更に、Mirror-DTCでは、画像の画質指定が可能になっているのだが、この画質指定というのは、AGM形式動画なんかの品質値とは全く異なるモノになっている。

具体的には、最高画質では、基本的には、デスクトップ映像をRGB画像として普通にエンコードするのだが、それ以外の画質では、YV12変換を行っている。

なので、高画質から低画質までは、全てYV12ベースなのだが、高画質と中画質と低画質の違いとしては、高画質では画像の縮小は行っていないのだが、中画質では75%に、低画質では50%に縮小している。

それ以外にも、Mirror-DTCのエンコード部というのは、従来互換性を鑑みて、全ての旧バージョン用と現行バージョン用のエンコーダーが実装されていて、かつ、圧縮方式には、全く方式が異なるデスクトップ圧縮と映像圧縮がある訳だ。

と、いう事なので、この辺に強引にAGM-DCT+用エンコーダーを挿入しようとすると、危なっかしいので、今日は、まず、インラインな感じでコーディングされていたこの辺の処理ルーチンを処理別に別だしする格好で、扱いやすくしていた。

で、今回追加しようとしているストリーミングモードというのは、主に全画面動画視聴なんかの為に、安定した高フレーム転送を可能にするモード、という事になるのだが、リモートデスクトップソフトとしては、遅延が増加する弱点がある。

ただし、上記は全画面動画なんかの高フレーム転送とのトレードオフになる。

逆に言うと、ストリーミングモードでは、圧縮率の必要がない状況では、エンコード方式自体も、AGM-DCT+からAGM-DCT(映像圧縮)→AGM-YV12(デスクトップ圧縮-高画質)→AGM-RGB(デスクトップ圧縮-最高画質)、という感じで変化させていく予定なので、ある意味、現行版の圧縮形式を包含する格好になる。

つまり、ストリーミングモードがちゃんと使える様になるのなら、現行版にある各種エンコードモードは不要に出来る訳だ。もっとも、こういったエンコードの自動遷移方式は、Mirror-DTCの開発初期にテスト的に導入し、結局、採用を見送った経緯がある。

これは何故だったのか、というと、エンコード方式に違いによって、画質がコロコロと変わるので、特に、テキスト主体のコンテンツを見ている場合には、イライラさせられたりしたからだ。

ただし、その当時、作者の無線Lan環境は11gだったので、現状よりも遅く、かつ、不安定だった。なので、エンコード方式の切り替え用キーフレーム転送に時間を取られたために、切り替えがスムーズに行えなかった、という問題が大きかった。

これに対して、現状では、11nによるデータ転送を想定できるので、再度、チャレンジする気になっている訳だ。

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

Mirror-DTC

Mirror-DTC

(2016/05/04追記)

« 久々に楽しみではある | トップページ | 微妙に違うので »

トラックバック

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

この記事へのトラックバック一覧です: まずは単純移植から:

« 久々に楽しみではある | トップページ | 微妙に違うので »

2017年6月
        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  

広告

プライバシーポリシー

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

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

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

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