Philips Semiconductors
PNX15xx Series
Volume 1 of 1
Chapter 21: MPEG-1 and MPEG-2 Variable Length Decoder
12NC 9397 750 14321
Koninklijke Philips Electronics N.V. 2002-2003-2004. All rights reserved.
Product data sheet
Rev. 2 — 1 December 2004
21-5
When an error occurs in the VLD, the corresponding error flag (Bitstream error or RL
overflow error) is set and an interrupt is generated if corresponding bits in the VLD_IE
register is set. Refer to section
Section 3.4
for details on the error handling
mechanism.
3.2.2
VLD Interrupt Enable (VLD_IE)
This VLD_IE read/write register allows the CPU to control the initiation of the interrupt
for the corresponding bits in the VLD_MC_STATUS register. Writing a one to any of
these bits in the VLD_IE register enables the interrupt for the corresponding bit in the
status register.
3.2.3
VLD Control (VLD_CTL)
When VLD detects a new slice start code in the bit-stream, it writes the lower 8-bits of
the start code into the slice_start_code field of the VLD_CTL register before
interrupting the CPU. When re-started, the VLD reads the slice_start_code from the
VLD_CTL register and writes this value into bits 16-23 of the last word in the first
mb_header and sets the mb_first bit to 1. To allow the CPU to switch bitstream at the
slice level, CPU can write the desired slice start code and slice_start_code_strobe in
the VLD control register. The value of ‘1’ in the slice_start_code_strobe will cause the
VLD to update the slice_start_code field with the given slice_start_code value. The
other fields in the VLD_CTL register are not updated when the input data contains a
value of ‘1’ in the slice_start_code_strobe field. The slice_start_code_strobe bit is
always read as 0. The CPU must write the slice_start_code only when the VLD is not
active. In order to update the DMA_INPUT_DONE_MODE fields, the
slice_start_code_strobe bit value must be set to ‘0’.
The use of the DMA_INPUT_DONE_MODE bit is described in
Table 3
.
Table 2: VLD STATUS
Name
Size
(Bits) Description
VLD Command Done
1
Logic ‘1’ indicates successful completion of current command. This bit is cleared by issuing
a new command.
Start Code Detected
1
Logic ‘1’ indicates VLD encountered 0x000001 while executing current command.
This bit is cleared by writing a logic ‘1’ to it.
Bitstream Error
1
Logic ‘1’ indicates VLD encountered an illegal Huffman code or an unexpected start code.
Refer to
Section 3.4 Error Handling
for details on the error handling procedure. This bit is
cleared by writing a logic ‘1’ to it.
DMA Input Done
1
Conditions for setting this bit depends on the value of the DMA_Input_Done field in the
VLD_CTL register. Refer to
Section 3 VLD Control
and
Section 3.3 VLD Operation
for
details. This bit is cleared by writing a logic ‘1’ to it.
DMA Macroblock
Header Output Done
1
Logic ‘1’ indicates that the macroblock header DMA write transfer has completed.
DMA Run/Level
Output Done
1
Logic ‘1’ indicates that the Run/Level DMA write transfer has completed.
RL overflow Error
1
Logic ‘1’ indicates Overflow of run/level values within a block.
Refer to
Section 3.4
for details on the error handling procedure.
This bit is cleared by writing a logic ‘1’ to it.