LogiCORE IP Image Characterization v1.1

Size: px
Start display at page:

Download "LogiCORE IP Image Characterization v1.1"

Transcription

1 LogiCORE IP Image Characterization v1.1 DS727 September 21, 2010 Introduction The Xilinx Image Characterization LogiCORE IP calculates important statistical data for video input streams. The Image Characterization LogiCORE is an important processing block for many applications including face recognition and object detection. The statistics provided by this core include means and variances for luminance, chrominance, high and low frequencies, edges, and motion on both a global and block basis. The Image Characterization core supports 8-bit pixel data in YUV 4:2:2 or 4:2:0 as well as 8-bit motion data at up to 1080p 30 fps. The core is programmable through a comprehensive register interface for setting edge gains, high-pass gain, color selects (hue and saturation), and block size. The Image Characterization LogiCORE is available with two different interfaces: General Purpose Processor and EDK pcore (including device driver). Features Programmable register control Selectable processor interface EDK pcore General Purpose Processor Global and Block Means and Variances for: Luminance/Chrominance Content Frequency Content Edge Content Motion Content Color Content Global Histograms for: Luminance Chrominance Hue Supported Device Family (1) Supported User Interfaces Configuration LUTs FFs 1280x720 Max Frame Size, 16x16 block size, pcore Interface Documentation Design Files Example Design Test Bench Constraints File Simulation Model LogiCORE IP Facts Table Core Specifics Spartan -3A DSP, Spartan-6, Virtex -5, Virtex-6 General Processor Interface, EDK PLB 4.6 Resources (2) DSP Slices Block RAMs (3) Frequency Max. Freq. (4) Provided with Core Tested Design Tools Netlist or EDK pcore Not Provided Not Provided Not Provided Not Provided Design Entry Tools ISE 12.3, XPS 12.3 Simulation ModelSim v6.5c, Xilinx ISim 12.3 Synthesis Tools XST 12.3 Support Provided by Xilinx, Inc. 1. For a complete listing of supported devices, see the release notes for this core. 2. Resources listed here are for Virtex-6 devices. For more complete device performance numbers, see "Core Resource Utilization," page Based on 36K block RAMs. 4. Performance numbers listed are for Virtex-6 FPGAs. For more complete performance data, see "Performance," page 37. Copyright 2010 Xilinx, Inc. XILINX, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. DS727 September 21,

2 Support for 8-bit, YUV 4:2:2 or YUV 4:2:0 data Support for 8-bit motion data Support for block sizes of 4x4, 8x8, 16x16, 32x32 or 64x64 pixels Support for image sizes up to 30 fps or 60 fps Support for streaming or frame buffer based processing PLB46 support for interrupts and register access For use with Xilinx CORE Generator 12.3 or later Applications Video Surveillance Industrial Imaging Video Conferencing Machine Vision Automotive Other video applications requiring image analysis Overview The Image Characterization LogiCORE IP is comprised of a collection of blocks that work together to calculate statistical data that can be used to describe an image in the analytics domain. These statistics are calculated on a global basis for the entire image as well as on a block basis which is implemented as a 2-D grid of NxN subdivisions of the image. The resulting image statistics are written to memory and can be read by another IP core or by software to implement complex analytics applications. The main global and block statistical measures performed are: 1 1 M x i i= 0, the mean values x = M M 1 = σ xi M 2 2, the variance values 2 1 i= 0 x These statistical tools are applied to image content, including: Luminance/Chrominance Content Low Frequency Content High Frequency Content Color Content Edge Content Motion Content In addition to the preceding statistics, histograms are also calculated on the global image. Histograms are generated for the Luminance, Chrominance (Cr and Cb), and Hue components. DS727 September 21,

3 The Image Characterization LogiCORE IP shares a number of similarities with the Image Statistics LogiCORE IP. At first glance the two IP cores may seem redundant, but the practical uses for these IP cores are actually quite different. They are designed for use in different portions of the video processing pipeline. The Image Statistics LogiCORE IP calculates a set of statistics for 16 user-defined zones. The particular statistics that the Image Statistics core gathers are optimized for use in control algorithms such as Auto-Focus or Auto-White balance. In contrast, the Image Characterization core calculates a different set of statistics for a 2-D grid of NxN blocks. This results in a much finer-grained description of the image. The particular statistics that the Image Characterization core gathers have been optimized for use in analytics applications such as Video Surveillance or Road-Sign Recognition. Architecture The Image Characterization core is implemented as four subsystems: YC Processing, Block Stats, Global Stats, and Histograms. These subsystems are connected as shown in Figure 1. The details of each sub-system are discussed in the following sections. X-Ref Target - Figure 1 Figure 1: Image Characterization Block Diagram DS727 September 21,

4 YCM Data Bus The Image Characterization core has a simple input interface that incorporates the YCM data bus. The YCM data bus uses a 24-bit word with Luma (Y), Chroma (C), and Motion (M) placed as noted in Table 1. Any unused portion of the YCM data bus can be simply tied to a constant value. Table 1: YCM Data Bus YCM[23:16] YCM[15:8] YCM[7:0] Motion[7:0] Chroma[7:0] Luma[7:0] Motion data is a magnitude measurement of how much a Luma pixel has changed between the current frame and the previous frame. The Xilinx Motion Adaptive Noise Reduction LogiCORE IP can be used to calculate the motion content of a video sequence and drive the YCM input to the Image Characterization core. 4:2:2 and 4:2:0 Formatting The formatting of 4:2:2 and 4:2:0 data can often be a source of confusion. The formats used by the Image Characterization core are illustrated in Figure 2 and Figure 3. Figure 2 shows the alignment of Y, C and M in relation to each other and the active_video_in signal. This arrangement applies to both 4:2:2 and 4:2:0. The figure illustrates a line with 720 active pixels per line. X-Ref Target - Figure 2 Figure 2: 4:2:2 or 4:2:0 Bus Format Figure 3 shows a high level view of a 4:2:0 YCM bus. Notice the arrangement of the bus in relation to the chroma_in signal. The chroma_in toggles every line. When chroma_in is '1' the values on the 'C' portion of the bus are valid. When chroma_in is '0' the values on the 'C' portion of the bus are invalid. The chroma_in signal only changes while the active_video_in signal is '0,' which denotes that the data bus is not valid. For a 4:2:2 YCM bus, the chroma_in signal would be '1' for every line instead of toggling. X-Ref Target - Figure 3 Figure 3: 4:2:0 High Level View DS727 September 21,

5 YC Processing The YC Processing subsystem receives the image data and calculates the following information for each pixel in the image: Frequency Content Edge Content Color Conversion The Frequency, Edge, and Color calculations are implemented as separate processing pipelines as illustrated in Figure 4. The results are then passed to the Block Stats, Global Stats, and Histogram blocks which generate the various statistical data about the image. X-Ref Target - Figure 4 Figure 4: YC Processing Block Diagram DS727 September 21,

6 Frequency Content The Frequency Content is calculated on only the Luminance or Y portion of the image. The frequency content that is calculated consists of the Low Frequency portion of the image and the High Frequency portion of the image. The Low Frequency portion of the image is calculated by passing the data through a low pass filter to remove the high frequencies. As shown in Figure 5, the low pass filter is implemented as a 7-tap FIR filter with the following hard-coded filter coefficients: -1, 0, 9, 16, 9, 0, -1. The High Frequency portion of the image is calculated by subtracting the low frequency portion of the image from the baseband image. The High Freq. Gain register allows the user to multiply the High Frequency data by 1, 2, 4, or 8 before the value is finally clamped to the range 0 : 255. X-Ref Target - Figure 5 Edge Content Figure 5: Frequency Content Block Diagram The Edge Content is calculated on only the Y portion of the image. Four Sobel filters are used to look for horizontal, vertical, and diagonal edges in the image. As shown in Figure 6, each of the four components has a separate gain factor to allow for the emphasis of a particular type of edge. Valid gain values are 0, 1, 2, 4, and 8. The final result is a sum of the four edge components. This arrangement gives a good measure of the edges for any particular pixel in the image. Since 3x3 2D FIR filters are used to implement the Sobel filters, a line buffer capable of holding two lines of data is required, as shown in Figure 4. The size of the line buffer is based on the Maximum Frame Size parameter. See the "CORE Generator Graphical User Interface (GUI)" section for more details. X-Ref Target - Figure 6 Figure 6: Edge Content Block Diagram DS727 September 21,

7 Color Conversion The Color Content of the image is calculated from the Chrominance (C) portion of the image. For Chrominance, the color difference signals B-Y (Cb) and R-Y (Cr) are generated independently, but it is the color comprised by the combination of Cb and Cr that is of interest in characterization. To this effect, the magnitude (Saturation) and angle (Hue) of the Chrominance vector is calculated to provide the color content. X-Ref Target - Figure 7 Block Statistics Figure 7: Color Conversion Block Diagram The Block Statistics subsystem receives data from the YC Processing subsystem. It then subdivides the image into an HxV number of horizontal and vertical blocks respectively. In the example shown in Figure 8, the image is subdivided into an 8x5 grid of blocks. Blocks are measured in pixels. Valid block sizes are 4x4, 8x8, 16x16, 32x32, and 64x64. The user can specify the block size using the Block_Size register (see Table 6). Blocks are defined as starting at the upper left corner of the image, then moving left to right and top to bottom. If the image has a non-integer number of blocks, the partial blocks along the right and bottom edge of the image (the gray boxes in Figure 8) will be excluded from the video analytics analysis. X-Ref Target - Figure 8 Figure 8: Block Overlay of an Image Frame The following measurements are calculated for each block: Mean and Variance Y Cr Cb Low Frequency Content DS727 September 21,

8 High Frequency Content Edge Content Motion Content Saturation Color Selection (x8) A block diagram of the block statistics processing is illustrated in Figure 9. The mean and variance processing is implemented as eight independent processing pipelines. X-Ref Target - Figure 9 Figure 9: Block Statistics Block Diagram The Mean, Variance, and Color Select calculations are each discussed in more detail in the following sections. Each measurement is implemented as an independent processing chain. DS727 September 21,

9 Block Mean A block diagram of the block mean processing is illustrated in Figure 10. Block mean values are calculated by first scaling each pixel in the block by a Block Scaling factor. Once each pixel in the block has been scaled, it is summed in an accumulator. The block scaling factor is set by the user through the Block_Y_Scaling register for the Y-based data streams and through the Block_C_Scaling register for the C-based data streams (see Table 6). The Block_Y_Scaling is typically calculated as (1/Num_Block_Pixels)* Num_Block_Pixels is the number of pixels in a block. The Block_C_Scaling is typically calculated as (2/Num_Block_Pixels)*65536 for 4:2:2 data or as (4/Num_Block_Pixels)*65536 for 4:2:0 data. X-Ref Target - Figure 10 Block Variance Figure 10: Block Mean Block Diagram A block diagram of the block variance processing is illustrated in Figure 11. Block variance values are calculated by first squaring each pixel in the block and then scaling by the Block Scaling factor. Once each pixel has been scaled, it is summed in an accumulator. The last step is to subtract the square of the block mean value from the accumulated value. The block scaling factor is set by the user through the Block_Y_Scaling register for the Y-based data streams and through the Block_C_Scaling register for the C-based data streams (see Table 6). Typical calculations for the block scale factors are discussed in the "Block Mean" section. X-Ref Target - Figure 11 Figure 11: Block Variance Block Diagram DS727 September 21,

10 Color Select Color Select uses the Hue and Saturation values for a pixel to detect if the pixel falls within a specified color range. If the pixel meets the specified color range, then the color is said to have been detected. There will be eight separate color selector circuits allowing for the detection of eight different colors. Each color selector inputs a Hue Minimum and Maximum and a Saturation Minimum and Maximum. These values are set by the user using the Color Select #1-8 registers. See Table 6 for a full description of these registers. To match the specified color, the Hue and Saturation of the pixel must fall within both the Hue Thresholds and the Saturation Thresholds. For each pixel in the block that matches the specified color, a counter is incremented. The final value from the Color Select is the number of pixels in the block that matched the specified color. X-Ref Target - Figure 12 Global Statistics The Global Stats subsystem uses the Block mean and variance values to calculate Global means and variances of the full image. Global means and variances are calculated for the following values: Y Cr Cb Low Frequency Content High Frequency Content Edge Content Motion Content Saturation Figure 12: Block Color Select Block Diagram X-Ref Target - Figure 13 Figure 13: Global Statistics Block Diagram DS727 September 21,

11 To calculate a global mean or variance value, the value from each block is first scaled by the Global Width Scaling factor and the Global Height Scaling factor. After the scaling process, the value is summed by an accumulator for all of the blocks in the image. Figure 14 illustrates this process. The Global Width Scaling factor is set by the user through the Global_Y_Width_Scaling register (see Table 6). Typically this value is calculated by (1/Num_Blocks_Wide)* The Global Height Scaling factor is set by the user through the Global_Y_Height_Scaling register. Typically this value is calculated by (1/Num_Blocks_High)* X-Ref Target - Figure 14 Histograms The Histograms subsystem takes its input from the YC Processing subsystem. It calculates separate histograms over the entire frame for the following values: Y Cr Cb Hue Since the Image Characterization core supports 8-bit data, each histogram contains 256 bins. The Histogram data is stored in memory starting with bin 0 and ending with bin 255. Statistics Output Figure 14: Global Mean/Variance Block Diagram All of the statistics calculated by the Image Characterization core are written to external memory via the core dedicated Video Frame Buffer Controller (VFBC) interface. The data is written to two external memory buffers in a ping-pong fashion. The locations in memory of the two buffers are specified by the user through the Stats_Start_Addr0 and Stats_Start_Addr1 registers (see Table 6). The statistics are written to memory in a data structure that is specified in the "Statistics Data Structure" section. DS727 September 21,

12 Statistics Output Order The Image Characterization core writes the calculated statistics to memory in the following order: 1. Frame Header Start 2. Block Statistics 3. Global Statistics 4. Histograms 5. Frame Header Final The first step is writing the Frame Header Start block. The Header contains a Struct_Valid value. The Frame Header Start block writes a value of 0x0001 to the Struct_Valid value. This denotes that a new data structure has been started, but is not completed and should not be used for processing. When the Image Characterization core completes all of the block statistics for a particular block of the image, those values are written to memory. Once all of the Block Statistics have been written to memory and the Global Statistics have been calculated, the Global Statistics are written to memory. Next the Histograms are written to memory. The final step is to write the Frame Header Final block. The Frame Header Final block is the same as the Frame Header Start block except that a value of 0xFFFF is written to the Struct_Valid value to denote that the data structure has been completed and is now ready to be used for processing. Statistics Data Structure The Statistics Data Structure defines how the image characterization statistics are organized when written to external memory. The data structure is made up of three pieces which are located contiguously in memory: Frame Header (see Table 3) Global Stats & Histograms (see Table 4) Block Stats (see Table 5) The first two pieces are static in size. Both contain PAD values that are used to pad the size of structure to be a multiple of 128 bytes. This is done to accommodate that fact that the VFBC requires transfers be done in multiples of 128 bytes. The size of the Block Stats structure is dependent on the number of blocks in the processed image. There will be one instance of the Block Stats data structure for each block in the image. The Block Stats data structures are arranged contiguously in memory. The order of the blocks corresponds to traversing through the blocks from left to right and from top to bottom. DS727 September 21,

13 The values in the Statistics Data structure use the following bit widths: Mean 8-bits Variance 16-bits Histogram 32-bits (21-bits actual) Color_Select 16-bits (12-bits actual) PAD 32-bits (0x0000) Table 2: Statistics Data Structure Byte 3 Byte 2 Byte 1 Byte 0 Frame Header (32 words) Global Stats (32 words) Histograms (1024 words) Block Stats - Block #1 (14 words) Block Stats - Block # HxV (14 words) Table 3: Statistics Data Structure Frame Header Byte 3 Byte 2 Byte 1 Byte 0 Struct_Valid Frame_Index PAD (x30) Table 4: Statistics Data Structure Global Stats Byte 3 Byte 2 Byte 1 Byte 0 Low_Freq_Mean V_mean U_Mean Y_Mean Saturation_Mean Motion_mean Edge_Mean High_Freq_Mean U_Var Y_Var Low_Freq_Var V_Var Edge_Var High_Freq_Var Saturation_Var Motion_Var PAD (x26) Y_Histogram (x256) U_Histogram (x256) V_Histogram (x256) Hue_Histogram (x256) DS727 September 21,

14 Table 5: Statistics Data Structure Block Stats Byte 3 Byte 2 Byte 1 Byte 0 Low_Freq_Mean V_mean U_Mean Y_Mean Saturation_Mean Motion_mean Edge_Mean High_Freq_Mean U_Var Y_Var Low_Freq_Var V_Var Edge_Var High_Freq_Var Saturation_Var Motion_Var Color_Sel_2 Color_Sel_1 Color_Sel_4 Color_Sel_3 Color_Sel_6 Color_Sel_5 Color_Sel_8 Color_Sel_7 Reserved Reserved Reserved Reserved Note: The Block Stats repeats once for each block in the image. For example a 1280x720 image with block size 16 would result in 3600 contiguous instances of Block Stats data. CORE Generator Graphical User Interface (GUI) The Xilinx Image Characterization LogiCORE IP is easily configured to meet the developer's specific needs through the CORE Generator graphical user interface (GUI). This section provides a quick reference to the parameters that can be configured at generation time. The GUI is shown in Figure 15. X-Ref Target - Figure 15 Figure 15: Image Characterization CORE Generator GUI DS727 September 21,

15 The screen displays a representation of the IP symbol on the left side, and the parameter assignments on the right side, described as follows: Component Name: The component name is used as the base name of output files generated for the module. Names must begin with a letter and must be composed from characters: a to z, 0 to 9, and _. Note: The name v_ic_v1_1 is not allowed. Interface Selection: The Image Characterization core is generated with one of two processor interfaces. EDK pcore Interface: CORE Generator software will generate the core as a pcore that can be easily imported into an EDK project as a hardware peripheral. The core registers can then be programmed in real-time via MicroBlaze. See the "EDK pcore Interface" section for more information. When the EDK pcore is selected, the rest of the options are disabled and set to the default value. All modifications to the Image Characterization pcore are made with the EDK GUI. General Purpose Processor Interface: CORE Generator software will generate a set of ports that can be used to program the core. See the "General Purpose Processor Interface" section for more information. When the General Purpose Processor interface is selected, the rest of the configuration options become active and can be used to generate a customized Image Characterization core. Frame Information Maximum Frame Size: Sets the maximum frame size that the core will be instantiated to handle. Valid choices are 1920x1080, 1280x720, and 720x480. This value affects the number of resources used when the core is instantiated. Minimum Block Size: Sets the minimum block size that the core can use. Valid choices are 4, 8, 16, 32, and 64. The smaller the block size, the more resources that are used. Chroma Format: Sets the expected Chroma format. The valid choices are 4:2:0 and 4:2:2. The selection does not affect resource utilization. Video Input Interface Streaming video: Select streaming video when interfacing a live video stream to the Image Characterization core. A Line buffer is added to the input interface to allow the core to be run at a higher rate than the clock rate of the input video source. The core_clk is a required input in this mode. Burst video: Select burst video when the input to the Image Characterization core is driven by another processing core that can provide the video input at a higher rate than a live video stream. The video_clk that drives the video source is also used to drive the core processing.**stopped** Statistics Selection: Selected items will appear in the Image Characterization's statistics data structure. Unselected items will be replaced with a zero in the statistics data structure. Logic associated with an item is not instantiated when the item is unselected. Resources can be conserved by deselecting unneeded items. Means/Variances and Color Selects - Y: When selected, global Y mean and variance values as well as block Y mean and variance values are included in the Image Characterization's statistics data structure. - Motion: When selected, global Motion mean and variance values as well as block Motion mean and variance values are included in the Image Characterization's statistics data structure. - Frequency: When selected, global Frequency mean and variance values as well as block Frequency mean and variance values are included in the Image Characterization's statistics data structure. The frequency values include Low Frequency and High Frequency. - Edge: When selected, global Edge Content mean and variance values as well as block Edge Content mean and variance values are included in the Image Characterization's statistics data structure. - U: When selected, global U mean and variance values as well as block U mean and variance values are included in the Image Characterization's statistics data structure. - V: When selected, global V mean and variance values as well as block V mean and variance values are included in the Image Characterization's statistics data structure. DS727 September 21,

16 - Saturation: When selected, global Saturation mean and variance values as well as block Saturation mean and variance values are included in the Image Characterization's statistics data structure. - Color Selects: Sets the number of Color Select values that will be included in the Image Characterization's statistics data structure. Valid choices are 0, 4 and 8. Histograms - Y: When selected, the Y Histogram is included in the Image Characterization's statistics data structure. - U: When selected, the U Histogram is included in the Image Characterization's statistics data structure. - V: When selected, the V Histogram is included in the Image Characterization's statistics data structure. - Hue: When selected, the Hue Histogram is included in the Image Characterization's statistics data structure. EDK pcore Graphical User Interface (GUI) When the Xilinx Image Characterization LogiCORE IP is generated from CORE Generator as an EDK pcore, it is generated with each option set to the default value. All customizations of an Image Characterization pcore are done with the EDK pcore graphical user interface (GUI). Figure 16 illustrates the EDK pcore GUI for the Image Characterization pcore. All of the options in the EDK pcore GUI for the Image Characterization core correspond to the same options in the CORE Generator GUI. See the "CORE Generator Graphical User Interface (GUI)" section for details about each option. X-Ref Target - Figure 16 Core Interfaces Figure 16: Image Characterization pcore GUI There are many video systems developed that use an integrated processor system to dynamically control the parameters within the system. This is especially important when several independent image processing cores are DS727 September 21,

17 integrated into a single FPGA. The Image Characterization core can be configured with one of two interfaces: an EDK pcore Interface or a General Purpose Processor Interface. EDK pcore Interface The pcore interface creates a core that can be easily added to an EDK Project as a hardware peripheral. This section describes the Register Set, the pcore Driver Files, and the I/O signals associated with the Image Characterization pcore. Once generated by CORE Generator software, the new pcore is located in the CORE Generator project directory at <Component_Name>/pcores/ic_v1_01_a. The pcore should be copied to the user's <EDK_Project>/pcores directory or to a user pcores repository. The Image Characterization pcore driver software is located in the CORE Generator project directory at <Component_Name>/drivers/ic_v1_01_a. The driver software should be copied to the user's <EDK_Project>/drivers directory or to a user pcores repository. pcore Register Set The pcore interface provides a memory-mapped interface for the programmable registers within the core, which are defined in Table 6. Table 6: Image Characterization pcore Memory Mapped Register Set Address (hex) Register Name Access Type BASEADDR + 0x0000 Control R/W Description General Control Register 31:2 Reserved 1 0 Register Update Enable This bit communicates to the IP Core to take new values at the next frame vblank rising edge. Usage: This bit is cleared when the IP Core next vblank happens. Core Enable Enable the Characterization core on the next video frame. BASEADDR + 0x0008 Status Error R BASEADDR + 0x000C Status Done R 31:1 Reserved 0 Frame Error The Image Characterization core did not store all of the image statistics data before the beginning of the next frame. Usage: This bit is cleared when any value is written to the register. Status Register 31:1 Reserved 0 Done Done bit can be polled by software for end of image characterization operation. Usage: This bit is cleared when any value is written to the register. DS727 September 21,

18 Table 6: Image Characterization pcore Memory Mapped Register Set (Cont d) Address (hex) BASEADDR + 0x0010 BASEADDR + 0x0014 BASEADDR + 0x0018 Register Name Image Statistics Start Address 0 Image Statistics Start Address 1 Image Statistics Start Frame Index Access Type R/W R/W R/W Image Stats Address Register 31:0 Start address #1 for the Image Stats Data Structure Default (0x ) Image Stats Address Register 31:0 Start address #2 for the Image Stats Data Structure Default (0x ) Image Stats Start Frame Index Register 31:0 BASEADDR + 0x001C Reserved R/W Reserved BASEADDR + 0x0020 Reserved R/W Reserved BASEADDR + 0x0024 Reserved R/W Reserved BASEADDR + 0x0028 Frame Size R/W BASEADDR + 0x002C Block Size R/W BASEADDR + 0x0030 Number of Blocks R/W BASEADDR + 0x0034 Global Y Width Scaling R/W BASEADDR + 0x0038 Global Y Height Scaling R/W Starting Frame Index for the Image Characterization Data Structure Default (0x ) Horizontal Size and Vertical Size of each Frame 31:27 Reserved 26:16 Frame Height 15:11 Reserved 10:0 Frame Width Size of each NxN block 31:7 Reserved 6:0 Block Size (4, 8, 16, 32, or 64) Number of Horizontal and Vertical Blocks per Frame 31:26 Reserved 25:16 Number of Blocks High 15:10 Reserved 9:0 Number of Blocks Wide Global Y Width Scale Factor 31:17 Reserved 16:0 Scale factor for Global Luma and Chroma Means & Variances Calculated as (1/Num_Blocks_Wide)*65536 Global Y Height Scale Factor 31:17 Reserved 16:0 Description Scale factor for Global Luma and Chroma Means & Variances Calculated as (1/Num_Blocks_High)*65536 DS727 September 21,

19 Table 6: Image Characterization pcore Memory Mapped Register Set (Cont d) Address (hex) Register Name Access Type BASEADDR + 0x003c Reserved R/W Reserved BASEADDR + 0x0040 Reserved R/W Reserved BASEADDR + 0x0044 Block Y Scaling R/W BASEADDR + 0x0048 Block C Scaling R/W BASEADDR + 0x004c High Frequency Gain R/W BASEADDR + 0x0050 Edge Gain R/W BASEADDR + 0x0054 Color Select #1 R/W Block Y Scale Factor 31:17 Reserved 16:0 Scale factor for Block Means & Variances Calculated as (1/Num_Block_Pixels)*65536 Block Chroma (C) Scale Factor 31:17 Reserved 16:0 Scale factor for Block Chroma based Means & Variances Calculated as (4/Num_Block_Pixels)*65536 High Frequency Gain Register 31:4 Reserved 3:0 High Frequency Gain (Accepted values = 1, 2, 4, 8) Edge Gain Register 31:28 Reserved 27:24 Horizontal Edge Gain (Accepted values = 0, 1, 2, 4, 8) 23:20 Reserved 19:16 Vertical Edge Gain (Accepted values = 0, 1, 2, 4, 8) 15:12 Reserved Left Diagonal Edge Gain 11:8 Upper left to lower right (Accepted values = 0, 1, 2, 4, 8) 7:4 Reserved 3:0 Description Right Diagonal Edge Gain Upper right to lower left (Accepted values = 0, 1, 2, 4, 8) Color Select #1 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation MInimum 15:8 Hue Maximum 7:0 Hue Minimum DS727 September 21,

20 Table 6: Image Characterization pcore Memory Mapped Register Set (Cont d) Address (hex) Register Name Access Type BASEADDR + 0x0058 Color Select #2 R/W BASEADDR + 0x005c Color Select #3 R/W BASEADDR + 0x0060 Color Select #4 R/W BASEADDR + 0x0064 Color Select #5 R/W BASEADDR + 0x0068 Color Select #6 R/W BASEADDR + 0x006c Color Select #7 R/W BASEADDR + 0x0070 Color Select #8 R/W Description Color Select #2 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #3 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #4 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #5 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #6 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #7 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color Select #8 Thresholds Register 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum DS727 September 21,

21 Table 6: Image Characterization pcore Memory Mapped Register Set (Cont d) Address (hex) BASEADDR + 0x0F0 Version Register R BASEADDR + 0x0100 Software Reset R/W BASEADDR +0x021C GIER R/W BASEADDR + 0x0220 Register Name ISR - Interrupt Status/Clear Access Type BASEADDR + 0x0228 IER - Interrupt Enable R/W R Reports the Version of the Image Characterization Core 28:31 Major Version Number. Set to 0x1. 20:27 Minor Version Number. Set to 0x01. 16:19 Revision Number. Set to 0xA. 0:15 Reserved SW reset of core 31:1 Reserved 0 1 resets core Global Interrupt Enable Register 31 Mask to enable global interrupts 30:0 Reserved Interrupt Status when read, Interrupt Clear when written 31:2 Reserved 1 0 Edge sensitive interrupt for IP Core Done with video frame Edge sensitive interrupt for IP Core Error Interrupt Enable Mask For each bit: 0 = Mask Interrupt 1 = Enable Interrupt 31:2 Reserved 1 0 Description Mask or Enable interrupt for IP Core Done with video frame Mask or Enable interrupt for IP Core Error DS727 September 21,

22 pcore Driver Files The Image Characterization pcore includes a software driver written in the C programming language that the user can use to control the core. A high-level API is provided to hide the details of the Xilinx Image Characterization core, and application developers are encouraged to use it to access the device features. A low-level API is also provided in case developers prefer to access the devices directly through the system registers described in the previous section. Table 7 lists the files included with the Image Characterization pcore driver. Table 7: Software Driver Files Provided with the Image Characterization pcore File name xic.c xic.h xic_g.c xic_hw.h xic_intr.c xic_sint.c example.c pcore I/O Signals Description Provides the API access to all features of the Image Characterization device driver. Provides the API access to all features of the Image Characterization device driver. Contains a template for a configuration table of Image Characterization devices. Contains identifiers and register-level driver functions (or macros) that can be used to access the Image Characterization device. Contains interrupt-related functions of the Image Characterization device driver. Contains static initialization methods for the Image Characterization device driver. Examples that demonstrate how to control the Image Characterization device. The I/O signals for the Image Characterization pcore are shown in Table 8. The signals can be broken into two groups: Video signals and PLB v4.6 signals. The Video signals are specified in Table 9. The PLB v4.6 signals are specified in Table 10. DS727 September 21,

23 Table 8: pcore I/O Signals video_clk core_clk (1) ycm_in (23:0)(Motion,Cb/Cr,Y) vblank_in chroma_in active_video_in vfbc_wr_full vfbc_wr_almost_full vfbc_cmd_full vfbc_cmd_almost_full vfbc_cmd_idle SPLB_Clk SPLB_Rst PLB_ABus[0:C_SPLB_AWIDTH-1] PLB_PAValid PLB_masterID[0:C_SPLB_MID_WIDTH-1] PLB_abort PLB_RNW PLB_BE[0:(C_SPLB_DWIDTH/8)-1] PLB_MSize[0:1] PLB_size[0:3] PLB_type[0:2] PLB_wrDBus[0:C_SPLB_DWIDTH-1] PLB_wrBurst PLB_rdBurst PLB_SAValid PLB_UABus[0:31] PLB_BusLock PLB_LockErr PLB_TAttribute[0:15] PLB_RdPrim PLB_WrPrim PLB_RDPendPri[0:1] PLB_WrPendPri[0:1] PLB_RdPendReq PLB_WrPendReq Video Input VFBC Interface PLB Interface vfbc_wr_clk vfbc_wr_reset vfbc_wr_write vfbc_wr_end_burst vfbc_wr_flush vfbc_wr_data vfbc_cmd_clk vfbc_cmd_reset vfbc_cmd_data vfbc_cmd_write vfbc_cmd_end 1. The core_clk input is used only for streaming video mode. Sl_addrAck Sl_SSize[0:1] Sl_wait Sl_rearbitrate Sl_wrDAck Sl_wrComp Sl_wrBTerm Sl_rdDBus[0:C_SPLB_DWIDTH-1] Sl_rdWdAddr[0:3] Sl_rdDAck Sl_rdComp Sl_rdBTerm Sl_MBusy[0:C_SPLB_NUM_MASTERS-1] Sl_MrdErr[0:C_SPLB_NUM_MASTERS-1] Sl_MwrErr[0:C_SPLB_NUM_MASTERS-1] Sl_MIRQ[0:C_SPLB_NUM_MASTERS-1] IP2INTC_Irpt DS727 September 21,

24 Table 9: Video Signals Name Direction Description core_clk In Clock used to drive the core processing when Input_Video_Interface = Streaming Video video_clk In Clock that drives the input video ycm_in In Video Input Bus: ycm_in[7:0] = Luma (y) ycm_in[15:8] = Chroma (c) ycm_in[23:16] = Motion (m) If the Luma, Chroma, or Motion is not used, that portion of the bus can be tied to a constant value. active_video_in In Video pixel valid vblank_in In Vertical blank chroma_in In Chroma valid vfbc_wr_clk Out VFBC write port clock vfbc_wr_reset Out VFBC write port reset vfbc_wr_write Out VFBC write port write enable vfbc_wr_end_burst Out VFBC write port end burst vfbc_wr_flush Out VFBC write port flush port fifo vfbc_wr_data Out VFBC write port data bus vfbc_wr_data_be Out VFBC write port data byte enable vfbc_wr_full In VFBC write port full flag vfbc_wr_almost_full In VFBC write port almost full flag vfbc_cmd_clk Out VFBC command port clock vfbc_cmd_reset Out VFBC command port reset vfbc_cmd_data Out VFBC command port data bus vfbc_cmd_write Out VFBC command port write enable vfbc_cmd_end Out VFBC command port end vfbc_cmd_full In VFBC command port full flag vfbc_cmd_almost_full In VFBC command port almost full flag vfbc_cmd_idle In VFBC command port idle processing flag DS727 September 21,

25 Table 10: Processor Local Bus (PLB) v4.6 Signals Name Direction Description SPLB_Clk In Slave PLB clock SPLB_Rst In Slave PLB reset PLB_ABus[0:C_SPLB_AWIDTH-1] In PLB address bus PLB_PAValid In PLB primary address valid indicator PLB_masterID[0:C_SPLB_MID_WIDTH-1] In PLB current master identifier PLB_abort In PLB abort bus request indicator PLB_RNW In PLB read not write PLB_BE[0:(C_SPLB_DWIDTH/8)-1] In PLB byte enables PLB_MSize[0:1] In PLB master data bus size PLB_size[0:3] In PLB transfer size PLB_type[0:2] In PLB transfer type PLB_wrDBus[0:C_SPLB_DWIDTH-1] In PLB write data bus PLB_wrBurst In PLB burst write transfer indicator PLB_rdBurst In PLB burst read transfer indicator PLB_SAValid In PLB Secondary address valid PLB_UABus[0:31] In PLB upper address bus PLB_BusLock In PLB bus Lock PLB_LockErr In PLB lock error PLB_TAttribute[0:15] In PLB attribute PLB_RdPrim In PLB read primary PLB_WrPrim In PLB write primary PLB_RDPendPri[0:1] In PLB read pending on primary PLB_WrPendPri[0:1] In PLB write pending on primary PLB_RdPendReq In PLB read pending request PLB_WrPendReq In PLB write pending request Sl_addrAck Out Slave address acknowledge Sl_SSize[0:1] Out Slave data bus size Sl_wait Out Slave wait indicator Sl_rearbitrate Out Slave rearbitrate bus indicator Sl_wrDAck Out Slave write data acknowledge Sl_wrComp Out Slave write transfer complete indicator Sl_wrBTerm Out Slave terminate write burst transfer Sl_rdDBus[0:C_SPLB_DWIDTH-1] Out Slave read data bus Sl_rdWdAddr[0:3] Out Slave read word address Sl_rdDAck Out Slave read data acknowledge Sl_rdComp Out Slave read transfer complete indicator Sl_rdBTerm Out Slave terminate read burst transfer Sl_MBusy[0:C_SPLB_NUM_MASTERS-1] Out Slave busy indicator DS727 September 21,

26 Table 10: Processor Local Bus (PLB) v4.6 Signals (Cont d) Name Direction Description Sl_MrdErr[0:C_SPLB_NUM_MASTERS-1] Out Slave read error indicator Sl_MwrErr[0:C_SPLB_NUM_MASTERS-1] Out Slave write error indicator Sl_MIRQ[0:C_SPLB_NUM_MASTERS-1] Out Slave Interrupt IP2INTC_Irpt Out Interrupt signal General Purpose Processor Interface The other interface option is the General Purpose Processor (GPP) interface. The GPP Interface is shown in Table 11 and consists of the Video signals listed in Table 9 and the Control and Status signals detailed in Table 12. The signals in Table 12 correspond to the registers in Table 6. The directly exposed control and status signals allow the user to wrap these signals with a user-defined bus interface targeting any arbitrary processor. The recommendation when using this functionality is to disable the Control[1] (Register Update enable) signal of the Control bus before updating the control signals. Once the control signals are ready to be updated in the core, the Control[1] signal should be enabled. Values are written into the core on the falling edge of the Vertical Blank (vblank) input. X-Ref Target - Figure 17 Table 11: Image Characterization General Purpose Processor I/O Diagram ce sclr video_clk core_clk ycm_in(23:0)(motion,cb/cr,y) vblank_in chroma_in active_video_in vfbc_cmd_full vfbc_cmd_almost_full vfbc_cmd_idle vfbc_wr_full vfbc_wr_almost_full Video Input VFBC Command Interface vfbc_cmd_clk vfbc_cmd_reset vfbc_cmd_data vfbc_cmd_write vfbc_cmd_end VFBC Write Interface vfbc_wr_clk vfbc_wr_reset vfbc_wr_write vfbc_wr_end_burst vfbc_wr_flush vfbc_wr_data DS727 September 21,

27 Table 11: Image Characterization General Purpose Processor I/O Diagram (Cont d) control stats_start_addr0 stats_start_addr1 stats_start_index frame_size block_size num_blocks global_y_width_scaling global_y_height_scaling block_y_scaling block_c_scaling high_freq_gain edge_gain color_select_1 color_select_2 color_select_3 color_select_4 color_select_5 color_select_6 color_select_7 color_select_8 Table 12: Control and Status Signals Control and Status frame_done frame_error reg_update_done version Name Direction Description ce In Clock Enable sclr In Synchronous Clear control In Control register 31:2 Reserved 1 Register Update Enable This bit communicates to the IP core to take new values at the next frame vblank rising edge. 0 Core Enable Enable the Characterization core on the next video frame. stats_start_addr0 In Statistics data structure start address #1 stats_start_addr1 In Statistics data structure start address #2 stats_start_index In Statistics data structure start index frame_size block_size In In Horizontal Size and Vertical Size of each Frame 31:27 Reserved 26:16 Frame Height 15:11 Reserved 10:0 Frame Width Size of each NxN block 31:7 Reserved 0:6 Block Size (4, 8, 16, 32, or 64) DS727 September 21,

28 Table 12: Control and Status Signals (Cont d) num_blocks global_y_width_scaling global_y_height_scaling block_y_scaling block_c_scaling high_freq_gain edge_gain color_select_1 Name Direction Description In In In In In In In In Number of Horizontal and Vertical Blocks per Frame 31:26 Reserved 25:16 Number of Blocks High 15:10 Reserved 9:0 Number of Blocks Wide Horizontal scale factor for global means and variances 31:17 Reserved 16:0 Scale factor for Global Luma and Chroma Means & Variances Calculated as (1/Num_Blocks_Wide)*65536 Vertical scale factor for global means and variances 31:17 Reserved 16:0 Scale factor for Global Luma and Chroma Means & Variances Calculated as (1/Num_Blocks_High)*65536 Scale factor for block Y means and variances 31:17 Reserved 16:0 Scale factor for Block Means & Variances Calculated as (1/Num_Block_Pixels)*65536 Scale factor for block Chroma means and variances 31:17 Reserved 16:0 Scale factor for Block Chroma based Means & Variances Calculated as (4/Num_Block_Pixels)*65536 High frequency gain 31:4 Reserved 3:0 High Frequency Gain (1, 2, 4, 8) Edge gains (Horizontal, Vertical, Left, and Right Diagonals) 31:28 Reserved 27:24 Horizontal Edge Gain (0, 1, 2, 4, 8) 23:20 Reserved 19:16 Vertical Edge Gain (0, 1, 2, 4, 8) 15:12 Reserved 11:8 Left Diagonal Edge Gain (0, 1, 2, 4, 8) 7:4 Reserved 3:0 Right Diagonal Edge Gain (0, 1, 2, 4, 8) Color select thresholds #1 31:24 Saturation Maximum 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum DS727 September 21,

29 Table 12: Control and Status Signals (Cont d) Name Direction Description Color select thresholds #2 31:24 Saturation Maximum color_select_2 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #3 31:24 Saturation Maximum color_select_3 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #4 31:24 Saturation Maximum color_select_4 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #5 31:24 Saturation Maximum color_select_5 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #6 31:24 Saturation Maximum color_select_6 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #7 31:24 Saturation Maximum color_select_7 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum Color select thresholds #8 31:24 Saturation Maximum color_select_8 In 23:16 Saturation Minimum 15:8 Hue Maximum 7:0 Hue Minimum frame_done Out Frame done flag (Interrupt) frame_error Out Frame error flag (Interrupt) reg_update_done Out Denotes when the registers have been successfully updated DS727 September 21,

30 Table 12: Control and Status Signals (Cont d) Name Direction Description Reports the Version of the Image Characterization core 31:24 Major Version Number. Set to 0x1. version Out 27:20 Minor Version Number. Set to 0x01. 19:16 Revision Number. Set to 0xA. 15:0 Reserved Image Characterization Control and Timing The basic operation of the Image Characterization core is the same regardless of how the core is instantiated. The process begins on the falling edge of the vertical blank (vblank_in). At this point, if the Register Update Enable (bit 1) of the Control register is set to '1' (see Table 6), then all of the system registers are updated. The reg_update_done signal in Figure 18 corresponds to the register update process. This mechanism allows the registers of the core to be double buffered. At the beginning of each video frame, the Image Characterization core also writes the Frame Header Start block to the memory buffer to signify that a new buffer has been started. Next, the core begins to process the incoming frame. As the block statistics for each block finish processing, they are written out to external memory. The processing in Figure 18 uses a block size of 8. Notice the activity on the vfbc_data bus after eight lines of the input data have been processed. This continues until the entire frame has been processed and all of the block statistics data have been written to the memory buffer. As the block statistics data is written to memory, it is also used to calculate the global statistics. Once all of the block data has been written to memory, the global data is written to memory followed by the histograms. When all of the statistics data has been written to memory, the core completes the process by writing the Frame Header Final block to denote that the entire statistics structure has been written to memory and is now ready to be used for further processing. At this point, the frame_done signal goes to '1' and remains there until the falling edge of vblank triggers the start of a new frame. X-Ref Target - Figure 18 Figure 18: Image Characterization Timing Diagram DS727 September 21,

31 Streaming Video Mode The streaming video mode is typically used when interfacing a real-time video source to the Image Characterization core. The streaming video mode provides two clock inputs: one clock (video_clk) for the input video and another clock (core_clk) for running the core processing. The video_clk is used to write the input into a line buffer. The core_clk is used to read the data from the buffer and to run the rest of the core processing. An entire line of a frame must be written to the line buffer before the Image Characterization core will begin processing it. The line buffer is sized to hold two lines of video so that the core can process one line while the next line is being written into the buffer. The Maximum Frame Size parameter in the CORE Generator GUI is used to determine the maximum line length that is to be buffered. For example, if the Maximum Frame Size is set to 720x480, then the maximum line length is 720. The most common reason to use the streaming video mode is that it allows the Image Characterization core to run at a clock rate that is faster than the incoming video clock rate. The only hard requirement is that the core_clk must be equal to or faster than the video_clk. The faster the core_clk is relative to the video_clk, the easier it is for the core to run in real-time. Another reason to use the streaming video mode to smooth out interruptions in the video stream. The Image Characterization core is most efficient when it can process an entire line of video without interruption. The streaming video mode buffers an entire line of video before it is processed by the core. This buffering stage removes the interruptions from the video stream. Burst Video Mode The burst video mode is typically used when interfacing the Image Characterization core to another processing core. Since the core can operate at the same clock rate as the incoming data, there is no need for the input line buffer that is used in the streaming video mode. In this burst video mode, the core only needs one clock (video_clk). The core_clk is not used. The Image Characterization core is most efficient when it processes an entire line of video without interruption. If providing a continuous line of input is not possible, it may be beneficial to use the streaming video mode to buffer the data first so that the interruptions can be removed. Video Blanking The Image Characterization core processing is divided into to two independent pieces: the statistics processor and the output writer. The statistics processor calculates the image statistics of the video frame. The output writer transfers the calculated statistics to memory. Because these two processes run independently, synchronization is required to keep the core functioning correctly. As a result, the Image Characterization core requires the use of a vertical blanking (vblank) signal with the incoming frame of video. Calculating the amount of blanking that is necessary can be very challenging. When using a live-video stream, standardized blanking periods are sufficient for the Image Characterization core. Horizontal Blanking and Core_clk Frequency The statistics processor is pipelined such that it can run in real-time as the video is input to the core. The bulk of its time is spent calculating the block statistics. The block statistics are stored in temporary buffers until they can be transferred to external memory by the output writer. The system provides enough internal buffering to store the block statistics for two rows of blocks. For example if the Maximum_Frame_Size is 720x480, then the maximum image that can be process will be 720 pixels wide. If the Minimum_Block_Size is 16, then the image will have 45 blocks in each row of blocks. The core will provide enough internal buffering to store two rows of blocks, which would be 90 blocks in this instance. Providing storage for two rows of blocks allows the statistics processor to write DS727 September 21,

32 to one row of the buffer while the output writer is transferring data from the other row. When the statistics processor finishes a row of boxes, it automatically begins processing the next row. As long as the output writer is able to keep up, there is no problem. If the output writer is unable to transfer the results to memory fast enough, then the statistics processor will eventually loop back around and catch up to the output writer. If this happens, the statistics processor will overwrite the buffer with new block statistics before the old block statistics have been transferred to memory. If this condition happens, the core will not produce the expected amount of data for that frame, which will result in a frame error (see "Frame Error"). For each block (regardless of block size), the Image Characterization core generates a set of block statistics (see "Block Statistics"). As soon as the statistics processor finishes calculating the statistics for a particular block, the output writer is allowed to begin transferring the data to the VFBC write buffer. If the VFBC write buffer is full, the vfbc_wr_full flag is used to hold off the output writer from transferring any statistics data to the VFBC. When the VFBC write buffer is not full, the output writer takes 17 cycles of the core clock to write out the statistics for one block. For large block sizes such as 64x64, 32x32, or 16x16, there should be plenty of time for the block statistics results to be written out as new blocks are being processed. For smaller block sizes such as 4x4 or 8x8, the output writer may not be able to keep up if the VFBC write buffer fills up even for a short period to time. The Image Characterization core requires horizontal blanking (hblank) between each line of a frame to allow additional time for the output writer to transfer the block statistics to the VFBC and to relieve congestion that might result if the VFBC write buffer runs full at any point while the frame is being processed. This requirement holds for all block sizes. The minimum number of hblank cycles needed per line is difficult to calculate because it is related to the congestion that is caused by the VFBC write buffer running full. The VFBC write buffer running full is a product of the bandwidth of the MPMC and the priority setting of the particular VFBC to which the Image Characterization core is connected. Worst case calculations for the Image Characterization core should use the largest frame resolution that will be used and the smallest block size that will be used. As an example, consider a system that will use a largest frame size of 720x480 and a smallest block size of 4x4. This combination will generate a 2-D grid of blocks that is 180 blocks wide by 120 blocks high. Since the block is 4 pixels wide by 4 pixels high, 16 clock cycles are needed to calculate the statistics for one block. The output writer requires a minimum of 17 clock cycles to transfer the results to memory. As a result, the absolute minimum amount of hblank is 45 cycles per line ((180*(17-16))/4). This absolute minimum is only a starting place. Additional margin should always be added. When using large block sizes that easily allow enough time to transfer the block statistics to memory while the block statistics are being calculated, an absolute minimum of 10 cycles of hblank per line is still required. When using the Image Characterization core in Streaming mode, there is one additional factor to consider when calculating hblank. Streaming mode incorporates a line buffer. The incoming data is written into the buffer at the video_clk rate and read out of the buffer at the core_clk rate. An entire line must be written into the buffer before the core begins to process that line. If the video_clk and the core_clk are the same frequency, then the preceding hblank discussion still holds. If the core_clk is faster than the video_clk, then the core will process the line faster than a new line can be loaded into the buffer. As a result, the core will sit idle for a period to time after processing each line. This idle time is the equivalent of hblank since the core is not processing data, but is still free to transfer results to external memory. The faster the core_clk is relative to the video_clk, the greater the number of cycles that the core will sit idle between processing each line of video. An absolute minimum of 10 cycles of hblank per line is still required. DS727 September 21,

33 Vertical Blanking The vblank period between the end of one frame and the beginning of the next frame is used to finish processing the frame and to transfer all remaining data to memory. One line of vblank is needed to finish processing the final row of blocks in the frame. Additional lines of vblank are needed to transfer the block statistics of the final row of blocks as well as to transfer the global statistics and the global historgrams. As an example, consider a system processing a 720x480 frame with a block size of 4x4 and an hblank of 200 clock cycles per line. One line of vblank is needed to finish processing the final row of blocks. As the final row of blocks finishes processing, the results can be transferred to memory while the following blocks in line are being processed. For a block size of 4x4, each row of blocks will require 3060 cycles (180 blocks * 17 cycles/block) to transfer the block statistics to memory. The worst case would require transferring the statistics of both rows of temporary buffering which would be 6120 cycles. Dividing 6120 by 920 (720 pixels cycles of hblank) gives 6.7, so 7 lines of vblank are needed to transfer the remaining block statistics to memory. Since the block statistics can be transferred while the last row of blocks is being processed, the total number of lines of vblank required to finish the block statistics is 7 instead of 8. Next the global data has to be transferred to memory. The global statistics, histograms and final frame header are static in size (1088 words). Dividing that value by the length of each line will yield the minimum number of additional lines of vblank that are needed. For this example, 1088/920 = 1.2 lines, so a minimum of 2 lines of vblank are needed to transfer the global data. The final total is 7 lines of vblank for block processing and 2 lines of vblank for transferring the global data. If possible, additional lines should be added as a safety margin. Regardless of the frame size or the block size, an absolute minimum of 3 lines of vblank is required. Frame Done When the Image Characterization core finishes writing all of the image statistics data to memory, it flags that it has completed processing the current frame. When using the General Purpose Processor interface, the frame_done signal is set to '1'. The frame_done signal is reset to '0' on the falling edge of vblank, which denotes the start of the next frame. When using the pcore interface, the frame_done signal is used to drive bit 1 of the interrupt controller. It also sets bit 0 of the Status Done Register. The value in the Status Done Register can be reset by writing any value to the register. Frame Error On the falling edge of vblank (which signifies the start of the next frame), the Image Characterization core checks to make sure that all of the image statistics from the previous frame were written to memory. If any of the data has not been written to memory, then the core flags a frame error. When using the General Purpose Processor interface, the frame error is shown by the frame_error signal going to '1'. The frame_error signal is reset to '0' on the next rising edge of vblank. When using the pcore interface, the frame_error signal is used to drive bit 0 of the interrupt controller. It also sets bit 0 of the Status Error Register. The value in the Status Error Register can be reset by writing any value to the register. DS727 September 21,

34 Use Model Figure 19 shows an example of using the Image Characterization core in a larger system. In this setup, the Motion Adaptive Noise Reduction (MANR) LogiCORE IP calculates the motion in the video and drives the YCM data bus input of the Image Characterization core. The Image Characterization core writes the calculated statistics to memory via the VFBC port. The statistics are then read by either a processor or a User-Developed Image Statistics Processing block for higher level analysis and processing. In the figure, the User-Developed block is shown with dashed lines because it is an optional block for this system. Such a system can be easily built using the building blocks provided by Xilinx (VDMA, Timing Controller, OSD, etc.). X-Ref Target - Figure 19 Core Resource Utilization Figure 19: Image Characterization Example Use Model Resources required for the Image Characterization core have been estimated for the Spartan-3A DSP (Table 13), Spartan-6 (Table 14), Virtex-5 (Table 15), and Virtex-6 (Table 16) These values were generated using the Xilinx CORE Generator tools v12.3. They are derived from post-synthesis reports, and may change during MAP and PAR. Start by choosing the Family, Maximum Frame Size, and Minimum Block size of the core. If using the Streaming Video Interface, add the corresponding resources. If using the pcore Interface, add the corresponding resources. This gives an approximation of the resources that are used by the full core. If any of the statistics values have been deselected, then the resources associated with that value can be subtracted from the resource calculation. Table 17 estimates the resources for each statistics value for Virtex-6. The same table can be used for Spartan-3A DSP, Spartan-6 or Virtex-5 as the resource estimates are very similar. To use Table 17, locate the statistics value that has been deselected in the table and subtract the associated resources from the resource calculation for the full core. Note the special case when Hue Histogram is deselected, Saturation Mean/Variance is deselected and Color Select = 0. In that case, do not use the individual line items, but use the group calculation at the bottom of the table. DS727 September 21,

LogiCORE IP Motion Adaptive Noise Reduction v1.1

LogiCORE IP Motion Adaptive Noise Reduction v1.1 LogiCORE IP Motion Adaptive Noise Reduction v1.1 DS731 September 21, 2010 Introduction The Xilinx Motion Adaptive Noise Reduction (MANR) LogiCORE IP is a module for both motion detection and motion adaptive

More information

LogiCORE IP Motion Adaptive Noise Reduction v2.0

LogiCORE IP Motion Adaptive Noise Reduction v2.0 LogiCORE IP Motion Adaptive Noise Reduction v2.0 DS841 March 1, 2011 Introduction The Xilinx Motion Adaptive Noise Reduction (MANR) LogiCORE IP is a module for both motion detection and motion adaptive

More information

LogiCORE IP Video Timing Controller v3.0

LogiCORE IP Video Timing Controller v3.0 LogiCORE IP Video Timing Controller v3.0 DS857 June 22, 2011 Introduction The Xilinx Video Timing Controller LogiCORE IP is a general purpose video timing generator and detector. The input side of this

More information

LogiCORE IP XPS Timebase Watchdog Timer (v1.02a)

LogiCORE IP XPS Timebase Watchdog Timer (v1.02a) LogiCORE IP XPS Timebase Watchdog Timer (v1.02a) DS582 July 23, 2010 Introduction The XPS Timebase Watchdog Timer Interface is a 32-bit peripheral that provides a 32-bit free-running timebase and watchdog

More information

LogiCORE IP Video Timing Controller v3.0

LogiCORE IP Video Timing Controller v3.0 LogiCORE IP Video Timing Controller v3.0 Product Guide Table of Contents Chapter 1: Overview Standards Compliance....................................................... 6 Feature Summary............................................................

More information

LogiCORE IP Image Statistics v2.0

LogiCORE IP Image Statistics v2.0 LogiCORE IP Image Statistics v2. DS752 March, 2 Introduction The Xilinx Image Statistics LogiCORE IP implements the computationally intensive metering functionality common in digital cameras, camcorders

More information

LogiCORE IP AXI Video Direct Memory Access v5.01.a

LogiCORE IP AXI Video Direct Memory Access v5.01.a LogiCORE IP AXI Video Direct Memory Access v5.01.a Product Guide Table of Contents Chapter 1: Overview Feature Summary.................................................................. 9 Applications.....................................................................

More information

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core Video overlays on 24-bit RGB or YCbCr 4:4:4 video Supports all video resolutions up to 2 16 x 2 16 pixels Supports any

More information

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 DS849 June 22, 2011 Introduction The LogiCORE IP Spartan -6 FPGA Triple-Rate SDI interface solution provides receiver and transmitter interfaces for the

More information

LogiCORE IP AXI Video Direct Memory Access v5.03a

LogiCORE IP AXI Video Direct Memory Access v5.03a LogiCORE IP AXI Video Direct Memory Access v5.03a Product Guide Table of Contents SECTION I: SUMMARY Chapter 1: Overview Feature Summary..................................................................

More information

LogiCORE IP Video Scaler v5.0

LogiCORE IP Video Scaler v5.0 LogiCORE IP Video Scaler v. Product Guide PG October, Table of Contents Chapter : Overview Standards Compliance....................................................... Feature Summary............................................................

More information

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

FPGA Laboratory Assignment 4. Due Date: 06/11/2012 FPGA Laboratory Assignment 4 Due Date: 06/11/2012 Aim The purpose of this lab is to help you understanding the fundamentals of designing and testing memory-based processing systems. In this lab, you will

More information

Sapera LT 8.0 Acquisition Parameters Reference Manual

Sapera LT 8.0 Acquisition Parameters Reference Manual Sapera LT 8.0 Acquisition Parameters Reference Manual sensors cameras frame grabbers processors software vision solutions P/N: OC-SAPM-APR00 www.teledynedalsa.com NOTICE 2015 Teledyne DALSA, Inc. All rights

More information

LogiCORE IP Chroma Resampler v3.00.a

LogiCORE IP Chroma Resampler v3.00.a LogiCORE IP Chroma Resampler v3.00.a Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Feature Summary.................................................................. 7

More information

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras Group #4 Prof: Chow, Paul Student 1: Robert An Student 2: Kai Chun Chou Student 3: Mark Sikora April 10 th, 2015 Final

More information

LogiCORE IP Chroma Resampler v3.01a

LogiCORE IP Chroma Resampler v3.01a LogiCORE IP Chroma Resampler v3.01a Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Feature Summary.................................................................. 7 Applications......................................................................

More information

LogiCORE IP CIC Compiler v2.0

LogiCORE IP CIC Compiler v2.0 DS613 March 1, 2011 Introduction The Xilinx LogiCORE IP CIC Compiler core provides the ability to design and implement Cascaded Integrator-Comb (CIC) filters. Features Drop-in module for Virtex -7 and

More information

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC reset underflow Supplied as human readable VHDL (or Verilog) source code Simple FIFO input interface

More information

T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual

T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual IP core version: 1.1 Date: 28.09.2015 CONTENTS INTRODUCTION... 3 CORE VERSIONS... 3 BASIC CHARACTERISTICS... 3 DESCRIPTION

More information

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA 1 ARJUNA RAO UDATHA, 2 B.SUDHAKARA RAO, 3 SUDHAKAR.B. 1 Dept of ECE, PG Scholar, 2 Dept of ECE, Associate Professor, 3 Electronics,

More information

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC or SoC Supplied as human readable VHDL (or Verilog) source code Output supports full flow control permitting

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 2, 2007 Problem Set Due: March 14, 2007 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

LogiCORE IP Image Edge Enhancement v7.0

LogiCORE IP Image Edge Enhancement v7.0 LogiCORE IP Image Edge Enhancement v7.0 Product Guide for Vivado Design Suite Table of Contents IP Facts Chapter 1: Overview Overview........................................................................

More information

ECE 532 Group Report: Virtual Boxing Game

ECE 532 Group Report: Virtual Boxing Game ECE 532 Group Report: Virtual Boxing Game Group 18 Professor: Paul Chow TA: Vincent Mirian Ryan Fernandes Martin Kovac Zhan Jun Liau Table of Contents 1.0 Overview... 3 1.1 Motivation... 3 1.2 Goals and

More information

Radar Signal Processing Final Report Spring Semester 2017

Radar Signal Processing Final Report Spring Semester 2017 Radar Signal Processing Final Report Spring Semester 2017 Full report report by Brian Larson Other team members, Grad Students: Mohit Kumar, Shashank Joshil Department of Electrical and Computer Engineering

More information

Fast Fourier Transform v4.1

Fast Fourier Transform v4.1 0 Fast Fourier v4.1 DS260 April 2, 2007 0 0 Introduction The Fast Fourier (FFT) is a computationally efficient algorithm for computing the Discrete Fourier (DFT). The FFT core uses the Cooley-Tukey algorithm

More information

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0 User Guide Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products.

More information

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board Introduction This lab will be an introduction on how to use ChipScope for the verification of the designs done on

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory Problem Set Issued: March 3, 2006 Problem Set Due: March 15, 2006 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.111 Introductory Digital Systems Laboratory

More information

LAX_x Logic Analyzer

LAX_x Logic Analyzer Legacy documentation LAX_x Logic Analyzer Summary This core reference describes how to place and use a Logic Analyzer instrument in an FPGA design. Core Reference CR0103 (v2.0) March 17, 2008 The LAX_x

More information

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0]

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0] Rev 13 Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA and ASIC Supplied as human readable VHDL (or Verilog) source code reset deint_mode 24-bit RGB video support

More information

Lab Assignment 2 Simulation and Image Processing

Lab Assignment 2 Simulation and Image Processing INF5410 Spring 2011 Lab Assignment 2 Simulation and Image Processing Lab goals Implementation of bus functional model to test bus peripherals. Implementation of a simple video overlay module Implementation

More information

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics November 10, 2000 Xilinx Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 E-mail: support@xilinx.com URL: www.xilinx.com/ipcenter Features Supports T1-D4 and T1-ESF

More information

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Application Note: Virtex-4 Family R XAPP701 (v1.4) October 2, 2006 Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Summary This application note describes the direct-clocking

More information

H.264 Deblocker Core v1.0

H.264 Deblocker Core v1.0 0 H.264 Deblocker Core v1.0 DS592 (v1.0) May 31, 2007 0 0 Introduction The H.264 Deblocker Core Version 1.0 is a fully functional VHDL design implemented on a Xilinx FPGA and delivered in netlist form.

More information

A Fast Constant Coefficient Multiplier for the XC6200

A Fast Constant Coefficient Multiplier for the XC6200 A Fast Constant Coefficient Multiplier for the XC6200 Tom Kean, Bernie New and Bob Slous Xilinx Inc. Abstract. We discuss the design of a high performance constant coefficient multiplier on the Xilinx

More information

2D Scaler IP Core User s Guide

2D Scaler IP Core User s Guide 2D Scaler IP Core User s Guide August 2013 IPUG88_01.2 Table of Contents Chapter 1. Introduction... 4 Quick Facts... 4 Features... 4 Release Information... 5 Chapter 2. Functional Description... 6 Key

More information

Block Diagram. deint_mode. line_width. log2_line_width. field_polarity. mem_start_addr0. mem_start_addr1. mem_burst_size.

Block Diagram. deint_mode. line_width. log2_line_width. field_polarity. mem_start_addr0. mem_start_addr1. mem_burst_size. Key Design Features Block Diagram Synthesizable, technology independent IP Core for FPGA, ASIC and SoC Supplied as human readable VHDL (or Verilog) source code pixin_ pixin_val pixin_vsync pixin_ pixin

More information

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS IMPLEMENTATION OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS 1 G. Sowmya Bala 2 A. Rama Krishna 1 PG student, Dept. of ECM. K.L.University, Vaddeswaram, A.P, India, 2 Assistant Professor,

More information

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview Digilent Nexys-3 Cellular RAM Controller Reference Design Overview General Overview This document describes a reference design of the Cellular RAM (or PSRAM Pseudo Static RAM) controller for the Digilent

More information

Motion Video Compression

Motion Video Compression 7 Motion Video Compression 7.1 Motion video Motion video contains massive amounts of redundant information. This is because each image has redundant information and also because there are very few changes

More information

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George

Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Application Note: Virtex-4 Family XAPP701 (v1.3) September 13, 2005 Memory Interfaces Data Capture Using Direct Clocking Technique Author: Maria George Summary This application note describes the direct-clocking

More information

Digital Blocks Semiconductor IP

Digital Blocks Semiconductor IP Digital Blocks Semiconductor IP DB1825 Color Space Converter & Chroma Resampler General Description The Digital Blocks DB1825 Color Space Converter & Chroma Resampler Verilog IP Core transforms 4:4:4 sampled

More information

Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow

Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow Application Note: Artix-7 Family XAPP1097 (v1.0.1) November 10, 2015 Implementing SMPTE SDI Interfaces with Artix-7 FPGA GTP Transceivers Author: John Snow Summary The Society of Motion Picture and Television

More information

Laboratory Exercise 4

Laboratory Exercise 4 Laboratory Exercise 4 Polling and Interrupts The purpose of this exercise is to learn how to send and receive data to/from I/O devices. There are two methods used to indicate whether or not data can be

More information

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress Nor Zaidi Haron Ayer Keroh +606-5552086 zaidi@utem.edu.my Masrullizam Mat Ibrahim Ayer Keroh +606-5552081 masrullizam@utem.edu.my

More information

TABLE 3. MIB COUNTER INPUT Register (Write Only) TABLE 4. MIB STATUS Register (Read Only)

TABLE 3. MIB COUNTER INPUT Register (Write Only) TABLE 4. MIB STATUS Register (Read Only) TABLE 3. MIB COUNTER INPUT Register (Write Only) at relative address: 1,000,404 (Hex) Bits Name Description 0-15 IRC[15..0] Alternative for MultiKron Resource Counters external input if no actual external

More information

XPS Video and LCD Controller (V2.00b)

XPS Video and LCD Controller (V2.00b) XPS Video and LCD Controller (V2.00b) xps_lcd_ctrl_v2_00_b_pb, september 20, 2010 Data sheet Introduction The XPS_LCD_CTRL_V2_00_a IP core is a video and LCD controller that interfaces to a PLB V4.6 bus

More information

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller XAPP22 (v.) January, 2 R Application Note: Virtex Series, Virtex-II Series and Spartan-II family LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller Summary Linear Feedback

More information

VIDEO 2D SCALER. User Guide. 10/2014 Capital Microelectronics, Inc. China

VIDEO 2D SCALER. User Guide. 10/2014 Capital Microelectronics, Inc. China VIDEO 2D SCALER User Guide 10/2014 Capital Microelectronics, Inc. China Contents Contents... 2 1 Introduction... 3 2 Function Description... 4 2.1 Overview... 4 2.2 Function... 7 2.3 I/O Description...

More information

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging Compatible Windows Software GLOBAL LAB Image/2 DT Vision Foundry DT3162 Variable-Scan Monochrome Frame Grabber for the PCI Bus Key Features High-speed acquisition up to 40 MHz pixel acquire rate allows

More information

A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension

A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension 05-Silva-AF:05-Silva-AF 8/19/11 6:18 AM Page 43 A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension T. L. da Silva 1, L. A. S. Cruz 2, and L. V. Agostini 3 1 Telecommunications

More information

Pivoting Object Tracking System

Pivoting Object Tracking System Pivoting Object Tracking System [CSEE 4840 Project Design - March 2009] Damian Ancukiewicz Applied Physics and Applied Mathematics Department da2260@columbia.edu Jinglin Shen Electrical Engineering Department

More information

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY.

Serial FIR Filter. A Brief Study in DSP. ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 GEORGE MASON UNIVERSITY. GEORGE MASON UNIVERSITY Serial FIR Filter A Brief Study in DSP ECE448 Spring 2011 Tuesday Section 15 points 3/8/2011 Instructions: Zip all your deliverables into an archive .zip and submit it

More information

Altera's 28-nm FPGAs Optimized for Broadcast Video Applications

Altera's 28-nm FPGAs Optimized for Broadcast Video Applications Altera's 28-nm FPGAs Optimized for Broadcast Video Applications WP-01163-1.0 White Paper This paper describes how Altera s 40-nm and 28-nm FPGAs are tailored to help deliver highly-integrated, HD studio

More information

Commsonic. Satellite FEC Decoder CMS0077. Contact information

Commsonic. Satellite FEC Decoder CMS0077. Contact information Satellite FEC Decoder CMS0077 Fully compliant with ETSI EN-302307-1 / -2. The IP core accepts demodulated digital IQ inputs and is designed to interface directly with the CMS0059 DVB-S2 / DVB-S2X Demodulator

More information

2.6 Reset Design Strategy

2.6 Reset Design Strategy 2.6 Reset esign Strategy Many design issues must be considered before choosing a reset strategy for an ASIC design, such as whether to use synchronous or asynchronous resets, will every flipflop receive

More information

LogiCORE IP CIC Compiler v3.0

LogiCORE IP CIC Compiler v3.0 DS845 June 22, 2011 Introduction The Xilinx LogiCORE IP CIC Compiler core provides the ability to design and implement AXI4-Stream-compliant Cascaded Integrator-Comb (CIC) filters. Features AXI4-Stream-compliant

More information

EE178 Spring 2018 Lecture Module 5. Eric Crabill

EE178 Spring 2018 Lecture Module 5. Eric Crabill EE178 Spring 2018 Lecture Module 5 Eric Crabill Goals Considerations for synchronizing signals Clocks Resets Considerations for asynchronous inputs Methods for crossing clock domains Clocks The academic

More information

Spartan-II Development System

Spartan-II Development System 2002-May-4 Introduction Dünner Kirchweg 77 32257 Bünde Germany www.trenz-electronic.de The Spartan-II Development System is designed to provide a simple yet powerful platform for FPGA development, which

More information

Fingerprint Verification System

Fingerprint Verification System Fingerprint Verification System Cheryl Texin Bashira Chowdhury 6.111 Final Project Spring 2006 Abstract This report details the design and implementation of a fingerprint verification system. The system

More information

FPGA Development for Radar, Radio-Astronomy and Communications

FPGA Development for Radar, Radio-Astronomy and Communications John-Philip Taylor Room 7.03, Department of Electrical Engineering, Menzies Building, University of Cape Town Cape Town, South Africa 7701 Tel: +27 82 354 6741 email: tyljoh010@myuct.ac.za Internet: http://www.uct.ac.za

More information

UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL

UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL Toronto 2015 Summary 1 Overview... 5 1.1 Motivation... 5 1.2 Goals... 5 1.3

More information

Keywords Xilinx ISE, LUT, FIR System, SDR, Spectrum- Sensing, FPGA, Memory- optimization, A-OMS LUT.

Keywords Xilinx ISE, LUT, FIR System, SDR, Spectrum- Sensing, FPGA, Memory- optimization, A-OMS LUT. An Advanced and Area Optimized L.U.T Design using A.P.C. and O.M.S K.Sreelakshmi, A.Srinivasa Rao Department of Electronics and Communication Engineering Nimra College of Engineering and Technology Krishna

More information

AbhijeetKhandale. H R Bhagyalakshmi

AbhijeetKhandale. H R Bhagyalakshmi Sobel Edge Detection Using FPGA AbhijeetKhandale M.Tech Student Dept. of ECE BMS College of Engineering, Bangalore INDIA abhijeet.khandale@gmail.com H R Bhagyalakshmi Associate professor Dept. of ECE BMS

More information

Single Channel LVDS Tx

Single Channel LVDS Tx April 2013 Introduction Reference esign R1162 Low Voltage ifferential Signaling (LVS) is an electrical signaling system that can run at very high speeds over inexpensive twisted-pair copper cables. It

More information

Optimization of Multi-Channel BCH Error Decoding for Common Cases. Russell Dill Master's Thesis Defense April 20, 2015

Optimization of Multi-Channel BCH Error Decoding for Common Cases. Russell Dill Master's Thesis Defense April 20, 2015 Optimization of Multi-Channel BCH Error Decoding for Common Cases Russell Dill Master's Thesis Defense April 20, 2015 Bose-Chaudhuri-Hocquenghem (BCH) BCH is an Error Correcting Code (ECC) and is used

More information

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005

EE178 Lecture Module 4. Eric Crabill SJSU / Xilinx Fall 2005 EE178 Lecture Module 4 Eric Crabill SJSU / Xilinx Fall 2005 Lecture #9 Agenda Considerations for synchronizing signals. Clocks. Resets. Considerations for asynchronous inputs. Methods for crossing clock

More information

TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices

TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices Physics & Astronomy HEP Electronics TTC Interface Module for ATLAS Read-Out Electronics: Final production version based on Xilinx FPGA devices LECC 2004 Matthew Warren warren@hep.ucl.ac.uk Jon Butterworth,

More information

BUSES IN COMPUTER ARCHITECTURE

BUSES IN COMPUTER ARCHITECTURE BUSES IN COMPUTER ARCHITECTURE The processor, main memory, and I/O devices can be interconnected by means of a common bus whose primary function is to provide a communication path for the transfer of data.

More information

Module 8 VIDEO CODING STANDARDS. Version 2 ECE IIT, Kharagpur

Module 8 VIDEO CODING STANDARDS. Version 2 ECE IIT, Kharagpur Module 8 VIDEO CODING STANDARDS Lesson 27 H.264 standard Lesson Objectives At the end of this lesson, the students should be able to: 1. State the broad objectives of the H.264 standard. 2. List the improved

More information

STPC Video Pipeline Driver Writer s Guide

STPC Video Pipeline Driver Writer s Guide STPC Video Pipeline Driver Writer s Guide September 1999 Information provided is believed to be accurate and reliable. However, ST Microelectronics assumes no responsibility for the consequences of use

More information

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract Sundance Multiprocessor Technology Limited EVP6472 Intech Demo Unit / Module Description: Capture Demo For Intech Unit / Module Number: EVP6472-SMT909 Document Issue Number 1.1 Issue Data: 25th Augest

More information

VHDL test bench for digital image processing systems using a new image format

VHDL test bench for digital image processing systems using a new image format VHDL test bench for digital image processing systems using a new image format A. Zuloaga, J. L. Martín, U. Bidarte, J. A. Ezquerra Department of Electronics and Telecommunications, University of the Basque

More information

EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15

EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15 EECS578 Prof. Bertacco Fall 2015 EECS 578 SVA mini-project Assigned: 10/08/15 Due: 10/27/15 1. Overview This project focuses on designing a test plan and a set of test programs for a digital reverberation

More information

IP-DDC4i. Four Independent Channels Digital Down Conversion Core for FPGA FEATURES. Description APPLICATIONS HARDWARE SUPPORT DELIVERABLES

IP-DDC4i. Four Independent Channels Digital Down Conversion Core for FPGA FEATURES. Description APPLICATIONS HARDWARE SUPPORT DELIVERABLES Four Independent Channels Digital Down Conversion Core for FPGA v1.2 FEATURES Four independent channels, 24 bit DDC Four 16 bit inputs @ Max 250 MSPS Tuning resolution up to 0.0582 Hz SFDR >115 db for

More information

Vorne Industries. 2000B Series Buffered Display Users Manual Industrial Drive Itasca, IL (630) Telefax (630)

Vorne Industries. 2000B Series Buffered Display Users Manual Industrial Drive Itasca, IL (630) Telefax (630) Vorne Industries 2000B Series Buffered Display Users Manual 1445 Industrial Drive Itasca, IL 60141849 (60) 875600 elefax (60) 875609 Page 2 2000B Series Buffered Display 2000B Series Buffered Display Release

More information

HOLITA HDLC Core: Datasheet

HOLITA HDLC Core: Datasheet HOLITA HDLC Core: Datasheet Version 1.0, July 2012 8-bit Parallel to Serial Shift 8-bit Serial to Parallel Shift HDLC Core FSC16/32 Generation Zero Insert Transmit Control FSC16/32 Check Zero Deletion

More information

ECE 532 PONG Group Report

ECE 532 PONG Group Report ECE 532 PONG Group Report Chirag Ravishankar (995399108) Durwyn D Silva (994761496) Jeffrey Goeders (993367566) April 5, 2010 Contents 1 Overview... 3 1.1 Goals... 3 1.2 Background... 3 1.3 System Overview...

More information

Inside Digital Design Accompany Lab Manual

Inside Digital Design Accompany Lab Manual 1 Inside Digital Design, Accompany Lab Manual Inside Digital Design Accompany Lab Manual Simulation Prototyping Synthesis and Post Synthesis Name- Roll Number- Total/Obtained Marks- Instructor Signature-

More information

Introduction To LabVIEW and the DSP Board

Introduction To LabVIEW and the DSP Board EE-289, DIGITAL SIGNAL PROCESSING LAB November 2005 Introduction To LabVIEW and the DSP Board 1 Overview The purpose of this lab is to familiarize you with the DSP development system by looking at sampling,

More information

MACROVISION RGB / YUV TEMP. RANGE PART NUMBER

MACROVISION RGB / YUV TEMP. RANGE PART NUMBER NTSC/PAL Video Encoder NOT RECOMMENDED FOR NEW DESIGNS NO RECOMMENDED REPLACEMENT contact our Technical Support Center at 1-888-INTERSIL or www.intersil.com/tsc September 2003 DATASHEET FN4284 Rev 6.00

More information

IMS B007 A transputer based graphics board

IMS B007 A transputer based graphics board IMS B007 A transputer based graphics board INMOS Technical Note 12 Ray McConnell April 1987 72-TCH-012-01 You may not: 1. Modify the Materials or use them for any commercial purpose, or any public display,

More information

AE16 DIGITAL AUDIO WORKSTATIONS

AE16 DIGITAL AUDIO WORKSTATIONS AE16 DIGITAL AUDIO WORKSTATIONS 1. Storage Requirements In a conventional linear PCM system without data compression the data rate (bits/sec) from one channel of digital audio will depend on the sampling

More information

Viterbi Decoder User Guide

Viterbi Decoder User Guide V 1.0.0, Jan. 16, 2012 Convolutional codes are widely adopted in wireless communication systems for forward error correction. Creonic offers you an open source Viterbi decoder with AXI4-Stream interface,

More information

Multicore Design Considerations

Multicore Design Considerations Multicore Design Considerations Multicore: The Forefront of Computing Technology We re not going to have faster processors. Instead, making software run faster in the future will mean using parallel programming

More information

DXP-xMAP General List-Mode Specification

DXP-xMAP General List-Mode Specification DXP-xMAP General List-Mode Specification The xmap processor can support a wide range of timing or mapping operations, including mapping with full MCA spectra, multiple SCA regions, and finally a variety

More information

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida Reconfigurable Architectures Greg Stitt ECE Department University of Florida How can hardware be reconfigurable? Problem: Can t change fabricated chip ASICs are fixed Solution: Create components that can

More information

Training Note TR-06RD. Schedules. Schedule types

Training Note TR-06RD. Schedules. Schedule types Schedules General operation of the DT80 data loggers centres on scheduling. Schedules determine when various processes are to occur, and can be triggered by the real time clock, by digital or counter events,

More information

Programmable Logic Design I

Programmable Logic Design I Programmable Logic Design I Introduction In labs 11 and 12 you built simple logic circuits on breadboards using TTL logic circuits on 7400 series chips. This process is simple and easy for small circuits.

More information

SPI Serial Communication and Nokia 5110 LCD Screen

SPI Serial Communication and Nokia 5110 LCD Screen 8 SPI Serial Communication and Nokia 5110 LCD Screen 8.1 Objectives: Many devices use Serial Communication to communicate with each other. The advantage of serial communication is that it uses relatively

More information

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS Application Note ABSTRACT... 3 KEYWORDS... 3 I. INTRODUCTION... 4 II. TIMING SIGNALS USAGE AND APPLICATION... 5 III. FEATURES AND

More information

LUT Optimization for Memory Based Computation using Modified OMS Technique

LUT Optimization for Memory Based Computation using Modified OMS Technique LUT Optimization for Memory Based Computation using Modified OMS Technique Indrajit Shankar Acharya & Ruhan Bevi Dept. of ECE, SRM University, Chennai, India E-mail : indrajitac123@gmail.com, ruhanmady@yahoo.co.in

More information

Video Compression. Representations. Multimedia Systems and Applications. Analog Video Representations. Digitizing. Digital Video Block Structure

Video Compression. Representations. Multimedia Systems and Applications. Analog Video Representations. Digitizing. Digital Video Block Structure Representations Multimedia Systems and Applications Video Compression Composite NTSC - 6MHz (4.2MHz video), 29.97 frames/second PAL - 6-8MHz (4.2-6MHz video), 50 frames/second Component Separation video

More information

EITF35: Introduction to Structured VLSI Design

EITF35: Introduction to Structured VLSI Design EITF35: Introduction to Structured VLSI Design Part 4.2.1: Learn More Liang Liu liang.liu@eit.lth.se 1 Outline Crossing clock domain Reset, synchronous or asynchronous? 2 Why two DFFs? 3 Crossing clock

More information

UG0651 User Guide. Scaler. February2018

UG0651 User Guide. Scaler. February2018 UG0651 User Guide Scaler February2018 Contents 1 Revision History... 1 1.1 Revision 5.0... 1 1.2 Revision 4.0... 1 1.3 Revision 3.0... 1 1.4 Revision 2.0... 1 1.5 Revision 1.0... 1 2 Introduction... 2

More information

AN-ENG-001. Using the AVR32 SoC for real-time video applications. Written by Matteo Vit, Approved by Andrea Marson, VERSION: 1.0.0

AN-ENG-001. Using the AVR32 SoC for real-time video applications. Written by Matteo Vit, Approved by Andrea Marson, VERSION: 1.0.0 Written by Matteo Vit, R&D Engineer Dave S.r.l. Approved by Andrea Marson, CTO Dave S.r.l. DAVE S.r.l. www.dave.eu VERSION: 1.0.0 DOCUMENT CODE: AN-ENG-001 NO. OF PAGES: 8 AN-ENG-001 Using the AVR32 SoC

More information

Figure 1: Feature Vector Sequence Generator block diagram.

Figure 1: Feature Vector Sequence Generator block diagram. 1 Introduction Figure 1: Feature Vector Sequence Generator block diagram. We propose designing a simple isolated word speech recognition system in Verilog. Our design is naturally divided into two modules.

More information

Design and Implementation of Nios II-based LCD Touch Panel Application System

Design and Implementation of Nios II-based LCD Touch Panel Application System Design and Implementation of Nios II-based Touch Panel Application System Tong Zhang 1, Wen-Ping Ren 2, Yi-Dian Yin, and Song-Hai Zhang School of Information Science and Technology, Yunnan University No.2,

More information

Counter/timer 2 of the 83C552 microcontroller

Counter/timer 2 of the 83C552 microcontroller INTODUCTION TO THE 83C552 The 83C552 is an 80C51 derivative with several extended features: 8k OM, 256 bytes AM, 10-bit A/D converter, two PWM channels, two serial I/O channels, six 8-bit I/O ports, and

More information