Jak jsem zaváděl DVB-T2

4. 5. 2011 11:00 Ondřej Caletka

Přechod na zemské digitální vysílání v normě DVB-T pomalu vrcholí. A přitom už klepe na dveře další norma, zvaná DVB-T2. V tomto zápisku se s Vámi podělím, kterak jsem k pražskému experimentálnímu vysílání naráz připojil až 4000 nových diváků.

Co je norma DVB-T2

Návrh vysílání v normě DVB-T je z pohledu počítačů již velmi letitý; vždyť první vysílání v této normě bylo spuštěno již v roce 1998 (zdroj). Od té doby se výpočetní výkon počítačů mnohonásobně zvýšil. Nastal tedy čas přibližně po deseti letech normu zrevidovat, vzít v potaz moderní kódovací algoritmy i výkonnější počítače. Výsledkem této revize je v tuto chvíli již plně standardizovaná norma pro druhou generaci zemského digitálního vysílání – DVB-T2, jehož ostré vysílání bylo ve Velké Británii spuštěno v první polovině roku 2010.

FAQ: To budeme muset zase vyměňovat Set-Top-Boxy???

Ano i ne. S DVB-T2 se počítá spíše jako s platformou pro šíření HD vysílání ve formátu MPEG4; byť samotná modulace DVB-T2 rozlišení programů ani použitý kodek nepředepisuje. Dá se předpokládat, že dokud bude mezi diváky poptávka po pořadech v SD rozlišení, bude zachována alespoň minimální forma vysílání ve standardu DVB-T a MPEG2. Přechod na DVB-T2 tedy pravděpodobně přijde přirozeně, spolu s poptávkou po HDTV.

Zadáním pro vysílání v normě DVB-T2 byla alespoň o 30% vyšší spektrální účinnost. Ve skutečnosti se podařilo účinnost zvýšit i o více než 50% (zdroj). Podařilo se snad také pohnout s mobilním příjmem a jednofrekvenčními sítěmi. Zkrátka je o co stát.

Na konci listopadu minulého roku byl v Praze spuštěn dlouhodobý experiment vysílání v DVB-T2. Nedávno se navíc i v českých e-shopech začaly objevovat první televizní karty pro PC, podporující tento standard. Konkrétně jde o USB model PCTV nanoStick T2 290e, který se honosí také titulem „První DVB-T2 přijímač pro PC na světě“.

Podpora v Linuxu

Není překvapením, že ovladače na příjem DVB-T2 nejsou připraveny. I kdyby byly, není připraveno Linux DVB API a v neposlední řadě nejsou k dispozici žádné uživatelské programy, které by nový standard uměly použít. Přesto se na stránce, zabývající se podporou pro výše uvedenou kartu, objevilo toto sdělení:

Well, I've watched some channels from a T2 mux in VLC on Linux. Fantastic!

Jak je to možné? Především, díky finskému vývojáři jménem Antti Palosaari je k dispozici Git větev s prvním experimentálním ovladačem. Autor tam vyřešil i problém s absencí podpory nové normy v aplikacích. Využil faktu, že demodulátoru k nalezení DVB-T2 vysílání stačí pouze naladění vysílací frekvence a předání informace, že má hledat modulaci DVB-T2, zbylé parametry jsou detekovány automaticky. Přidal tedy do ovladače demodulátoru cxd2820r parametr dvbt2_freq, do kterého je možné uložit seznam frekvencí, na kterých se namísto DVB-T má ladit DVB-T2. Uživatelská aplikace tak vůbec netuší, že jde o vysílání v nové normě, prostě naladí daný kmitočet a začne odebírat data. Jednoduché a přitom funkční.

Postup krok za krokem

Poznámka: Tento postup je platný v době publikování. Dá se předpokládat, že po finalizaci ovladače bude celý postup jiný, jednodušší.

  1. Stáhnout a zkompilovat kernel z uvedené Git větve. V praxi se mi při použití jádra 2.6.39.rc1+, ve kterém je ovladač vytvořen, objevily zvláštní problémy, proto doporučuji raději použít stabilní kernel 2.6.38.4 a patch s ovladačem:
    $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.4.tar.bz2
    $ wget http://pastebin.com/raw.php?i=vUnBSSsE -O pctv290e.patch
    $ tar xjvf linux-2.6.38.4.tar.bz2
    $ cd linux-2.6.38.4
    $ patch -p1 < ../pctv290e.patch
  2. Zapojit adaptér a předat jádru parametr s kmitočtem pražského multiplexu na kanálu číslo 25, tj. 506 MHz:
    echo 506 > /sys/module/cxd2820r/parameters/dvbt2_freq
  3. Ověřit dostupnost signálu pomocí utility (dvb)scan:
    $ cat cz-PrahaT2
    # DVB-T Praha (Prague, Czech Republic)
    # T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
    # DVB-T2 experiment K25
    T 506000000 8MHz AUTO AUTO AUTO AUTO AUTO NONE
    
    $ dvbscan cz-PrahaT2
    scanning cz-PrahaT2
    using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
    initial transponder 506000000 0 9 9 6 2 4 0
    >>> tune to: 506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_AUTO:FEC_AUTO:QAM_AUTO:TRANSMISSION_MODE_AUTO:GUARD_INTERVAL_AUTO:HIERARCHY_NONE
    0x0000 0x0110: pmt_pid 0x0064 (null) -- CT HD (running)
    0x0000 0x0210: pmt_pid 0x00c8 (null) -- Nova HD (running)
    0x0000 0x0303: pmt_pid 0x012c (null) -- Prima HD (running)
    0x0000 0x0802: pmt_pid 0x0190 (null) -- Barrandov HD (running)
    Network Name 'DVB-T2'
    dumping lists (4 services)
    CT HD:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:101:111:272
    Nova HD:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:201:211:528
    Prima HD:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:301:311:771
    Barrandov HD:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:401:402:2050
    Done.
  4. Používat vytvořený soubor channels.conf, vzniklý přesměrováním výstupu programu dvbscan, v oblíbené DVB aplikaci. Například vysílat pomocí multicastu v lokální síti pomocí nástroje DVBlast z dílny VideoLAN:
    $ cat dvbt2-praha.cfg
    #[:][/udp]             [,]*
    #CT HD
    239.194.10.51:1234      0       272
    #Nova HD
    239.194.10.52:1234      0       528
    #Prima HD
    239.194.10.53:1234      0       771
    #Barrandov HD
    239.194.10.54:1234      0       2050
    
    $ dvblast -a0 -e -f 506000000 -c dvbt2-praha.cfg -t 12  2>&1 | \
      perl -pne 'print scalar(localtime()), " ";'

    Poznámka: Volání Perlu na konci posledního příkazu slouží pouze pro označkování jednotlivých řádků standardního výstupu časovým razítkem, na vlastní funkci nemá vliv.

Závěr

Bylo až překvapivé, jak to šlo nakonec snadno. Projekt experimentálního IPTV vysílání na Strahovských kolejích dostal čtyři nové HD programy v plném rozlišení a s vysokým datovým tokem. Protože je v této síti připojeno na čtyři tisíce uživatelů, znamená to zároveň také, že se mi nejspíše podařilo řádově zvýšit pokrytí experimentálního vysílání DVB-T2, co do počtu potenciálních diváků.

Doufám jen, že vývoj na tomto (prvním použitelném) bodě neustrne, ovladač bude zařazen do hlavní větve jádra, bude zveřejněno Linux DVB API verze 5.3 s podporou DVB-T2 a s tím dojde k doplnění potřebné funkcionality do uživatelských aplikací. To vše je však běh na dlouhou trať.

Sdílet