#topicpath
 *ワンセグ放送とOpenBSD [#a5174d06]
 RIGHT:川俣 吉広, kaw@on.rim.or.jp
 RIGHT:2008, 5/17 @ EBUG 第26回会合(十日町市)
 **地上デジタル放送とは [#tb676488]
 -日本では2003年以降、ISDB-T方式((欧州:DVB方式、米国:ATSC方式))による地上デジタル放送を行っている。~
 この方式による送出概念図の例を以下に示す;
                                     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((Serial Digital Interface))信号に。
 --音声 ... アナログ音声信号 -> A/D変換してAES/EBU((Audio Engineering Society/European Broadcasting Union))信号にした後、映像のSDI信号に埋め込み((Embbeded))。
 --データ放送 ... BML, ECMAscriptなどをDVB/ASIインターフェースで出力。
 --PSI/SI((Program Specific Information/Service Information))情報 ... 番組配列情報、各データと放送サービスの関連や放送サービスそのものの定義情報(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....
                               +---+
 **ワンセグ放送とは [#l989d931]
 電波として送信する際に、1つの放送チャンネルを
 さらに13の小さな周波数帯域(セグメント)に分け、幾つかのセグメントを組み合わせることで
 1つの放送チャンネル(=放送局)で複数の番組を送出することが可能。
 |用途|セグメント数(例)|ビットレート(例)|備考|h
 |高精細度 (HDTV)|RIGHT:12|RIGHT:約17Mbps|1440x1080/30fps, 5+1ch|
 |標準精細度 (SDTV)|RIGHT:4|RIGHT:約6Mbps|640x480/30fps|
 |移動体向け (ワンセグ)|RIGHT:1|RIGHT:約300kbps|320x240/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セグメントを使ったサービスが
 通称&ref(1seg_logo.gif,,50%);と呼ばれる放送である。
 **OpenBSDでワンセグを受信 [#k29b8d84]
 OSC2008 Nagaoka にて NetBSD Users Groupによりデモが実施されていた。 
 RockridgeSound社製 USBワンセグチューナ DUS-01 で NetBSD 上でのワンセグ放送視聴を行うというもの。
 
 デモの展示内容について情報を頂き、OpenBSDにて追試を行った結果が以下のものである。
 ***視聴 [#te21a859]
 -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
 #ref(1seg-rx.png)
 ***解析 [#g3293316]
 拙作 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 [#t1cd33a9]
 -デバッグ
 --OpenBSD portsパッチとの干渉 ... 再生時、音声モードに不具合発生
 --MPlayerが刺さる時あり ... 発生時、他の再生ソフトでも再生不可に。reboot必要。mplayer -ao null では正常に画像のみ再生できるため、音声機能の不具合と思われる。
 --現行ではTSをファイルに一度保存しないと再生できない ... MPlayerが再生時ファイルのseekを必要とするため(バックグラウンドでファイルに書きながらの再生は可能)。
 --不安定な受信環境での動作対応。
 -未実装機能の実現
 --EPG, 字幕放送, データ放送など
 **参考文献、リンク等 [#gf36a2fe]
 -ARIB - 社団法人電波産業会 ... http://www.arib.or.jp/
 --標準規格等一覧 ... http://www.arib.or.jp/tyosakenkyu/kikaku_download/download_imt.html ~
 TR-B14, STD-B10, STD-B25, STD-B31 など
 -ワンセグTV.com ... http://1seg-tv.com/
 -ボクにもわかる地上デジタル ... http://www.geocities.jp/bokunimowakaru/
 ----
 #topicpath
Reload  New Edit Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS