digitale kabeltelevisie |
|
Menu
home
nieuws
wat is het
decoder
waar
techniek
dvb
bitrates
kopstation
WK in HDTV
decoder
netwerktabel
upc
@home
casema &multikabel caiway delta harderwijk veendam rekam glashart veenendaal kbg f.a.q. links colofon Site gestopt
Deze site wordt niet meer bijgehouden. De ontwikkeling van DVB Inspector gaat wel gewoon door.
RSS
Nieuws
04/08/2016:
Marktaandeel Rekamkabel daalt tot 40,4%
27/01/2016:
Marktaandeel Rekam-kabel daalt verder tot 41,8%
08/11/2015:
Marktaandeel Ziggo 59%
12/07/2015:
Rekam marktaandeel 43,7%
09/06/2015:
CPB tikt Ziggo op de vingers wegens privacyovertredingen digitale tv
|
DVBMPEG is een standaard om één programma (één of meer kanalen video en één of meer kanalen geluid die bij elkaar horen) door te sturen. Voor digitale TV willen we meer kanalen tegelijk doorgeven, en daar ook nog extra informatie als EPG (electronische programma gids) aan toe voegen. Bovenop de MPEG2 standaard zijn daarom DVB standaarden gedefinieerd door de ETSI. Na registratie kan je ze hier ook downloaden. Er zijn een aantal smaken de belangrijkste zijn , DVB-C (cable), DVB-S (satellite) en DVB-T (terrestrial). Daar zitten weer allerlei standaarden onder, die vaak wel hetzelfde zijn voor zowel kabel als satelliet en ether. Daarom lijken soms decoders voor kabel, satelliet en ether zoveel op elkaar, hoewel ze niet uitwisselbaar zijn. Transport StreamBij analoge TV krijgt elke zender zijn eigen frequentie, en neemt altijd evenveel ruimte in. Voor digitale TV werkt het anders. De signalen (bits) van diverse zenders worden gecombineerd tot een transport stream. In principe zou een heel grote transportstream daarvoor gebruikt kunnen worden, maar dat werkt niet handig. Bij BVD-C zijn er transportstreams van 38.1 Mbit/sec. Op één zo'n stream is ruimte voor ongeveer 6 tot 8 TV zenders. Plaatje www.mhp-interactive.org/ Een voorbeeld van het samenstellen van één multiplex (transport stream) uit verschillende zenders. Een MPEG-2 Encoder maakt van een analoog signaal een MPEG-2 digitaal signaal. Een multiplexer combineert al die TV-signalen met toegangs informatie (CA= Conditional Access). Omdat de bitrate van de signalen kan varieren is er soms niet genoeg ruimte in de stream. De multiplexer moet dan bepalen wie er voor gaat. De andere zenders krijgen dan wat minder data, en daardoor een iets lagere kwaliteit. Bij kabel is het vaak zo dat signalen al digitaal in MPEG aangeleverd worden (via glasvezel of satelliet). Die hoeven dan niet opnieuw gecodeerd te worden. Wat zit er in een Transportstream?Deze analyse heb ik gemaakt van transportstream 27 (op 271.00 MHz) van @Home, zoals die werd doorgegeven op zaterdagmiddag 22 april 2006. Deze stream bevat de zenders ZDF (met gewoon, en Dolby Digitaal geluid), BBC1, 2, 3 en 4 (3 en 4 zijn 'off-air' in de middag, daar is alleen een stilstaand beeld te zien) en BBC Prime (met meertalige ondertiteling). Lijkt me een interessante stream om eens uit te pluizen. Met hulp van vooral standaard ETSI EN 300 468, Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems, wat gericht zoeken op internet, en een klein beetje raden denk ik een redelijk overzicht te hebben van hoe een DVB stream in elkaar steekt. @Home gebruikt een aantal aanvullingen/extensies die niet in de standaard staan, maar we komen een heel eind. Opmerkingen, aanvullingen en verbeteringen zijn natuurlijk welkom. Modulatie QAMEen digitaal signaal kan niet direct via een draadje verstuurd worden, daarvoor moet het eerst gemoduleerd worden. De bits worden vertaald in een combinatie van sinus- en cosinus-golven. Door daar verschillende combinaties in amplitude mee te maken kunnen bits verstuurd worden. Deze techniek heet Quadrature amplitude modulation (QAM). Het aantal combinaties dat met een sinus en cosinus gemaakt kunnen worden bepaalt hoeveel waardes per golf (symbool) verstuurd kunnen worden. Bij QAM64 kunnen 64 waardes (6 bits) per symbol verstuurd worden. Bij @Home wordt een symbolrate van 6875 kSym/sec gebruikt. Met 6 bits per symbol levert dat 41.250.000 bits/seconde op. Om storing in de data te kunnen corrigeren wordt er een foutcorrectie toegepast. Daarvoor wordt Reed-Solomon (204/188) gebruikt. Heel kort gezegd komt het er op neer dat om 188 'echte' databytes te versturen 204 bytes verstuurd moeten worden. Dan kunnen maximaal 8 foute bytes van de 204 hersteld worden. De effectieve bitrate van een transport stream is dus iets kleiner, 41.250.000 * 188 /204 = 38.014.705 bits/sec, oftewel 38 Mbit/sec. DVBDVB is een uitbreiding van MPEG2. Behalve een heel slimme compressie techniek bevat MPEG2 ook een standaard om audio, video en andere streams te combineren in een grote stream. Elke Elementary Stream verzorgt een type date, bijv het geluid van een zender, of het beeld, of de teletext. Ook zijn er een aantal ES voor besturing, service-inforatie (SI) en de versleuteling (Conditional Access, CA). Om deze streams te kunnen combineren in een grote transport stream worden ze eerst in stukjes gehakt (packetized), en het resultaat zijn packetized elementary stream's (PES). Elke elementary stream binnen een transport-stream heeft een unieke identiefier (nummer), en deze heet PID (packet identifier) Sommige streams hebben een vast PID (de CAT heeft altijd id
0x0001), andere moeten opgezocht worden via een of meer uitgezonden
tabellen. Voor deze PID's worden vaak hexadecimale nummers gebruikt
(deze beginnen met 0x).
SoftwareMet het programma TransEditMMC dat bij DVBViewer te downloaden is kan je real-time met een DVB-C kaart in een transportstream kijken welke Elementary Streams er in zitten. TransEditMMC laat de streams zien alsof er een hierarchie bestaat, dat streams binnen andere streams zitten. Zo lijkt het alsof PMT's binnen de PAT zitten. Dat klopt niet, de PAT verwijst alleen naar de PMT's. Helaas laat TransEditMMC niet alle beschikbare informatie zien, daarom heb ik ook gebruik gemaakt van TS Reader Lite om een opgenomen transport-stream te analyseren. Waar nodig worden de plaatjes van TransEditMMC aangevuld met informatie uit TS Reader. En wie precies elke bit wil bestuderen die in een opgenomen stream zit (en cygwin ge-installeerd heeft) kan daarvoor dvbsnoop gebruiken. Service InformatieHieronder een overzicht van de verschillende soorten SI (Service Informatie) die in een DVB-C transport stream zitten. Wat niet in de SI staat zijn zaken zoals gebruikte resolutie van het beeld, de samplerate van het geluid, etc. Dat zijn eigenschappen van de diverse MPEG-substreams, en staan in de MPEG standaards beschreven. CATDe CAT (Conditional access Table) zit altijd op PID 0x0001. Voor elke gebruikte coderingstechniek is er een entry in de CAT. TV Home gebruikt op dit moment alleen Irdeto, dus er is maar een entry. De CA_ID (1540, 0x0604) verwijst naar Irdeto (vastgelegd in ETR 162; Allocation of Service Information (SI) codes for Digital Video Broadcasting (DVB) systems. De range 0x0600 to 0x06FF is gereserveerde voor Irdeto. De ECMPID 1052 verwijst naar stream 1052 (0x041C) waarin de ECM's (Entitlement Control Message) zitten. Daarin zitten
Lijkt me duidelijk.... PATDe Program Association Table is altijd te vinden op PID 0x0000. Deze bevat een TRANSPORT-STREAM-ID (hier 27) en een lijstje met nummers van de 'services' die in deze transport-stream zitten, en koppelt daaraan het PID van de bijbehorende PMT (Program Map Table). Een service is bijv. een radio of TV kanaal. Deze nummers worden gebruikt in de PMT's (Program Map Table), en in de SDT (Service Description Table). PMT'sEen PMT (Program Map Table) bevat beschrijvende informatie over een televisie of radio-kanaal. Er zijn dus evenveel PMT's in een transport-stream als dat er zenders in zitten. Het PID van een PMT wordt gevonden via de PAT. ZDF
Het PCRPID (Program Clock Reference) heeft te maken met synchroniseren van de 'sub-streams' zodat geluid en beeld gelijk afgespeeld worden. De waarde hier is 110, en hexadecimaal is dat 0x006E, en dat is de volgende stream; De stream 0x006E bevat de video volgens ISO 13818-2 (MPEG2). De Stream Identifier en STD Descriptor komen bij andere zenders niet voor, en zijn waarschijnlijk onderdeel van de MPEG standaard. De volgende stream is 0x0082, en het type daarvan is private data volgens ISO 13818-1. Daarbinnen zitten een aantal descriptors, zoals descriptor 0x56 die aangeeft dat het teletext data is. Descriptor 0x45 geeft VBI (vertical Blanking Interval) data, en dat is de plek waar data zoals teletext, PDC-data e.d. vertuurd worden. De ZDF service heeft vrij veel van dit soort descriptors, dus ik laat de meeste maar weg.
in de PMT zit voor het geluid een descriptor 0x0A (ISO 639 language). Deze geeft informatie over het geluid, zodat de decoder o.a. de taal van het geluid kan laten zien. Ook het soort geluid is hier beschreven, en dat staat hier als 'Clean Effects'. Volgens MPEG betekent dat "This field indicates that the referenced program element has no language.". Volgens het 'E-Book' geldt 'The audio_type ‘undefined’ shall be used to designate normal program audio.' . Stream 0x007D bevat het Dolby Digital geluid. Het type daarvan is private data volgens ISO 13818-1, hetzelfde type als gebruikt wordt voor teletext! Betekent elleen maar dat deze stream niet gedefinieerd is binnen de MPEG-2 standaard, en extra descriptors moeten duidelijkheid geven over de echte inhoud. In dit geval is dit een descriptor 0x6A (AC-3_descriptor). Ook deze stream is voorzien van een ISO 639 language descriptor, en daarin staat 'dd'. Nu is 'dd' geen afkorting die voorkomt in de 639 standaard. Bij alle andere duitstalige zenders die met Dolby uitzenden staat als taal bij het Dolby geluid 'ger' of 'deu', dat mag beide volgens ISO 639. Dan bevat de PMT nog een descriptor met CA information. Het CA_ID 1540 staat weer voor Irdeto, het ECMPID 5006 verwijst naar een stream 0x138E waarin encryptie informatie voor dit kanaal wordt verstuurd. BBC Prime De het geluid is in dit geval gecodeerd volgens ISO 13818-3, oftwel de MPEG-2 audio-standaard. Ook hier is het geluid foutief beschreven als 'clean effects'.
Behalve de hongaarse titles zijn er veel meer, maar die heb ik maar weggelaten. En tot slot heeft ook BBC Prime een CA_descriptor, met een verwijzing naar stream 5005 (0x138D) voor ECM gegevens. BBC 1 De informatie voor BBC 2, 3 en 4 is vergelijkbaar, dus die laat ik hier weg. SDTDe SDT (Service Description Table) beschrijft de services in deze transport-stream. Er lijkt wat overlap te zijn met de informatie in de PMT's. Voor elke service heeft deze tabel de runningstatus (not running, starts in a few seconds (e.g. for video recording), pausing, running), EITScheduleFlag (als deze '1' is is er EPG informatie voor deze service beschikbaar), EITPresentFollowingFlag (als deze '1' is is er nu/straks informatie voor deze service beschikbaar), FreeCAMMode (als deze '1' is zijn onderdelen van de service gecodeerd), en een descriptor met de naam van de service en de provider). Verder wordt hier het service-type aangegeven, 1 is digital television service (Standaard Definition), 2 is radio, 17 is HD MPEG2, 25 is 'reserved for future use', en wordt gebruikt voor HD MPEG4. In de meeste streams heeft de SDT alleen een omschrijving van de services in die stream, maar in de stream die gebruikt wordt om de decoder te installeren zitten alle beschikbare services in de SDT. BATDe Bouquet Association Table (BAT) 'provides information regarding bouquets.'. Dat zou normaal een verzameling bij elkaar horende zenders zijn (een pluspakket ofzo), maar daarvoor lijkt het hier niet gebruikt te worden. De service-list bevat services 8014, 8013, etc. Dat zijn de services die de software voor de decoders bevatten. Het bouqet_ID is 13858 (0x3622), en ETR 162 zegt daarvoor; 'Irdeto Bouquet of Download data Services'. Descriptor 0x5F is een 'private data specifier'. Voor elke uitbreiding/afwijking op de standaard is er een private data specifier die aangeeft wie de aanpassing gedefinieerd heeft. Deze zijn te vinden in ETR 162. De code in descriptor 0x5F is dus gedefinieerd zijn in ETR 162, en inderdaad, 0x00362275 (3547765) staat voor Irdeto. De link-age types zijn dus user-defined door Irdeto, en dus niet te achterhalen. Het lijkt een verwijzing te zijn naar de stream waar de software voor de decoders te downloaden is, en evt. versie info. Ze lijken wel veel op elkaar. EITDe Event Information Table (EIT) bevat de EPG informatie. Elk programma heet hier een 'event'. Dit plaatje laat het niet duidelijk zien, maar voor alle zenders wordt de EPG info doorgestuurd in elke transport-stream. Volgens EN 300 468 worden er verschillende table-id's gebruikt voor nu/straks informatie, en voor informatie over andere transport-streams. Dat laten helaas TransEditMMC en TS Reader Lite niet zien. Voor elke event is er een Short event descriptor (0x4D), waarin in totaal ruimte is voor maximaal 255 tekens. Daarin moeten een languagecode, de naam en de omschrijving gezet worden. Als er een langere omschrijving nodig is worden er ook een of meer extended event descriptors gebruikt. De content descriptor (0x54) geeft informatie over het type programma. De parental rating (0x55) geeft aan voor welke leeftijd dit programma geschikt is. Omdat er vrij veel informatie nodig is om alle EPG data door te geven voor alle zenders, neemt de EPG stream (PID=0x0012) vrij veel ruimte in in een transport-stream; in dit voorbeeld 295 kbits/sec, ongeveer evenveel als een geluidskanaal. Dit zal alleen maar toenemen als de EPG uitgebreidt wordt naar een week (is nu 2 dagen) en de laadtijd gelijk moet blijven. NITDe Network Information Table (NIT) geeft een volledig overzicht van welke transportstreams op welke frequentie te vinden zijn. Als de decoder het stream-ID weet, en het network-ID dat bij installatie opgegeven is, kan in deze tabel gevonden worden op welke frequentie de transport-stream te vinden is, en welke services er in zitten. De descriptor 0x83 staat hier als unknown, maar in combinatie met de private_data_specifier 40 (0x28) komen we via google op LCN Specs Final Draft v.1.1.doc, een standaard die blijkbaar bij de italiaanse DVB-T gebruikt wordt, maar hier precies lijkt te passen. De specifier staat voor EACEM (European Association of Consumer Electronics Manufacturers), tegenwoordig de EICTA (European Information & Communications Technology Industry Association). Het blijkt te gaan om een 'Logical Channel Descriptor', een manier om de servicenummers (zoals 27003 voor BBC1) te koppelen aan logische kanaalnummers (Bij @Home zit BBC1 op kanaal 71). Ook zit hier een vlag in die de service 'onzichtbaar' kan maken voor gewone gebruikers. Het kanaal komt dan niet te voorschijn in de gewone zenderlijst. TOT/TDTDe Time and Date Table (TDT) bevat alleen de UTC tijd. De Time Offset Table (TOT) bevat de UTC tijd, informatie over het verschil tussen lokale tijd en UTC, en het moment waarop de volgende zomer/wintertijd wisseling is, zodat deze overgang vanzelf goed moet gaan. Hier staat dus al dat de zomertijd eindigt op 29 okt. De TDT lijkt hiermee compleet overbodig, maar volgens de spec is de TDT verplicht, en de TOT is optioneel. Zie bitrates voor een overzicht hoeveel bits er nodig zijn om deze service informatie door te sturen.
|