TKT-2431 SoC design. Introduction to exercises

Similar documents
TKT-2431 SoC design. Introduction to exercises. SoC design / September 10

Video Compression An Introduction

2014 Summer School on MPEG/VCEG Video. Video Coding Concept

Video Compression MPEG-4. Market s requirements for Video compression standard

Digital Video Processing

Index. 1. Motivation 2. Background 3. JPEG Compression The Discrete Cosine Transformation Quantization Coding 4. MPEG 5.

IMAGE COMPRESSION. Image Compression. Why? Reducing transportation times Reducing file size. A two way event - compression and decompression

Interframe coding A video scene captured as a sequence of frames can be efficiently coded by estimating and compensating for motion between frames pri

ECE 417 Guest Lecture Video Compression in MPEG-1/2/4. Min-Hsuan Tsai Apr 02, 2013

MPEG-4: Simple Profile (SP)

DigiPoints Volume 1. Student Workbook. Module 8 Digital Compression

Digital Image Representation Image Compression

Multimedia Decoder Using the Nios II Processor

ESE532: System-on-a-Chip Architecture. Today. Message. Project. Expect. Why MPEG Encode? MPEG Encoding Project Motion Estimation DCT Entropy Encoding

Implementing the specification. SoC design / September 09

Interactive Progressive Encoding System For Transmission of Complex Images

VC 12/13 T16 Video Compression

Video Compression Standards (II) A/Prof. Jian Zhang

Compression II: Images (JPEG)

CMPT 365 Multimedia Systems. Media Compression - Image

Lecture 5: Compression I. This Week s Schedule

Introduction to Video Compression

Professor Laurence S. Dooley. School of Computing and Communications Milton Keynes, UK

Fundamentals of Video Compression. Video Compression

Topic 5 Image Compression

Image and Video Coding I: Fundamentals

CMPT 365 Multimedia Systems. Media Compression - Video

Lecture 12: Compression

An H.264/AVC Main Profile Video Decoder Accelerator in a Multimedia SOC Platform

COMP 249 Advanced Distributed Systems Multimedia Networking. The Video Data Type Coding & Compression Basics

Cross Layer Protocol Design

CS 335 Graphics and Multimedia. Image Compression

Chapter 10. Basic Video Compression Techniques Introduction to Video Compression 10.2 Video Compression with Motion Compensation

Fernando Pereira. Instituto Superior Técnico

7.5 Dictionary-based Coding

Week 14. Video Compression. Ref: Fundamentals of Multimedia

Upcoming Video Standards. Madhukar Budagavi, Ph.D. DSPS R&D Center, Dallas Texas Instruments Inc.

Lecture 6: Compression II. This Week s Schedule

JPEG decoding using end of block markers to concurrently partition channels on a GPU. Patrick Chieppe (u ) Supervisor: Dr.

MULTIMEDIA COMMUNICATION

JPEG: An Image Compression System. Nimrod Peleg update: Nov. 2003

Perceptual Coding. Lossless vs. lossy compression Perceptual models Selecting info to eliminate Quantization and entropy encoding

Review and Implementation of DWT based Scalable Video Coding with Scalable Motion Coding.

In the name of Allah. the compassionate, the merciful

Low power context adaptive variable length encoder in H.264

VIDEO COMPRESSION STANDARDS

Lecture 5: Video Compression Standards (Part2) Tutorial 3 : Introduction to Histogram

Image Coding and Data Compression

Multimedia Standards

Lecture 4: Video Compression Standards (Part1) Tutorial 2 : Image/video Coding Techniques. Basic Transform coding Tutorial 2

Welcome Back to Fundamentals of Multimedia (MR412) Fall, 2012 Chapter 10 ZHU Yongxin, Winson

MPEG-2. And Scalability Support. Nimrod Peleg Update: July.2004

Audio and video compression

JPEG: An Image Compression System

DIGITAL TELEVISION 1. DIGITAL VIDEO FUNDAMENTALS

Introduction to Video Encoding

The Basics of Video Compression

Module 6 STILL IMAGE COMPRESSION STANDARDS

5LSE0 - Mod 10 Part 1. MPEG Motion Compensation and Video Coding. MPEG Video / Temporal Prediction (1)

Hardware Software Co-design and SoC. Neeraj Goel IIT Delhi

Part 1 of 4. MARCH

Ch. 4: Video Compression Multimedia Systems

PREFACE...XIII ACKNOWLEDGEMENTS...XV

Multimedia Signals and Systems Motion Picture Compression - MPEG

An introduction to JPEG compression using MATLAB

AUDIOVISUAL COMMUNICATION

IMAGE COMPRESSION. Chapter - 5 : (Basic)

Features. Sequential encoding. Progressive encoding. Hierarchical encoding. Lossless encoding using a different strategy

Digital Video Compression and H.261 Recommendation

15 Data Compression 2014/9/21. Objectives After studying this chapter, the student should be able to: 15-1 LOSSLESS COMPRESSION

Introduction to Video Coding

Compression Part 2 Lossy Image Compression (JPEG) Norm Zeck

Laboratoire d'informatique, de Robotique et de Microélectronique de Montpellier Montpellier Cedex 5 France

High Efficiency Video Coding. Li Li 2016/10/18

What is multimedia? Multimedia. Continuous media. Most common media types. Continuous media processing. Interactivity. What is multimedia?

Video Coding in H.26L

Video coding. Concepts and notations.

06/12/2017. Image compression. Image compression. Image compression. Image compression. Coding redundancy: image 1 has four gray levels

Module 7 VIDEO CODING AND MOTION ESTIMATION

Anatomy of a Video Codec

AN ANALYTICAL STUDY OF LOSSY COMPRESSION TECHINIQUES ON CONTINUOUS TONE GRAPHICAL IMAGES

The Scope of Picture and Video Coding Standardization

Multimedia Systems Image III (Image Compression, JPEG) Mahdi Amiri April 2011 Sharif University of Technology

Co-synthesis and Accelerator based Embedded System Design

Multimedia. What is multimedia? Media types. Interchange formats. + Text +Graphics +Audio +Image +Video. Petri Vuorimaa 1

Fernando Pereira. Instituto Superior Técnico. Comunicação de Áudio e Vídeo, Fernando Pereira

ROI Based Image Compression in Baseline JPEG

Lecture 13 Video Coding H.264 / MPEG4 AVC

Comparative Study of Partial Closed-loop Versus Open-loop Motion Estimation for Coding of HDTV

Digital Communication Prof. Bikash Kumar Dey Department of Electrical Engineering Indian Institute of Technology, Bombay

10.2 Video Compression with Motion Compensation 10.4 H H.263

LIST OF TABLES. Table 5.1 Specification of mapping of idx to cij for zig-zag scan 46. Table 5.2 Macroblock types 46

System Modeling and Implementation of MPEG-4. Encoder under Fine-Granular-Scalability Framework

Chapter 1. Digital Data Representation and Communication. Part 2

Megapixel Video for. Part 2 of 4. Brought to You by. Presented by Video Security Consultants

FPGA based High Performance CAVLC Implementation for H.264 Video Coding

Rate Distortion Optimization in Video Compression

Multimedia Networking ECE 599

Standard Codecs. Image compression to advanced video coding. Mohammed Ghanbari. 3rd Edition. The Institution of Engineering and Technology

Advanced Video Coding: The new H.264 video compression standard

Transcription:

TKT-2431 SoC design Introduction to exercises

Assistants: Exercises Jussi Raasakka jussi.raasakka@tut.fi Otto Esko otto.esko@tut.fi In the project work, a simplified H.263 video encoder is implemented on Altera DE2 FPGA Development and Education board The projects work consists of a set of exercises After successfully finishing each exercise, one should have a working H.263 video encoder Exercises: Mon 14-16, Fri 10-12(TC417) Assistance not available in any other time All needed software is installed on the PCs of the class and can be used whenever the class is not reserved for other courses

Exercises cont. Attending the exercise hours is voluntary The following assignment is introduced Tools and algorithms are introduced Hints are given Questions are answered Completing each of the exercises is mandatory The returns have to be in time The returns have to be accepted Exercise work is carried out in groups of 1-2 students Groups of 2 persons are preferred

You must have: Access rights to TC417 Exercises cont. Fill the access rights application (link on the exercise page) and return to Timo Rintakoski (TH305) Lintula user account Fill in the user account application and return to Lintula mailbox

Exercises cont. Completed exercise work is valid for three successive exams Points from the exercise work You can gain points from some of the exercises See exercise pages for more detail Bonus point criteria will be explained during the first exercises http://www.tkt.cs.tut.fi/kurssit/2431

Exercise 1 / Part 1 Introduction to topic

Topic of the work A simplified H.263 video encoder on DE2 FPGA Education and Development board The exercise work consists of several phases and sub-tasks Receiving and understanding the system requirements Writing a system specification Software implementation of the encoder on desktop PC Functional verification on desktop PC Creating the SoC platform on FPGA Porting the SW implementation onto the SoC platform Verification and performance profiling for pure SW implementation HW/SW partitioning and hardware acceleration Verification and performance profiling for accelerated implementation Documentation

H.263 The basics of H.263 video encoding are explained during following exercises Students are encouraged to get familiar with video encoding algorithms in general before they start the project H.263 has a lot in common with algorithms like JPEG and MPEG-2 A very simplified version of H.263 video encoder (resembling motion JPEG) is used. Only INTRA coding (i.e. prediction of subsequent frames is not applied) The utilized key algorithms are DCT (Discrete Cosine Transform), Quantization, RLE (Run-Length Encoding), and VLC (Variable Length Code.

Software Altera Quartus II v7.2 System development and FPGA synthesis SOPC Builder for building Avalon/Nios II based systems Integrated Iogic analyzer for HW debugging Nios II IDE Software development environment for Nios II processor Nios2-terminal Terminal software for Nios II standard stream inteface via jtag uart (Mentor Graphics ModelSim) Simulating own VHDL blocks/designs ffplay video player tmndec H.263 decoder

Hardware Desktop PC w/ Linux OS Platform for the first encoder implementation Utilized to verify the encoded video bitstream Altera DE2 Development and Education Board Platform for the created Nios II based SoC

Exercise returns Exercises are returned as follows: Return for an exercise has to be made before the next week s sunday at 23:59 by E-mail Deadline dates are on the exercise pages Return your exercises to tkt2431@cs.tut.fi All the required documents have to be in either pdf or pure text-file format The subject for the email has the following form: SOCD_Ex<exercise_number>_G<group_number> where <exercise_number> is the number of the exercise in question and <group_number> is the number of your group. e.g. exercise 3, group number 13: SOCD_Ex3_G13

Bonus points Three main exercise returns are rated Excellent: 1 bonus point for the exam The returned document is very good and/or the returned source codes work correctly and are well done Accepted: no bonus The returned document or code is acceptable Rejected: no bonus, the return has to be corrected Use common sense: Do not return rubbish! All the exercises must be accepted Exercise points for the exam can be obtained: 1 point can be obtained from each of the exercises 2, 5, 12 Encoder achieves the given frame rate criteria (2p if > 75fps, 1p if > 50 fps) 2 most optimized encoder are awarded extra points Bonus exercise: Dual Nios II encoder implementation Up to 3 bonus points can be achieved

Exercise 1, Part 2 Introduction to algorithms

Requirements for Video Transmission Communication delay (latency) More important in video conferencing applications than in file-based streaming applications Should be as low as possible (< 250 ms, even 150 ms) Should be kept as constant as possible Avoiding burst of frames followed by a still image Buffering Frame rate Affects to perceived smoothness of motion Under 10 fps video stream is perceived as fast slide show Image resolution Directly proportional to data size of a raw image Depends on the application

Introduction to H.263 Standard May 1996, ITU-T recommendation v1 Block-based ( Macroblock size is 16 pixels by 16 lines ) Motion estimation for temporal redundancy reduction Same objects are likely to be present in adjacent frames Half pixel accurate motion vectors DCT for spatial redundancy reduction 8 x 8 blocks Adjacent pixel values have only a little difference Quantization (lossy) Control of compression ratio RLE and Huffman as entropy coding algorithms Lossless compression

Block Diagram of H.263 Encoder + pre-processing + DCT Q Entropy coding 1/2 pixel accurate (interpolation) - Mot. Comp v(u,v) Mot. Est. Prediction error computation In Intra mode, MBs are coded directly Q -1 IDCT motion vector v(u,v) Previous reconstructed pictures (same image as the decoder observes) 7 0 4 0 0 0 0 1 1 9 3 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 bits out (Huffman, VLC) No need to send zeros in 8x8 block to the decoder

Discrete Cosine Transform (DCT) Assumption: Adjacent pixels differ only a little from each other Thus, data in the frequency domain is easier to compress Spatial domain compression Pixels are grouped into blocks and the blocks are then transformed into frequency domain Essential information is then in more compact form Important DCT-coefficients in upper-left corner, that is, in low frequencies Compression is achieved by discarding the less important information of the transformed block Quantization of coefficients DCT itself is a lossless transform Limited accuracy with coefficients, however, leads to some loss of information

Entropy Encoding Next, the quantized coefficients are compressed in a lossless manner using entropy encoding Run-length coding o o o Lower amplitude coefficient likely to be zero Arrange successive quantized non-zero coefficients into combinations of (LAST, RUN, LEVEL) Last = Whether this is the final non-zero coefficient in the block RUN = Number of preceding zeros LEVEL = sign and magnitude of the non-zero coefficient Coefficients are processed in zig-zag order Due to the fact that running zeros are most likely located at higher frequencies Huffman coding (variable length coding) o After RLE coefficients are encoded based on the statistical characteristics Shorter codewords for symbols which occur with high probability

H.263 Project work A simplified version of H.263 video is created only INTRA coding (i.e. no motion estimation/compenstation) Key algorithms: DCT, quantization, RLE and VLC) Supported image resolution is QCIF (176 x 144) Encoder: pre-processing DCT Q Entropy coding 011001011 Decoder: 011001011 Entropy decoding Q -1 IDCT Reconstructed pictures

Documentation Verification Design flow Requirements Specification Performance analysis SW Implementation Performance analysis HW/SW partitioning Performance analysis Final Implementation

Specification On this week the specification of the encoder is started Required C source codes for the encoder are given Can be downloaded from course web-pages You have to write a simple specification for the video encoder system you are going to implement Specification does not have to be long The quality of the content matters 4-7 pages in total is enough (including the chapters introduced on next week) Remember: LONG!= GOOD Don t submit 31 pages of BS A diagram of the video encoding flow is required Control and data flow diagram describing how the pre-given H.263 functions are used

Specification (2) 1. Introduction What is being specified 2. Flow of encoding Present different phases of the encoding Explain the encoding flow briefly A flow diagram of encoding is required! 3. Encoder interface Inputs and outputs of the encoder What kind of data is read in? (format etc.) What is the output data like? 4.Description of algorithms Function prototypes (find from the given C codes) Description of function parameters and return values Description of function behavior and purpose in this design At least DCT, quantization, RLE, and VLC have to be covered here The subsequent sections will be written in exercise 2.

First exercise submission Don t return your unfinished specification What is being specified Instead describe the following things briefly in the submission email: Description of the encoding flow Purpose of the key algorithms in the encoding process: DCT Quantization RLE VLC Deadline is on the exercise page

Links on H.263 related material http://www.itu.int/rec/t-rec-h.263/ ITU-T specification of H.263 http://www.jaxstream.com/products/jaxspeed/wp_m4venc.pdf Basics of MPEG-4 video encoding http://www.ece.purdue.edu/~ace/jpeg-tut/jpegtut1.html JPEG tutorial