PCM Audio Data Transport Stream adaptationfrom an elementary stream to a HDCP-IAA encrypted data flow
Jochen Klaus-Wagenbrenner / 18.06.2012
Audio Frame Structure
1
Audio sample data alignment – base are 16 bit samples– Number of bytes per Audio Packet depends on
Ch 0
Audio Packet (2008 bytes)
Sample 0
16 bit stereo
Ch 1
Ch 0
16 bitSample 1 Sample 501
MSB LSB
Ch 0
Audio Packet (1984 bytes)
Sample 0
16 bit 8 channelsCh 0
16 bitSample 1 Sample 123
MSB LSB
Ch 1 Ch 2 Ch 3 Ch 4 Ch 5 Ch 6 Ch 7
Audio Frame Structure
2
Audio sample data alignment – for 20 bit, the 4 LSB will be added at the end of a packet
Ch 0
Audio Packet (2010 bytes)
Sample 0
20 bit stereo
Ch 1
16 bit
Sample 1 Sample 401
MSB LSB
Sample 0 Sample 1 Sample 401
Ch 0 Ch 1
4 bitMSB LSB
upper 16 bit of sample lower 4 bit of sample
Audio Frame Structure
3
Audio sample data alignment – for 24 bit, the 8 LSB will be added at the end of a packet
Audio Packet (2010 bytes)
Sample 0
24 bit 5 channels
16 bit
Sample 1 Sample 133
MSB LSB
Sample 0 Sample 1 Sample 133
8 bitMSB LSB
Ch 0 Ch 1 Ch 2 Ch 3 Ch 4 Ch 0 Ch 1 Ch 2 Ch 3 Ch 4
upper 16 bit of sample lower 8 bit of sample
Packetizing and Transport
4
Packetizing and Synchronization– PCR/OPCR/PTS/DTS /ESCR
Header Adaption Field Payload
HeaderPES Optional Header
PTS, DTS, ESCR Indicator
Optional Fields
PTS, DTS, ESCR
Payload (e.g. 2010 bytes)
HeaderES Payload
188 Bytes
MPEG2-TS
PCR/OPCR
PCR - Program Clock ReferenceOPCR – Original Program Clock ReferencePTS - Presentation Time StampDTS - Decoding Time StampESCR – Elementary Stream Clock Reference
Packetizing and Transport
5
Packetized Elementary Stream
Audio Packet (e.g. 2010 bytes – 24 bit 5 channels)00
StreamID Packet LengthStart Prefix
00 01 XX XX XX
PES Header (6 bytes)Name Size
Start prefix 3 bytes
StreamID 1 byte
Packet Length 2 byte
Optional PES Header variable
Stuffing Bytes variable
optional PES HeaderName Size Name Size
Marker bits 2 bits ES flag 1 bit
Scrambling control 2 bits Trick mode flag 1 bit
Priority 1 bit Add. copy info 1 bit
Data alignment 1 bit CRS flag 1 bit
Copy right 1 bit Extension flag 1 bit
Original or copy 1 bit PES header length 8 bits
PTS/DTS indicator 2 bits Optional fields variable
ESCR flag 1 bit Stuffing bytes variableStreamID0xC0 – 0xDF for audio content0xE0 – 0xEF for video content PTS - Presentation Time Stamp
DTS - Decoding Time StampESCR – Elementary Stream Clock Reference
Packetizing and Transport
6
Packetized Elementary Stream– PTS/DTS Indicator
• 00 no PTS/DTS• 01 forbidden• 10 PTS available• 11 PTS/DTS available
– PTS/DTS Data• 5/10 bytes appended on the Header Data Field
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0010 PTS 32..30 1 PTS 29..15 1 PTS 14..00 1
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
0011 PTS 32..30 1 PTS 29..15 1 PTS 14..00 1
0001 DTS 32..30 1 DTS 29..15 1 DTS 14..00 1
PTS available
PTS/DTS available
Packetizing and Transport
7
Packetized Elementary Stream– ESCR Indicator– 6 Bytes are appended to the Header
ESCR available
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
00 32..30 1 ESCR base 29..15 1 ESCR base 14..00 1 ESCR ext 1
Packetizing and Transport
8
Transport Stream
e.g. Payload 184 bytes0x47
PacketID Continuity counterStart Prefix
13 bits XX
TS Header
Adaption Field
Name Size Name Size
Start Prefix 8 bits Scrambling Control
2 bits
Transport Error 1 bit Adaption Field Ind. 2 bits
Payload Start 1 bit Continuity Counter 4 bits
Transprot Priority 1 bit Adaption Field 0 or more
PacketID 13 bits Payload 0 or more
Header – 4 bytes
Name Size Name Size
Adaption Length 8 bits Private data Ind. 1 bit
Discontinuity 1 bit Extension flag 1 bit
Random Access 1 bit PCR 33+6+9
Priority Indicator 1 bit OPCR 33+6+9
PCR flag 1 bit Splice Countdown 8 bits
OPCR flag 1 bit Stuffing bytes Variable
Splicing flag 1 bit
PCR - Program Clock ReferenceOPCR - Original Program Clock Reference
Transport Stream Multiplexing
9
PES to TS muxing
PAT – Program Association TablePMT – Program Map Table
Encryption (HDCP-IIA based)
10
Encryption by using the HDCP Interface Independent Adaptation (HDCP 2.x)– Packetized Elementary Stream has to be used– the method for multiplexing and AV transport is open
Encryption (HDCP-IIA based)
11
A/V Data -> Packetized Elementary Stream -> HDCP Encryption -> Transport Stream
e.g. Payload PCM data 2010 bytes
PES Header
6 Bytes
AES128 encrypted (e.g. Payload PCM data 2010 bytes)
PES Header
6 Bytes 16 Bytes
private data field
Packetized Elementary Stream
Encrypted PES
4 16 Bytes6 164 Bytes
4 184 Bytes
.... …. ….. ….. ….
4 184 Bytes
mandatory for encrypted payload
Transport Stream Packet 1
Transport Stream Packet n
.... …. ….. ….. ….
Transport Stream Packet 0
Encryption (HDCP-IIA based)
12
Private data field
– mandatory– added to every encrypted PES– signals that encrypted PES is present– 4 byte stream counter– 8 bytes input counter– used instead of the PES scrambling control bits
Top Related