Top / EBUG勉強会 / 20080517_1seg

ワンセグ放送とOpenBSD

川俣 吉広, kaw@on.rim.or.jp
2008, 5/17 @ EBUG 第26回会合(十日町市)

地上デジタル放送とは

  • 日本では2003年以降、ISDB-T方式*1による地上デジタル放送を行っている。
    この方式による送出概念図の例を以下に示す;
                                       MPEG2
                                       AAC    +---+
                                  [ENC]------>+   |
                SDI        SDI      |         |   |
    [Video][A/D]------[EMB]---------+  H.264  |   |
                        |           |  AAC    | M |
    [Audio]-[A/D]-------+         [ENC]------>+   |MPEG-TS      OFDM
                 AES/EBU                      | U +--------[MOD]--------> OA
                                              |   |
          DVB/ASI                             | X |
    [DATA]----------------------------------->+   |
                                              |   |
    [PSI/SI]--------------------------------->+   |
                                              +---+
  • 信号の流れ;
    • 映像 ... アナログ(RGB信号) -> A/D変換してSDI*2信号に。
    • 音声 ... アナログ音声信号 -> A/D変換してAES/EBU*3信号にした後、映像のSDI信号に埋め込み*4
    • データ放送 ... BML, ECMAscriptなどをDVB/ASIインターフェースで出力。
    • PSI/SI*5情報 ... 番組配列情報、各データと放送サービスの関連や放送サービスそのものの定義情報(EPGもここに含まれる)。
  • 映像、音声信号はエンコードし圧縮する。
  • これらの信号を多重化(MUX: Multiplex)し、一本の信号(MPEG-TS: MPEG Transport Stream)にする
    • 188バイト定長のパケット(ヘッダ4バイト(+拡張ヘッダ)+ペイロード)
    • パケットには、多重化前のデータ種類を識別するため、PID (Packet ID) と呼ばれるものが割り当てられる。
  • UHF帯の周波数でOFDM変調を行い、電波として送信。
  • 受信側は、今まで述べた送出側と概ね逆の手順を行う。
           OFDM       MPEG-TS    +---+ H.264
    UHF OA --->[DEMOD]---------->+   +------>[DEC]---> Video
                                 | D |
                                 | E +------>[DEC]---> Audio
                                 | M |
                                 | U +------>BML etc...
                                 | X |
                                 |   +------>PSI/SI....
                                 +---+

ワンセグ放送とは

電波として送信する際に、1つの放送チャンネルを さらに13の小さな周波数帯域(セグメント)に分け、幾つかのセグメントを組み合わせることで 1つの放送チャンネル(=放送局)で複数の番組を送出することが可能。

用途セグメント数(例)ビットレート(例)備考
高精細度 (HDTV)12約17Mbps1440x1080/30fps, 5+1ch
標準精細度 (SDTV)4約6Mbps640x480/30fps
移動体向け (ワンセグ)1約300kbps320x240/15fps, 2ch

現在は、高精細度放送と移動体向け、あるいは複数の標準精細度放送と移動体向けの サービスを組み合わせた放送が行われている。

   <--------------TV ch (6MHz)-------------->
  |                                          | G(下): 1/3seg
  | |  |  |  |  |  |  |  |  |  |  |  |  |  | | G(上): 2/3seg
  |G| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|G| 1seg: 6MHz/14 = 3/7MHz
------------------------------------------------
     <--------------->    <---------------> HDTV
                      <==> 1seg

このうち、移動体向けの1セグメントを使ったサービスが 通称1seg_logo.gifと呼ばれる放送である。

OpenBSDでワンセグを受信

OSC2008 Nagaoka にて NetBSD Users Groupによりデモが実施されていた。 RockridgeSound社製 USBワンセグチューナ DUS-01 で NetBSD 上でのワンセグ放送視聴を行うというもの。

デモの展示内容について情報を頂き、OpenBSDにて追試を行った結果が以下のものである。

視聴

  • http://www.naobsd.org/1seg/ にて公開されている以下のものを使用する。
    • チューナ制御/TS取得プログラム uditune.c
      ... DUS-01の制御、TSの取り出しを行う。DUS-01については TSの出力形式と一部の制御コマンドが判明している。
    • メディアプレーヤ MPlayer へのパッチ
      ... 1seg TSが再生できるように DEMUXおよび CODECを改造するもの。
    • uditune.cをコンパイル。
    • MPlayer-1.0rc2に配布されているパッチを当ててビルド。
  • 受信(録画)
    uditune 26 >oa_26.ts &
  • 再生
    mplayer oa_26.ts
    1seg-rx.png

解析

拙作 tspdump.c を使って得られたTSファイルの中身を見てみる。

tspdump -1 oa_26.ts | less
--[ADDR:000000179352 TSP]----------
   Transport Error Indicator: 0
Payload Unit Start Indicator: 1
          Transport Priority: 0
                   Packet Id: 0x0027  <- EIT (電子番組表のデータ) であることを示す
Transport Scrambling Control: 0x0
    Adaptation Field Control: 0x1
          Continuity Counter: 0xc

47 40 27 1c 00 4e f0 3c 7d a0 e9 00 02 7e 04 7e  G@'..N.<}....~.~
02 4e e4 a2 d5 3c 23 40 00 00 55 00 00 21 4d 14  .N...<#@..U..!M.
70 6e 0d 0e 4e 45 57 53 0f 21 21 0e 5a 45 52 4f  pn..NEWS.!!.ZERO <-番組名の一部が
89 20 54 06 00 ff 01 ff 10 ff c1 01 88 9f 30 b0  . T...........0.
4e f0 89 7d a0 e9 01 02 7e 04 7e 04 02 4e e4 b6  N..}....~.~..N..
3d 00 35 00 00 30 00 00 6e 4d 61 6a 70 6e 21 1b  =.5..0..nMajpn!.
d5 e9 a4 c7 f9 0e 54 56 e9 dc fb 48 41 50 50 59  ......TV...HAPPY <-見えている。
fc fb 0f 4e 78 30 26 3f 37 45 5e 0e 21 fc 3b 22  ...Nx0&?7E^.!.;"
0e 48 41 50 50 59 21 0d 0f 22 26 3a 66 32 6d 3f  .HAPPY!.."&:f2m?
21 5f 44 4d 43 4f 49 70 4d 3a 1b 7c ce 31 69 40  !_DMCOIpM:.|.1i@
37 3f 3e 70 4a 73 d0 e9 a8 c6 a3 21 21 4e 78 30  7?>pJs.....!!Nx0
3f                                               ?

TSに含まれるPIDの種類を数える; 例として、一時間分のTSファイルについて計測

tspdump -1 oa_26.ts | awk '/Packet Id:/ { print $3 }' | sort | uniq -c
  個数 PID       名称
  3600 0x0010    NIT:  Network Information Table
  1799 0x0011    SDT:  Service Description Table
   719 0x0014    TOT:  Time Offset Table
  3598 0x0024    BIT:  Broadcaster Information Table
  6299 0x0027    EIT:  Event Information Table
    88 0x0028    SDTT: Software Download Trigger Table
 35884 0x0551    データ放送
 35860 0x0552    データ放送
416551 0x0881    H.264映像
130331 0x0883    AAC音声
 15553 0x08ff    PCR:  Program Clock Reference
 17992 0x1fc8    PMT:  Program Mapping Table
327116 0x1fff    Null

TSパケットは定長なので、これにより各パケットの平均送出間隔や所要帯域の割合などが算出できる。

TODO

  • デバッグ
    • OpenBSD portsパッチとの干渉 ... 再生時、音声モードに不具合発生
    • MPlayerが刺さる時あり ... 発生時、他の再生ソフトでも再生不可に。reboot必要。mplayer -ao null では正常に画像のみ再生できるため、音声機能の不具合と思われる。
    • 現行ではTSをファイルに一度保存しないと再生できない ... MPlayerが再生時ファイルのseekを必要とするため(バックグラウンドでファイルに書きながらの再生は可能)。
    • 不安定な受信環境での動作対応。
  • 未実装機能の実現
    • EPG, 字幕放送, データ放送など

参考文献、リンク等


Top / EBUG勉強会 / 20080517_1seg


*1 欧州:DVB方式、米国:ATSC方式
*2 Serial Digital Interface
*3 Audio Engineering Society/European Broadcasting Union
*4 Embbeded
*5 Program Specific Information/Service Information
Attach file: file1seg-rx.png 1423 download [Information] file1seg_logo.gif 1325 download [Information]
Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2008-05-21 (Wed) 18:40:22 (3859d)