2.1 Ports

The following tables list the description of the input and the output ports of the H.264 Encoder.

Table 2-1. Inputs and Outputs of H.264 Encoder
Signal Name DirectionWidthDescription
DDR_CLK_IInput1DDR memory controller clock
PIX_CLK_IInput1Input clock with which incoming pixels are sampled
RESET_NInput1Active-low Asynchronous reset signal to the design
DATA_VALID_IInput1Input Pixel data valid signal
DATA_Y_IInput88-bit Luma pixel input in 422 format
DATA_C_IInput88-bit Chroma pixel input in 422 format
FRAME_START_IInput1Start of Frame indication

The rising edge of this signal is considered as frame start.

FRAME_END_IInput1End of Frame indication
DDR_FRAME_START_ADDR_IInput8DDR memory start address (LSB 24-bits are 0) to store the reconstructed frame. The H.264 IP will store 4 frames and it will use 64 MB of DDR memory.
I_FRAME_FORCE_IInput1User can force to I frame at anytime. It is pulse signal.
PCOUNT_IInput8Number of P frames per every I frame

422 format value ranges from 0 to 255.

QPInput6Quality factor for H.264 quantization

422 fornat value ranges from 0 to 51 where 0 represents highest quality and lowest compression and 51 represents highest compression.

SKIP_THRESHOLD_IInput12Threshold for skip block decision

This value represents the SAD value of 16 x 16 Macro block for skipping. The range is from 0 to 1024, with a typical value of 512. Higher threshold produces more skip blocks and low quality.

VRES_IInput16Vertical resolution of input image. It must be multiple of 16.
HRES_IInput16Horizontal resolution of input image. It must be multiple of 16.
DATA_VALID_OOutput1Signal denoting encoded data is valid. 
DATA_OOutput16H.264 encoded data output that contains NAL unit, slice header, SPS, PPS, and the encoded data of macro blocks. 
WRITE_ CHANNEL_BUSWrite channel bus to be connected with Video arbiter Write channel bus. This is available when the bus interface is selected for Arbiter Interface.
READ_CHANNEL_BUSRead channel bus to be connected with Video arbiter Read channel bus. This is available when the bus interface is selected for Arbiter Interface.
DDR Write Native IF—These ports are available when the Native interface is selected for Arbiter Interface.
DDR_WRITE_ACK_IInput1Write acknowledgment from arbiter write channel.
DDR_WRITE_DONE_IInput1Write completion from arbiter.
DDR_WRITE_REQ_OOutput1Write request to arbiter.
DDR_WRITE_START_ADDR_OOutput32DDR address to which write has to be made.
DDR_WBURST_SIZE_OOutput8DDR write burst size.
DDR_WDATA_VALID_OOutput1Data valid to arbiter.
DDR_WDATA_OOutputDDR_AXI_DATA_WIDTHData output to arbiter.
DDR Read Native IF—These ports are available when the Native interface is selected for Arbiter Interface.
DDR_READ_ACK_IInput1Read acknowledgment from arbiter read channel.
DDR_READ_DONE_IInput1Read completion from arbiter.
DDR_RDATA_VALID_IInput1Data valid from arbiter.
DDR_RDATA_IInputDDR_AXI_DATA_WIDTHData input from arbiter.
DDR_READ_REQ_OOutput1Read request to arbiter.
DDR_READ_START_ADDR_OOutput32DDR address from which read has to be made.
DDR_RBURST_SIZE_OOutput8DDR read burst size.