Personal View site logo

User Tools

Site Tools


streamparser-jap

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

streamparser-jap [2012/05/01 05:25]
bkmcwd [StreamParser本体機能について]
streamparser-jap [2012/05/06 13:10] (current)
bkmcwd [StreamParser 2.6]
Line 1: Line 1:
-====== StreamParser 2.======+====== StreamParser 2.======
  
  
Line 7: Line 7:
   * 対応ファイルはAVC(”.MTS”)のみ。   * 対応ファイルはAVC(”.MTS”)のみ。
 本ソフトを本格的に使いこなすには、MPEGやH.264といった各種規格に関する知識が必要ですが、たとえ少々意味がわからなくても、StreamParserの吐き出すログはパッチの開発者及びテスターにとって非常に役に立つものなので、ぜひ使ってみてください。 本ソフトを本格的に使いこなすには、MPEGやH.264といった各種規格に関する知識が必要ですが、たとえ少々意味がわからなくても、StreamParserの吐き出すログはパッチの開発者及びテスターにとって非常に役に立つものなので、ぜひ使ってみてください。
 +  * ダウンロードはこちらから:[[http://www.personal-view.com/talks/discussion/comment/52530#Comment_52530]]
  
 ===== インストール ===== ===== インストール =====
Line 18: Line 19:
  
 ===== StreamParser本体機能について ===== ===== StreamParser本体機能について =====
 +
 +=== 【分析対象ファイルの読み込み】 ===
 +
  
  
-【分析対象ファイルの読み込み】 
 StreamParserにファイルを読み込んでスタートするには次の2通りの方法があります。 StreamParserにファイルを読み込んでスタートするには次の2通りの方法があります。
 ※ StreamParserでAVCファイル(”***.MTS”)を開く前に、必ずコピーを取っておきましょう。 ※ StreamParserでAVCファイル(”***.MTS”)を開く前に、必ずコピーを取っておきましょう。
  
-「File」→「Open」:+== *「File」→「Open」: == 
 + 
  ビデオファイル全体を読み込んで分析する。  ビデオファイル全体を読み込んで分析する。
  
-「File」→「Quick Test」+== *「File」→「Quick Test」 == 
  ビデオファイルの最初の10秒を読み込んで分析する。  ビデオファイルの最初の10秒を読み込んで分析する。
  (※デフォルトは10秒ですが「Configuration」→「Configure Quick Test」で読み込む尺を変更可能)  (※デフォルトは10秒ですが「Configuration」→「Configure Quick Test」で読み込む尺を変更可能)
Line 33: Line 39:
 大きなファイルの場合、分析に長い時間を要します。もし特にファイル全体を分析する必要がなければ、「Quick Test」で開くことを推奨します。 大きなファイルの場合、分析に長い時間を要します。もし特にファイル全体を分析する必要がなければ、「Quick Test」で開くことを推奨します。
  
-【フレームモード】+=== 【フレームモード】 === 
 + 
 StreamParserには、「フレームモード」と「タイムモード」という2つのモードがあります。 StreamParserには、「フレームモード」と「タイムモード」という2つのモードがあります。
  
-* フレームモードでは、ストリームを個々のフレームに分割して分析します。+  * フレームモードでは、ストリームを個々のフレームに分割して分析します。
  
 {{ http://www.personal-view.com/talks/uploads/FileUpload/4d/a70d0fa95e0289a1954cc86ac0f3b5.jpg }} {{ http://www.personal-view.com/talks/uploads/FileUpload/4d/a70d0fa95e0289a1954cc86ac0f3b5.jpg }}
    
-  * //__A__.// ストリームデータパネル+== A. ストリームデータパネル == 
 ここでは一連のビデオデータが個々のフレームに分割されます。 ここでは一連のビデオデータが個々のフレームに分割されます。
 +
 表1列目:GOPフレームフォーマットにおけるフレームナンバー 表1列目:GOPフレームフォーマットにおけるフレームナンバー
 +
 表3列目「Offset」:MTSファイルの該当フレームの開始アドレス 表3列目「Offset」:MTSファイルの該当フレームの開始アドレス
 +
 表4列目「Length」:そのフレームに含まれるデータ量 表4列目「Length」:そのフレームに含まれるデータ量
 +
 表5列目「Type」:フレームタイプ(I、P、B、又はA) 表5列目「Type」:フレームタイプ(I、P、B、又はA)
 +
 ※ A(Audio)フレームは、ストリームフレームグラフ(H)のすぐ上の「Include Audio」チェックボックスがオンの場合にのみ表示されます。 ※ A(Audio)フレームは、ストリームフレームグラフ(H)のすぐ上の「Include Audio」チェックボックスがオンの場合にのみ表示されます。
 +
 ※ 各列の見出し部分をクリックすると、該当項目の数値の昇順(降順)で表の並び替えが行われる。 ※ 各列の見出し部分をクリックすると、該当項目の数値の昇順(降順)で表の並び替えが行われる。
-  * //__B__.// 「選択」ボタン+== B. 「選択」ボタン == 
 フレームデータパネル(C)とストリームフレームグラフ(H)の表示を同期させるボタン。 フレームデータパネル(C)とストリームフレームグラフ(H)の表示を同期させるボタン。
 ストリームデータパネル(A)の最初のフレームがグラフの最初のフレームになります。 ストリームデータパネル(A)の最初のフレームがグラフの最初のフレームになります。
-  * //__C__.// フレームデータパネル+== C. フレームデータパネル == 
 ストリームデータパネルで選んだフレームをTS(Transport Stream)パケット単位で分割します。 ストリームデータパネルで選んだフレームをTS(Transport Stream)パケット単位で分割します。
 表1列目「Packet」:選択フレームの冒頭からのパケットナンバー 表1列目「Packet」:選択フレームの冒頭からのパケットナンバー
 +
 表2列目「Offset」:MTSファイルにおけるそのパケットの開始アドレス 表2列目「Offset」:MTSファイルにおけるそのパケットの開始アドレス
 +
 表3〜5列目「E」「S」「P」:TSのヘッダーフラグ 表3〜5列目「E」「S」「P」:TSのヘッダーフラグ
 +
 表6列目「PID」:TSのパケットID 表6列目「PID」:TSのパケットID
 +
 表7〜9列目「SC」「AF」「CC」:TSのヘッダーフラグ 表7〜9列目「SC」「AF」「CC」:TSのヘッダーフラグ
 +
 表10列目「Type」:パケットタイプ。「VID」:ビデオ、「AUD」:音声 表10列目「Type」:パケットタイプ。「VID」:ビデオ、「AUD」:音声
 +
 表11列目「Abs Packet」:(ファイル冒頭からの)完全パケットナンバー 表11列目「Abs Packet」:(ファイル冒頭からの)完全パケットナンバー
 +
 表冒頭の「Frame Data」横の()内の数値は選択されたフレームナンバーを示します。 表冒頭の「Frame Data」横の()内の数値は選択されたフレームナンバーを示します。
 各列の見出し部分をクリックすると、該当項目の数値の昇順(降順)で表の並び替えが行われる。 各列の見出し部分をクリックすると、該当項目の数値の昇順(降順)で表の並び替えが行われる。
-  * //__D__.// 「ファイルストリーム開始」ボタン+== D. 「ファイルストリーム開始」ボタン == 
 このボタンを押すことによって、「メディアプレーヤー」が起動します。メディアプレーヤーの詳細については下で説明します。 このボタンを押すことによって、「メディアプレーヤー」が起動します。メディアプレーヤーの詳細については下で説明します。
-  * //__E__.// パケットデータ+== E. パケットデータ == 
 フレームデータパネルで選択されたフレームの16進法データが表示されます。 フレームデータパネルで選択されたフレームの16進法データが表示されます。
 表題の「Packet Data」横の()内の数値は、選択フレームの「Packet」値/「Abs Packet」値を示す。 表題の「Packet Data」横の()内の数値は、選択フレームの「Packet」値/「Abs Packet」値を示す。
  
-  * //__F__.// 「選択」ボタン+== F. 「選択」ボタン == 
 Bの「選択」ボタンと近いですが、ストリームデータパネルで選択されたフレームがストリーム・フレームグラフの1列目としてセットされます。 Bの「選択」ボタンと近いですが、ストリームデータパネルで選択されたフレームがストリーム・フレームグラフの1列目としてセットされます。
-  * //__G__.// スライダー+== G. スライダー == 
 このスライダーを動かすことで、グラフに表示される列数(=フレーム数)の数を変更できます。グラフの拡大縮小用。 このスライダーを動かすことで、グラフに表示される列数(=フレーム数)の数を変更できます。グラフの拡大縮小用。
-  * //__H__.// ストリームファイルグラフ+== H. ストリームファイルグラフ == 
 グラフ上部右の「Include」チェックボックスで「video」と「audio」のどちらがオンになっているかに応じて、選択されたストリームにおける、フレーム毎のサイズのデータがプロットされます。 グラフ上部右の「Include」チェックボックスで「video」と「audio」のどちらがオンになっているかに応じて、選択されたストリームにおける、フレーム毎のサイズのデータがプロットされます。
 グラフで表わされるフレームサイズの単位は「bytes」か「bits」かを選べるようになっています。 グラフで表わされるフレームサイズの単位は「bytes」か「bits」かを選べるようになっています。
-  * //__I__.// 「情報パネル拡大表示」ボタン+== I. 「情報パネル拡大表示」ボタン == 
 情報パネル(J)の内容を大きい別ウィンドウで表示する。 情報パネル(J)の内容を大きい別ウィンドウで表示する。
-  * //__J__.// 情報パネル+== J. 情報パネル == 
 ストリーム、選択されたフレームとパケットの情報を示します。 ストリーム、選択されたフレームとパケットの情報を示します。
  
-  * //__K__.// 「タイムモードに変更」ボタン+== K. 「タイムモードに変更」ボタン == 
 ストリームパーサーをタイムモードに変更する。 ストリームパーサーをタイムモードに変更する。
  
-【タイムモード】 +=== 【タイムモード】 === 
-* ストリームを時間単位で分割して分析します。+ 
 + 
 +  * ストリームを時間単位で分割して分析します。
 ※ ウィンドウ構成はフレームモードとほぼ同じなので、相違点のみ解説します。 ※ ウィンドウ構成はフレームモードとほぼ同じなので、相違点のみ解説します。
  
 {{ http://www.personal-view.com/talks/uploads/FileUpload/49/44350d5dcaf109a4002da6720e73e6.jpg }} {{ http://www.personal-view.com/talks/uploads/FileUpload/49/44350d5dcaf109a4002da6720e73e6.jpg }}
  
-  * //__A__.// フレームデータパネル+== A. フレームデータパネル == 
 タイムモードでは「フレーム」は実際の時間単位(一般的に0.092 – 0.096秒)で分割された時間を表す。このような時間分割においてはタイプの異なった複数のパケットが含まれます(ビデオ、音声、タイミング、パラメータセットetc)。 タイムモードでは「フレーム」は実際の時間単位(一般的に0.092 – 0.096秒)で分割された時間を表す。このような時間分割においてはタイプの異なった複数のパケットが含まれます(ビデオ、音声、タイミング、パラメータセットetc)。
 フレームモードと違い、タイムモードはすべてのパケットタイプを示します。単純にビデオまたは音声だけではありません。 フレームモードと違い、タイムモードはすべてのパケットタイプを示します。単純にビデオまたは音声だけではありません。
-  * //__B__.// ストリームフレームグラフ+== B. ストリームフレームグラフ == 
 各時間単にに含まれるデータ量を示します。 各時間単にに含まれるデータ量を示します。
-  * //__C__.// 「スムージング」ボタン+== C. 「スムージング」ボタン == 
 グラフのビットレートライン(線グラフ)を平滑化します。 グラフのビットレートライン(線グラフ)を平滑化します。
  
-【ファイルストリーム再生機能】+=== 【ファイルストリーム再生機能】 === 
 + 
 フレームモードで「ファイルストリーム開始」ボタン(D)がクリックされると、フレームデータパネル内に「Windowsメディアプレーヤー」が表示されます。 フレームモードで「ファイルストリーム開始」ボタン(D)がクリックされると、フレームデータパネル内に「Windowsメディアプレーヤー」が表示されます。
 このプレーヤーは別ウィンドウに分離して表示することもできます(detachボタン)。ストリームが再生されると、それに応じてストリーム・フレーム・グラフのマーカーが付随して動くようになっています。  【情報パネル】 このプレーヤーは別ウィンドウに分離して表示することもできます(detachボタン)。ストリームが再生されると、それに応じてストリーム・フレーム・グラフのマーカーが付随して動くようになっています。  【情報パネル】
 +
 “Show Big Information Panel”ボタンを押すと情報パネルが開きます。ビットレート、各タイプのフレームサイズの最小、最大、平均の確認に便利です。 “Show Big Information Panel”ボタンを押すと情報パネルが開きます。ビットレート、各タイプのフレームサイズの最小、最大、平均の確認に便利です。
  
 {{ http://www.personal-view.com/talks/uploads/FileUpload/f2/b3dca59ccb0a7a7bdc3b71e4a8ebb5.jpg }} {{ http://www.personal-view.com/talks/uploads/FileUpload/f2/b3dca59ccb0a7a7bdc3b71e4a8ebb5.jpg }}
    
-【 StreamParserスナップショット作成機能 】+=== 【 StreamParserスナップショット作成機能 】 === 
 + 
 フォーラム等に分析結果を投稿するための情報を一覧にまとめた簡易フォーム(=スナップショット)を作成する機能もあります。 フォーラム等に分析結果を投稿するための情報を一覧にまとめた簡易フォーム(=スナップショット)を作成する機能もあります。
 「File」→「Generate Snapshot Report」 「File」→「Generate Snapshot Report」
Line 114: Line 156:
 {{ http://www.personal-view.com/talks/uploads/FileUpload/c2/09ae3b7aeea2eca97c1f489d7bbbbc.jpg }} {{ http://www.personal-view.com/talks/uploads/FileUpload/c2/09ae3b7aeea2eca97c1f489d7bbbbc.jpg }}
  
-【その他の機能】+=== 【その他の機能】 === 
 + 
 その他のメニューオプションでも色々なことができます。 その他のメニューオプションでも色々なことができます。
  
-  * Unordered List ItemMTSファイルの整合性チェック機能(「Tools」→「Check Stream File」) +  * ItemMTSファイルの整合性チェック機能(「Tools」→「Check Stream File」) 
-  * Unordered List Itemカメラ機種選択(「Configuration」→「Camera」) +  * カメラ機種選択(「Configuration」→「Camera」) 
-  * Unordered List Itemコンピューターの性能が遅い場合の対応(「Configuration」→「Slow Computer」) +  * コンピューターの性能が遅い場合の対応(「Configuration」→「Slow Computer」) 
-  * Unordered List ItemGH1のハッキングによる1080p25読み取り機能(「Configure」→「Interpret GH1 1080i60 as Hacked 1080p25」)+  * GH1のハッキングによる1080p25読み取り機能(「Configure」→「Interpret GH1 1080i60 as Hacked 1080p25」)
  
 ===== JM-SP Decoderについて ===== ===== JM-SP Decoderについて =====
Line 147: Line 191:
 The log file contains quite a bit of useful data to help determine how well a video clip has been encoded.  The items shown for each frame are: The log file contains quite a bit of useful data to help determine how well a video clip has been encoded.  The items shown for each frame are:
  
-  * //__「フレーム」__.//  フレームナンバー(StreamParserで表示されるのと同じです) +== 「フレーム」. == 
-  * //__「タイプ」__.//  フレームタイプ(IDR、I、P、B)+フレームナンバー(StreamParserで表示されるのと同じです) 
 +== 「タイプ」. == 
 +フレームタイプ(IDR、I、P、B)
 注)インターレース映像に関しては表示された個々のフレームは実際には2つのフィールドが1枚の画面(フレーム)となって表示されています。例えば、1つのインターレース・フレームは「I|P」などと表示される。これは、実際にはフレームを構成する2フィールドのうち、半分が「I」で、もう半分が「P」であることを意味しています。 注)インターレース映像に関しては表示された個々のフレームは実際には2つのフィールドが1枚の画面(フレーム)となって表示されています。例えば、1つのインターレース・フレームは「I|P」などと表示される。これは、実際にはフレームを構成する2フィールドのうち、半分が「I」で、もう半分が「P」であることを意味しています。
-  * //__「QP」__.//  フレームごとの基準QP値 (in the case of the GH2, the entire frame). +== 「QP」. == 
-  * //__「Min」(最少QP値)__.// フレーム内の各マクロブロックにおけるQPの最小値+フレームごとの基準QP値 (in the case of the GH2, the entire frame). 
 +== 「Min」(最少QP値). == 
 +フレーム内の各マクロブロックにおけるQPの最小値
 ※ H.264コーデックにおける圧縮では、フレームの基準QPを基本として、そこから派生したオフセット値が各マクロブロック単位で使われるため、そこに最大値、最少値の幅が発生することになります。 ※ H.264コーデックにおける圧縮では、フレームの基準QPを基本として、そこから派生したオフセット値が各マクロブロック単位で使われるため、そこに最大値、最少値の幅が発生することになります。
-  * //__「Max」(最大QP値)__.// フレーム内の各マクロブロックにおけるQPの最大値。 +== 「Max」(最大QP値). == 
-  * //__「Range」(QPの幅)__.//  Max(最大QP)- Min(最少QP)+フレーム内の各マクロブロックにおけるQPの最大値。 
 +== 「Range」(QPの幅). == 
 +Max(最大QP)- Min(最少QP)
 QP値のレンジ(幅)を示す。 QP値のレンジ(幅)を示す。
 テストチャートの場合は、このレンジが高いと潜在的な問題があることを示しています。というのは、テストチャート(高精細なディティールが画面全体に広く分布している)のような幾何学的な規則性のあるものは、本来すべてのマクロブロックで一定のQP値(レンジは5以下)でエンコードされるはずだからです。 テストチャートの場合は、このレンジが高いと潜在的な問題があることを示しています。というのは、テストチャート(高精細なディティールが画面全体に広く分布している)のような幾何学的な規則性のあるものは、本来すべてのマクロブロックで一定のQP値(レンジは5以下)でエンコードされるはずだからです。
  
 一方、実写映像では事情が異なり、絵柄によってはレンジが大きくなるケースは大いにあり得ます。しかし、大きすぎるレンジ(20かそれ以上)は一般的には良くありません。レンジが高い値を示すのは、しばしばIフレームにおいてブロックノイズが出ていることを表しています(そしてそれは続くPやBフレームにも伝搬します)。 一方、実写映像では事情が異なり、絵柄によってはレンジが大きくなるケースは大いにあり得ます。しかし、大きすぎるレンジ(20かそれ以上)は一般的には良くありません。レンジが高い値を示すのは、しばしばIフレームにおいてブロックノイズが出ていることを表しています(そしてそれは続くPやBフレームにも伝搬します)。
-  * //__「DC」__.// フレームにおけるDCT係数として使われるもっとも効果的な最低QP値を示す。この値はQPと量子化マトリクスを結合することにより計算されます。4を下回るDC値は、8bitコーデックでは無駄に消費され、エンコード時間が増えるばかりで画質向上は期待できません。もしDC値が4を切った場合は、QP値の設定が低すぎるので、DC値が4を上回るようになるまでPTool設定でQP値を引き上げる(またはAQ値を下げる)のが望ましい。 +== 「DC」. == 
-  * //__「スキップ」__.//  1つのフレーム内のマクロブロックのうちスキップされた(エンコードされなかった)マクロブロックの数を示す。+フレームにおけるDCT係数として使われるもっとも効果的な最低QP値を示す。この値はQPと量子化マトリクスを結合することにより計算されます。4を下回るDC値は、8bitコーデックでは無駄に消費され、エンコード時間が増えるばかりで画質向上は期待できません。もしDC値が4を切った場合は、QP値の設定が低すぎるので、DC値が4を上回るようになるまでPTool設定でQP値を引き上げる(またはAQ値を下げる)のが望ましい。 
 +== 「スキップ」. == 
 +1つのフレーム内のマクロブロックのうちスキップされた(エンコードされなかった)マクロブロックの数を示す。
 低い値なら問題ありません。逆にテストチャートで高い値(50以上)を示す場合は問題があることを表しています。この現象の一般的な原因は、コーデックがその帯域幅を超過していることであり、その代償としてフレーム自体のエンコードがスキップ(=コマ落ち)し始めることにつながります。 低い値なら問題ありません。逆にテストチャートで高い値(50以上)を示す場合は問題があることを表しています。この現象の一般的な原因は、コーデックがその帯域幅を超過していることであり、その代償としてフレーム自体のエンコードがスキップ(=コマ落ち)し始めることにつながります。
 実写映像では、通常「空」のような変化の少ない一様な場所で起こることが多い。この「スキップ」の値が高いことは、動きがカクカクしたり、ブロックノイズが出ることを示しています。 実写映像では、通常「空」のような変化の少ない一様な場所で起こることが多い。この「スキップ」の値が高いことは、動きがカクカクしたり、ブロックノイズが出ることを示しています。
-  * //__「QST-High」__.//  この欄に*(アスタリスク)マークがついていたら、コーデックがフォールバックモードに入ったことを意味します。フォールバックモードとは、コーデックが機器のクラッシュを避けるために一番低精細な量子化スケーリングテーブル(T4)を用いることです。フォールバックモードに入ることは希ですが、非常に高精細な被写体を速いシャッタースピードでパンしたときなどに起こります。+== 「QST-High」. == 
 +この欄に*(アスタリスク)マークがついていたら、コーデックがフォールバックモードに入ったことを意味します。フォールバックモードとは、コーデックが機器のクラッシュを避けるために一番低精細な量子化スケーリングテーブル(T4)を用いることです。フォールバックモードに入ることは希ですが、非常に高精細な被写体を速いシャッタースピードでパンしたときなどに起こります。
      
 通常、JM-SP Decoderのログに表示されるデータは、ビデオのエンコード画質を評価し、それに応じてPToolでの設定パラメータを変更する用途にとって、必要にして充分なものです。「設定」メニューの「トレースファイル作成」機能では、より多くの情報を含むトレースファイルを生成することができます。でも、このトレースファイルはかなり暗号めいた難解なものであり(H264ヘッダsyntax)、生成にはかなり長い時間がかかります。 通常、JM-SP Decoderのログに表示されるデータは、ビデオのエンコード画質を評価し、それに応じてPToolでの設定パラメータを変更する用途にとって、必要にして充分なものです。「設定」メニューの「トレースファイル作成」機能では、より多くの情報を含むトレースファイルを生成することができます。でも、このトレースファイルはかなり暗号めいた難解なものであり(H264ヘッダsyntax)、生成にはかなり長い時間がかかります。
streamparser-jap.1335849945.txt.gz · Last modified: 2012/05/01 05:25 by bkmcwd