122
Digital Video & Image Processing Xilinx Solutions for the Broadcast Chain

Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Digital Video & Image Processing

Xilinx Solutions for the Broadcast Chain

Page 2: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

What Makes up Digital Images or Digital Video?

Page 3: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Anatomy of a Pixel• Each pixel comprised of three color producing sub-pixel

elements: Red, Green, and Blue (RGB)

Page 4: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

White =Max RedMax GreenMax Blue

Pink =Max RedMedium GreenMed./High Blue

Medium Gray =Medium RedMedium GreenMedium Blue

Black =No RedNo GreenNo Blue

Combining RGB• Sub-pixel RGB intensity controls overall pixel colour

Page 5: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Bandwidth/Quality Tradeoffs• Typical high definition (HD) system needs high bandwidth

– 1920 x 1080 resolution, 24-bit pixels (8-bit Red, Green and Blue values), 30 progressive frames per second

• Techniques for memory/bandwidth reduction have varying effect on picture quality

• Continuous improvements in compression techniques and filtering to reduce effects on picture quality but allow more data “down the pipe”

Bandwidth = 1920 x 1080 x 24 x 30 = 1.49Gbps

Page 6: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Reduce Pixel Levels

• 24-bit image– 8 bits each for RGB– Over 16 million levels/pixel

• 4-bit image – Only 16 levels/pixel

Reduced bandwidth/memory requirements but reduced quality

Page 7: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Reduce Spatial Resolution

• Original image• 1 pixel/unit area

• 64 pixels/unit area

Reduced bandwidth/memory requirements but reduced quality

Page 8: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Compression

Original uncompressed image Compressed image with block artifactsReduced bandwidth/memory requirements but reduced quality

Page 9: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

MPEG Compression

• Spatial Processing– Uses DCT within a single picture

to enable removal of high frequencies not discernable to human eye

• Temporal Processing– Seeking out and removing redundancy

between successive images/frames• Variable Length Coding (VLC)

– Use shortest codes for most common samples• Run Length Encoding (RLE)

– Replace long strings of zeros with single command code

Page 10: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Spatial Redundancy

• DCT– Returns the discrete cosine transform of ‘video/audio input’– Can be referred to as the even part of the Fourier series– Converts an image or audio block into its equivalent frequency

coefficients• IDCT

– Inverse of the DCT function – IDCT reconstructs a sequence from its discrete cosine

transform (DCT) coefficients

Page 11: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

DCT in MPEG Compression

Spatial Frequency

Sens

itivity

Scan macroblock in 8x8 blocks

Determine luma & chroma pixel values

Luma samples shown here(Chroma processed

separately)

Convert to frequency components (DCT)

Human eye less sensitive to high frequencies

Compress using zigzag scan and run length encoding for

zero values (in blue)Further compression with Huffman encoding (VLC)

Output DCT coefficientsQuantize higher frequencies with less bits (weighting)

Zero values for frequencies below perception threshold

22 33 44

55667788

11

Scan pic ture using 16x16 pixel “macroblock”

Page 12: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

I B B P B B P B B I B B P B B P B B I

GOP (Group Of Pictures)

Temporal Redundancy

• I - Intra coded (spatially coded) pictures– Forms the anchor for a GOP

• P - Forward Predicted pictures – Predicted from previous I or P pictures– P picture made up of vectors showing where to get pixel data from in previous pictures and/or

values that must be added to previous picture to get current pixel value• B - Bi-directional Predicted pictures

– Predicted from previous or later I or P pictures (never from other B pictures)– Made up of vectors showing where to get pixel data from in previous pictures

Page 13: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Picture Difference

• Difference between successive pictures easy to calculate using subtractor

• Picture difference can also be spatially compressed– DCT, VLC, RLE etc. as before

Current Picture

Current Picture

Previous Picture

Previous PictureDelay BufferDelay Buffer

PictureDifferencePicture

Difference+

-

Page 14: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Motion Estimation

• Estimation predicts next picture by shifting data from previous picture along a calculated motion vector

• In encoder, predicted picture is compared to actual picture and any prediction errors calculated

• Transmitting motion vectors and predict ion errors takes much less bandwidth than coding entire picture

Part of image that is common between frames but has moved

Original pos ition of pic ture segment in previous frame

Mption vector sent with any predic tion errors

Page 15: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Processing Challenges

• Variable resolutions and refresh rates• Variable scan mode characteristics• High performance requirements• Variable file encoding formats• Variable content security formats

Page 16: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video System Challenges A Range of Resolutions

Picture Courtesy: Snell & Wilcox

Page 17: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video System Challenges Video Scanning Formats

Definition Lines/Frame Pixels/Line Aspect Ratios Frame RatesHigh (HD) 1080 1920 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30iHigh (HD) 720 1280 16:9 23.976p, 24p, 29.97p 30p, 59.94p, 60pStandard (SD) 480 704 4:3, 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30i, 59.94p, 60pStandard (SD) 480 640 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30i, 59.94p, 60p

• Table III well known in the broadcast industry • List of standard formats from ATSC A.53 DTV standard • 36 different formats available!• Doesn’t take into account line doubling etc.

Page 18: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video System ChallengesInterlace/Progressive Scan

First all odd lines scanned (1/60sec) then all even lines (1/60sec) presenting a full picture (1/30sec)

All lines scanned in single pass presenting a full picture (1/60sec)

Interlace

Progressive

Page 19: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Experimenting with Tradeoffs• It would be nice to have a fully flexible device to

use for video processing designs – Allows changing of parameters like colour depth, bit

accuracy (truncation)– Allows exploration of new compression techniques or

acceleration of existing algorithms to improve throughput

– Supports various frame rates and resolutions– Implements a wide range of new or existing filters for

enhancement or noise reduction

Page 20: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Welcome to Xilinx FPGAs

• FPGAs are a key enabling technology for digital video processing

• Allow experimentation for prototypes leading to differentiation for production

• And still enable a higher level of system integration with support for: – video interfaces, LAN/WAN technologies, other DSP, simple

glue, memory control and state machines, backplane protocols…… the list is only limited by the imagination

Page 21: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Basic Image and Video Processing

Page 22: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Image Processing Functions

• Pixel processing– Scaling– Rotation– Color/Gamma correction– Brightness– More colors through

dithering

• Frame buffer processing – Contrast enhancement– Shadow enhancement– Sharpness enhancement– Chroma key composition– Graphic overlay

Page 23: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Basic Image ProcessingScaling

• Fractionally enlarges the incoming data stream as necessary to match the target display resolution

• Pixel processing on-the-fly during image input without frame buffer

Page 24: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Real-Time Image Resizing With Low Memory Requirements 2 Dimensional Architecture Upscaling by 2, Downscaling by 4• Example: 512 x 512 x 8 60 f/s

– Upscaling by 2, Downscaling by 4– 16 pixel resolution– 8 Block RAMs for Line Buffers and Coefficient Bank– 4 vertical multipliers– 4 horizontal multipliers– Adder trees– Control

Line 1Line 1

Line 2Line 2

Line nLine n

VerticalVerticalHorizontalHorizontal

Input Image

ResizedImage

Page 25: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Real-Time Image Rotation• Non-real time typically implemented using processor and frame store• Real-time image rotation performed using bi-cubic function in FPGA

– Pixels remapped to rotational co-ordinates

Page 26: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Line 1

Line 1

Line 2

Line 2

Line 3

Line 3

Line 4

Line 4

Bi-cubicCalculatorBi-cubic

Calculator

Index Gener ator

Index Gener ator Destination

Gener ator

Destination Gener ator SRC

Gener ator

SRC Gener ator Rc

Gener ator

RcGener ator

Input Image

Rotated Image

Destination Address

θH V

• Example: – Medical imaging system

• 1024 x 1024 x 12 @ 30 f/s• 40 MHz Pixel Clock • 160 MHz Core Clock

– Xilinx XC2S300E FPGA• 12 Block RAMs for line

buffers• 2 Block RAMs for RC lookup

tables • 5 multiplier pixel calculation• Sine/Cosine, 2 Block RAMs• Dx, Dy calculation• Sx, Sy calculation• Control

Sx = Dxcos(θ) + Dysin(θ)Sy = -Dxsin(θ) + Dycos(θ)

Real-Time Image Rotation

Page 27: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• Adjusts RGB intensities through correction tables• Required to account for technology specific RGB

characteristics (CRT vs. LCD vs. PDP etc.)

Basic Image ProcessingColour/Gamma Correction

Page 28: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• Increases the RGB intensity to the viewer’s taste

Basic Image ProcessingBrightness

Page 29: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Advanced Image ProcessingContrast Enhancement

• Adjusts RGB intensities to control the degree of difference between light and dark image areas

Page 30: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Advanced Image ProcessingShadow Enhancement

• Selectively adjusts RGB intensities in order to lighten dark grayscale regions

Page 31: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Advanced Image ProcessingSharpness Enhancement

• Adjusts RGB intensities to sharpen the transition between adjacent color regions

Page 32: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Picture Enhancement

Courtesy : Keith Jack, Video Demystified

Easily implemented in FPGA

Page 33: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Input image Enhanced image

Enhanced 1D Signal

Gaussian Enhances Better

Spatial Enhancement IllustrationMedical Image Enhancement

Page 34: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Basic Image ProcessingMore Colors Through Dithering

• Smoothes out color transitions/banding in bit-depth limited displays – Achieve full color with sub 24-bit display technologies like LCD and PDP

• Generates patterns of pixels which the eye blends together into colors the display cannot generate

Page 35: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

+ =

Advanced Image ProcessingChroma Keyed Compositing

• Composites 2 images together, replacing a specific RGB value in one image (chroma) with the data pixel from the other

Page 36: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Advanced Image ProcessingGraphic Overlay

+ =

Page 37: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Mixer Functions in Virtex-II Pro FPGA

• MicroBlaze & Multimedia Demonstration Board demonstrates many mixer capabilities in FPGA

• Fade• Mix• Wipe• Chromakey• Logo Insertion

Page 38: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Multimedia Demo BoardNTSC/PAL

Video Encoder

NTSC/PAL

Video Encoder

Static Image One Frame

Static Image One Frame

Video DACVideo DAC

Audio Codec and Amp

Audio Codec and Amp

SystemACESystemACE Compact Flash CardCompact

Flash Card

CCIR 601 / 656 4:2:2 Format

Y’Cr’Cb’

Y’Cr’Cb’ or R`G`B` Format

YCrCb or R`G`B` Format

4:4:4 R`G`B` format

NTSC/PAL Video

Decoder

NTSC/PAL Video

Decoder

JTAG

Video Input Buffer

Two Frames

Video Input Buffer

Two Frames

Video Output Buffer

Two Frames

Video Output Buffer

Two Frames

Video Source& Effect Select

CCIR 601 / 656 4:2:2 format

Y’Cr’Cb’

PROCESSOR BUS

Y’Cr’Cb’ or R`G`B` Format

VIR

TEX-

II FP

GA

VIR

TEX-

II FP

GA

RS 232RS 232

10BASE-T 100BASE-TX

Ethernet

10BASE-T 100BASE-TX

Ethernet

Xilin

xMe

mory

CPU

Non-X

ilinx

Mixe

d Sign

alEm

bedd

ed Lo

gic

Page 39: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Multimedia PlatformADV7185

NTSC/PAL DECODER

VIDEO-IN RAM

Decoder VideoInput Pipelf_decode422:444

De-interlace

DSP Effectsf adesblendswipes

disolv es3D Graphics

Y’Cr’Cb’ to R’G’B’R’G’B to Y ’Cr’Cb’

Cross Bar Switch& DMA Control

ADV7194

NTSC/PAL ENCODER

FMS3810

Triple 8bit DAC

VIDEO-OUT RAM

Encoder Video Output Pipe

444:422Interlace

R’G’B’ 4:4:4 progressive

TV PAL/NTSC

PC

CCIR 601 / 656 4:2:2 format

MicroBlazeor

PicoBlaze

CCIR 601 / 656 4:2:2 format

512K X 36

ZBT RAM

(1 FRAME)

512K X 36

ZBT RAM

(1 FRAME)

512K X 36

ZBT RAM

(1 FRAME)

512K X 36

ZBT RAM

(1 FRAME)

512K X 36

ZBT RAM

(1 FRAME)

Sets up memoryaddresses in DMAsand issues “ go”

Y’Cr’Cb’ or R’G’B’

4:4:4 progressive

Xilinx Memory CPU

Non-Xilinx Mix ed Signal Embedded

Page 40: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video BypassADV7185

NTSC/PAL DECODER

VIDEO-IN RAM

BYPASS

Cross Bar Switch& DMA Control

ADV7194

NTSC/PAL ENCODER

FMS3810

Triple 8bit DAC

VIDEO-OUT RAM

BYPASS

R’G’B’ 4:4:4 progressive

TV PAL/NTSC

PC

CCIR 601 / 656 4:2:2 format

MicroBlazeor

PicoBlaze

CCIR 601 / 656 4:2:2 format

)

Static Image Previously

Loaded From Liv e Video

Y’Cr’Cb’ or R’G’B’

4:4:4 progressive

Page 41: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

ADV7185

NTSC/PAL DECODER

VIDEO-IN RAM

422:444Deinterlace

Cross Bar Switch& DMA Control

ADV7194

NTSC/PAL ENCODER

FMS3810

Triple 8bit DAC

VIDEO-OUT RAM

444:422Interlace

R’G’B’ 4:4:4 progressive

TV PAL/NTSC

PC

CCIR 601 / 656 4:2:2 format

MicroBlazeor

PicoBlaze

CCIR 601 / 656 4:2:2 format

) Outgoing Video Frame Number N-1

Outgoing Video Frame

Number N

Outgoing Video Frame Number N+1

Outgoing Video Frame Number N+2

Static Image Previously

Loaded From Liv e Video

Y’Cr’Cb’ or R’G’B’

4:4:4 progressive

Video Ping-Pong (1)field

frame

frame

field

frame

Page 42: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

ADV7185

NTSC/PAL DECODER

VIDEO-IN RAM

422:444Deinterlace

Cross Bar Switch& DMA Control

ADV7194

NTSC/PAL ENCODER

FMS3810

Triple 8bit DAC

VIDEO-OUT RAM

444:422Interlace

R’G’B’ 4:4:4 progressive

TV PAL/NTSC

PC

CCIR 601 / 656 4:2:2 format

MicroBlazeor

PicoBlaze

CCIR 601 / 656 4:2:2 format

) Outgoing Video Frame Number N+1

Outgoing Video Frame Number N-2

Outgoing Video Frame Number N-3

Outgoing Video Frame

Number N

Static Image Previously

Loaded From Liv e Video

Y’Cr’Cb’ or R’G’B’

4:4:4 progressive

frame

field

frame

frame

field

Video Ping-Pong (2)

Page 43: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

ADV7185

NTSC/PAL DECODER

VIDEO-IN RAM

422:444Deinterlace

if A = greenthen C=Belse C=A

Cross Bar Switch& DMA Control

ADV7194

NTSC/PAL ENCODER

FMS3810

Triple 8bit DAC

VIDEO-OUT RAM

444:422Interlace

R’G’B’ 4:4:4 progressive

TV PAL/NTSC

PC

CCIR 601 / 656 4:2:2 format

MicroBlazeor

PicoBlaze

CCIR 601 / 656 4:2:2 format

) Outgoing Video Frame Number N-1

Outgoing Video Frame Number N-2

Outgoing Video Frame Number N-3

Outgoing Video Frame

Number N

Static Image Previously

Loaded From Liv e Video

Y’Cr’Cb’ or R’G’B’

4:4:4 progressive

AB

C

Video Chromakey

Page 44: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Noise Reduction& Filtering

Page 45: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

IP Core or Reference DesignXAPP219 Transposed Form FIR Filters MAC FIR Serial Distributed Arithmetic FIR Filter Parallel Distributed Arithmetic FIR Filter Distributed Arithmetic FIR Filter

ProviderXilinx Inc. Xilinx Inc. Xilinx Inc.Xilinx Inc.Xilinx Inc.

See http://www.xilinx.com/ipcenter for more detailsSee http://www.xilinx.com/ipcenter for more details

FIR Filters for Xilinx FPGAS• Most image filtering can be done based on two-

dimensional FIR filters– Programmability allows experimentation with different

coefficients, filter windows etc to get the best picture

Page 46: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Noise Removal

• Removal of impulsive noise– e.g. Scratches on film

Software simulation shown

Page 47: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Noise Removal

• Removal of Gaussian noise

Software simulation shown

Page 48: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Noise Removal

• Salt and Pepper noise removal

Software simulation shown

Page 49: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Kalman Filter Median Filter

Noise Reduction• Noise reduction using temporal filtering across

multiple video frames

Page 50: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Y(k-1)BUF

Y(k-1)BUF

Frame BufferFrame Buffer

σ2

BUFσ2

BUF

σ2

BUFσ2

BUF

FPGAFPGAVideoBufferVideoBuffer

w

X(k)Y(k)

Temporal Filter

Page 51: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• The list in endless, but these are a few examples of image enhancement algorithms– Spatial Filter Unsharp Masking– Digital Max-Detail– Laplacian of Gaussian Filter– Adaptive Histogram Equalization– Adaptive Kalman Temporal Filter– Non-Linear Median Filter– Non-Linear Fuzzy Filter– Wavelet Decomposition

• Or you may have a better version of your own– Is there an ASSP to support your idea?

Image Enhancement Algorithms

Page 52: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Enhanced Signal

(a)

Gaussian

Hamming

Enhanced Signal

(b)

Gaussian

Hammin g

Enhanced Signal

(c)

Gaussian

Hamming

FPGAs for Spatial EnhancementEnhanced 1D Signal

Gaussian Enhances Better

Traditional Hamming Less Effective

Filter Kernel 2 Dimensional

Center Pixel

15 Pixels Horizontal

15 PixelsVertical

+ User selectable kernels + Parameterisable filter coefficients and windows+ Experiment to find the

filter that gives the best results (on-the-fly)

+ No sacrifice in performance with real-time calculations possible

Page 53: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Spatial Enhancement2D FIR

Filter Delay x -

LimitSaturate

(H * Original) - (K * Low_pass_filter) = Enhanced ImageMixer

PCI VRAM JPEG

2D FIR Mixer

Field Buffer Resize Video

VRAM

Low-pass Out

VideoIn

EnhancedVideo Out

KH

OriginalImage

Page 54: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Original, 33%, 66%, 100% Boost

Spatial Enhancement

Page 55: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Horizontal

Vertical

Spatial

Temporal

Coherence Domains

Page 56: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Scene Coherence

• Notice high frequencies have gone

Page 57: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Coherence Exploited

Cb0

Y’0

Cr0

Y’1Cb1

Y’2 Y’3

Cr1

Cb2

Y’4 Y’5

Cr2

Cb3

Y’6 Y’7

Cr3

1/3 1/3 1/61/6

Horizontal

• Horizontal coherence to generate missing data• FFs & SRL16s look at data in a horizontal stripe

Page 58: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Coherence Exploited• Vertical coherence to generate missing data• Line buffers (Block RAM) looks at data in a vertical stripe

Line 1

Line 1

Line 1

Line 1

Vertical

Page 59: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Coherence Exploited

Actual Polygon Edge

Edge Anti-Aliasing Example

• Spatial coherence to generate grey edge data• Requires external frame buffers to look at data in a spatial area

Page 60: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

HorizontalCoherence

VerticalCoherence

TemporalCoherence

Flip Flops, SRL16s orCoherence & Memory Options

Page 61: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Shift Register LUT - SRL16E

I3

I1I2

I0

OA3

A1A2

A0

Q

CE

D QD Q

INIT=1234

INIT=1234

LUT4SRL16E

D

D

CECE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QDCE

QD

A[3:0] 0000 1111

Q

Becomes

• Reading of flip-flop contents is completely independent

• Address selects which flip-flop is read

• Read process is asynchronous, but dedicated flip-flop is available for synchronization

Page 62: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Xilinx FIR Filter Solution• Virtex logic slice

utilization for – FIR filter configurations– Half-band filter

configurations– Hilbert transformer

configurations– Interpolated filter FIR filter

configurations– Partial to full parallel

implementation

• 2D FIR example– 1Kx1K image size– 8-12 bit pixel data– 64x64 kernel size– 128 multipliers– 64 Line buffers (1024 in

length)– Summation tree in

distributed logic– Single-chip solution

Page 63: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Benefits using Xilinx FPGAs• High Performance

– Exploit parallelism and can reach sample rate from 1 Mega Sample Per Second (MSPS) up to over 180 MSPS

• Flexibility– Highly parameterizable, area efficient high-performance FIR

Filter• Highly Optimized

– Optimized filters for single rate, half-band, Hilbert transform and interpolated FIR Filters

– Also takes advantage of symmetry

Page 64: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Lines & Fields

Page 65: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

NTSC Interlaced Scan

Line 284

Line 285

Line 286

Line 525

Line 21

Line 22

Line 23

Line 262

Line 263

Line 525

Odd Field (Field One)Even Field (Field Two)

Page 66: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

NTSC Horizontal Scan Line

BLACK LEVELBLANK LEVELSYNCH LEVEL

720 samples (0-719)

Sample RateY’Cr or Y’Cb every 13.5 MHz (SDTV, NTSC or PAL)Y’Cr or Y’Cb every 74.25 MHz (HDTV)

122 samples16 samples

DigitalLineStart

DigitalLineEnd

BackPorchFront

Porch

Active VideoColor Drawn Here

Horiz.Sync

1 Volt peak to peak

H, V, and F Transition Here

EAV - FF 00 00 XYSAV - FF 00 00 XY

TRS or TIMINGREFERENCESIGNAL

PAL Scan Line is Similar

Page 67: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Composite NTSC 525 Vertical Timing Detail

264 265 266263

H

V

FEven FieldOdd Field

Page 68: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

2 10 11 21525524

Vertical Blank

264 273 274 285263262

HVF

HVF

Even Field

Even Field (Field Two)Odd Field

Odd Field (Field One)

Vertical Blank

1

Composite NTSC 525 Vertical Timing Detail

Page 69: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Line/Field Decoding

• Simple in a FPGA!• Find the TRS

– i.e. The pattern FF 00 00 XY• Decode XY

– Gives you H and F• Format detection is done by counting SAVs

during active video

Page 70: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

2K Line Buffer2K Line Buffer2K Line Buffer

2K Line Buffer

VerticalFIR

HorizontalFIR

m lines

Rasterline out

Rasterline in

Line Buffering

• Line buffers feed horizontal and vertical FIR filters to do real time image processing without frames store

Page 71: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Frame BufferFrame Buffer

Line Buffer

Line Buffer

FIR

FIR Σ

FIR

Frame BufferFrame Buffer

2D Image Processing Using BlockRAM Line Buffers

• Line buffers provided by Block RAM using cyclic buffer technique• 768 Pixel Line Buffers (8-bit)

– 576 per Device• 1920 Pixel Line Buffers (36-bit = 12-bit RED + 12-bit GREEN + 12-bit BLUE)

– 51 per Device

Page 72: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• INTERLACE VIDEO (broadcast video)– Half the lines of a frame in a single pass (242 lines @ 30 Hz)

• PROGRESSIVE SCAN VIDEO (computer monitors)– All lines of a frame in a single pass (484 lines @ 60Hz)– MPEG works on progressive scanned images

ODD LINES PAINTED ON FIRST PASS

EVEN LINES PAINTED ON SECOND PASS

ALL LINES PAINTED ON FIRST PASS

Scan Line De-interlacing

Page 73: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• De-interlacing (line doubling) is process of converting interlaced video into progressive scan video

• Various techniques– Scan line duplication from a single field– Field merge

• 2X resolution but motion problems– Scan line interpolation from a single field

• Only 1X resolution

– Combination approach, field merge (non-moving), interpolate moving objects but difficult motion detection problem

– Scan Line Interpolation from a single frame

Scan Line De-interlacing

Page 74: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• Field Merge Problems • Object in motion will have “double image”

Object with no motion

Alternate lines are displaced by horizontal

motion

Scan Line De-interlacing

Object in motion

Page 75: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Scan Line De-interlacing(Green = Field 2, Yellow = Field 1)

NTSC line 283, Field 2NTSC line 21, Field 1NTSC line 284, Field 2NTSC line 22, Field 1

NTSC line 261, Field 1

NTSC line 260, Field 1NTSC line 523, Field 2

NTSC line 522, Field 2

NTSC line 285, Field 2NTSC line 23, Field 1NTSC line 286, Field 2NTSC line 24, Field 1

NTSC line 263, Field 1

NTSC line 262, Field 1NTSC line 525, Field 2

NTSC line 524, Field 2

SMPTE 170M FIELD 1242 1/2 lines

SMPTE 170M FIELD2242 1/2 lines

Progressive Line 1Progressive Line 2Progressive Line 3Progressive Line 4Progressive Line 5Progressive Line 6Progressive Line 7

Progressive Line 478Progressive Line 479Progressive Line 480Progressive Line 481Progressive Line 482Progressive Line 483Progressive Line 484

485 total active lines

484 total active lines

Page 76: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Scan Line DeinterlacingUsing Line Duplication

10

pix_radr

Pixel outPixel in

pix_wadr

Pixel adrPixel adr

Line Buffer A

1010

10wireshift

wireshift

Scan Line N-2

Duplicate Line N-1

Scan Line N

Scan Line N

PhantomLine N-1

Scan Line N-2

FIFOFIFO

FIFOFIFO

LineSelect

ToZBT

10

Page 77: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Scan Line DeinterlacingUsing Line Interpolation from 2 Lines

Scan Line N-2

Phantom Line N-1

Scan Line N

( Pixel A + Pixel B ) / 2

10

pix_radr

Pixel outPixel in

pix_wadr

Pixel adrPixel adr

Line Buffer A

1010

10

11wireshift

wireshift

Scan Line N

PhantomLine N-1

Scan Line N-2

FIFOFIFO

FIFOFIFO

LineSelect

ToZBT

Page 78: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Scan Line DeinterlacingUsing Line Interpolation from 4 Lines

Scan Line N-3

Phantom Line N-2

Scan Line N-1

Scan Line N

Scan Line N-4

pix_radrpix_dout_Apix_in_A

pix_wadr

pix_wadrpix_wadr

Line Buffer A

pix_radrpix_radr

pix_radrpix_dout_Bpix_in_B

pix_wadr

Line Buffer B

pix_radrpix_dout_Cpix_in_C

pix_wadr

Line Buffer C

pix_radrpix_dout_Dpix_in_D

pix_wadr

Line Buffer D

1/6

1/3

1/3

1/6

scalingscaling

1/6 (A) + 1/3 (B) + 1/3 (C) + 1/6 (D)

N - 2

Page 79: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Compression

Page 80: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video Compression• Bandwidth is precious!• MPEG compression helps get the most out of available bandwidth

– A trade off between amount of data to be sent and acceptable picture quality

• Uncompressed high-definition pictures take too much bandwidth to send down a 6MHz or 8MHz cable channel (up to 40Mbps)

• 1920 x 1080 24-bit pixels @ 30 frames per second = 1.49Gbps!

• Storage of content is also much more efficient with video compression

Definition Lines/Frame Pixels/Line Aspect Ratios Frame RatesHigh (HD) 1080 1920 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30iHigh (HD) 720 1280 16:9 23.976p, 24p, 29.97p 30p, 59.94p, 60pStandard (SD) 480 704 4:3, 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30i, 59.94p, 60pStandard (SD) 480 640 16:9 23.976p, 24p, 29.97p, 29.97i, 30p, 30i, 59.94p, 60p

ATSC “Table III”

Page 81: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

MPEG Compression

• Spatial Processing– Uses DCT within a single picture

to enable removal of high frequencies not discernable to human eye

• Temporal Processing– Seeking out and removing redundancy

between successive images/frames• Variable Length Coding (VLC)

– Use shortest codes for most common samples• Run Length Encoding (RLE)

– Replace long strings of zeros with single command code

Page 82: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Spatial Redundancy

• DCT– Returns the discrete cosine transform of ‘video/audio input’– Can be referred to as the even part of the Fourier series– Converts an image or audio block into its equivalent frequency

coefficients• IDCT

– Inverse of the DCT function – IDCT reconstructs a sequence from its discrete cosine

transform (DCT) coefficients

Page 83: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

DCT in MPEG Compression

Spatial Frequency

Sens

itivity

Scan macroblock in 8x8 blocks

Determine luma & chroma pixel values

Luma samples shown here(Chroma processed

seperately)

Convert to frequency components (DCT)

Human eye less sensitive to high frequencies

Compress using zigzag scan and run length encoding for

zero values (in blue)Further compression with Huffman encoding (VLC)

Output DCT coefficientsQuantize higher frequencies with less bits (weighting)

Zero values for frequencies below perception threshold

22 33 44

55667788

11

Scan pic ture using 16x16 pixel “macroblock”

Page 84: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

I B B P B B P B B I B B P B B P B B I

GOP (Group Of Pictures)

Temporal Redundancy

• I - Intra coded (spatially coded) pictures– Forms the anchor for a GOP

• P - Forward Predicted pictures – Predicted from previous I or P pictures– P picture made up of vectors showing where to get pixel data from in previous pictures and/or

values that must be added to previous picture to get current pixel value• B - Bidirectionally Predicted pictures

– Predicted from previous or later I or P pictures (never from other B pictures)– Made up of vectors showing where to get pixel data from in previous pictures

Page 85: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Motion Estimation

• Estimation predicts next picture by shifting data from previous picture along a calculated motion vector

• In encoder, predicted picture is compared to actual picture and any prediction errors calculated

• Transmitting motion vectors and predict ion errors takes much less bandwidth than coding entire picture

Part of image that is common between frames but has moved

Original pos ition of pic ture segment in previous frame

Motion vector sent with any predic tion errors

Page 86: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Chroma Downsampling• Most MPEG-2 applications use 8-bit 4:2:0 sampling• But incoming data usually 10-bit 4:2:2 video

– Maybe via SDI (Serial Digital Interface) for example• Conversion therefore needed before MPEG processing

– This chroma “downsampling” is lossy form of data compression

4:2:2 to

4:2:0

4:2:2 to

4:2:0DCTDCT Quantize

CoefficentsQuantize

Coefficents

Zig Zag(Run

Length)Encoding

Zig Zag(Run

Length)Encoding

Huffman(Variable Length)

Encoding

Huffman(Variable Length)

Encoding10 8

SDI

CompressedVideo OutPixel Data In

MPEG ProcessingChromaDownsampling

Page 87: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

4:2:2 and 4:2:0 Sampling16x16 Macroblock Luma (Y) Sample Points Chroma (CrCb) Sample Points

4:2:2

4:2:0

Only interpolated Cr Cb values used

Only one horizontal Cr Cb value used for every Y

-Sam

pled V

alue

-Valu

e us

ed fo

r Inter

polat

ion

Easy in an FPGA!Easy in an FPGA!

Page 88: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Cb2

Y’2

Cr2

Cb3

Y’3

Cr3

Cb4

Y’4

Cr4

Cb5

Y’5

Cr5

Cb6

Y’6

Cr6

Cb7

Y’7

Cr7

This is 4:4:4

Cb0

Y’0

Cr0

One Pixel

Next Pixel

Cb1

Y’1

Cr1

Digital Component Video Conversion - 4:4:4 to 4:2:2

• XAPP294

Page 89: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

This is 4:2:2

Cb1

Y’2 Y’3

Cr1

Cb2

Y’4 Y’5

Cr2

Cb3

Y’6 Y’7

Cr3

Cb0

Y’0

One Pixel

Next Pixel

Y’1

Cr0

Digital Component Video Conversion - 4:4:4 to 4:2:2

• XAPP294

Page 90: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Compresses Nicely !(and is imperceptible to human eye)

Cb1

Y’2 Y’3Cb2

Y’4 Y’5Cb3

Y’6 Y’7Cb0

Y’0

One Pixel

Next Pixel

Y’1Cr1 Cr2 Cr3Cr0

Digital Component Video Conversion - 4:4:4 to 4:2:2

• XAPP294

Page 91: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• XAPP294

• How do we get back the missing samples?

Cb0

Y’0

Cr0

Y’1Cb1

Y’2 Y’3

Cr1

Cb2

Y’4 Y’5

Cr2

Cb3

Y’6 Y’7

Cr3

Digital Component Video Conversion - 4:2:2 to 4:4:4

Page 92: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Digital Component Video Conversion - 4:2:2 to 4:4:4

• XAPP294

• You could just take the average of two values to get the missing one between

• 1/2 (A + C)

1/2 1/2

Cb0

Cr0

Cb1

Cr1

Cb2

Cr2

Cb3

Cr3

Y’0 Y’1 Y’2 Y’3 Y’4 Y’5 Y’6 Y’7

Page 93: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Digital Component Video Conversion - 4:2:2 to 4:4:4

• XAPP294

• Previous method may need bandwidth limiting, this version is better

• Less multiplies 1/6 (A + D) + 1/3 (B + C)

1/3 1/3 1/61/6

Cb0

Cr0

Cb1

Cr1

Cb2

Cr2

Cb3

Cr3

Y’0 Y’1 Y’2 Y’3 Y’4 Y’5 Y’6 Y’7

Page 94: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

422 to 444(24 Tap, Parallel FIR)

24 Limit 10

-4

10

MissingCb or Cr

11

Cb[I-23]

Cb[i] = ( - 4*(Cb[i-23]+Cb[i+23])+ 6*(Cb[i-21]+Cb[I+21])- 12*(Cb[i-19]+Cb[i+19])+ 20*(Cb[i-17]+Cb[i+17])- 32*(Cb[i-15]+Cb[i+15])+ 48*(Cb[i-13]+Cb[i+13])- 70*(Cb[i-11]+Cb[i+11])+ 104*(Cb[i-9]+Cb[i+9])- 152*(Cb[i-7]+Cb[i+7])+ 236*(Cb[i-5]+Cb[i+5])- 420*(Cb[i-3]+Cb[i+3])+ 1300*(Cb[i-1]+Cb[i+1]))/2048;

10Cb[I+23]

Cb[I-21]

Cb[I-3]

Cb[I-1]

Cb[I+21]

Cb[I+1]

Cb[I+3]

+6

1011

10

1011

10+1300

1011

10

Real Cb or Cr

Input

Real Cb or CrOutput

12 Adders12 Multipliers

-420

22

Page 95: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Digital Colour Images

R

B G

Page 96: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Digital Color Images

Y

Cb Cr

“Same” picture but less bandwidth!

Page 97: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Colour Space Converter181 MHz*

*Using embedded multipliers in XC2V1000

Free of Charge Free of Charge -- XAPP283XAPP283

Page 98: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

12

25

for eight bit videoR' = 1.164(Y'-16) + 1.596(Cr-128)G' = 1.164(Y'-16) + .813(Cr-128) - .392(Cb-128)B' = 1.164(Y'-16)+ 2.017(Cb-128)

For 10 bit videoR' = 1.164(Y'-64) + 1.596(Cr-512)G' = 1.164(Y'-64) + .813(Cr-512) - .392(Cb-512)B' = 1.164(Y'-64)+ 2.017(Cb-512)

Y’

Colour Space Converter

25

25

Limit

Limit

Limit

12

12

12

Cr

Cb

1.596

.813

-512

-64

2.017

1.164

-512

12

12 R’

G’

B’2412

12

2412

24

24

24

-.392

Page 99: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

12

15

for eight bit videoR' = 1.164(Y'-16) + 1.596(Cr-128)G' = 1.164(Y'-16) + .813(Cr-128) - .392(Cb-128)B' = 1.164(Y'-16)+ 2.017(Cb-128)

For 10 bit videoR' = 1.164(Y'-64) + 1.596(Cr-512)G' = 1.164(Y'-64) + .813(Cr-512) - .392(Cb-512)B' = 1.164(Y'-64)+ 2.017(Cb-512)

Y’

Colour Space ConverterSimple Version

(5-8%)Colour Error

15

15

Limit

Limit

Limit

12

12

12

Cr

Cb

1.596

.813

-512

-64

2.017

1.164

-512

12

12 R’

G’

B’14

14

14

14

14

-.128-.392

-.256

.512

.256

.512

1

2

.128

1

13

13

13

Less Resource NeededCan’t experiment like this with other devices!

Page 100: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

2-D DCT Operation 11--D DCT on RowsD DCT on Rows 11--D DCT on ColumnsD DCT on Columns

Application Note and Reference Design Availablehttp://www.xilinx.com/xapp/xapp610.pdf

Page 101: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

2-D IDCT Operation

Application Note and Reference Design Availablehttp://www.xilinx.com/xapp/xapp611.pdf

11--D IDCT on RowsD IDCT on Rows 11--D IDCT on ColumnsD IDCT on Columns

Page 102: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

SRAM

SDRAM

32-bit Embedded

CPU

Proc

esso

r Int

erfa

ceMemory Controller

Other Custom Logic

Partial MPEG H/W Acceleration

DCT / IDCT

Motion Compensation

Motion Estimation

Applications• Web tablets• Internet appliances•Telematics • High-end PDAs

Dedicated H/W acceleration blocks

Page 103: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Customized MPEG Implementation

SRAM

SDRAM

Proc

esso

r Int

erfa

ceMemory Controller

Other Peripherals

DCT / IDCT

Motion Compensation

Motion Estimation32-bit Soft-CPU

up to 100 D-MIPS

32-bit Soft-CPU up to 100 D-MIPS

...Multiple-processor instantiations

Resolution, frame rate, profile, level & QoR dependent

Dedicated H/W acceleration blocks

ApplicationsDigital TVPlasma displaysLCD displaysSet-top boxes

Page 104: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

High Performance MPEG Applications

SRAM

SDRAM

Proc

esso

r Int

erfa

ceMemory Controller

Other Peripherals

DCT / IDCT

Motion Compensation

Motion Estimation

32-bit Soft-CPU up to 100 D-MIPS

Up to 4 PowerPC and Multiple MicroBlaze instantiations

Resolution, frame rate, profile, level & QoR dependent

Pipelined and Parallel Dedicated H/W acceleration blocks

32-bit Hard CPU 420 D-MIPS

...

...

ApplicationsStudio applicationsDigital cinema

Page 105: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Xilinx Solutions

Page 106: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• Fixed inflexible architecture– Typically 1-4 MAC units– Fixed data width

• Serial processing limits data throughput

– Time-shared MAC unit– High clock frequency creates

difficult system-challenge

Loop Algorithm256 times

Conventional DSP Device(Von Neumann architecture, or

extensions thereof)

Example256 Tap FIR Filter = 256 multiply and accumulate (MAC) operations per data sample

Data Out

RegData In

MAC unit

Performance Limitation of Conventional DSP

Page 107: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

FPGA Performance Advantage

All 256 MAC operations in 1 clock cycle

FPGA

....C0

Data Out

C1 C2 C255

Reg0 Reg1 Reg2 Reg255Data In

Example256 Tap FIR Filter = 256 multiply and accumulate (MAC) operations per data sample

• Flexible architecture– Distributed DSP resources (LUT,

registers, multipliers, & memory)

• Parallel processing maximizes data throughput

– Support any level of parallelism– Optimal performance/cost tradeoff

Page 108: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Traditional Processing

Control Tasks

Control Tasks

FIR Filter

C++ Code Stack

Control Tasks

FIR Filter

Math-intensive algorithms dominate the processing capacity

CPUCPU RAMRAM

FIR Filter FIR Filter

Processing time

Traditional

Page 109: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Xtreme Processing™

Control Tasks

Control Tasks

FIR Filter

C++ Code Stack

Control Tasks

FIR Filter

FIR Filter FIR Filter

Processing time

Traditional

PowerPCProcessor

PowerPCProcessor

XTREMEProcessing™

FIR Engine (fabric/multipliers)

OCMRAMOCMRAM

3

+

2

+

0 1

+

n

+

PowerPC with Application-SpecificHardware Acceleration

The Virtex-4 Advantage

Page 110: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Area

(Fre

e Tra

nsist

ors)

Time

DSP Processors: Sequential Processing

•••

5 nsec 500 nsec

Processor requires a>10 GHz Clock

for equivalent performance

200MHz

ClockX +• • •

FPGA

: Par

allel

Proc

essin

g

X +

X + Multiply Accumulates

Area vs. Performance

Page 111: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

System Generator for Simulink• Bridges gap between

FPGA and DSP design flows

– Used withSimulink®/MATLAB® from The MathWorks

• Automatically generates HDL/optimized algorithms

– Shortens learning curve– HW redesign eliminated– Optimal implementationFPGA Design FlowFPGA Design Flow

DSP Design FlowDSP Design Flow

Page 112: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video System Design

ClockMgmt

Decode & Decrypt

AnalogVideo

A/DConverter

OptionalDigitalDecode

RGBVideo

VideoDecoder

Digital RGB

Analog

RGB

Buffers / Memories

SDRAM SRAM

User Designed I/O

User

Des

igned

I/O

User

Des

igned

I/O

Sub-System Controllers

FLASH

Disp

lay D

river

Hard Disk

Image Processing

I/O Controllers

Sub-System I/O

SystemControl

LVDS

BLVD

S

PCI

PCIX

AGP

Etc.

PHY

FPGA Display System Utility

- 1394- USB 2.0- Ethernet- TMDS- LVDS- PCI- Etc.

Page 113: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

FPGA Standard Features & IP

ClockMgmt

Decode & Decrypt

AnalogVideo

A/DConverter

OptionalDigitalDecode

RGBVideo

VideoDecoder

Digital RGB

Analog

RGB

Buffers / Memories

SDRAM SRAM

User Designed I/O

User

Des

igned

I/O

User

Des

igned

I/O

Sub-System Controllers

FLASH

Disp

lay D

river

Hard Disk

Image Processing

I/O Controllers

Sub-System I/OSDRAM

ControllerSRAM

ControllerFLASH

ControllerEIDE

Controller

DCT2D FIR Filter RGB2YCrCb

JPEG

SystemControl

uC

RGB2YUV2D FFT YCrCb2RGB

YUV2RGB

Selec

t I/O

Selec

t I/O

Block RAM Distributed RAM

DLL

LVDS

BLVD

S

LVDS / BLVDS

PCI

PCIX

AGP

Etc.

Select I/O

Select I/O

PCI PCI-X AGP

IDCT

DES AES3DES

DLL

DLL

DLL

PHY

FPGA Display System Utility

- 1394- USB 2.0- Ethernet- TMDS- LVDS- PCI- Etc.

Page 114: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Xilinx Video IP and Cores1-D Discrete Cosine Transform Xilinx2-D DCT/IDCT Forward and Inverse Discrete Cosine Transform XilinxYUV2RGB Color Space Converter XilinxRGB2YCrCb Color Space Converter Core XilinxRGB2YUV Color Space Converter Core XilinxYCrCb2RGB Color Space Converter XilinxlogiCVC - Compact Video Controller XylonParameterized Symmetrical 2D FIR Xilinx N/A PreLinxParameterized Line Buffer Xilinx N/A PreLinxVideo De-Interlace Xilinx N/A PreLinxRaster To Block / Block To Raster Xilinx N/A PreLinx2-D Min/Max/Median Filters For MatLAB Xilinx N/A PreLinx2-D Discrete Wavelet Transform Xilinx N/A PreLinx2-D Discrete Wavelet Transform (3 Comps) Xilinx N/A PreLinx2D FIR Xilinx N/A PreLinxSerial Distributed Arithmetic FIR Xilinx N/A LogiCoreParallel Distributed Arithmetic FIR Xilinx N/A LogiCoreDistributed Arithmetic FIR Xilinx N/A LogiCore

Video and Image Processing IP Vendor Sign Once Comment

Up to date info at www.xilinx.com/ipcenterUp to date info at www.xilinx.com/ipcenter

Page 115: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Video AllianceCOREsVideo and Image Processing IP Vendor Sign OnceMotion JPEG Decoder Core V1.0 AmphionMotion JPEG Codec Core V1.0 AmphionMotion JPEG Encoder Core V2.0 AmphionFASTJPEG_C DECODER Barco SilexFASTJPEG_BW DECODER Barco SilexDCT/IDCT 2D Barco SilexHUFFD Huffman Decoder Core CASTBB_2DDWT-Block-Based 2D Discrete Wavelet Transform CASTLB_2DFDWT - Line-Based Programmable Forward DWT CASTIDCT: 2D Inverse Discrete Cosine Transform CASTRC_2DDWT: Combine 2D Forward/Inverse Discrete Wavelet Trans CASTDCT_FI: Combined 2D Forward / Inverse Discrete Cosine Transfor CASTDCT: 2D Forward Discrete Cosine Transform CASTLongitudinal Time Code Generator DeltatecJPEG CODEC InSiliconYCrCb2RGB Color Space Converter PerigreeRGB2YCrCb Color Space Converter PerigreeFIDCT Forward/Inverse Discrete Cosine Transform TILAB

www.xilinx.com/ipcenterwww.xilinx.com/ipcenter

Page 116: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Available Application NotesXAPP248 "Digital Video Test Pattern Generators" v1.0 (01/02) XAPP288 "Serial Digital Interface (SDI) Video Decoder" v1.0 (10/01) XAPP298 "Serial Digital Interface (SDI) Video Encoder" v1.0 (10/01) XAPP172 "The Design of a Video Capture Board Using the Spartan Series" v1.0 (03/99) XAPP208 "IDCT Implementation in Virtex Devices for MPEG Applications" v 1.1 (12/99)XAPP241 "Virtex-EM FIR Filter for Video Applications" v1.1 (10/00)XAPP284 "3 x 3 Matrix Multiplier for 3D Graphics and Video" v1.1 (10/01) XAPP283 "Color Space Conversion" v1.0 (07/01) XAPP219 "Transposed Form FIR Filters" v1.2 10/01 XAPP270 "High-Speed DES and Triple DES Encryptor/Decryptor" v1.0 (8/01)

support.xilinx.com/apps/appsweb.htmsupport.xilinx.com/apps/appsweb.htm

Page 117: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Key FPGA Features for Video• For SDTV (13.5 MHz)

– LUTs, SRL16s and FFs for Distributed Math, pipelines• For HDTV (74.25 MHz)

– Inferred MULT_AND 8x8 or 10x10 Multipliers are Efficient.• Virtex-II embedded multiplier can be used to save other logic or in compression where

multiplies need 24 bit accuracy• Block RAM useful for Line Buffers and Line Fifos

– SDTV - 858 x 24 bits, 858 x 30– HDTV - 1920 x 24 or 1920 x 30

• High Speed Serial IO (LVDS, LVPECL_EXT, or Rocket IO) for high speed video transmission

• DCM allows easy generation of a bit rate clock for distributed arithmetic• MicroBlaze and PicoBlaze for protocol layers in compression and other video

algorithms

Page 118: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

FPGAs for HD Digital VideoSpartan-IIE Silicon Features Value for Digital Video ApplicationsFPGA Fabric and Routing, Up to

300,000 System GatesPerformance in excess of 30 billion MACs/second

Delay Locked Loops (DLLs) Clock multiplication and division, clock mirror, Improve I/O Perf.

SelectIO - HSTL-I, -III, -IV High-speed SRAM interface

SelectIO - SSTL3-I, -II; SSTL2-I, -II High-speed DRAM interface

SelectIO - GTL, PCI, AGP Chip-to-Backplane, Chip-to-Chip interfaces

Differential Signaling - LVDS, Bus LVDS, LVPECL

Bandwidth management (saving the number of pins), reduced power consumption, reduced EMI, high noise immunity

SRL-16 16-bit Shift Register ideal for capturing high-speed or burst-mode data and to store data in DSP applications

Distributed RAM DSP Coefficients, Small FIFOs

Block RAM Video Line Buffers, Cache Tag Memory, Scratch-pad Memory, Packet Buffers, Large FIFOs

Page 119: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Flexibility of DSP ProcessorsFlexibility of DSP Processors Performance of Custom ICsPerformance of Custom ICs

Xilinx DSP Solutions Offer the Best of Both Worlds With Low Cost!

Xilinx DSP Solutions Offer the Best of Both Worlds With Low Cost!

The Best of Both Worlds• Off-the-shelf devices• Faster time-to-market• Rapid adoption of

standards• Real time prototyping

• Parallel processing• Support high data rates• Optimal bit widths• No real-time software

coding

Page 120: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

• Unrivalled DSP Performance– TeraMAC/s via FPGA and Embedded Multiplier fabric for:

• Multimedia compression - MPEG2, MPEG4, H.26L, MJPEG, JPEG2000• Video processing - Integrated line buffers, enhancement, pattern recognition, noise

reduction, resizing, rotation, scalability• Convergence of emerging technologies in multimedia over IP & wireless

• For Standard Definition Pixel Rates (13.5 MHz pixels)• SDTV test equipment, broadcast test equipment, studio effects equipment, scan rate

converters, frame rate converters, MPEG-2 codecs

• For High Definition Pixel Rates or Multiple Channels of StandardDefinition (74.25 MHz pixels)

• HDTV test equipment, broadcast test equipment, home theater projection devices, advanced studio effects, conversions from SDTV, MPEG-2 4:2:2 profile codecs

XtremeDSP for Video

Page 121: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Xilinx Video Solutions • Enables the designer to add real value to his system

– Allows for experimentation in development that leads to differentiation in production

– Chipsets that support your exact requirements are never available!!

• Supports high definition real-time processing – Allows for hardware acceleration of key algorithms– More information down the pipe– Less memory requirements for off-line processing

• System on a chip integration– More channels on less chips– Saves valuable board space and can reduce overall BOM cost

Page 122: Digital Video & Image Processing - U of S EngineeringBandwidth/Quality Tradeoffs • Typical high definition (HD) system needs high bandwidth – 1920 x 1080 resolution, 24-bit pixels

Questions?

[email protected]