1

プロジェクトがあり、ts ファイル パーサーを作成する必要があります。パーサーは ts ファイルを読み取り、ファイルの各パケットのヘッダーからいくつかのデータを出力する必要があります。印刷する必要がある出力のうちの 2 つは、同期エラー (およびその数) と連続性カウンター エラーの数です。

まず同期エラーについて。パケットの最初のバイトが同期バイトを参照していることはわかっています。では、パケットの同期バイトが 0x47 の値を持っていない場合、同期エラーが発生するのでしょうか? ファイルに 100 個のパケットがあり、30 個の同期バイトが「不良」である場合、30 個の同期エラーがありますか?

連続性カウンターエラーについて、私が読んだmpeg2標準はあまり役に立たなかったので、簡単な言葉で連続性エラーがあるかどうかを見つける方法を誰かに説明してもらいたいです。ありがとうございました

4

2 に答える 2

5

同期バイト エラーは、TS パケットの最初のバイトに値 0x47 が含まれていない場合です。このコンテキストでは、異なる TS パケット長をサポートすることが賢明かもしれません。通常、TS パケットの長さは 188 バイトですが、異なるパケット長に遭遇する場合があります。たとえば、Reed-Solomon エラー保護が追加されている場合、TS パケットの長さは 204 バイトです。
ISO 13818-1 規格は、連続カウント (CC) エラーとは何かについて非常に明確で明確です。簡単に言うと、各 TS パケットには 13 ビットの PID (パケット識別子) フィールドと 4 ビットの CC (連続カウント) フィールドが含まれます。パケットにペイロード ( adaptation_field_controlから決定できる) が含まれている場合、同じ PIDの連続するパケットには、増加する CC 値が含まれている必要があります (16 を法とするため、CC = 15 の後は CC = 0 に続きます)。フラグ)。したがって、各 PID の CC 値を個別に追跡する必要があります。CC 値にギャップがある場合、たとえば CC = 5 の後に CC = 7 が続く場合、これは CC エラーです。繰り返される CC 値には特に注意する必要があります。CC 値は 1 回繰り返すことができます。たとえば、2 つの連続する TS パケットで CC = 5 (同じ PID を使用)。CC 値が 2 回以上繰り返される場合、これも CC エラーを構成します。
ヌル パケット (PID = 0x1FFF = 8191) は、CC フィールドの値が定義されていないため、CC エラーに寄与しないことに注意してください (標準では、ヌル パケットの場合に任意の CC 値を許可しています)。
もう 1 つの例外は、discontinuity_indicatorフラグが設定されている場合です。CC 値は任意の値に変更される可能性があり、これは CC エラー イベントとしてカウントされません。

DVB システムの測定ガイドラインを定義している ETSI ETR 290 を参照してください。特に、CC エラーをカウントする方法に関するヒントがいくつかあります。

于 2016-03-15T15:32:27.743 に答える