« 2010年4月 | トップページ | 2011年6月 »

2011年4月18日 (月)

UEP (Unequal Error Protection) についての考察

ARIB技術資料(放送分野) にある ARIB TR-B33 1.0版「セグメント連結伝送方式による地上マルチメディア放送運用規定(第三分冊)」「第十一編 マルチメディア放送 蓄積型放送の運用」「2.1.6.3 UEP (Unequal Error Protection)」(11-52頁)のプログラムコードは、どうもおかしい。
----【2011年07月26日 追記】(ここから)----
2011.07.07改定の ARIB TR-B33 1.1版の(11-52頁)では、以下の「☆」で示した部分が修正され、私が正しいと考えるUEPプログラムコードと一致しています(ARIB TR-B33 1.1版の改定履歴には、本件の記載無し)。
----【2011年07月26日 追記】(ここまで)----
----【2011年12月21日 追記】(ここから)----
2011.12.06改定の ARIB STD-B45 2.1版「デジタル放送におけるダウンロード方式」の改定履歴に、「付録C C.2 UEP」の誤記修正の記載がありました。
----【2011年12月21日 追記】(ここまで)----
結論を先に書くと、以下の「☆」で示した部分が、おかしいということである。

==== ARIB TR-B33 1.0版のUEPプログラムコード(ここから) ====
┌────────────────────
│void left_matrix_init(int k, int n, int N1, int m, int low, int high)
│{
│ int i, j, h, t, u[N1 * k], uep;

│ for(h = N1 * k - 1; h >= 0; h--){
│  u[h] = h % (n - k - m);
│ }
│ t = 0;
│ for (j = 0; j < k; j++) {
│  for (h = 0; h < N1; h++) {
│☆  for (i = t; i < N1*k && matrix_has_entry(u[i], j); i++){
│    if (i < N1*k) {
│     do {
│      i = t + pmms_rand(N1*k-t);
│     } while (matrix_has_entry(u[i], j));
│     matrix_insert_entry(u[i], j);
│     u[i] = u[t]; t++;
│    } else {
│     do {
│      i = pmms_rand(n - k - m);
│     } while (matrix_has_entry(i, j));
│      matrix_insert_entry(i, j);
│    }
│☆  }
│  }
│ }

│ uep = high - low + 1;
│ for(h = N1 * uep - 1; h >= 0; h--){
│  u[h] = (n - k - m) + (h % m);
│ }
│ t = 0;
│ for (j = low; j < high; j++) {
│  for (h = 0; h < N1; h++) {
│☆  for (i = t; i < N1*uep && matrix_has_entry(u[i], j); i++){
│    if (i < N1*uep) {
│     do {
│      i = t + pmms_rand(N1*uep-t);
│     } while (matrix_has_entry(u[i], j));
│     matrix_insert_entry(u[i], j);
│     u[i] = u[t]; t++;
│    } else {
│     do {
│      i = (n - k - m) + pmms_rand(m);
│     } while (matrix_has_entry(i, j));
│     matrix_insert_entry(i, j);
│    }
│☆  }
│  }
│ }
│}
└────────────────────

行列の視覚化のため、上記ロジックを VBA に移植した Excelファイルを以下に示す。

http://sakaiyas.cocolog-nifty.com/nikki/files/work/rfc5170_uep_staircase_g_TR_B33v1_0.xls
==== ARIB TR-B33 1.0版のUEPプログラムコード(ここまで) ====

==== 私が正しいと考えるUEPプログラムコード(ここから) ====
┌────────────────────
│void left_matrix_init(int k, int n, int N1, int m, int low, int high)
│{
│ int i, j, h, t, u[N1 * k], uep;

│ for(h = N1 * k - 1; h >= 0; h--){
│  u[h] = h % (n - k - m);
│ }
│ t = 0;
│ for (j = 0; j < k; j++) {
│  for (h = 0; h < N1; h++) {
│☆  for (i = t; i < N1*k && matrix_has_entry(u[i], j); i++);
│   if (i < N1*k) {
│    do {
│     i = t + pmms_rand(N1*k-t);
│    } while (matrix_has_entry(u[i], j));
│    matrix_insert_entry(u[i], j);
│    u[i] = u[t]; t++;
│   } else {
│    do {
│     i = pmms_rand(n - k - m);
│    } while (matrix_has_entry(i, j));
│    matrix_insert_entry(i, j);
│   }
│  }
│ }

│ uep = high - low + 1;
│ for(h = N1 * uep - 1; h >= 0; h--){
│  u[h] = (n - k - m) + (h % m);
│ }
│ t = 0;
│ for (j = low; j < high; j++) {
│  for (h = 0; h < N1; h++) {
│☆  for (i = t; i < N1*uep && matrix_has_entry(u[i], j); i++);
│   if (i < N1*uep) {
│    do {
│     i = t + pmms_rand(N1*uep-t);
│    } while (matrix_has_entry(u[i], j));
│    matrix_insert_entry(u[i], j);
│    u[i] = u[t]; t++;
│   } else {
│    do {
│     i = (n - k - m) + pmms_rand(m);
│    } while (matrix_has_entry(i, j));
│    matrix_insert_entry(i, j);
│   }
│  }
│ }
│}
└────────────────────

行列の視覚化のため、上記ロジックを VBA に移植した Excelファイルを以下に示す。

http://sakaiyas.cocolog-nifty.com/nikki/files/work/rfc5170_uep_staircase_g_SAKAI.xls
==== 私が正しいと考えるUEPプログラムコード(ここまで) ====

ロジックがおかしいと考える理由を以下に示す。

・一見うまく動作しているように見えるが、N1 の値を変更しても、各列の1の個数に変化がない動きをする。
・上記「☆」で示した修正を行えば、N1 の値に比例して各列の1の値が変化するようになる。
・前半部分の「☆」で示した for 文は、純粋な LDPC Staircase である RFC5170 では、1行で完結する for 文(末尾が『{』ではなく『;』)になっている。

ロジックとは関係ないが、ARIB TR-B33 1.0版における ISDB-Tmm 方式の FLUTE の AL-FEC では、

・UEP の場合も、FEC-OTI-FEC-Encoding-ID に LDPC Staircase 用の値「3」を指定するので、FEC-OTI-Scheme-Specific-Info の内容(バイト数)で、純粋な LDPC Staircase か UEP かを判断する必要がある(私は、UEP 用に新たに IANA で採番すべき、と考えている)。
・ソースブロックが複数になる場合は、ブロック毎に UEP の low(UEP左端列番号)と high(UEP右端列番号)で指定した範囲のソースシンボルを修復しやすくする意味になる(私は、UEP を用いずに、単に重要なソースシンボルを複数回送出するほうが良い、と考えている)。

といったことに、注意する必要がある。

| | コメント (1) | トラックバック (0)

2011年4月 4日 (月)

スカパー!e2 物理チャンネル一覧

 我が家では、パラボラアンテナと混合器・ブースター・分配器もスカパー!e2 対応品だが、スカパー!e2 の受信上の注意 にあるように、分配器から各部屋へのケーブルに問題があるらしく、物理チャンネルの後半である CS-14 から CS-24 のチャンネルを受信した場合、ブロックノイズが入る状況にある。
「e2基本パック」でブロックノイズの入るチャンネルも含めて契約するのも馬鹿らしいため、1チャンネルごとの契約を行うことにした。その際に利用する、どのチャンネル(Ch.)がどの物理チャンネルに該当するのかを示したものが以下の一覧である。

(2011年04月04日 現在)
---- スカパー!e2 物理チャンネル一覧(ここから) ----
"Ch.","チャンネル名称","物理チャンネル"
100,"e2プロモ     ","CS-04"
160,"C-TBSウェルカム","CS-22"
161,"キュー・ヴィー・シー","CS-22"
185,"プライム365.TV","CS-22"
221,"東映チャンネル   ","CS-06"
222,"衛星劇場      ","CS-06"
223,"チャンネルNECO ","CS-06"
224,"洋画★シネフィル  ","CS-06"
228,"ザ・シネマ     ","CS-10"
237,"スター・プラス   ","CS-02"
238,"スター・クラシック ","CS-06"
239,"日本映画専門chHD","CS-02"
240,"ムービープラスHD ","CS-18"
251,"Jスポーツ 1   ","CS-14"
252,"Jスポーツ 2   ","CS-14"
253,"JスポーツPlusH","CS-14"
254,"GAORA     ","CS-14"
255,"sky・Aスポーツ+","CS-14"
256,"Jスポーツ ESPN","CS-04"
257,"日テレG+ HD  ","CS-24"
260,"ゴルフチャンネル  ","CS-12"
262,"ゴルフネットHD  ","CS-18"
290,"SKY STAGE ","CS-16"
292,"時代劇専門チャンネル","CS-06"
293,"ファミリー劇場   ","CS-22"
294,"ホームドラマCH  ","CS-04"
300,"日テレプラス    ","CS-24"
301,"TBSチャンネル  ","CS-22"
303,"テレ朝チャンネル  ","CS-12"
304,"ディズニーチャンネル","CS-22"
305,"チャンネル銀河   ","CS-16"
306,"フジテレビNEXT ","CS-02"
307,"フジテレビONE  ","CS-20"
308,"フジテレビTWO  ","CS-20"
310,"スーパードラマ   ","CS-06"
311,"AXN       ","CS-06"
312,"FOX       ","CS-04"
314,"LaLa HD   ","CS-18"
315,"FOXプラス    ","CS-24"
321,"MJTV      ","CS-24"
322,"スペースシャワーTV","CS-04"
323,"MTV       ","CS-12"
324,"ミュージック・エア ","CS-12"
325,"エムオン!     ","CS-22"
331,"カートゥーン    ","CS-04"
332,"アニマックス    ","CS-20"
333,"AT-X      ","CS-16"
334,"ディズニーXD   ","CS-04"
335,"キッズステーション ","CS-08"
340,"ディスカバリー   ","CS-20"
341,"動物ch/アニプラ ","CS-20"
342,"ヒストリーチャンネル","CS-16"
343,"ナショジオチャンネル","CS-06"
350,"日テレNEWS24 ","CS-24"
351,"TBSニュースバード","CS-22"
352,"朝日ニュースター  ","CS-12"
353,"BBCワールド   ","CS-12"
354,"CNNj      ","CS-12"
361,"ジャスト・アイ   ","CS-12"
362,"旅チャンネル    ","CS-24"
800,"スカチャンHD800","CS-10"
801,"スカチャンHD801","CS-10"
802,"スカチャン802  ","CS-10"
803,"スカチャン803  ","CS-16"
804,"スカチャン804  ","CS-16"
110,"ワンテンポータル  ","CS-12"
055,"ショップチャンネル ","CS-08"
---- スカパー!e2 物理チャンネル一覧(ここまで) ----
(2011年04月04日 現在)

我が家では、他のパラボラアンテナで「スカパー!」も別チューナーで視聴契約しているので、「複数台割引」の適用になり、2台目の加入料と基本料は無料になる。

| | コメント (4) | トラックバック (0)

« 2010年4月 | トップページ | 2011年6月 »