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

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

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

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. 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. RGB or YCbCr. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. clk

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

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

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

Digital Blocks Semiconductor IP

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

LogiCORE IP Video Timing Controller v3.0

Polar Decoder PD-MS 1.1

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

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

Design and Implementation of an AHB VGA Peripheral

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

UG0651 User Guide. Scaler. February2018

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

Viterbi Decoder User Guide

Digital Blocks Semiconductor IP

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

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

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

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

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

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

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

Digital Blocks Semiconductor IP

Radar Signal Processing Final Report Spring Semester 2017

Single Channel LVDS Tx

Lecture 2 Video Formation and Representation

LogiCORE IP Video Timing Controller v3.0

EE178 Spring 2018 Lecture Module 5. Eric Crabill

A video signal processor for motioncompensated field-rate upconversion in consumer television

Level and edge-sensitive behaviour

Spartan-II Development System

Digital Blocks Semiconductor IP

LogiCORE IP CIC Compiler v2.0

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

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

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

FPGA Development for Radar, Radio-Astronomy and Communications

Week 5 Dr. David Ward Hybrid Embedded Systems

Graduate Institute of Electronics Engineering, NTU Digital Video Recorder

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

FPGA Design with VHDL

Group 1. C.J. Silver Geoff Jean Will Petty Cody Baxley

A Fast Constant Coefficient Multiplier for the XC6200

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

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

Self-Test and Adaptation for Random Variations in Reliability

2D Scaler IP Core User s Guide

Commsonic. Satellite FEC Decoder CMS0077. Contact information

BRITE-VIEW BLS-2000 Professional Progressive Scan Video Converter

International Journal of Engineering Research-Online A Peer Reviewed International Journal

AC : DIGITAL DESIGN MEETS DSP

Lab # 9 VGA Controller

AbhijeetKhandale. H R Bhagyalakshmi

Video and Image Processing Suite User Guide

RESEARCH AND DEVELOPMENT LOW-COST BOARD FOR EXPERIMENTAL VERIFICATION OF VIDEO PROCESSING ALGORITHMS USING FPGA IMPLEMENTATION

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

ESI VLS-2000 Video Line Scaler

Asynchronous IC Interconnect Network Design and Implementation Using a Standard ASIC Flow

Technical Bulletin 625 Line PAL Spec v Digital Page 1 of 5

2.6 Reset Design Strategy

C6845 CRT Controller Megafunction

Memory Efficient VLSI Architecture for QCIF to VGA Resolution Conversion

Checkpoint 2 Video Encoder

Motion Video Compression

Multimedia Systems Video I (Basics of Analog and Digital Video) Mahdi Amiri April 2011 Sharif University of Technology

Design of VGA Controller using VHDL for LCD Display using FPGA

Design and FPGA Implementation of 100Gbit/s Scrambler Architectures for OTN Protocol Chethan Kumar M 1, Praveen Kumar Y G 2, Dr. M. Z. Kurian 3.

Lossless Compression Algorithms for Direct- Write Lithography Systems

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

FPGA Design. Part I - Hardware Components. Thomas Lenzi

An FPGA Based Solution for Testing Legacy Video Displays

An Improved Recursive and Non-recursive Comb Filter for DSP Applications

AD9884A Evaluation Kit Documentation

LOCAL DECODING OF WALSH CODES TO REDUCE CDMA DESPREADING COMPUTATION. Matt Doherty Introductory Digital Systems Laboratory.

A Low-Power 0.7-V H p Video Decoder

Inside Digital Design Accompany Lab Manual

Dual Link DVI Receiver Implementation

COM-7003SOFT Turbo code encoder/decoder VHDL source code overview / IP core

Chapter 1 HDMI-FMC Development Kit Chapter 2 Introduction of the HDMI-FMC Card Chapter 3 Using the HDMI-FMC Board...

L12: Reconfigurable Logic Architectures

The Measurement Tools and What They Do

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018

EECS150 - Digital Design Lecture 12 Project Description, Part 2

Using HERON modules with FPGAs to connect to FPDP

ECT 224: Digital Computer Fundamentals Digital Circuit Simulation & Timing Analysis

Chrontel CH7015 SDTV / HDTV Encoder

An Overview of Video Coding Algorithms

An FPGA Platform for Demonstrating Embedded Vision Systems. Ariana Eisenstein

RECOMMENDATION ITU-R BT (Questions ITU-R 25/11, ITU-R 60/11 and ITU-R 61/11)

Testing Results for a Video Poker System on a Chip

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

LogiCORE IP AXI Video Direct Memory Access v5.03a

Pivoting Object Tracking System

Transcription:

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 with option for YCbCr video formats if required Generates clean and progressive video output without combing or tearing Reduced softening and sawtooth artefacts pixin pixin_field pixin_vsync pixin_hsync pixin_val (RGB) 24 LINE BUFFER BOB ELA LCI NxN FILTER (RGB) 24 pixout pixout_vsync pixout_hsync pixout_val Supports three different de-interlacing modes including: Interpolated BOB, ELA (Edge-based Line-Average) and a customized version of LCI (Low-Complexity Interpolation) Supports all interlaced video formats up to 4096 x 4096 pixels in resolution Examples include: 480i, 576i, 1080i etc pixin_rdy pixels_per_line lines_per_field 12 12 MULTI-FORMAT VIDEO DEINTERLACER frame_rate line_width log2_line_width Output is one frame per interlaced field field_polarity Fully pipelined architecture with simple flow-control No frame buffer required Supports 200MHz+ operation on basic FPGA devices Applications Pin-out Description Figure 1: Video deinterlacer architecture High-quality video de-interlacing without the overhead of a frame buffer Conversion of 'legacy' SDTV formats to HDTV video formats Generating progressive RGB video via inexpensive PAL/NTSC decoder chips Digital TV set-top boxes and home media solutions Generic Parameters Generic name Description Type Valid range deint_mode De-interlacing mode integer 0: BOB 1: ELA 2: LCI 3: MIX (option) frame_rate Output frame rate integer 0: min 1: max line_width Width of linestores in pixels integer 2 4 < pixels < 2 12 log2_line_width Log2 of linestore width integer log2(line_width) field_polarity Polarity of the 'pixin_field' input when the field is even std_logic 0: even field signified by '0' 1: even field signified by '1' Pin name I/O Description Active state in Synchronous clock rising edge reset in Asynchronous reset low pixels_per_line [11:0] lines_per_field [11:0] in Number of pixels per input line data in Number of lines per field data pixin [23:0] in 24-bit RGB pixel in data pixin_field in Input field number data pixin_vsync in Vertical sync in of a new input field) pixin_hsync in Horizontal sync in of a new input line) pixin_val in Input pixel valid pixin_rdy out Ready to accept input pixel (handshake signal) pixout [23:0] out 24-bit pixel out data pixout_vsync out Vertical sync out of a new output frame) pixout_hsync out Horizontal sync out of a new output line) pixout_val out Output pixel valid Copyright 2016 wwwzipcorescom Download this VHDL Core Page 1 of 6

Rev 13 General Description The DEINTERLACER IP Core is a quality 24-bit RGB video deinterlacer capable of generating progressive output video at up to 4096x4096 pixels in resolution The design is fully customizable, supporting any desired interlaced video format The deinterlacer allows for three possible filter algorithms - either BOB, ELA or LCI All three methods are 'intra-field' methods that perform spatial filtering within the same field For this reason, the output video is not subject to combing or tearing which is characteristic of a traditional 'weave' approach Each algorithm has it relative merits in terms of image quality and hardware complexity In particular, the enhanced LCI algorithm provides excellent all-round performance with reduced image softening and crisp clean edges Pixels flow into the module in accordance with the valid-ready pipeline protocol The pixel, sync flags and field number are transferred into the deinterlacer on a rising clock-edge when pixin_val and pixin_rdy are both active At the output interface, pixels and syncs are valid on a rising clock-edge when pixout_val is The basic architecture of the deinterlacer is shown in Figure 1 Input lines are buffered and organised spatially before being filtered according to the chosen algorithm Each input field is converted to a single output frame with twice the number of lines per field Output Frame rate When the generic parameter frame_rate is set to '1' then the output frame rate is equal to the input field rate When set to '0', the output frame rate is half the field rate For example, consider an interlaced video input at 50 fields/s When the frame rate is set to '1' then the output video will be generated at 50 frames/s Conversely, when the frame rate is set to '0', then output video will be generated at 25 frames/s At half the frame rate, only the even field will generate a complete output frame, and the odd field will be discarded The polarity of the even field is controlled by the generic parameter frame_polarity Pixels per line and lines per field The input signals pixels_per_line and lines_per_field define the format of the interlaced video input As an example, these values would be set as '720' and '240' if the input video format was digitized NTSC at 720x480 resolution (480i) These values may be modified during normal operation of the deinterlacer Any changes must be followed by a system reset The width of the linestores must be sufficient to hold a complete line of interlaced video The width should be set to the nearest power of 2 For example, if pixels_per_line is set to '720', then line_width should be set to '1024' and log2_line_width should be set to '10' Flow control Pixels flow into the deinterlacer in accordance with the valid-ready pipeline protocol 1 At the input interface, the signal pixin_hsync is coincident with the first pixel of a new line The signals pixin_vsync and pixin_field are coincident with the first pixel of a new field All input signals are qualified by the pixin_val signal being asserted 1 See Zipcores application note: app_note_zc001pdf for more examples of how to use the valid-ready pipeline protocol In addition, the input interface uses the handshake signal pixin_rdy When the module asserts pixin_rdy low, then all input signals must be stalled until pixin_rdy is asserted again On the output side, pixels and syncs are valid when pixout_val is asserted On receipt of the first valid vsync after reset, the deinterlacing operation begins and output lines are generated in accordance with the chosen filter algorithm The deinterlacer will generate two output lines for every input line while the input field is active Due to the uneven ratio of input to output lines then, on average, pixin_rdy will have a 50% duty cycle In order to maintain maximum pixel throughput without stalling, the deinterlacer should be clocked at at least double the input pixel rate A typical arrangement is shown in Figure 2 below: pixels in Deinterlacing filter algorithm The generic parameter deint_mode selects one of three possible deinterlacing filter algorithms These are BOB, ELA or LCI The choice of algorithm will determine the quality of the resulting output video as well as the size and complexity of the hardware implementation The following table outlines the basic characteristics of each method For empirical test results for each mode, please refer to the performance section of this document Deint_mode ASYNC FIFO > 2 x Description and properties DEINTER- LACER pixels out Figure 2: Deinterlacer clocking arrangement for maximum efficiency 0: BOB Traditional 'bob' approach Bilinear interpolation is used between adjacent lines to give a smooth graduated image Method works very well with natural images Sawtooth artifacts may be present if the image contains sharp lines and edges Tends to soften image slightly Results in a very small and fast hardware implementation suitable for lower-end applications 1: ELA This method uses a filter window to determine edgevectors within a 3x3 block Interpolation is performed according to the calculated vectors Generates crisp and sharp output video Some minor pixel displacements may be evident when edges are estimated incorrectly Results in a medium hardware implementation size 2: LCI Most complex algorithm Uses a 5x5 filter window and calculates more edge-vectors than ELA Interpolation is performed in more directions and with more pixels Offers balanced contrast without too much softening Overall video quality is consistently better than BOB or ELA Results in the largest hardware implementation size Copyright 2016 wwwzipcorescom Download this VHDL Core Page 2 of 6

Rev 13 Figure 3 demonstrates the effect of each algorithm on a simple white diagonal line Image (a) represents the original source image (without interlacing) Image (b) is the even field after interlacing Images (c), (d) and (e) represent the result after deinterlacing the even field using the three filter algorithms pixin Pixel 0 Pipeline stall Pixel 1 Pixel 2 Pixel 3 Pixel 4 pixin_vsync pixin_hsync pixin_field pixin_val pixin_rdy Start of new field Figure 4: Deinterlacer input timing at the start of a new field Figure 5 shows the signalling at the output of the deinterlacer The output uses exactly the same protocol as the input with the exception that there is no 'ready' handshake signal Note also that there is no 'field' flag as the output video is fully progressive The timing diagram shows the output timing for a complete line Outputs are only valid if pixout_val is asserted pixout Pixel 0 Pixel 1 Pixel 718 Pixel 719 pixout_vsync pixout_hsync pixout_val Start of new output frame and output line Figure 5: Output timing for the first line of a new frame Source File Description Figure 3: Visual effect of each filter algorithm: (a) Original image, (b) Interlaced field, (c) BOB, (d) ELA, (e) LCI All source files are provided as text files coded in VHDL The following table gives a brief description of each file Functional Timing Figure 4 shows the signalling at the input to the deinterlacer at the start of a new field The first line of a new field begins with pixin_vsync and pixin_hsync asserted together with the first pixel Note that the signals pixin, pixin_vsync and pixin_hsync are only valid if pixin_val is also asserted In addition, the diagram shows what happens when pixin_rdy is de-asserted In this case, the pipeline is stalled and the upstream interface must hold-off before further pixels are processed The signal pixin_field is a flag which identifies whether the input field is odd or even This flag is only sampled at the start of a new field when pixin_vsync and pixin_val are Source file video_intxt deint_file_readervhd deint_buffervhd deint_buffer_evenvhd deint_filter_bobvhd deint_filter_elavhd deint_filter_lcivhd ram_dp_w_rvhd deinterlacervhd deinterlacer_benchvhd Description Text-based source video file Reads text-based source video file Input line buffer Input line buffer (one field only) Interpolation filter BOB Interpolation filter ELA Interpolation filter LCI Dual port RAM component Top-level component Top-level test bench Copyright 2016 wwwzipcorescom Download this VHDL Core Page 3 of 6

Rev 13 Functional Testing An example VHDL testbench is provided for use in a suitable VHDL simulator The compilation order of the source code is as follows: 1 deint_file_readervhd 2 deint_buffervhd 3 deint_buffer_evenvhd 4 deint_filter_bobvhd 5 deint_filter_elavhd 6 deint_filter_lcivhd 7 ram_dp_r_wvhd 8 deinterlacervhd 9 deinterlacer_benchvhd The VHDL testbench instantiates the deinterlacer component and the user may modify the generic parameters in accordance with the desired interlaced video format and the desired filter algorithm In the example provided, the input format has been set to 480i and the algorithm set to 'LCI' The source video for the simulation is read by the 'deint_file_reader' component This component reads a text-based file which contains the RGB pixel data and sync information The text file is called video_intxt and should be placed in the top-level simulation directory The file video_intxt follows a simple format which defines the state of signals: pixin_val, pixin_field, pixin_vsync, pixin_hsync and pixin on a clock-by-clock basis An example file might be the following: 1 0 1 1 00 11 22 # pixel 0, line 0, start of field 0 1 0 0 0 33 44 55 # pixel 1 1 0 0 0 66 77 88 # pixel 2 1 0 0 1 00 11 22 # pixel 0, line 1, field 0 1 0 0 0 33 44 55 # pixel 1 1 0 0 0 66 77 88 # pixel 2 1 1 1 1 00 11 22 # pixel 0, line 0, start of field 1 1 1 0 0 33 44 55 # pixel 1 1 1 0 0 66 77 88 # pixel 2 1 1 0 1 00 11 22 # pixel 0, line 1, field 1 1 1 0 0 33 44 55 # pixel 1 1 1 0 0 66 77 88 # pixel 2 etc In this example, the first line of of the video_intxt file asserts the input signals pixin_val = 1, pixin_field = 0, pixin_vsync = 1, pixin_hsync = 1 and pixin = 0x001122 The simulation must be run for at least 10 ms during which time an output text file called video_outtxt will be generated This file contains a sequential list of 24-bit output pixels Figure 6 shows the resulting output frame generated by the test Performance Figure 6: Output frame from testbench example The deinterlacer core was tested using a varied selection of source images to enable the Peak Signal-to-Noise Ratio (PSNR) to be measured under different scenarios Each source image was 720x576 pixels in resolution The even lines were sampled from each source image to emulate a single field of a standard PAL 576i video signal The source video was passed through the deinterlacer hardware and the PSNR was calculated using the original source image as a reference The PSNR measurements in dbs for each test image are shown in the table below PSNR (db) for various test images Image ID BOB ELA LCI Best Angelina (a) 388 365 382 BOB Blackbird (b) 305 295 307 LCI Chumps (c) 443 437 436 BOB Circuit (d) 269 282 287 LCI Fruit (e) 315 297 314 BOB Grass (f) 337 336 347 LCI Keyboard (g) 304 303 306 LCI Leaves (h) 339 331 341 LCI Lines (i) 264 307 286 ELA Spokes (j) 270 264 273 LCI Text (k) 257 256 260 LCI Watch (l) 292 296 299 LCI Average 315 314 320 LCI Figure 7 shows the original source images used during the tests The LCI algorithm was found to perform best overall The BOB and ELA algorithms had similar average results Copyright 2016 wwwzipcorescom Download this VHDL Core Page 4 of 6

Rev 13 Figure 9 is a photo of the basic hardware arrangement with the camera focussed on the edge of the oscilloscope Different live video streams were used to review the subjective image quality Figure 9: Photo of the deinterlacer bench setup Figure 7: Source images used for PSNR measurements Development Board Testing The deinterlacer core was fully tested using a live PAL (576i) video source to review the subjective image quality for each of the filter algorithms The basic setup included a Sony 'Handycam', a video decoder IC, a Spartan-6 FPGA to implement the deinterlacer IP Core and a video DAC connected to a flat-panel display Figure 8 shows a simplified block diagram of the development system VID TIMING GEN 24-bit RGB + SYNCs XILINX Spartan-6 FPGA Deinterlacer IP Core 576i > 576p Chrontel CH7301C DAC BT 656 DEC BT656 SONY 'Handycam' Maxim MAX9526 PAL/NSTC Video Decoder LCD Flat Panel Display PAL Figure 8: Development system hardware setup It was found that BOB gave a good all round performance for natural video sequences It did tend to soften the image more than ELA or LCI For static images, BOB showed a minor vibration or perturbation between adjacent lines ELA gave a clean sharp image, but it did tend to increase the image contrast somewhat Minor pixel displacements (especially around curved surfaces) were sometimes observed under close examination The LCI algorithm was found to give the most visually pleasing result for the widest range of video sources The output video exhibited clean edges and excellent all round performance Synthesis The files required for synthesis and the design hierarchy is shown below: deinterlacervhd deint_buffervhd deint_buffer_evenvhd deint_filter_bobvhd deint_filter_elavhd deint_filter_lcivhd The IP Core is designed to be technology independent However, as a benchmark, synthesis results have been provided for the Xilinx 7-series FPGAs Synthesis results for other FPGAs and technologies can be provided on request Choosing the BOB algorithm results in the smallest and fastest implementation The LCI algorithm results in a design roughly double in size Careful attention must be made to the width of the line stores as this will effect the amount of RAM resource used Copyright 2016 wwwzipcorescom Download this VHDL Core Page 5 of 6

Rev 13 Trial synthesis results are shown with the generic parameters set for PAL (576i) interlaced video using the LCI filter algorithm The parameters were set as follows: deint_mode = 2, frame_rate = 1, line_width = 1024, log2_line_width = 10, pixels_per_line = 720, lines_per_field = 288, field_polarity = 0 Resource usage is specified after place and route of the design XILINX 7-SERIES FPGAS Resource type Artix-7 Kintex-7 Virtex-7 Slice Register 421 421 421 Slice LUTs 482 551 555 Block RAM 2 2 2 DSP48 0 0 0 Occupied Slices 220 239 246 Clock freq (approx) 200 MHz 250 MHz 300 MHz Revision History Revision Change description Date 10 Initial revision 19/07/2010 11 Added PSNR performance data 03/08/2010 12 Clarified explanations for the different filter modes Updated synthesis results in line with minor source code changes 08/03/2011 13 Made interlaced image dimensions fully programmable Updated synthesis results for Xilinx 7-series FPGAs 08/06/2016 Copyright 2016 wwwzipcorescom Download this VHDL Core Page 6 of 6