Support mode of the ISO/IEC JPEG standard Support provided by Xylon

Similar documents
Table 1: Example Implementation Statistics for Xilinx FPGAs

Support Triangle rendering with texturing: used for bitmap rotation, transformation or scaling

April 6, 2010 Data Sheet Version: v2.05. Support 16 times Support provided by Xylon

April 7, 2010 Data Sheet Version: v4.00

Core Facts. Documentation. Encrypted VHDL Fallerovo setaliste Zagreb, Croatia. Verification. Reference Designs &

Core Facts. Documentation. Design File Formats. Simulation Tool Used Designed for interfacing configurable (32 or 64

logibayer.ucf Core Facts

May 26, 2017 Data Sheet Version: Table 1: Example Implementation Statistics for Xilinx FPGAs. Slices/CLB 1 (FFs/ LUTs) IOB CMT BRAM 2 DSP48A

Figure 1: The logicraft-cc Platform - Free USB firmware

June 1, 2016 Data Sheet Version: v3.2. Figure 1: The logiadak Zynq-7000 AP SoC Automotive Driver Assistance Kit

DPM Demo Kit User s Manual Version: dpm_dk_um_1_0_1.doc

10GBase-R PCS/PMA Controller Core

LogiCORE IP AXI Master Lite (axi_master_lite) (v1.00a)

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)

LogiCORE IP AXI Video Direct Memory Access v4.00.a

LogiCORE IP AXI DMA (v4.00.a)

Documentation. Design File Formats. Constraints Files. Verification. Slices 1 IOB 2 GCLK BRAM

7 Series FPGAs Memory Interface Solutions (v1.9)

LogiCORE IP Serial RapidIO Gen2 v1.2

LogiCORE IP AXI DMA (v3.00a)

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

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)

LogiCORE IP AXI DMA v6.01.a

Xylon s web shop allows access to first class IP cores for Xilinx FPGAs in several minutes, and at the most competitive prices at the market.

Xylon Memory Bus (XMB)

Copyright 2016 Xilinx

SHA Core, Xilinx Edition. Core Facts

LogiCORE IP AXI DataMover v3.00a

LogiCORE IP Serial RapidIO v5.6

LogiCORE IP AXI DMA v6.02a

Virtex-6 FPGA Embedded Tri-Mode Ethernet MAC Wrapper v1.4

Supported Device Family (1) Supported User Interfaces. Simulation Models Supported S/W Drivers. Simulation. Notes:

The Power and Bandwidth Advantage of an H.264 IP Core with 8-16:1 Compressed Reference Frame Store

Prototyping NGC. First Light. PICNIC Array Image of ESO Messenger Front Page

System Cache v1.01.a. Product Guide. PG031 July 25, 2012

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v2.00.a)

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

MIPI CSI-2 Receiver Subsystem v2.2

TriMedia Motion JPEG Encoder (VencMjpeg) API 1

LogiCORE IP Mailbox (v1.00a)

Data Side OCM Bus v1.0 (v2.00b)

S2C K7 Prodigy Logic Module Series

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Documentation Design File Formats

Fibre Channel Arbitrated Loop v2.3

Documentation. Implementation Xilinx ISE v10.1. Simulation

LogiCORE IP Gamma Correction v5.00.a

Utility Bus Split (v1.00a)

Single Channel HDLC Core V1.3. LogiCORE Facts. Features. General Description. Applications

Copyright 2017 Xilinx.

AXI4-Stream Infrastructure IP Suite

October 9, 2018 Product Specification Rev1.1. Core Facts. Documentation. Design File Formats. Additional Items

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Midterm Exam. Solutions

User s Manual Version: 1.00.a

LogiCORE IP Color Correction Matrix v4.00.a

Core Facts. Documentation Design File Formats. Verification Instantiation Templates Reference Designs & Application Notes Additional Items

Designing with ALTERA SoC Hardware

H.264 AVC 4k Decoder V.1.0, 2014

Virtex-7 FPGA Gen3 Integrated Block for PCI Express

Designing Multi-Channel, Real-Time Video Processors with Zynq All Programmable SoC Hyuk Kim Embedded Specialist Jun, 2014

LogiCORE IP Device Control Register Bus (DCR) v2.9 (v1.00b)

32 Channel HDLC Core V1.2. Applications. LogiCORE Facts. Features. General Description. X.25 Frame Relay B-channel and D-channel

WB_MP3DEC - Wishbone MP3 Decoder

Simplify System Complexity

Copyright 2014 Xilinx

GigaX API for Zynq SoC

May 7, 2018 Product Specification Rev2.3. Core Facts. Documentation Design File Formats

ALMA TECHNOLOGIES VIDEO ENCODING & IMAGE COMPRESSION PRODUCTS CATALOG. Copyright 2012 ALMA TECHNOLOGIES S.A. All rights reserved.

FIFO Generator v13.0

LogiCORE IP FIFO Generator v6.1

Block Diagram. mast_sel. mast_inst. mast_data. mast_val mast_rdy. clk. slv_sel. slv_inst. slv_data. slv_val slv_rdy. rfifo_depth_log2.

LUTs. Block RAMs. Instantiation. Additional Items. Xilinx Implementation Tools. Verification. Simulation

Zynq AP SoC Family

LogiCORE IP Image Characterization v3.00a

UDP1G-IP Introduction (Xilinx( Agenda

Multi-level Design Methodology using SystemC and VHDL for JPEG Encoder

Simplify System Complexity

Modular SMPTE ST on Kintex-7 Evaluation Board

TriMedia Motion JPEG Decoder (VdecMjpeg) API 1

CoreHPDMACtrl v2.1. Handbook

Vivado Design Suite User Guide. Designing IP Subsystems Using IP Integrator

Accelerating System Designs Requiring High-Bandwidth Connectivity with Targeted Reference Designs

Summary. Introduction. Application Note: Virtex, Virtex-E, Spartan-IIE, Spartan-3, Virtex-II, Virtex-II Pro. XAPP152 (v2.1) September 17, 2003

AvnetCore: Datasheet

Utility Reduced Logic (v1.00a)

Genesys Logic, Inc. GL862. USB 2.0 PC Camera Controller. Product Overview

Digital Blocks Semiconductor IP

Designing and Prototyping Digital Systems on SoC FPGA The MathWorks, Inc. 1

Motion Adaptive Noise Reduction v5.00.a

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

LogiCORE IP Initiator/Target v5 and v6 for PCI-X

User s Manual Version: 1.00.a

Video over SPI. (VoSPI) Implementaion Specification. Document Number: 102-PS Date: 22 Jan Weilming Sieh, FLIR. Paul Fagerburg, Syncroness

Vivado Design Suite Tutorial. Designing IP Subsystems Using IP Integrator

LogiCORE IP SPI-4.2 v12.2

Adding the ILA Core to an Existing Design Lab

User s Manual Version: 2.02.a

Virtual Input/Output v3.0

Transcription:

logijpgd Multi-Channel Motion JPEG Decoder September 19 th, 2017 Data Sheet Version: v2.0 Xylon d.o.o. Fallerovo setaliste 22 10000 Zagreb, Croatia Phone: +385 1 368 00 26 Fax: +385 1 365 51 67 E-mail: support@logicbricks.com URL: www.logicbricks.com Features Core Facts Provided with Core Documentation User s Manual Design File Formats Encrypted VHDL Constraints Files Reference designs constraint files Reference Designs & Application Notes Reference designs for Xilinx ZC702 Evaluation Kit Additional Items Bare-metal software driver Supports Xilinx Zynq -7000 All Programmable Simulation Tool Used SoC, 7 series FPGA families and Zynq Mentor Graphics Modelsim UltraScale+ MPSoC architectures Compliant with the Baseline Sequential DCT Support mode of the ISO/IEC 10918-1 JPEG standard Support provided by Xylon Supports multi-channel configurations and works simultaneously with up to four HD video streams Keeps up the exact frame rate to ensure smooth playback of Motion JPEG encoded video Automatic parsing of JPEG markers and recovery from the error state (invalid marker recognition) On-the-fly Huffman (2 DC, 2 AC) and Quantization (up to 4) tables reprogramming from the header data Advanced scatter-gather input DMA minimizes the CPU overhead in video over IP applications High data throughput of 2 pixels/clock, i.e. 200 MPix/sec when running at 100 MHz Video input/output resolutions up to 2048x2048 Pixel formats: YUV 4:2:0 and YUV 4:2:2 Frame integrity check able to detect the frozen video channel Generates the vertical sync (VSYNC) pulse to enable easy synchronizations with other SoC modules Hardware handshaking controlled double/triple buffering ensures flicker free video output Included bare-metal software driver enables faster application development Configurable input interface: DMA (AXI4 Master interface) or streaming (AXI4-Stream interface) Configurable output interface: DMA (AXI4 Master interface) or streaming (AXI4-Stream video interface) 64-bit ARM AMBA AXI4 compliant memory interface Supports native non-swizzle video outputs and swizzle (Xylon proprietary) for the highest efficiency Table 1: Example Implementation Statistics for Xilinx FPGAs Family (Device) Fmax (MHz) sclk clk LUT FF IOB BRAM DSP48 PLL/ MMCM BUFG/ BUFR GTx Design Tools Zynq -7000 (XC7Z020-1) Zynq -7000 (XC7Z045-2) Kintex -7 (XC7K325-2) 100 80 6726 3973 0 26.5 36 0 0 0 150 150 6724 3973 0 26.5 36 0 0 0 150 150 6717 3979 0 26.5 36 0 0 0 2016.4 2016.4 2017.1 Zynq UltraScale+ (XCZU9EG-1) 150 150 6376 3973 0 26.5 36 0 0 0 1) Assuming the following configuration: 32-bit AXI4-Lite register interface, 8-bit AXI4-Stream video input interface, YUV422 AXI4-Stream output interface, maximal resolution 2048 pixels, No fast first stage Huffman decoding, Huffman decoder LUT x1. 2) Assuming all interfaces internally connected. 2016.4 Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 1 of 7

JPEG memory JPEG stream Video memory Video stream Figure 1: logijpgd Architecture Features (cont) Simple programming of control registers through AXI4-Lite interface Parametrical VHDL design that allows tuning of slice consumption and features set Available IP core deliverables for Xilinx IP Integrator (IPI) and ISE (XPS)* implementation tools IP deliverables include software driver, documentation and technical support Reference design for the Xilinx ZC702 Evaluation Kit available on request Plug and Play with Xilinx, third-party and other Xylon logicbricks IP cores, like the logicvc-ml display controller, the logiwin video input and the logiview video processor IP core * The last available logijpgd IP core version for ISE Design Suite: v1_01_a Applications This IP core can be used in all applications that require JPEG or MJPEG video decompression. It is particularly well-suited for multi-channel video over IP applications like: Four-Camera Surround View and other Advanced Driver Assistance (ADAS) Multi-camera surveillance systems General Description The logijpgd Multi-Channel Motion JPEG Decoder is Xylon logicbricks IP core for still image and video decompression applications on Xilinx All Programmable MPSoC, SoC, and FPGA devices. It includes all logic blocks necessary for quick implementations of memory-based DMA and/or streaming-based SoC architectures and enables simultaneous MJPEG decompression of up to four HD video streams. At the center of the logijpgd IP core is the ISO/IEC 10928-1 JPEG standard compliant Baseline DCT decoder block that works with the YUV (4:2:0 and 4:2:2) video formats and supports all standard features such as the automatic parsing of JPEG markers and invalid markers recognition. The JPEG decoder block is coupled with Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 2 of 7

the advanced AMBA AXI4 compatible DMA logic blocks that handle video data transfers to and from an external memory. The compressed video data can be fetched from memory or accepted as stream input. If generic C_INPUT_TYPE is set to AXI4 Master (DMA), the input scatter-gather DMA fetches the compressed video data from non-contiguous memory buffers to feed in the JPEG decoder block. This DMA block is especially well suited for video over IP applications (Figure 2), where the video payload from multiple video channels comes in a non-guaranteed order and encapsulated in network frames, i.e. the Ethernet UDP packets. With a very low burden on the system CPU, it enables highly automated transfers of unwrapped video while respecting the accurate order of video channels. If generic C_INPUT_TYPE is set to AXI4 stream, the logijpgd accepts compressed video data over AXI4-Stream interface. The decompressed video data can be stored to memory or sent as a stream output. If generic C_OUTPUT_TYPE is set to AXI4 Master (DMA), the logijpgd output DMA logic block stores the decompressed video frames in contiguous video memory buffers and in the format suitable for further video processing and video display. This block generates the vertical sync (VSYNC) pulse and implements the hardware handshaking controlled double and triple buffering to ensure flicker free video output and simpler synchronization with the consecutive video processing IP cores. The logijpgd IP core s special feature that enables easy integration with other IP cores and a smooth video playback is its ability to keep up the exact frame rates of input video channels. If generic C_OUTPUT_TYPE is set to AXI4 stream, the logijpgd sends decompressed video data over AXI4-Stream video interface. A variety of interrelated factors affect the achievable logijpgd IP core s performance. Targeted Xilinx All Programmable logic, the overall SoC design s complexity, the input video resolutions, frame rates and number of video channels are some of the more common parameters that affect the core s performance. With the assured 2 pixels/clock output, the logijpgd IP core provides high data throughput even in low- and mid-range FPGAs, i.e. 200 MPix/sec when running at 100MHz. Such data throughput enables smooth decoding of one 1080p60 Full HD or multiple 720p30 HD video inputs. In case of the insufficient video data throughput of a single logijpgd instance, the required video performance can be achieved by additional logijpgd IP instances for a parallel processing of multiple video channels. The logijpgd is fully embedded into Xilinx IP Integrator to hide a complexity from the end-user and to make its integration with the on-chip AMBA AXI4 bus easy. The provided logijpgd software driver simplifies the IP core programming. Parametrizable VHDL design allows for tuning of slice consumption and features set through an easy-to-use GUI interface. The logijpgd can be smoothly integrated with other logicbricks, Xilinx or third-party IP cores. Xylon provides the logijpgd reference design that can be used as a starting point to evaluate and develop Xilinx-based MJPEG video processing embedded systems. Please contact info@logicbricks.com to submit a request for evaluation. Application Example Figure 2 illustrates an example of the logijpgd IP core use in the multi-camera Advanced Driver Assistance (ADAS) application. Four video cameras installed around the vehicle's perimeter encapsulate the MJPEG compressed video in the Ethernet UDP packets and stream them through a network switch and a single Ethernet cable towards the Gigabit Ethernet IP core controller in the Xilinx Zynq-7000 All Programmable SoC. In order to ensure the maximum data transfer speed and the minimum CPU load, the Ethernet UDP IP software stack runs only a basic packet analysis and stores the encapsulated UDP packets in physically scattered memory buffers implemented in the DRAM memory (Figure 2, Data Flow 1). Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 3 of 7

Vehicle with four automotive cameras using MJPEG video compression Ethernet Switch Video over IP 1 2 Processing System Memory Controller Eth. IP core w. DMA Ethernet UDP IP Stack logijpgd Driver Xilinx Zynq -7000 AP SoC CH 0 3 4 CH 1 CH 2 CH 3 DRAM Memory logijpgd MJPEG Decoder logijpgd MJPEG Decoder Video Processing IP Cores Other IP Cores logicvc-ml Compact Multilayer Video Controller Programmable Logic Figure 2: logijpgd Use Case Scenario Example The logijpgd IP core fetches only video payload from the scattered Ethernet UDP packets and does the MJPEG video decompression (Figure 2, Data Flow 2). The uncompressed video is stored in contiguous video frame buffers within the DRAM memory (Figure 2, Data Flow 3) from where it can be fetched (Figure 2, Data Flow 4) for further video processing or video display. Functional Description The logijpgd consists of the following blocks: Read DMA, AXIS2Parallel, JPEG Decoder, Output Buffer (DMA), Stream Generator and Registers. Figure 1 shows the internal IP core s structure. Read DMA The Read DMA implements the scatter-gather DMA, reads the JPEG video data from the memory and feeds in the compressed video to the JPEG Decoder. Read DMA is in use only when C_INPUT_TYPE is set to DMA. AXIS2Parallel AXIS2Parallel module is instantiated if stream input is enabled. It converts AXI4 Stream interface to parallel interface compatible with JPEG Decoder. Different error detections are done in this module. JPEG Decoder The JPEG Decoder is compliant with the Baseline Sequential DCT mode of the ISO/IEC 10918-1 JPEG standard. It decodes (decompresses) the JPEG coded YUV video input and provides the decompressed YUV video output. Output Buffer (DMA) The Output Buffer buffers and transfers the decoded/decompressed video data to the memory. Output Buffer is in use only when generic C_OUTPUT_TYPE is set to DMA. Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 4 of 7

Stream Generator The Stream Generator converts JPEG blocks to video lines and generates video stream compliant with AXI4- Stream Video standard from decompressed video. Stream Generator is in use only when generic C_OUPUT_TYPE is set to Streaming. Registers All logijpgd registers are instantiated in this block. The CPU has access to all these registers through the AXI4-Lite interface. Core Modifications The core is supplied in encrypted VHDL formats compatible with Xilinx IP Integrator and ISE Platform Studio implementation tools, which allows the user to take full control over configuration parameters. Table 2 outlines some important logijpgd configuration parameters selectable prior to the VHDL synthesis. For a complete list of parameters, please consult the logijpgd User s Manual delivered with the IP core. Table 2: Subset of logijpgd Configuration Parameters Parameter C_INPUT_TYPE C_OUTPUT_TYPE C_OUT_SWIZZLE_EN C_ROW_STRIDE C_BUFFER_OFFSET C_IN_M_LITTLE_ENDIAN C_OUT_M_LITTLE_ENDIAN C_M_AXIS_FORMAT C_CH_NO C_FAST_FIRST_STAGE_DECODE Description Input type: 0 DMA (AXI4 Master), 1 Streaming (AXI4-Stream) Output type: 0 DMA (AXI4 Master), 1 Streaming (AXI4-Stream Video) Video output type: 0 - not swizzle, 1 - swizzle output image Distance in number of pixels between same column pixels for adjacent rows. Double and triple buffering: buffer offset in number of lines, relative to the memory start. Input memory layout endianness (0 big endian, 1 little endian) Output memory layout endianness (0 big endian, 1 little endian) Video AXI4-Stream JPEG format: 0 YUV4:2:2, 3 YUV4:2:0 Number of channels If fast first stage decode is enabled (1), Huffman decoding is done one symbol at one period of clock, otherwise, decoding requires two periods of clock for symbol. The logijpgd has been constructed with regard to adaptability to various JPEG types. However, there may be instances where source code modification would be necessary. Therefore, if you wish to reach the optimal use of the logijpgd core and/or to supplement some of your specific functions, you can order the source code or allow us to tailor the logijpgd to your requirements. The logijpgd VHDL source code is available at the additional cost from Xylon. Core I/O s The core signal I/Os have not been fixed to specific device pins to provide flexibility for interfacing with user logic. Descriptions of all signal I/Os are provided in the Table 3. Global s Direction Table 3: Core I/O s Description RST Input Global reset input CLK Input Main clock input Memory Interface IN_M AXI4 Master Interface Bus Input memory ARM AMBA AXI4 master interface Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 5 of 7

Direction Description OUT_M AXI4 Master Interface Bus Output memory ARM AMBA AXI4 master interface Streaming Interface S_AXIS AXI4-Stream Interface Bus Input ARM AMBA AXI4-Stream slave interface M_AXIS AXI4-Stream Video Interface Bus Output ARM AMBA AXI4-Stream master video interface Register Interface AXI4-Lite Slave Interface Bus AMBA AXI4-Lite slave interface Auxiliary s VSYNC Output Vertical sync CURR_VBUFF[C_CH_NO*2-1:0] Output The current external stream video memory buffer (two bits per channel) NEXT_VBUFF[C_CH_NO*2-1:0] Input The next external stream video memory buffer (two bits per channel) SW_VBUFF_REQ[C_CH_NO-1:0] Output External request for the memory buffer switch (one bit per channel) SW_VBUFF_GRANT[C_CH_NO-1:0] Input Granted external request for the memory buffer switch (one bit per channel) Verification Methods The logijpgd is fully supported by the Xilinx Design Suite HLx. This tight integration tremendously shortens IP integration and verification. The logijpgd has been already used in automotive production systems today and its full implementation does not require any particular skills beyond general Xilinx tools knowledge Recommended Design Experience The user should have experience in the following areas: - Xilinx design tools - ModelSim Available Support Products Xylon provides the logijpgd reference design for the Xilinx Zynq-7000 AP SoC based ZC702 Evaluation Kit on request. The reference design demonstrates video decompression of MJPEG encoded movie clips stored on the SD card plugged into the ZC702 kit. The logijpgd design includes evaluation logicbricks IP cores and can be used as a starting point to evaluate and develop Xilinx-based MJPEG video processing embedded systems. To learn more about the Xylon reference designs, contact Xylon or visit the web: Email: info@logicbricks.com The logijpgd IP core is often used with the logiview Perspective Transformation and Lens Correction Image Processor IP core for video and imaging applications. The logiview IP core removes fish eye distortions caused by extreme wide-angle Field Of View (FOV) lenses, makes complex homographic transformations and non-homographic transformations, i.e. video texturing on curved surfaces. To learn more about the Xylon logiview IP core, contact Xylon or visit the web: Email: URL: sales@logicbricks.com www.logicbricks.com/products/logiview.aspx Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 6 of 7

Ordering Information This product is available directly from Xylon under the terms of the Xylon s IP License. Please visit our web shop or contact Xylon for pricing and additional information: Email: URL: sales@logicbricks.com www.logicbricks.com This publication has been carefully checked for accuracy. However, Xylon does not assume any responsibility for the contents or use of any product described herein. Xylon reserves the right to make any changes to product without further notice. Our customers should ensure that they take appropriate action so that their use of our products does not infringe upon any patents. Xylon products are not intended for use in the life support applications. Use of the Xylon products in such appliances is prohibited without written Xylon approval. Related Information Xilinx Programmable Logic For information on Xilinx programmable logic or development system software, contact your local Xilinx sales office, or: Xilinx, Inc. 2100 Logic Drive San Jose, CA 95124 Phone: +1 408-559-7778 Fax: +1 408-559-7114 URL: www.xilinx.com Revision History Version Date Note 1.00. 17.04.2014. Initial draft 1.10. 13.10.2015. Official logicbricks release 2.0 03.01.2017. Added AXI4-Stream input and AXI4-Stream output. Updated Features list, General Description and logijpgd architecture. Updated Figure 1, Table 1, Table 2 and Table 3. 2.0 19.09.2017. Added support for newer devices and newer implementation tools. Updated Table 1. Copyright Xylon d.o.o. 2001-2017 All Rights Reserved Page 7 of 7