2/24/2008 9T6WP
BCM7405
Preliminary Hardware Data Module
Functional Description
06/29/07
Bro a d c o m C o rp o r a ti o n
Page 1-24
Data Transport Processor
Document
7405-1HDM00-R
1
The packet sync signal is used to determine the start of a transport packet, regardless of the current state of the transport
parser.
2
The PID must match the host CPU programmed packet ID.
3
In MPEG mode, the adaptation control bits are checked. The adaptation field the packet is not considered as PES
payload.
4
In MPEG mode, the payload unit start bit is fed to the PES layer parser. However, it is not used at the transport layer.
In PES mode, data that is determined to be transport payload is fed to PES layer parser. As noted above, the payload unit
start bit is also given to the PES layer parser in MPEG mode. The PES layer parser must support ES start code detection
across PES packets. In order to do this, ONLY the PES_packet_data_byte bytes are fed to the ES start code detector. The
ES data is found in the following manner:
1
Once any PES packet start is found, an entry is made for it in the Start Code Index Table.
2
If present in the PES header, the PTS value will be extracted if the SCD_PTS_MODE bit is set in the SCD control
register. This value will be stored in the Start Code Index Table if its corresponding PES packet start is stored in the index
table.
3
In MPEG mode, an asserted payload unit start signal indicates the next PES payload byte is the first byte in a PES
packet, regardless of the current state of the PES layer parser. This is the only method used in MPEG mode to determine
PES packet starts. The stream_id must match the programmed range of stream_id's.
Record SCD ES Start Code Storage
Once a start code is found within the elementary stream, several conditions must be met before the start code will be stored
in the index table. The method of storing ES start codes is intended to provide pointers to the locations of video access units,
picture start codes, and the start of the first row for each access unit. The following lists the conditions for storing start codes:
1
Start codes are stored in an alternating manner between two types: First slice start code 01 and Non-slice start codes
(00, B0-FF). Once a start code 01 is stored, it will not be stored again until a Non-slice start code is stored. Once any
non-slice start code is stored, only picture start codes will be stored until the next first slice start code is stored.
2
In addition to the above storage sequence, any start-code values within the range specified by the SCD range registers
are stored.
3
All picture start codes are stored (SCV = 00).
4
PES header start codes are not considered in this sequence. Only the start codes within the ES are used to determine
which ES start codes to store.
5
In addition to the start code value, all index entries contain the next two bytes following the start code value.
6
If a continuity count error or TEI error is detected, an exception is made to the above sequence. In addition to the normal
sequence, any slice start code (SCV 01-AF) will also be stored to report the error. After the error is reported the normal
sequence resumes.
Transport Parser Index Table (TPIT)
The TPIT extracts fields from MPEG transport packets and creates index table entries if the fields match programmable
criteria. External packet attributes can also add entries to the record index table. External packet attributes come from other
modules. When external packet attributes are detected, further filtering by enables/PID matching is performed to determine
if a record index table entry should be created.
•
If a PID match is found by the record PID parser module, fields in the transport packet are compared against the
corresponding filter. Depending on the filter results, an index table entry can be made.
•
Also, if a PID match is found, certain state bits are stored. For example, if a PCR exists in the packet, the PCR value is
stored. After the filter compare, the scrambling control bits are stored to assist with detection of scrambling control
changes.