- •Contents
- •1. Video and Image Processing Suite Overview
- •Release Information
- •Device Family Support
- •Latency
- •In-System Performance and Resource Guidance
- •Stall Behavior and Error Recovery
- •2. Interfaces
- •Video Formats
- •Avalon-ST Video Protocol
- •Video Data Packets
- •Static Parameters of Video Data Packets
- •Control Data Packets
- •Ancillary Data Packets
- •User-Defined and Altera-Reserved Packets
- •Packet Propagation
- •Transmission of Avalon-ST Video Over Avalon-ST Interfaces
- •Packet Transfer Examples
- •Avalon-MM Slave Interfaces
- •Specification of the Type of Avalon-MM Slave Interfaces
- •Avalon-MM Master Interfaces
- •Specification of the Type of Avalon-MM Master Interfaces
- •Buffering of Non-Image Data Packets in Memory
- •3. Getting Started
- •IP Catalog and Parameter Editor
- •Specifying IP Core Parameters and Options
- •Installing and Licensing IP Cores
- •OpenCore Plus IP Evaluation
- •4. Clocked Video Interface IP Cores
- •Control Port
- •Clocked Video Input Format Detection
- •Interrupts
- •Clocked Video Output Video Modes
- •Interrupts
- •Generator Lock
- •Underflow and Overflow
- •Timing Constraints
- •Handling Ancillary Packets
- •Modules for Clocked Video Input II IP Core
- •Clocked Video Interface Parameter Settings
- •Clocked Video Interface Signals
- •Clocked Video Interface Control Registers
- •5. 2D FIR Filter IP Core
- •Calculation Precision
- •Coefficient Precision
- •Result to Output Data Type Conversion
- •2D FIR IP Core Parameter Settings
- •2D FIR Filter Signals
- •2D FIR Filter Control Registers
- •6. Video Mixing IP Cores
- •Alpha Blending
- •Video Mixing Parameter Settings
- •Video Mixing Signals
- •Video Mixing Control Registers
- •7. Chroma Resampler IP Core
- •Horizontal Resampling (4:2:2)
- •Vertical Resampling (4:2:0)
- •Chroma Resampler Parameter Settings
- •Chroma Resampler Signals
- •8. Video Clipping IP Cores
- •Video Clipping Parameter Settings
- •Video Clipping Signals
- •Video Clipping Control Registers
- •9. Color Plane Sequencer IP Core
- •Combining Color Patterns
- •Rearranging Color Patterns
- •Splitting and Duplicating
- •Subsampled Data
- •Color Plane Sequencer Parameter Settings
- •Color Plane Sequencer Signals
- •10. Color Space Conversion IP Cores
- •Input and Output Data Types
- •Color Space Conversion
- •Result of Output Data Type Conversion
- •Color Space Conversion Parameter Settings
- •Color Space Conversion Signals
- •Color Space Conversion Control Registers
- •11. Control Synchronizer IP Core
- •Using the Control Synchronizer IP Core
- •Control Synchronizer Parameter Settings
- •Control Synchronizer Signals
- •Control Synchronizer Control Registers
- •12. Deinterlacing IP Cores
- •Deinterlacing Methods
- •Bob with Scanline Duplication
- •Bob with Scanline Interpolation
- •Weave
- •Motion-Adaptive
- •Sobel-Based HQ Mode
- •Pass-Through Mode for Progressive Frames
- •Frame Buffering
- •Frame Rate Conversion
- •Bandwidth Requirement Calculations for 10-bit YCbCr Video
- •Behavior When Unexpected Fields are Received
- •Handling of Avalon-ST Video Control Packets
- •Deinterlacing Parameter Settings
- •Deinterlacing Signals
- •Deinterlacing Control Registers
- •Design Guidelines for Broadcast Deinterlacer IP Core
- •13. Frame Reader IP Core
- •Single-Cycle Color Patterns
- •Frame Reader Output Pattern and Memory Organization
- •Frame Reader Parameter Settings
- •Frame Reader Signals
- •Frame Reader Control Registers
- •14. Frame Buffer IP Cores
- •Double Buffering
- •Triple Buffering
- •Locked Frame Rate Conversion
- •Handling of Avalon-ST Video Control Packets
- •Color Format
- •Frame Buffer Parameter Settings
- •Frame Buffer Signals
- •Frame Buffer Control Registers
- •15. Gamma Corrector IP Core
- •Gamma Corrector Parameter Settings
- •Gamma Corrector Signals
- •Gamma Corrector Control Registers
- •16. Interlacer IP Core
- •Interlacer Parameter Settings
- •Interlacer Signals
- •Interlacer Control Registers
- •17. Scaler II IP Core
- •Nearest Neighbor Algorithm
- •Bilinear Algorithm
- •Bilinear Algorithmic Description
- •Polyphase and Bicubic Algorithm
- •Double-Buffering
- •Polyphase Algorithmic Description
- •Choosing and Loading Coefficients
- •Edge-Adaptive Scaling Algorithm
- •Scaler II Parameter Settings
- •Scaler II Signals
- •Scaler II Control Registers
- •18. Video Switching IP Cores
- •Mixer Layer Switching
- •Video Switching Parameter Settings
- •Video Switching Signals
- •Video Switching Control Registers
- •19. Test Pattern Generator IP Cores
- •Test Pattern
- •Generation of Avalon-ST Video Control Packets and Run-Time Control
- •Test Pattern Generator Parameter Settings
- •Test Pattern Generator Signals
- •Test Pattern Generator Control Registers
- •20. Trace System IP Core
- •Trace System Parameter Settings
- •Trace System Signals
- •Operating the Trace System from System Console
- •Loading the Project and Connecting to the Hardware
- •Trace Within System Console
- •TCL Shell Commands
- •21. Avalon-ST Video Monitor IP Core
- •Packet Visualization
- •Monitor Settings
- •Avalon-ST Video Monitor Parameter Settings
- •Avalon-ST Video Monitor Signals
- •Avalon-ST Video Monitor Control Registers
- •Avalon-ST Video Class Library
- •Running the Tests
- •Video File Reader Test
- •Example Test Environment
- •Video Field Life Cycle
- •Constrained Random Test
- •Complete Class Reference
- •c_av_st_video_control
- •c_av_st_video_data
- •c_av_st_video_file_io
- •c_av_st_video_item
- •c_av_st_video_source_sink_base
- •c_av_st_video_sink_bfm_’SINK
- •c_av_st_video_source_bfm_’SOURCE
- •c_av_st_video_user_packet
- •c_pixel
- •Raw Video Data Format
- •Cadence Detection and Reverse Pulldown in the Deinterlacer II IP Core
- •Document Revision History
- •How to Contact Altera
17-12 |
Scaler II Signals |
|
|
|
|
UG-VIPSUITE |
||
|
|
|
2015.01.23 |
|||||
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
Parameter |
|
|
Value |
|
Description |
|
|
|
|
|
|
|
|
|
|
|
|
Horizontal coefficient banks |
|
1–32, Default = 1 |
|
Select the number of banks of horizontal filter |
||
|
|
|
|
|
|
|
coefficients for polyphase algorithms. |
|
|
|
|
|
|
|
|
|
|
|
|
Horizontal coefficient function |
|
• |
Lanczos_2 |
|
Select the function used to generate the |
|
|
|
|
|
• |
Lanczos_3 |
|
horizontal scaling coefficients. Select either |
|
|
|
|
|
|
one for the pre-defined Lanczos functions or |
|
||
|
|
|
|
• |
Custom |
|
|
|
|
|
|
|
|
choose Custom to use the coefficients saved |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
in a custom coefficients file. |
|
|
|
|
|
|
|
|
|
|
|
|
Horizontal coefficients file |
|
User-specified |
|
When a custom function is selected, you can |
||
|
|
|
|
|
|
|
browse for a comma-separated value file |
|
|
|
|
|
|
|
|
containing custom coefficients. Key in the |
|
|
|
|
|
|
|
|
path for the file that contains these custom |
|
|
|
|
|
|
|
|
coefficients. |
|
|
|
|
|
|
|
|
||
|
|
Add extra pipelining registers |
|
On or Off |
|
Turn on to add extra pipeline stage registers |
|
|
|
|
|
|
|
|
|
to the data path. |
|
|
|
|
|
|
|
|
You must to turn on this option to achieve: |
|
|
|
|
|
|
|
|
• frequency of 150 MHz for Cyclone III or |
|
|
|
|
|
|
|
|
Cyclone IV devices |
|
|
|
|
|
|
|
|
• frequencies above 250 MHz for Arria II, |
|
|
|
|
|
|
|
|
Stratix IV, or Stratix V devices |
|
|
|
|
|
|
|
|
|
|
Scaler II Signals
Table 17-3: Common Signals
|
|
Signal |
|
Directio |
|
Description |
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
main_clock |
|
Input |
|
The main system clock. The IP core operates on the |
||
|
|
|
|
|
|
rising edge of this signal. |
|
|
|
|
|
|
|
|
|
|
main_reset |
|
Input |
|
The IP core asynchronously resets when you assert this |
|
|
|
|
|
|
|
|
signal. You must deassert this signal synchronously to |
|
|
|
|
|
|
|
the rising edge of the main_clock signal. |
|
|
din_data |
|
Input |
|
din port Avalon-ST data bus. This bus enables the |
|
|
|
|
|
|
|
|
transfer of pixel data into the IP core. |
|
|
|
|
|
|
|
|
|
|
din_endofpacket |
|
Input |
|
din port Avalon-ST endofpacket signal. This signal |
|
|
|
|
|
|
|
|
marks the end of an Avalon-ST packet. |
|
|
din_ready |
|
Output |
|
din port Avalon-ST ready signal. This signal indicates |
|
|
|
|
|
|
|
|
when the IP core is ready to receive data. |
|
|
|
|
|
|
|
|
|
|
din_startofpacket |
|
Input |
|
din port Avalon-ST startofpacket signal. This signal |
|
|
|
|
|
|
|
|
marks the start of an Avalon-ST packet. |
|
|
|
|
|
|
|
|
|
Altera Corporation |
|
|
|
|
Scaler II IP Core |
||
|
|
|
|
|
|
Send Feedback |
UG-VIPSUITE |
|
|
|
Scaler II Signals |
17-13 |
|
2015.01.23 |
|
|
|
|||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Signal |
|
Directio |
|
Description |
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
din_valid |
|
Input |
|
din port Avalon-ST valid signal. This signal identifies |
|
|
|
|
|
|
the cycles when the port must enter data. |
|
|
|
|
|
|
|
|
|
dout_data |
|
Output |
|
dout port Avalon-ST data bus. This bus enables the |
|
|
|
|
|
|
transfer of pixel data out of the IP core. |
|
|
dout_endofpacket |
|
Output |
|
dout port Avalon-ST endofpacket signal. This signal |
|
|
|
|
|
|
marks the end of an Avalon-ST packet. |
|
|
|
|
|
|
|
|
|
dout_ready |
|
Input |
|
dout port Avalon-ST ready signal. The downstream |
|
|
|
|
|
|
device asserts this signal when it is able to receive data. |
|
|
dout_startofpacket |
|
Output |
|
dout port Avalon-ST startofpacket signal. This signal |
|
|
|
|
|
|
marks the start of an Avalon-ST packet. |
|
|
|
|
|
|
|
|
|
dout_valid |
|
Output |
|
dout port Avalon-ST valid signal. The IP core asserts |
|
|
|
|
|
|
this signal when it produces data. |
|
|
|
|
|
|
|
|
Table 17-4: Control Signals
Note: These signals are present only if you turn on Enable run-time control of input/output frame size and turn off Bilinear for Scaling algorithm in the Scaler II parameter editor.
Signal |
|
Directio |
|
Description |
|
|
n |
|
|
|
|
|
|
|
|
control_address |
Input |
control slave port Avalon-MM address bus. This bus |
||
|
|
|
specifies a word offset in the Avalon-MM address space. |
||
|
|
|
|
|
|
|
control_byteenable |
Input |
control slave port Avalon-MM byteenable bus. This |
|
|
|
|
|
bus enables specific byte lane or lanes during transfers. |
|
|
|
|
|
Each bit in byteenable corresponds to a byte in |
|
|
|
|
|
writedata and readdata. |
|
|
|
|
|
• During writes, this bus specifies which bytes are being |
|
|
|
|
|
written to; other bytes are ignored by the slave. |
|
|
|
|
|
• During reads, this bus indicates which bytes the |
|
|
|
|
|
master is reading. Slaves that simply return readdata |
|
|
|
|
|
with no side effects are free to ignore this bus during |
|
|
|
|
|
reads. |
|
|
|
|
|
|
|
|
|
control_read |
Output |
control slave port Avalon-MM read signal. When you |
||
|
|
|
assert this signal, the control port sends new data at |
||
|
|
|
readdata. |
||
|
|
|
|
|
|
|
control_readdata |
Output |
control slave port Avalon-MM control_data bus. The |
|
|
|
|
|
IP core uses these output lines for read transfers. |
|
|
|
control_readdatavalid |
Output |
control slave port Avalon-MM readdata bus. When |
|
|
|
|
|
you assert this signal, the control port sends new data at |
||
|
|
|
control_readdata. |
||
|
|
|
|
|
|
|
|
|
|
||
Scaler II IP Core |
|
|
Altera Corporation |
||
|
Send Feedback |
|
|
|
|
17-14 |
Scaler II Control Registers |
UG-VIPSUITE |
|
2015.01.23 |
|||
|
|
Signal |
|
Directio |
|
Description |
|
|
n |
|
|
|
|
|
|
|
control_waitrequest |
|
Output |
|
control slave port Avalon-MM waitrequest signal. |
|
|
|
|
|
control_write |
|
Input |
|
control slave port Avalon-MM write signal. When you |
|
|
|
|
assert this signal, the control port accepts new data from |
|
|
|
|
the writedata bus. |
|
|
|
|
|
control_writedata |
|
Input |
|
control slave port Avalon-MM writedata bus. The IP |
|
|
|
|
core uses these input lines for write transfers. |
|
|
|
|
|
Scaler II Control Registers
The control data is read once at the start of each frame and is buffered inside the IP core, so the registers can be safely updated during the processing of a frame.
Table 17-5: Scaler II Control Register Map
The coefficient bank that is being read by the IP core must not be written to unless the core is in a stopped state. To change the contents of the coefficient bank while the IP core is in a running state, you must use multiple coefficient banks to allow an inactive bank to be changed without affecting the frame currently being processed. The Scaler II IP core allows for dynamic bus sizing on the slave interface. The slave interface includes a 4-bit byte enable signal, and the width of the data on the slave interface is 32 bits.
Note: The Ntaps is the number of horizontal or vertical filter taps, whichever is larger.
Address |
|
Register |
|
Description |
|
|
|
|
|
0 |
|
Control |
|
• Bit 0 of this register is the Go bit, all other bits are unused. |
|
|
|
|
Setting this bit to 0 causes the IP core to stop the next time |
|
|
|
|
control information is read. |
|
|
|
|
• Bit 1 enables the edge adaptive coefficient selection—set to |
|
|
|
|
1 to enable this feature. |
|
|
|
|
• Bit 2 enables edge adaptive sharpening—set to 1 to enable |
|
|
|
|
this feature. |
|
|
|
|
|
1 |
|
Status |
|
Bit 0 of this register is the Status bit, all other bits are unused. |
|
|
|
|
• It is set to 0 if the IP core has not been started. |
|
|
|
|
• It is set to 1 while the IP core is processing data and cannot |
|
|
|
|
be stopped. |
|
|
|
|
|
2 |
|
Interrupt |
|
This bit is not used because the IP core does not generate any |
|
|
|
|
interrupts. |
|
|
|
|
|
3 |
|
Output Width |
|
The width of the output frames in pixels. |
|
|
|
|
|
4 |
|
Output Height |
|
The height of the output frames in pixels. |
|
|
|
|
|
Altera Corporation |
Scaler II IP Core |
|
|
Send Feedback
UG-VIPSUITE |
|
|
|
Scaler II Control Registers |
17-15 |
|
2015.01.23 |
|
|
|
|||
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Address |
|
Register |
|
Description |
|
|
|
|
|
|
|
|
|
5 |
|
Edge Threshold |
|
Specifies the minimum difference between neighboring pixels |
|
|
|
|
|
|
beyond which the edge-adaptive algorithm switches to using |
|
|
|
|
|
|
the edge coefficient set. To get the threshold used internally, |
|
|
|
|
|
|
this value is multiplied by the number of color planes per |
|
|
|
|
|
|
pixel. |
|
|
6 |
|
Lower Blur Threshold |
|
Specifies the minimum difference between two pixels for a |
|
|
|
|
|
|
blurred edge to be detected between the pixels during post |
|
|
|
|
|
|
scaling edge-adaptive sharpening. To get the threshold used |
|
|
|
|
|
|
internally, this value is multiplied by the number of color |
|
|
|
|
|
|
planes per pixel. |
|
|
|
|
|
|
|
|
|
7 |
|
Upper Blur Threshold |
|
Specifies the maximum difference between two pixels for a |
|
|
|
|
|
|
blurred edge to be detected between the pixels during post |
|
|
|
|
|
|
scaling edge-adaptive sharpening. To get the threshold used |
|
|
|
|
|
|
internally, this value is multiplied by the number of color |
|
|
|
|
|
|
planes per pixel. |
|
|
8 |
|
Horizontal |
|
Specifies which memory bank horizontal coefficient writes |
|
|
|
|
Coefficient Write |
|
from the Avalon-MM interface are made into. |
|
|
|
|
Bank |
|
|
|
|
|
|
|
|
|
|
|
9 |
|
Horizontal |
|
Specifies which memory bank is used for horizontal |
|
|
|
|
Coefficient Read |
|
coefficient reads during data processing. |
|
|
|
|
Bank |
|
|
|
|
|
|
|
|
|
|
10 |
|
Vertical Coefficient |
|
Specifies which memory bank vertical coefficient writes from |
||
|
|
|
Write Bank |
|
the Avalon-MM interface are made into. |
|
|
|
|
|
|
||
|
11 |
|
Vertical Coefficient |
|
Specifies which memory bank is used for vertical coefficient |
|
|
|
|
Read Bank |
|
reads during data processing. |
|
|
12 |
|
Horizontal Phase |
|
Specifies which horizontal phase the coefficient tap data in the |
|
|
|
|
|
|
Coefficient Data register applies to. Writing to this |
|
|
|
|
|
|
location, commits the writing of coefficient tap data. This |
|
|
|
|
|
|
write must be made even if the phase value does not change |
|
|
|
|
|
|
between successive sets of coefficient tap data. |
|
|
|
|
|
|
To commit to an edge phase, write the horizontal phase |
|
|
|
|
|
|
number +32768. For example, set bit 15 of the register to 1. |
|
|
|
|
|
|
|
|
|
13 |
|
Vertical Phase |
|
Specifies which vertical phase the coefficient tap data in the |
|
|
|
|
|
|
Coefficient Data register applies to. Writing to this |
|
|
|
|
|
|
location, commits the writing of coefficient tap data. This |
|
|
|
|
|
|
write must be made even if the phase value does not change |
|
|
|
|
|
|
between successive sets of coefficient tap data. |
|
|
|
|
|
|
To commit to an edge phase, write the vertical phase number |
|
|
|
|
|
|
+32768. For example, set bit 15 of the register to 1. |
|
|
|
|
|
|
|
|
Scaler II IP Core |
Altera Corporation |
|
|
Send Feedback
17-16 |
Scaler II Control Registers |
UG-VIPSUITE |
|
2015.01.23 |
|||
|
|
Address |
|
Register |
|
Description |
|
|
|
|
|
14 to 14+Ntaps |
Coefficient Data |
Specifies values for the coefficients at each tap of a particular |
|
|
horizontal or vertical phase. Write these values first, then the |
|
|
Horizontal Phase or Vertical Phase, to commit the write. |
|
|
|
Altera Corporation |
Scaler II IP Core |
|
|
Send Feedback