ZMD

Z David Seidl
Skočit na navigaci Skočit na vyhledávání

Zpracování multimediálních dat

V části předmětu, kterou povedu já se dozvíte o principech, které se využívají při přenosu komprimovaných video a audio dat v systému DVB.

Zkratka DVB je tvořena z počátečních písmen slov Digital Video Broadcasting. Český ekvivalent by bylo digitální šíření videa.

Systém DVB je dnes jeden z nejrozšířenějších a přes pozvolný náběh pomalu vytlačil starý analogový přenos televizního signálu. V současnosti se systém DVB používá pro přenos digitální televize v mnoha zemích světa. Krom systému DVB existují i jiné systémy, mezi ně patří ATSC používaný v USA a Kanadě, ISDB-T používaný v Jižní Americe a Japonsku a systém DTMB používaný v Číně.

Soubor:DVB-T map med.jpg

Literatura

Doporučené weby:

Doporučené knihy:

  • Kolektiv autorů. Linux - Dokumentační projekt. 4. vydání. Brno: Computer Press, 2007. ISBN: 978-80-251-1525-1
  • Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems, January 2011, dostupné online [1]
  • LINUX DVB API Version 3, Dr. Ralph J.K. Metzler, Dr. Marcus O.C. Metzler, January 2003, dostupné online [2]

Postery použité na přednáškách:

Přednášky a navazující cvičení

První přednáška

Tématem první přednášky bude systém DVB obecně. Vysvětlíme si především základní principy použité při přenosu digitální informace z vysílače. Dalším tématem bude systém multiplexování, tedy skládání více audio a video zdrojů do jednoho datového toku. Poslední téma, které bude mít přímou souvislost s prací ve cvičení, bude implementace DVB v operačním systému GNU/Linux.

Navazující cvičení

 Vaším úkolem ve cvičení bude přihlásit se prostřednictvím libovolného SSH klienta na server dvb.cs.vsb.cz .
 Doporučuji pro přihlášení použít počítač na učebně E320 a zvolit boot do Linuxu. 
 Tento způsob bude pro vás znamenat v další práci značné ulehčení.
 
 Pomocí programu dvbsnoop zjistěte všechny dostupné informace o jednom z vysílaných programů a o samotném multiplexu.
 
 Základní použití programu dvbsnoop je následující:
 
 # dvbsnoop -n 1 0
 dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/ 
  
  ------------------------------------------------------------
  SECT-Packet: 00000001   PID: 0 (0x0000), Length: 60 (0x003c)
  Time received: Sat 2013-03-09  20:46:06.952
  ------------------------------------------------------------
    0000:  00 b0 39 01 13 df 00 00  00 00 e0 10 01 01 e1 00   ..9.............
    0010:  01 02 e2 00 01 03 e3 00  01 04 e4 00 41 01 f0 00   ............A...
    0020:  41 02 f1 00 41 03 f2 00  41 04 f3 00 41 05 f4 00   A...A...A...A...
    0030:  41 06 f5 00 41 07 f6 00  46 3b 73 4b               A...A...F;sK
  .
  .
  .
 
 Bližší informace o programu dvbsnoop získáte z manuálových stránek případě na adrese http://dvbsnoop.sourceforge.net .
 V následujícím archivu http://seidl.cs.vsb.cz/download/dvbread.tar je k dispozici bohatě komentovaný vzorový projekt nazvaný dvbread.
 Projekt obsahuje jednoduchý program, který po spuštění vypíše PAT tabulku získanou ze zařízení /dev/adapter0/demux0 a to v hexadecimální a textové podobě.
 
 Pro parsování PAT tabulky je použita knihovna libucsi, která je součástí balíků aplikací dvb-apps jehož aktuální verzi je možné stáhnout ze stránek
 projektu linuxtv http://linuxtv.org/hg/dvb-apps a také je součástí tar souboru se vzorovým projektem . Ve složce dvb-apps/test/libucsi je 
 vzorový program, který velmi dobře demonstruje využití knihovny libucsi.
 
 Úkol:
 Upravte vzorový program program tak ať parsuje PAT tabulku s použitím knihovny libucsi. Druhá část úkolu je stejným způsobem parsovat tabulku PMT.

Druhá přednáška

Přednáška bude věnována tématice softwarově definovaného rádia. Vysvětlíme si principy SDR a základy zpracování signálu. Ukážeme si princip softwarového demodulování FM a AM modulace. Ukážeme si princip základních digitálních modulací. Navazující cvičení

 Úkol:
 Vytvořte konzolový program, který vypíše názvy všech programů vysílaných v daném multiplexu a vypíše všechny dostupné informace o těchto programech (apid, vpid, pat a jiné).

Úkol pro r.2021 - COVID-19


Zapněte si prosím titulky, pokud udělám při výkladu chybu, píšu poznámky do titulků.

V jazyce C/C++ vytvořte knihovnu pro OS/Linux. (může se jednat o třídu, nebo sadu funkcí). Knihovna bude jako parametr dostávat informace o adaptéru, který má být použit (/dev/dvb/adapterX /demuxX). Dále bude knihovna obsahovat metodu/funkci, která spustí vlákno které "vyparsuje" všechna dostupná data z naladěného multiplexu. Tyto informace budou ukládány do vhodné datové struktury.

Funkci knihovny demonstrujte na vzorovém programu.

Všechny zdrojové kódy včetně Makefile v kompilovatelné podobě prosím odevzdejte do systému kelvin.cs.vsb.cz.