MPEG4 Programming Guide

Size: px
Start display at page:

Download "MPEG4 Programming Guide"

Transcription

1 MPEG4 Programming Guide October 2006 Version 1.0

2

3 1 Introduction Before this version the MPEG4 function is implement as USER mode application. To support full duplex function, the MPEG4 software engine has changed to put in linux kernel mode. The USER mode engine will not be maintained from now. The following is the device describtion: Major Number Minor Number MPEG4 Decoder (/dev/fdec) MPEG4 Encoder (/dev/fenc) To use it, you must insert the driver module in Embedded site. The fmcp_drv.o module must insert before fmpeg4_drv.o: #insmod fmpeg4_drv.o mp4_max_width=720 mp4_max_height=480 The parameter of mp4_max_width specifies the maximum supported width of frame, so is mp4_max_height. These value will affect the size of buffer allocation in MPEG4 buffer. PLEASE NOTE, the fmcp_drv.o module must insert before fmjpeg_drv.o. 1.1 Source Directory As the combination of ffmpeg package, the MPEG4 driver is located in ffmpeg directory. The source tree is: /ffmpeg-0.4.8/libfaraday/ftmcp100_module fmpeg4_avcodec fmpeg4_driver fmpeg4_avcodec: The MPEG4 codec source definition for ffmpeg fmpeg4_driver: The MPEG4 linux driver module that will not be released in normal case. To compiler is in ffmpeg-0.4.8: #cd ffmpeg #make The driver module fmpeg4_drv.o will be created in directory: /ffmpeg-0.4.8/libfaraday/ftmcp100_module/fmpeg4_driver/fmpeg4_drv.o The codec source definition for ffmpeg will be created in in directory: /ffmpeg-0.4.8/libfaraday/ftmcp100_module/fmpeg4_avcodec/favcodec.o The fmpeg4_drv.o will alos copy to output direcotry /tmp. Brief Spec. 1 Version 1.0 / October 2006

4 MPEG4 Programming Guide 1.2 Kernel mode MPEG4 driver Usage To use MPEG4 driver, you can refer to the directory /ffmpeg-0.4.8/libfaraday/ftmcp100_module/fmpeg4_avcodec. The source code: Makefile fmpeg4_avcodec.c fmpeg4_avcodec.h ratecontrol.c ratecontrol.h Another sample you can take for reference has no relationship with ffmpeg. /ffmpeg-0.4.8/libfaraday/ftmcp100_module/sample Makefile mpeg4_main.c fmpeg4_avcodec.h ratecontrol.c ratecontrol.h To use the kernel driver, you can modify the example by yourself. Makefile <Your main program>.c fmpeg4_avcodec.h ratecontrol.c ratecontrol.h PLEASE NOTE, the rate control program MUST include in MPEG4 kernel mode driver, that is, ratecontrol.c and ratecontrol.h. 1.3 How to set MPEG4 driver polling/irq mode on with/without RISC architecture You can change the configuration by re-write the config.mak file. And, the config file is placed in./fmjpeg_driver. In the config.mak, you can find the section that can be changed by user. If the functions or features must enable, please set their condition equal to yes. And. If the functions or features must disable, please set their condition equal to no. The FIC8120 platform is only support polling mode and non-risc architecture. The fmpeg4_drv.o is need to config liked as the following. CONFIG_FTMCP100_IRQ_MODE = no CONFIG_FTMCP100_RISC= no

5 CONFIG_FTMCP100_NO_RISC= yes The FIE8150 and FIE8160 is only not support IRQ mode on non-risc architecture. For FIE8150/FIE8160 polling mode on without RISC architecture, the fmpeg4_drv.o is need to config liked as the following. CONFIG_FTMCP100_IRQ_MODE = no CONFIG_FTMCP100_RISC= no CONFIG_FTMCP100_NO_RISC= yes For FIE8150/FIE8160 polling mode on with RISC architecture, the fmpeg4_drv.o is need to config liked as the following. CONFIG_FTMCP100_IRQ_MODE = no CONFIG_FTMCP100_RISC= yes CONFIG_FTMCP100_NO_RISC= no For FIE8150/FIE8160 IRQ mode on with RISC architecture, the fmpeg4_drv.o is need to config liked as the following. CONFIG_FTMCP100_IRQ_MODE = yes CONFIG_FTMCP100_RISC= yes CONFIG_FTMCP100_NO_RISC= no 1.4 How to set the resolution for MPEG4 driver There there resolutions for MPEG4 driver, and the default resolution is 720x576. You can choose the suitable condition to meet your case. The default resolution is liked as the following. CONFIG_2592x1944_RESOLUTION = no CONFIG_1600x1200_RESOLUTION = no CONFIG_720x576_RESOLUTION = yes 1.5 How to set the output format for MPEG4 driver There there resolutions for MPEG4 driver, and the default resolution is 720x576. You can choose the suitable condition to meet your case. If you want to enable the condition, please clear the symbol #. The default resolution is liked as the following. #CFLAGS += -DOUTPUT_FORMAT_RGB555 #CFLAGS += -DOUTPUT_FORMAT_RGB565 Brief Spec. 3 Version 1.0 / October 2006

6 MPEG4 Programming Guide #CFLAGS += -DOUTPUT_FORMAT_RGB888 #CFLAGS += -DOUTPUT_FORMAT_CbYCrY CFLAGS += -DOUTPUT_FORMAT_YUV Note: Don t forget to select a suitable configuration for fmcp_drv.o. You can change the configuration by re-write the config.mak file. The config file is place in./fmcp_common.

7 2 MPEG4 driver IOCTL definition To use MPEG4 driver, you must call the ioctl that provided by driver. 2.1 Decoder FMPEG4_IOCTL_DECODE_INIT The ioctl is to initialize MPEG4 driver. To use it, you must prepare the structure FMP4_DEC_PARAM for input parameter. FMPEG4_IOCTL_DECODE_FRAME The ioctl is to decode one MPEG4 frame. To use it, you must prepare the structure fmpeg4_parm_t for input parameter. 2.2 Encoder FMPEG4_IOCTL_ENCODE_INIT The ioctl is to initialize MPEG4 driver. To use it, you must prepare the structure FMP4_ENC_PARAM for input parameter. FMPEG4_IOCTL_SET_INTER_QUANT The ioctl is to initialize customize Quantization table. To use it, you must prepare an inter quant file for input file. FMPEG4_IOCTL_SET_INTRA_QUANT The ioctl is to initialize customize Quantization table. To use it, you m must prepare an intra quant file for input file. FMPEG4_IOCTL_ENCODE_FRAME The ioctl is to do encode one MPEG4 frame. To use it, you must prepare the structure Faraday_ENC_FRAME for input parameter. And the function call will return the output value: enc_frame.intra: The value to see if the frame is intra-frame enc_frame.length: The length of bitstream after encoded FMPEG4_IOCTL_ENCODE_INFO The ioctl is to get macro block information from MPEG4 driver. To use it, you must prepare the structure MACROBLOCK_INFO that will return back the result. Brief Spec. 5 Version 1.0 / October 2006

8 MPEG4 Programming Guide 3 The MPEG4 driver The MPEG4 driver is based on linux MISC device architecture. User application can use the provied ioctl to do MPEG4 encode or decoder. This document introduces the programming guide for MPEG4 codec. MPEG4 Initial MPEG4 Initial MPEG4 Decode Next frame MPEG4 Encode Next frame MPEG4 Close MPEG4 Close The example is comming from ffmpeg: ffmpeg-0.4.8/libfaraday/ftmcp100_module/fmpeg4_avcodec/fmpeg4_avcodec.c 3.1 MPEG4 Decode MPEG4 Decoder Initial int fmpeg4_dec_fd=0; int decoder_init(...) FMP4_DEC_PARAM tdecparam; int err; if(fmpeg4_dec_fd==0) fmpeg4_dec_fd=open(fmpeg4_decoder_dev,o_rdwr); if(fmpeg4_dec_fd<=0) return -1; tdecparam.u32api_version = 0x ; tdecparam.u32maxwidth = 640; tdecparam.u32maxheight = 480; tdecparam.u32framewidth = 640; tdecparam.u32frameheight = 480;

9 err=ioctl(fmpeg4_dec_fd,fmpeg4_ioctl_decode_init,&tdecparam); if(err<0) return -1; return 0; The major parameter for initialization is described as follows: typedef struct README FMP4_DEC_PARAM u32api_version It should be 0x To indicate the MPEG4 engine version. u32maxwidth It indicates the video image width. u32maxheight It indicates the video image height. u32framewidth It indicates the ouput frame width. The stride width may be larger than u32maxwidth. u32frameheight It indicates the ouput frame width. The stride width may be larger than u32maxheight MPEG4 Decode int decode(...) fmpeg4_parm_t int parm; err; /* give input virtial address */ parm.input_va_y=... parm.length=buf_size; /* give output virtial address */ parm.output_va_y=... parm.output_va_u=... parm.output_va_v=... err=ioctl(fmpeg4_dec_fd,fmpeg4_ioctl_decode_frame,&parm); if(err<0) return -1; return parm.length; Brief Spec. 7 Version 1.0 / October 2006

10 MPEG4 Programming Guide The major parameter for decoding is described as follows: typedef struct fmpeg4_parm_t input_va_y input_va_u input_va_v output_va_y output_va_u output_va_v got_picture Length README It indicates the Y address of input video image. It should be continued user virtual address. If not, the message Warring! The decode Y output buffer not continued! Please use mmap instead. will alarm you. The U address same usage as input_va_y The V address same usage as input_va_y It indicates the Y address of output video bitstream. It indicates the U address of output video bitstream. It indicates the V address of output video bitstream. After decoding by ioctl, this parameter got_picture returns the attribute of bitstream. To indicate if it is I-frame. It indicate the length of bitstream MPEG4 Close int decoder_end(...) if(fmpeg4_dec_fd) close(fmpeg4_dec_fd); fmpeg4_dec_fd=0; return 0; 3.2 MPEG4 Encode MPEG4 Encoder Initial RateControl ratec; int fmpeg4_enc_fd; int enc_init(...) FMP4_ENC_PARAM enc_param; int err; if(fmpeg4_enc_fd==0) fmpeg4_enc_fd=open(fmpeg4_encoder_dev,o_rdwr); if(fmpeg4_enc_fd==0) printf("fail to open %s\n",fmpeg4_encoder_dev); return -1; enc_param.u32bitrate=1024;

11 enc_param.u32framewidth=640; enc_param.u32frameheight=480; enc_param.fframerate=30; enc_param.u32initialquant=4; enc_param.u32ipinterval=15; enc_param.bshortheader=0; enc_param.benable4mv=0; enc_param.bh263quant=1; enc_param.bresyncmarker=0; enc_param.u32maxquant=31; enc_param.u32minquant=2; // ROI related encoding parameters enc_param.broienable = 0; //0:disable 1:enable enc_param.u32roix = ROIX; // must be a multiple of 16 pixels enc_param.u32roiy = ROIY; // must be a multiple of 16 pixels enc_param.u32roiwidth = enc_param.u32framewidth; // must be a multiple of 16 pixels enc_param.u32roiheight = enc_param.u32frameheight; // must be a multiple of 16 pixels RateControlInit(&ratec,enc_param.u32BitRate*1000,DELAY_FACTOR, RC_AVERAGE_PERIOD, ARG_RC_BUFFER, get_framerate(enc_param.fframerate), enc_param.u32maxquant,enc_param.u32minquant,enc_param.u32initialquant); err=ioctl(fmpeg4_enc_fd,fmpeg4_ioctl_encode_init,&enc_param); if(err<0) return -1; return 0; The major parameter for initialization is described as follows: typedef struct FMP4_ENC_PARAM u32bitrate u32framewidth u32frameheight fframerate u32initialquant bshortheader benable4mv README It indicates the bit rate value. (Kbit/s unit). It indicates the frame width. It indicates the frame height. It indicates the frame rate. It indicates the initialization quantization value. User can decides the first frame quant value. It indicates if you want to use MPEG4 short header format. It indicates if you want to use 4MV function. Please note the performance may be slower than 1MV for better motion estimation. 0: 1MV (default) 1: 4MV bh263quant bresyncmarker It selects the H.263 quantization method or MPEG4 quantization method. 0:MPEG4 (default) 1:H263 It decides if resync marker mechanism is enabled. 0:Disabled (default) 1:Enabled Brief Spec. 9 Version 1.0 / October 2006

12 MPEG4 Programming Guide u32maxquant u32minquant To set the maximum quantization value range To set the minimum quantization value range MPEG4 Encode int encode(...) int err; Faraday_ENC_FRAME enc_frame; int keyframe; /* give input Y U V address */ enc_frame.pu8yframebaseaddr =... enc_frame.pu8uframebaseaddr =... enc_frame.pu8vframebaseaddr =... enc_frame.bitstream=frame; //output User Virtual address enc_frame.quant = ratec.rtn_quant; enc_frame.intra = -1; // ROI related encoding parameters enc_param.broienable = 0; //0:disable 1:enable enc_param.u32roix = 0; // must be a multiple of 16 pixels enc_param.u32roiy = 0; // must be a multiple of 16 pixels enc_param.u32roiwidth = enc_param.u32framewidth; // must be a multiple of 16 pixels enc_param.u32roiheight = enc_param.u32frameheight; // must be a multiple of 16 pixels err=ioctl(fmpeg4_enc_fd,fmpeg4_ioctl_encode_frame,&enc_frame); if(err<0) return -1; RateControlUpdate(&ratec,enc_frame.quant, enc_frame.length, enc_frame.intra); keyframe=enc_frame.intra; //the return value in enc_frame.intra return enc_frame.length; The major parameter for encoding is described as follows: typedef struct README Faraday_ENC_FRAME pu8yframebaseaddr It indicates the Y address of YUV raw data. That is input buffer prepared to be encoding.

13 pu8uframebaseaddr pu8vframebaseaddr bitstream quant intra length broienable u32roix u32roiy u32roiwidth u32roiheight It indicates the U address of YUV raw data. That is input buffer prepared to be encoding. It indicates the V address of YUV raw data. That is input buffer prepared to be encoding. It indicates the output bitstream address to encoder driver. After encoding finished, the encoder will prepare the bitstream data in this buffer. It provides that you can assign the quant value for this frame. And you may have a rate control mechanism to decide this value. We provide a simple one in the example of ffmpeg. After encoding, it returns to indicate if it is intra-frame or inter-frame. After encoding, it returns the bitstream length. Indicate the ROI (region of interest) function if enabled Set the ROI X coordinate, it must be 16 pixel multiple Set the ROI Y coordinate, it must be 16 pixel multiple Set the region width, it must be 16 pixel multiple Set the region height, it must be 16 pixel multiple 720 (u32roix, u32roiy) 480 u32roiwidth Encode Region u32roiheight MPEG4 Close int enc_close(...) if(fmpeg4_enc_fd) close(fmpeg4_enc_fd); fmpeg4_enc_fd=0; return 0; Get Macroblock Information Brief Spec Version 1.0 / October 2006

14 MPEG4 Programming Guide int enc_get_mbinfo(macroblock_info *mbinfo) err=ioctl(fmpeg4_enc_fd,fmpeg4_ioctl_encode_info,mbinfo); if(err<0) printf("error to set FMPEG4_IOCTL_ENCODE_INFO\n"); return -1; return 0;

15 4 MPEG4 Input/Output Control When user application use the MPEG4 driver kernel mode, it must take care of input and output buffer control. That is the condiction of continues memory layout. We discuss this as follows. 4.1 MPEG4 decode To handle the decoder output parameter, the situation example lists are described as follows. Assume the resolution is 640x480. Output to LCD frame buffer Direct output the decoded data to LCD buffer for display. int lcd_fd; lcd_fd = open("/dev/fb0", O_RDWR); //open frame buffer device mmap_addr=(unsigned int)mmap(0,mmap_sz,prot_read PROT_WRITE,MAP_SHARED,lcd_fd, 0); void decode( ) fmpeg4_parm_t parm; parm.output_va_y= mmap_addr; parm.output_va_u= mmap_addr+(640*480); //assume it is 640x480 parm.output_va_v= mmap_addr+(640*480)+(320*240); Output to memory buffer unsigned int mmap_addr; int fmpeg4_dec_fd; fmpeg4_dec_fd=open(fmpeg4_encoder_dev,o_rdwr); mmap_addr=mmap(0,640*480*3/2,prot_read PROT_WRITE,MAP_SHARED,fmpeg4_enc_fd, 0); void decode( ) fmpeg4_parm_t parm; parm.output_va_y= mmap_addr; parm.output_va_u= mmap_addr+(640*480); //assume it is 640x480 parm.output_va_v= mmap_addr+(640*480)+(320*240); Brief Spec Version 1.0 / October 2006

16 MPEG4 Programming Guide If you can t make sure the output address is continues, you should use mmap instead. If the address is not continues, the warning message occurred: Warring! The decode Y output buffer not continued! Please use mmap instead MPEG4 encode Input from capture buffer Direct input from capture buffer. int capture_fd; unsigned int mmap_addr; capture_fd=open(video_device, O_RDWR); mmap(0, buf, 640*480*3/2, PROT_READ PROT_WRITE, MAP_SHARED, fd, 0); //setup the buffer ioctl(capture_fd, VIDIOCSYNC, &frame); //get capture driver parameter mmap_addr=frame. mmapaddr; //get video virtual frame buffer void encode( ) Faraday_ENC_FRAME enc_frame; enc_frame.pu8yframebaseaddr=mmap_addr; enc_frame.pu8uframebaseaddr=mmap_addr+(640*480); //assume 640x480 enc_frame.pu8vframebaseaddr=mmap_addr+(640*480)+(320x240); Input from memory buffer int fmpeg4_enc_fd; unsigned int mmap_addr; fmpeg4_enc_fd=open(fmpeg4_encoder_dev,o_rdwr); mmap_addr=mmap(0,640*480*3/2,prot_read PROT_WRITE,MAP_SHARED,fmpeg4_enc_fd, 0); void encode( ) Faraday_ENC_FRAME enc_frame; enc_frame.pu8yframebaseaddr=mmap_addr; enc_frame.pu8uframebaseaddr=mmap_addr+(640*480); //assume 640x480 enc_frame.pu8vframebaseaddr=mmap_addr+(640*480)+(320x240);

17 If you can t make sure the input address is continues, you should use mmap instead. If the address is not continues, the warning message occurred: Warring! The encode Y output buffer not continued! Please use mmap instead.. To try the mmap function in ffmpeg package, you may trace the fmpeg4_avcodec.c: //#define USE_MMAP #define USE_MMAP That will change the memory usage to MMAP. You can take it for your reference. Brief Spec Version 1.0 / October 2006

18 MPEG4 Programming Guide 5 MPEG4 Motion Dection To implement the motion dection function in FIC8120, you have two way to do it: Customer definied motion dection algorithm by MV (motion vector) Faraday s motion dection example (under ffmpeg package) 5.1 Customer definied motion dection function by MV The Faraday s MPEG4 driver provides Motion Vector information for your reference. You can use the MV information to do what you want about motion dection algorigthm. To get the motion vector. You must use: MACROBLOCK_INFO *mbinfo ioctl(fmpeg4_enc_fd,fmpeg4_ioctl_encode_info,mbinfo); Where the fmpeg4_enc_fd is the driver descriptor. And after you cann ioctl, you can get the mbinfo. That is the motion vector by macro blocks. As the following example to 320x240 frame size, you can get the mbinfo[n], where N is macro block index. mbinfo[0] mbinfo[1] mbinfo[2] mbinfo[3] mbinfo[19] mbinfo[20] mbinfo[40] mbinfo[299] 5.2 Faraday s motion dection example We provide a motion dection function in ffmpeg package with MPEG4 driver. You can refer to fmpeg4_avcodec.c source code.

19 The motion dection flow is as follows: The main program read the configuration file named m.cfg. And deside to trigger a signal to a alarm monitor (use process ID). After alarm monitor receive the signal, it use ftp or emal to notify user. You can try it in our released software package Configuration File for motion dection In ffmpeg package, you may use motion dection option. #./ffmpeg motion m.cfg And the m.cfg.8120 is the configuration for motion dection. The example to parameter of configuration for motion dection is described as follows: pid 23 md_interval 22 x0_lu 0 y0_lu 0 x0_rd 40 y0_rd 10 x1_lu 0 y1_lu 10 x1_rd 40 y1_rd 20 x2_lu 0 y2_lu 20 x2_rd 40 y2_rd 30 mv_th0 8 sad_th0 512 dev_th0 512 alarm_idx0 100 Brief Spec Version 1.0 / October 2006

20 MPEG4 Programming Guide mv_th1 8 sad_th1 512 dev_th1 512 alarm_idx1 100 mv_th2 8 sad_th2 512 dev_th2 512 alarm_idx2 100 The explain to the parameter is: pid: The process id of alarm monitor. Main program will send signal to this process id when motion occured. md_interval: The frame interval to do motion dection. 22 means one motion dection computing per 22 frames. x0_lu: The left-up X coordinate to motion dection region 0 y0_lu: The left-up Y coordinate to motion dection region 0 x0_rd: The right-down X coordinate to motion dection region 0 y0_rd:the right-down Y coordinate to motion dection region 0 x1_lu: The left-up X coordinate to motion dection region 1 y1_lu: The left-up Y coordinate to motion dection region 1 x1_rd: The right-down X coordinate to motion dection region 1 y1_rd:the right-down Y coordinate to motion dection region 1 x2_lu: The left-up X coordinate to motion dection region 2 y2_lu: The left-up Y coordinate to motion dection region 2 x2_rd: The right-down X coordinate to motion dection region 2 y2_rd:the right-down Y coordinate to motion dection region 2 mv_th0: Region 0 Motion Vector threshold (0-1922). Slow value high sensitive. sad_th0: Region 0 SAD threshold ( ). Slow value high sensitive. dev_th0:region 0 SAD threshold ( ). Slow value high sensitive. alarm_idx0 Region 0 Alarm index threshold. When computing index larger than it, the main program send alarm signal to pid. mv_th0: Region 0 Motion Vector threshold (0-1922). Slow value high sensitive. sad_th0: Region 0 SAD threshold ( ). Slow value high sensitive. dev_th0:region 0 SAD threshold ( ). Slow value high sensitive. alarm_idx0 Region 0 Alarm index threshold. When computing index larger than it, the main program send alarm signal to pid.

21 mv_th2: Region 2 Motion Vector threshold (0-1922). Slow value high sensitive. sad_th2: Region 2 SAD threshold ( ). Slow value high sensitive. dev_th2:region 2 SAD threshold ( ). Slow value high sensitive. alarm_idx2 Region 2 Alarm index threshold. When computing index larger than it, the main program send alarm signal to pid. 5.3 Motion Dection Algorithm MV algorithm It uses sum of motion vections to determine motion if larger than threshold SAD algorithm SAD means the sum absolute difference generated from motion estimation DEV algorithm DEV means N N 2 Mean Cij = / N i= 1 j= 1 Dev = N N i= 1 j= 1 C ij Mean Motion vector Motion estimation Motion Dection Algorithm Flow x^2+y^2 > mv_th && sad > sad_th? Yes Delta-dev > dev_th? Yes Index++ Check next MB Brief Spec Version 1.0 / October 2006

Xvid. Introduction. Junjie Cao. What s Xvid? WhyXvid. An open source implementation of the MPEG-4 standard.

Xvid. Introduction. Junjie Cao. What s Xvid? WhyXvid. An open source implementation of the MPEG-4 standard. Xvid Junjie Cao What s Xvid? Introduction An open source implementation of the MPEG-4 standard. WhyXvid Open Source DivX 3.11 - > DivX 4 Closed source DivX 5 Open Source Xvid 1 Architecture The Xvid source

More information

Lab 09 - Virtual Memory

Lab 09 - Virtual Memory Lab 09 - Virtual Memory Due: November 19, 2017 at 4:00pm 1 mmapcopy 1 1.1 Introduction 1 1.1.1 A door predicament 1 1.1.2 Concepts and Functions 2 1.2 Assignment 3 1.2.1 mmap copy 3 1.2.2 Tips 3 1.2.3

More information

NVJPEG. DA _v0.2.0 October nvjpeg Libary Guide

NVJPEG. DA _v0.2.0 October nvjpeg Libary Guide NVJPEG DA-06762-001_v0.2.0 October 2018 Libary Guide TABLE OF CONTENTS Chapter 1. Introduction...1 Chapter 2. Using the Library... 3 2.1. Single Image Decoding... 3 2.3. Batched Image Decoding... 6 2.4.

More information

MaRTE OS Misc utilities

MaRTE OS Misc utilities MaRTE OS Misc utilities Daniel Sangorrin daniel.sangorrin@{unican.es, gmail.com} rev 0.1: 2008-5-12 1. Circular Memory Buffer This is a generic software component that allows the user to write some data

More information

Introduction to Video Compression

Introduction to Video Compression Insight, Analysis, and Advice on Signal Processing Technology Introduction to Video Compression Jeff Bier Berkeley Design Technology, Inc. info@bdti.com http://www.bdti.com Outline Motivation and scope

More information

Using MV/SAD information from DM365 encoder in application

Using MV/SAD information from DM365 encoder in application Using MV/ information from DM365 encoder in application Version 1.0 Usage for Motion Vector and for DM365 codecs This document describes the motion vector and information passed by the DM365 encoder and

More information

A Linux multimedia platform for SH-Mobile processors

A Linux multimedia platform for SH-Mobile processors A Linux multimedia platform for SH-Mobile processors Embedded Linux Conference 2009 April 7, 2009 Abstract Over the past year I ve been working with the Japanese semiconductor manufacturer Renesas, developing

More information

File Systems: Consistency Issues

File Systems: Consistency Issues File Systems: Consistency Issues File systems maintain many data structures Free list/bit vector Directories File headers and inode structures res Data blocks File Systems: Consistency Issues All data

More information

Introduction to Video Encoding

Introduction to Video Encoding Introduction to Video Encoding Preben N. Olsen University of Oslo and Simula Research Laboratory preben@simula.no August 26, 2013 1 / 37 Agenda 1 Introduction Repetition History Quality Assessment Containers

More information

ECEN 449 Microprocessor System Design. Review of C Programming. Texas A&M University

ECEN 449 Microprocessor System Design. Review of C Programming. Texas A&M University ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh programming skills 2 Basic C program structure # include main()

More information

Final Step #7. Memory mapping For Sunday 15/05 23h59

Final Step #7. Memory mapping For Sunday 15/05 23h59 Final Step #7 Memory mapping For Sunday 15/05 23h59 Remove the packet content print in the rx_handler rx_handler shall not print the first X bytes of the packet anymore nor any per-packet message This

More information

The Embedded I/O Company TIP700-SW-82 Linux Device Driver User Manual TEWS TECHNOLOGIES GmbH TEWS TECHNOLOGIES LLC

The Embedded I/O Company TIP700-SW-82 Linux Device Driver User Manual TEWS TECHNOLOGIES GmbH TEWS TECHNOLOGIES LLC The Embedded I/O Company TIP700-SW-82 Linux Device Driver Digital Output 24V DC Version 1.2.x User Manual Issue 1.2.1 February 2009 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 Phone: +49 (0) 4101 4058 0 25469

More information

Qualcomm High Efficiency Video Coding (HEVC) Video Encoder

Qualcomm High Efficiency Video Coding (HEVC) Video Encoder Qualcomm Technologies, Inc. Qualcomm High Efficiency Video Coding (HEVC) Video Encoder User Manual 80-PC029-2 Rev. B July 11, 2017 Qualcomm is a trademark of Qualcomm Incorporated, registered in the United

More information

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

MPEG-2. And Scalability Support. Nimrod Peleg Update: July.2004 MPEG-2 And Scalability Support Nimrod Peleg Update: July.2004 MPEG-2 Target...Generic coding method of moving pictures and associated sound for...digital storage, TV broadcasting and communication... Dedicated

More information

ECEN 449 Microprocessor System Design. Review of C Programming

ECEN 449 Microprocessor System Design. Review of C Programming ECEN 449 Microprocessor System Design Review of C Programming 1 Objectives of this Lecture Unit Review C programming basics Refresh es programming g skills s 2 1 Basic C program structure # include

More information

NVJPEG. DA _v0.1.4 August nvjpeg Libary Guide

NVJPEG. DA _v0.1.4 August nvjpeg Libary Guide NVJPEG DA-06762-001_v0.1.4 August 2018 Libary Guide TABLE OF CONTENTS Chapter 1. Introduction...1 Chapter 2. Using the Library... 3 2.1. Single Image Decoding... 3 2.3. Batched Image Decoding... 6 2.4.

More information

Using animation to motivate motion

Using animation to motivate motion Using animation to motivate motion In computer generated animation, we take an object and mathematically render where it will be in the different frames Courtesy: Wikipedia Given the rendered frames (or

More information

PROJECT 2 - MEMORY ALLOCATOR Computer Systems Principles. October 1, 2010

PROJECT 2 - MEMORY ALLOCATOR Computer Systems Principles. October 1, 2010 PROJECT 2 - MEMORY ALLOCATOR Computer Systems Principles Emery Berger Mark Corner October 1, 2010 1 Overview The purpose of this project is to acquaint you with how memory allocators provide virtual memory

More information

MP3: VIRTUAL MEMORY PAGE FAULT MEASUREMENT

MP3: VIRTUAL MEMORY PAGE FAULT MEASUREMENT MP3: VIRTUAL MEMORY PAGE FAULT MEASUREMENT University of Illinois at Urbana-Champaign Department of Computer Science CS423 Fall 2011 Keun Soo Yim GOAL A Linux kernel module to profile VM system events

More information

TPMC901-SW-95. QNX4 - Neutrino Device Driver. User Manual. The Embedded I/O Company. 6/4/2 Channel Extended CAN-Bus PMC

TPMC901-SW-95. QNX4 - Neutrino Device Driver. User Manual. The Embedded I/O Company. 6/4/2 Channel Extended CAN-Bus PMC The Embedded I/O Company TPMC901-SW-95 QNX4 - Neutrino Device Driver 6/4/2 Channel Extended CAN-Bus PMC User Manual Issue 1.0 Version 1.0.0 October 2002 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek

More information

HikVision Mpeg4 linux Player SDK

HikVision Mpeg4 linux Player SDK HikVision Mpeg4 linux Player SDK Version 3.8(build1111) (2004.11.11) Email: hkvs@hikvision.com 0571-88075998-8025 Introduction HikVision Mpeg4/H264 Linux Player SDK is developed based on SDL(Simple DirectMedia

More information

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

Advanced Video Coding: The new H.264 video compression standard Advanced Video Coding: The new H.264 video compression standard August 2003 1. Introduction Video compression ( video coding ), the process of compressing moving images to save storage space and transmission

More information

Memory Mapped I/O. Michael Jantz. Prasad Kulkarni. EECS 678 Memory Mapped I/O Lab 1

Memory Mapped I/O. Michael Jantz. Prasad Kulkarni. EECS 678 Memory Mapped I/O Lab 1 Memory Mapped I/O Michael Jantz Prasad Kulkarni EECS 678 Memory Mapped I/O Lab 1 Introduction This lab discusses various techniques user level programmers can use to control how their process' logical

More information

EE 5359 H.264 to VC 1 Transcoding

EE 5359 H.264 to VC 1 Transcoding EE 5359 H.264 to VC 1 Transcoding Vidhya Vijayakumar Multimedia Processing Lab MSEE, University of Texas @ Arlington vidhya.vijayakumar@mavs.uta.edu Guided by Dr.K.R. Rao Goals Goals The goal of this project

More information

libtheora Reference Manual

libtheora Reference Manual libtheora Reference Manual unreleased Generated by Doxygen 1.3.8 Wed Sep 15 22:40:11 2004 Contents 1 libtheora Main Page 1 1.1 Introduction........................................ 1 2 libtheora Data Structure

More information

UFG-10 MC. Frame Grabbers LINUX SOFTWARE PROGRAMMING GUIDE. Customized Property

UFG-10 MC. Frame Grabbers LINUX SOFTWARE PROGRAMMING GUIDE. Customized Property UFG-10 MC Frame Grabbers LINUX SOFTWARE PROGRAMMING GUIDE Customized Property General Copyright This manual, Copyright 2014 Unigraf Oy. All rights reserved Reproduction of this manual in whole or in part

More information

TriMedia Motion JPEG Decoder (VdecMjpeg) API 1

TriMedia Motion JPEG Decoder (VdecMjpeg) API 1 TriMedia Motion JPEG Decoder (VdecMjpeg) API 1 Topic Page Motion JPEG Decoder API Overview 1-2 Motion JPEG Decoder API Data Structure s 1-5 Motion JPEG Decoder API Function s 1-11 Note This component library

More information

GM8126 SCALER FOR VIDEO GRAPHIC

GM8126 SCALER FOR VIDEO GRAPHIC GM8126 SCALER FOR VIDEO GRAPHIC User Guide Rev.: 1.0 Issue Date: December 2010 REVISION HISTORY GM8126 Scaler for Video Graph User Guide Date Rev. From To Dec. 2010 1.0 - Original Copyright 2010 Grain

More information

73M1822/73M1922 Control Module User Guide December 23, 2009 Rev. 1.0 UG_1x22_053

73M1822/73M1922 Control Module User Guide December 23, 2009 Rev. 1.0 UG_1x22_053 Simplifying System Integration TM 73M1822/73M1922 Control Module User Guide December 23, 2009 Rev. 1.0 73M1822/73M1922 Control Module User Guide 2009 Teridian Semiconductor Corporation. All rights reserved.

More information

TPMC917-SW-82. Linux Device Driver. User Manual. The Embedded I/O Company. 4 MB SRAM with Battery Backup and 4 Channel Serial Interface Version 1.0.

TPMC917-SW-82. Linux Device Driver. User Manual. The Embedded I/O Company. 4 MB SRAM with Battery Backup and 4 Channel Serial Interface Version 1.0. The Embedded I/O Company TPMC917-SW-82 Linux Device Driver 4 MB SRAM with Battery Backup and 4 Channel Serial Interface Version 1.0.x User Manual Issue 1.0.1 November 2006 TEWS TECHNOLOGIES GmbH Am Bahnhof

More information

Implementation of H.264 Video Codec for Block Matching Algorithms

Implementation of H.264 Video Codec for Block Matching Algorithms Implementation of H.264 Video Codec for Block Matching Algorithms Vivek Sinha 1, Dr. K. S. Geetha 2 1 Student of Master of Technology, Communication Systems, Department of ECE, R.V. College of Engineering,

More information

Kernel Modules. Kartik Gopalan

Kernel Modules. Kartik Gopalan Kernel Modules Kartik Gopalan Kernel Modules Allow code to be added to the kernel, dynamically Only those modules that are needed are loaded. Unload when no longer required - frees up memory and other

More information

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

Laboratoire d'informatique, de Robotique et de Microélectronique de Montpellier Montpellier Cedex 5 France Video Compression Zafar Javed SHAHID, Marc CHAUMONT and William PUECH Laboratoire LIRMM VOODDO project Laboratoire d'informatique, de Robotique et de Microélectronique de Montpellier LIRMM UMR 5506 Université

More information

GM8126 DVR DRIVER. User Guide Rev.: 1.1 Issue Date: June 2011

GM8126 DVR DRIVER. User Guide Rev.: 1.1 Issue Date: June 2011 GM8126 DVR DRIVER User Guide Rev.: 1.1 Issue Date: June 2011 REVISION HISTORY Date Rev. From To Feb. 2011 1.0 - Original Jun. 2011 1.1 - Added the DVR_DEC driver Updated Sections 2.2, 2.4, 3.1 through

More information

Multimedia Decoder Using the Nios II Processor

Multimedia Decoder Using the Nios II Processor Multimedia Decoder Using the Nios II Processor Third Prize Multimedia Decoder Using the Nios II Processor Institution: Participants: Instructor: Indian Institute of Science Mythri Alle, Naresh K. V., Svatantra

More information

Introduction to Video Encoding

Introduction to Video Encoding Introduction to Video Encoding INF5063 23. September 2011 History of MPEG Motion Picture Experts Group MPEG1 work started in 1988, published by ISO in 1993 Part 1 Systems, Part 2 Video, Part 3 Audio, Part

More information

TIP675-SW-82. Linux Device Driver. 48 TTL I/O Lines with Interrupts Version 1.2.x. User Manual. Issue November 2013

TIP675-SW-82. Linux Device Driver. 48 TTL I/O Lines with Interrupts Version 1.2.x. User Manual. Issue November 2013 The Embedded I/O Company TIP675-SW-82 Linux Device Driver 48 TTL I/O Lines with Interrupts Version 1.2.x User Manual Issue 1.2.5 November 2013 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany

More information

Multimedia Communications: Coding, Systems, and Networking. Prof. Tsuhan Chen H.261

Multimedia Communications: Coding, Systems, and Networking. Prof. Tsuhan Chen H.261 8-796 Multimedia Communications: Coding, Sstems, and Networking Prof. Tsuhan Chen tsuhan@ece.cmu.edu H.6 H.6 ITU-T Stud Group 5, 984-99 Videophone and video conferencing Low bit rates and low dela Originall

More information

This is an open book, open notes exam. But no online or in-class chatting.

This is an open book, open notes exam. But no online or in-class chatting. Principles of Operating Systems Fall 2017 Final 12/13/2017 Time Limit: 8:00am - 10:00am Name (Print): Don t forget to write your name on this exam. This is an open book, open notes exam. But no online

More information

임베디드리눅스응용프로그래밍. Why use an Operating System? Typical ARM Cortex-A9 Boot Sequence. Linux SD card Images

임베디드리눅스응용프로그래밍. Why use an Operating System? Typical ARM Cortex-A9 Boot Sequence. Linux SD card Images Why use an Operating System? Device Drivers USB Device Drivers Keyboard, Mouse, Bluetooth 임베디드리눅스응용프로그래밍 Internet Protocol Stack Easily start using the Ethernet port Multi-threaded Applications 2 Typical

More information

TIP114-SW-72. LynxOS Device Driver. User Manual. The Embedded I/O Company. 10 Channel Absolute Encoder Interface (SSI) Version 1.0.

TIP114-SW-72. LynxOS Device Driver. User Manual. The Embedded I/O Company. 10 Channel Absolute Encoder Interface (SSI) Version 1.0. The Embedded I/O Company TIP114-SW-72 LynxOS Device Driver 10 Channel Absolute Encoder Interface (SSI) Version 1.0.0 User Manual Issue 1.0 February 2004 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek

More information

CARRIER-SW-82. Linux Device Driver. IPAC Carrier Version 2.2.x. User Manual. Issue November 2017

CARRIER-SW-82. Linux Device Driver. IPAC Carrier Version 2.2.x. User Manual. Issue November 2017 The Embedded I/O Company CARRIER-SW-82 Linux Device Driver IPAC Carrier Version 2.2.x User Manual Issue 2.2.0 November 2017 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany Phone: +49 (0)

More information

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

LIST OF TABLES. Table 5.1 Specification of mapping of idx to cij for zig-zag scan 46. Table 5.2 Macroblock types 46 LIST OF TABLES TABLE Table 5.1 Specification of mapping of idx to cij for zig-zag scan 46 Table 5.2 Macroblock types 46 Table 5.3 Inverse Scaling Matrix values 48 Table 5.4 Specification of QPC as function

More information

Rate Distortion Optimization in Video Compression

Rate Distortion Optimization in Video Compression Rate Distortion Optimization in Video Compression Xue Tu Dept. of Electrical and Computer Engineering State University of New York at Stony Brook 1. Introduction From Shannon s classic rate distortion

More information

TPMC680-SW-82. Linux Device Driver. 64 Digital Input/Output Version 1.1.x. User Manual. Issue April 2010

TPMC680-SW-82. Linux Device Driver. 64 Digital Input/Output Version 1.1.x. User Manual. Issue April 2010 The Embedded I/O Company TPMC680-SW-82 Linux Device Driver 64 Digital Input/Output Version 1.1.x User Manual Issue 1.1.3 April 2010 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek, Germany Phone:

More information

Processes COMPSCI 386

Processes COMPSCI 386 Processes COMPSCI 386 Elements of a Process A process is a program in execution. Distinct processes may be created from the same program, but they are separate execution sequences. call stack heap STACK

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Inter-process Communication (IPC) Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Recall Process vs. Thread A process is

More information

Video Codecs. National Chiao Tung University Chun-Jen Tsai 1/5/2015

Video Codecs. National Chiao Tung University Chun-Jen Tsai 1/5/2015 Video Codecs National Chiao Tung University Chun-Jen Tsai 1/5/2015 Video Systems A complete end-to-end video system: A/D color conversion encoder decoder color conversion D/A bitstream YC B C R format

More information

Thanks for slides preparation of Dr. Shawmin Lei, Sharp Labs of America And, Mei-Yun Hsu February Material Sources

Thanks for slides preparation of Dr. Shawmin Lei, Sharp Labs of America And, Mei-Yun Hsu February Material Sources An Overview of MPEG4 Thanks for slides preparation of Dr. Shawmin Lei, Sharp Labs of America And, Mei-Yun Hsu February 1999 1 Material Sources The MPEG-4 Tutuorial, San Jose, March 1998 MPEG-4: Context

More information

Signal Example 1. Signal Example 2

Signal Example 1. Signal Example 2 Signal Example 1 #include #include void ctrl_c_handler(int tmp) { printf("you typed CTL-C, but I don't want to die!\n"); int main(int argc, char* argv[]) { long i; signal(sigint, ctrl_c_handler);

More information

Port of a fixed point MPEG2-AAC encoder on a ARM platform

Port of a fixed point MPEG2-AAC encoder on a ARM platform Port of a fixed point MPEG2-AAC encoder on a ARM platform Romain Pagniez University College Dublin Information Hiding Laboratory Department of Computer Science Belfield, Dublin 4 Ireland http://ihl.ucd.ie/

More information

BINDER THE ANDROID IPC FRAMEWORK. Antoine 'xdbob' Damhet. July 15, 2016

BINDER THE ANDROID IPC FRAMEWORK. Antoine 'xdbob' Damhet. July 15, 2016 BINDER THE ANDROID IPC FRAMEWORK Antoine 'xdbob' Damhet July 15, 2016 1 THE INTERPROCESS COMMUNICATION Share memory Share privileges Call a remote functions (RPC) Synchronize the processes 2 THE GOAL 3

More information

TPMC860-SW-82. Linux Device Driver. 4 Channel Isolated Serial Interface RS232 Version 1.4.x. User Manual. Issue 1.4.

TPMC860-SW-82. Linux Device Driver. 4 Channel Isolated Serial Interface RS232 Version 1.4.x. User Manual. Issue 1.4. The Embedded I/O Company TPMC860-SW-82 Linux Device Driver 4 Channel Isolated Serial Interface RS232 Version 1.4.x User Manual Issue 1.4.4 December 2011 TEWS TECHNOLOGIES GmbH Am Bahnhof 7 25469 Halstenbek,

More information

Applying User-level Drivers on

Applying User-level Drivers on Applying User-level Drivers on DTV System Gunho Lee, Senior Research Engineer, ELC, April 18, 2007 Content Background Requirements of DTV Device Drivers Design of LG DTV User-level Drivers Implementation

More information

Advcan QNX Driver User Manual V1.02

Advcan QNX Driver User Manual V1.02 Advcan QNX Driver User Manual V1.02 Contents 1. Introduction...1 1.1. System Requirement...1 1.2. Driver configuration...1 2. AdvCan Data Structures...2 2.1. Canmsg_t Struct Reference...2 2.2. CanStatusPar

More information

Application Programming Interface (API) for RK Hardware Codec. Application Programming Interface (API) for RK Hardware Codec

Application Programming Interface (API) for RK Hardware Codec. Application Programming Interface (API) for RK Hardware Codec Application Programming Interface (API) for RK Hardware Codec 1 Table of Contents 1. Codecs Supported by RK... 3 2. Head file and Library Files... 3 3. Structure... 3 3.1 Defining the Codec Enumeration

More information

POSIX Shared Memory. Linux/UNIX IPC Programming. Outline. Michael Kerrisk, man7.org c 2017 November 2017

POSIX Shared Memory. Linux/UNIX IPC Programming. Outline. Michael Kerrisk, man7.org c 2017 November 2017 Linux/UNIX IPC Programming POSIX Shared Memory Michael Kerrisk, man7.org c 2017 mtk@man7.org November 2017 Outline 10 POSIX Shared Memory 10-1 10.1 Overview 10-3 10.2 Creating and opening shared memory

More information

Tutorial T5. Video Over IP. Magda El-Zarki (University of California at Irvine) Monday, 23 April, Morning

Tutorial T5. Video Over IP. Magda El-Zarki (University of California at Irvine) Monday, 23 April, Morning Tutorial T5 Video Over IP Magda El-Zarki (University of California at Irvine) Monday, 23 April, 2001 - Morning Infocom 2001 VIP - Magda El Zarki I.1 MPEG-4 over IP - Part 1 Magda El Zarki Dept. of ICS

More information

MPEG-4: Simple Profile (SP)

MPEG-4: Simple Profile (SP) MPEG-4: Simple Profile (SP) I-VOP (Intra-coded rectangular VOP, progressive video format) P-VOP (Inter-coded rectangular VOP, progressive video format) Short Header mode (compatibility with H.263 codec)

More information

An E2E Quality Measurement Framework

An E2E Quality Measurement Framework An E2E Quality Measurement Framework David Hands BT Group CTO Perceptual Engineering Research Group Email: david.2.hands@bt.com ETSI Workshop on Effects of transmission performance on multimedia quality

More information

Digital Video Processing

Digital Video Processing Video signal is basically any sequence of time varying images. In a digital video, the picture information is digitized both spatially and temporally and the resultant pixel intensities are quantized.

More information

CS 453: Operating Systems Programming Project 5 (100 points) Linux Device Driver

CS 453: Operating Systems Programming Project 5 (100 points) Linux Device Driver CS 453: Operating Systems Programming Project 5 (100 points) Linux Device Driver 1 Setup In this assignment, we will write a simple character driver called booga. Please do a git pull --rebase in your

More information

This application note describes the specification of the JPEG codec unit (in the following, JCU) driver of SH7268/SH7269.

This application note describes the specification of the JPEG codec unit (in the following, JCU) driver of SH7268/SH7269. APPLICATION NOTE SH7268/7269 Group JPEG Codec Unit "JCU" Sample Driver R01AN2338EJ0104 Rev. 1.04 Introduction This application note describes the specification of the JPEG codec unit (in the following,

More information

Fault Injection in System Calls

Fault Injection in System Calls Fault Injection in System Calls Angelo Haller 2015-05-28 Fault Injection in System Calls 1 Angelo Haller 1 Why System Calls? 2 Trinity Bugs Found Inner Workings Fuzzing Process 3 Demo Annotated System

More information

Overview of the x86-64 kernel. Andi Kleen, SUSE Labs, Novell Linux Bangalore 2004

Overview of the x86-64 kernel. Andi Kleen, SUSE Labs, Novell Linux Bangalore 2004 Overview of the x86-64 kernel Andi Kleen, SUSE Labs, Novell ak@suse.de Linux Bangalore 2004 What s wrong? x86-64, x86_64 AMD64 EM64T IA32e IA64 x64, CT Names x86-64, x86_64 AMD64 EM64T IA32e x64 CT Basics

More information

WinCE6.0 MFC SMDKV210. Revision 1.90 October Samsung Electronics Co., Ltd. All rights reserved.

WinCE6.0 MFC SMDKV210. Revision 1.90 October Samsung Electronics Co., Ltd. All rights reserved. WinCE6.0 MFC SMDKV210 Revision 1.90 October 2010 2010 Samsung Electronics Co., Ltd. All rights reserved. Important Notice The information in this publication has been carefully checked and is believed

More information

S3C6400/6410 HW Multimedia Codec (MFC) User s Guide

S3C6400/6410 HW Multimedia Codec (MFC) User s Guide S3C6400/6410 HW Multimedia Codec (MFC) User s Guide S3C6400/6410 August 29, 2008 (Preliminary) REV 3.20 1 The information in this publication has been carefully checked and is believed to be entirely accurate

More information

Linux based 3G Multimedia Mobile-phone API Specification

Linux based 3G Multimedia Mobile-phone API Specification Linux based 3G Multimedia Mobile-phone API Specification [AP Framework] Draft 1.0 NEC Corporation Panasonic Mobile Communication Ltd. 1 Contents Preface...4 1. MSB...5 1.1Generating an Object...5 1.2 Destroying

More information

Galica OSPERT Verification of OS-level Cache Management. Renato Mancuso Creative template. Sagar Chaki

Galica OSPERT Verification of OS-level Cache Management. Renato Mancuso Creative template. Sagar Chaki Galica Verification of OS-level Cache Management Renato Mancuso Creative template Sagar Chaki OSPERT 2018 Goal + Approach Colored Lockdown for deterministic cache management C source code via CBMC Linux

More information

4G WIRELESS VIDEO COMMUNICATIONS

4G WIRELESS VIDEO COMMUNICATIONS 4G WIRELESS VIDEO COMMUNICATIONS Haohong Wang Marvell Semiconductors, USA Lisimachos P. Kondi University of Ioannina, Greece Ajay Luthra Motorola, USA Song Ci University of Nebraska-Lincoln, USA WILEY

More information

MPEG-2. ISO/IEC (or ITU-T H.262)

MPEG-2. ISO/IEC (or ITU-T H.262) MPEG-2 1 MPEG-2 ISO/IEC 13818-2 (or ITU-T H.262) High quality encoding of interlaced video at 4-15 Mbps for digital video broadcast TV and digital storage media Applications Broadcast TV, Satellite TV,

More information

Analysis of User Level Device Driver usability in embedded application

Analysis of User Level Device Driver usability in embedded application Analysis of User Level Device Driver usability in embedded application -Technique to achieve good real-time performance- Katsuya Matsubara Takanari Hayama Hitomi Takahashi Hisao Munakata IGEL Co., Ltd

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Input/Output Systems part 1 (ch13) Shudong Chen 1 Objectives Discuss the principles of I/O hardware and its complexity Explore the structure of an operating system s I/O subsystem

More information

ESE532 Spring University of Pennsylvania Department of Electrical and System Engineering System-on-a-Chip Architecture

ESE532 Spring University of Pennsylvania Department of Electrical and System Engineering System-on-a-Chip Architecture University of Pennsylvania Department of Electrical and System Engineering System-on-a-Chip Architecture ESE532, Spring 2017 HW2: Profiling Wednesday, January 18 Due: Friday, January 27, 5:00pm In this

More information

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco

CS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level

More information

PCI-180X H/L. Linux Software User Manual

PCI-180X H/L. Linux Software User Manual PCI-180X H/L Linux Software User Manual Warranty All products manufactured by ICP DAS are warranted against defective materials for a period of one year from the date of delivery to the original purchaser.

More information

VIDEO COMPRESSION STANDARDS

VIDEO COMPRESSION STANDARDS VIDEO COMPRESSION STANDARDS Family of standards: the evolution of the coding model state of the art (and implementation technology support): H.261: videoconference x64 (1988) MPEG-1: CD storage (up to

More information

TriMedia Motion JPEG Encoder (VencMjpeg) API 1

TriMedia Motion JPEG Encoder (VencMjpeg) API 1 TriMedia Motion JPEG Encoder (VencMjpeg) API 1 Topic Page Motion JPEG Encoder API Overview 1-2 Motion JPEG Encoder API Data Structure s 1-5 Motion JPEG Encoder API Function s 1-12 Note This component library

More information

An Improved H.26L Coder Using Lagrangian Coder Control. Summary

An Improved H.26L Coder Using Lagrangian Coder Control. Summary UIT - Secteur de la normalisation des télécommunications ITU - Telecommunication Standardization Sector UIT - Sector de Normalización de las Telecomunicaciones Study Period 2001-2004 Commission d' études

More information

Image and video processing

Image and video processing Image and video processing Digital video Dr. Pengwei Hao Agenda Digital video Video compression Video formats and codecs MPEG Other codecs Web video - 2 - Digital Video Until the arrival of the Pentium

More information

CMPT 365 Multimedia Systems. Media Compression - Video

CMPT 365 Multimedia Systems. Media Compression - Video CMPT 365 Multimedia Systems Media Compression - Video Spring 2017 Edited from slides by Dr. Jiangchuan Liu CMPT365 Multimedia Systems 1 Introduction What s video? a time-ordered sequence of frames, i.e.,

More information

Inter-Process Communication

Inter-Process Communication CS 326: Operating Systems Inter-Process Communication Lecture 10 Today s Schedule Shared Memory Pipes 2/28/18 CS 326: Operating Systems 2 Today s Schedule Shared Memory Pipes 2/28/18 CS 326: Operating

More information

Linux Kernel Modules & Device Drivers April 9, 2012

Linux Kernel Modules & Device Drivers April 9, 2012 Linux Kernel Modules & Device Drivers April 9, 2012 Pacific University 1 Resources Linux Device Drivers,3rd Edition, Corbet, Rubini, Kroah- Hartman; O'Reilly kernel 2.6.10 we will use 3.1.9 The current

More information

PRINCIPLES OF OPERATING SYSTEMS

PRINCIPLES OF OPERATING SYSTEMS PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)

More information

TIP570-SW-95 QNX-Neutrino Device Driver TIP570 16/8 Channel 12 Bit ADC and 8 Channel 12 Bit DAC on SBS PCI40 Carrier

TIP570-SW-95 QNX-Neutrino Device Driver TIP570 16/8 Channel 12 Bit ADC and 8 Channel 12 Bit DAC on SBS PCI40 Carrier TIP570-SW-95 QNX-Neutrino Device Driver TIP570 16/8 Channel 12 Bit ADC and 8 Channel 12 Bit DAC on SBS PCI40 Carrier Version 1.0.x Reference Manual Issue 1.0 January 2002 TEWS TECHNOLOGIES GmbH Am Bahnhof

More information

CONSEQUENCES RESULTING FROM SYSTEM FAILURE, FALSE TRIGGERING OR MISUSE OF THIS FEATURE ARE THE SOLE RESPONSIBILITY OF THE USER.

CONSEQUENCES RESULTING FROM SYSTEM FAILURE, FALSE TRIGGERING OR MISUSE OF THIS FEATURE ARE THE SOLE RESPONSIBILITY OF THE USER. INTRODUCTION: An innovative new feature from Vision Research called Image-Based Auto-Trigger may be installed on your Phantom camera. This feature allows the user to trigger the camera from motion detected

More information

Motion Estimation Extension for OpenCL

Motion Estimation Extension for OpenCL Motion Estimation Extension for OpenCL Authors: Nico Galoppo, Craig Hansen-Sturm Reviewers: Ben Ashbaugh, David Blythe, Hong Jiang, Stephen Junkins, Raun Krisch, Matt McClellan, Teresa Morrison, Dillon

More information

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

Chapter 10. Basic Video Compression Techniques Introduction to Video Compression 10.2 Video Compression with Motion Compensation Chapter 10 Basic Video Compression Techniques 10.1 Introduction to Video Compression 10.2 Video Compression with Motion Compensation 10.3 Search for Motion Vectors 10.4 H.261 10.5 H.263 10.6 Further Exploration

More information

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

Video Compression MPEG-4. Market s requirements for Video compression standard Video Compression MPEG-4 Catania 10/04/2008 Arcangelo Bruna Market s requirements for Video compression standard Application s dependent Set Top Boxes (High bit rate) Digital Still Cameras (High / mid

More information

Cross Layer Protocol Design

Cross Layer Protocol Design Cross Layer Protocol Design Radio Communication III The layered world of protocols Video Compression for Mobile Communication » Image formats» Pixel representation Overview» Still image compression Introduction»

More information

Diagnostic Instrumentation

Diagnostic Instrumentation Introduction The internal workings of video compression software may be difficult to understand, especially motion estimation and mode decision. In an attempt to further the transparency within the Dirac

More information

Processes and Threads

Processes and Threads Process Processes and Threads A process is an abstraction that represent an executing program A program in execution An instance of a program running on a computer The entity that can be assigned to and

More information

bytes per disk block (a block is usually called sector in the disk drive literature), sectors in each track, read/write heads, and cylinders (tracks).

bytes per disk block (a block is usually called sector in the disk drive literature), sectors in each track, read/write heads, and cylinders (tracks). Understanding FAT 12 You need to address many details to solve this problem. The exercise is broken down into parts to reduce the overall complexity of the problem: Part A: Construct the command to list

More information

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4

int fnvgetconfig(handle h, UINT32 id, const void *cfg, size_t sz);... 4 RP-VL-UTIL-V1 Developer s Guide [ Contents ] 1. Introduction... 1 2. Building Environment... 1 3. Operating Environment... 1 4. Function Explanation... 2 4.1. Common API for Transmitting and Receiving...

More information

Implementing the specification. SoC design / September 09

Implementing the specification. SoC design / September 09 TKT-2431 SoC design Implementing the specification General o o o o o Implement the specification for verification onto PC Implement main.c Do not modify the pre-given codes (other than main.c and possibly

More information

OCF for resource-constrained environments

OCF for resource-constrained environments October 11 13, 2016 Berlin, Germany OCF for resource-constrained environments Kishen Maloor, Intel 1 Outline Introduction Brief background in OCF Core Constrained environment charactertics IoTivity-Constrained

More information

Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group

Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group Industrial I/O and You: Nonsense Hacks! Matt Ranostay Konsulko Group Brief Introduction Been a contributor to the Industrial I/O system for about two years Any weird sensors

More information

Start of Lecture on January 20, Chapter 3: Processes

Start of Lecture on January 20, Chapter 3: Processes Start of Lecture on January 20, 2014 1 Reminders Exercise 1 is due in the morning before class on Wed Don t forget about Assignment 1 What are your questions or comments? 2 Shared memory versus Message

More information

Power Hawk Series 700 Closely-Coupled Programming Guide

Power Hawk Series 700 Closely-Coupled Programming Guide Power Hawk Series 700 Closely-Coupled Programming Guide 0891087-000 June 2001 Copyright 2001 by Concurrent Computer Corporation. All rights reserved. This publication or any part thereof is intended for

More information

Linux Device Drivers Interrupt Requests

Linux Device Drivers Interrupt Requests Overview 1 2 3 Installation of an interrupt handler Interface /proc 4 5 6 7 primitive devices can be managed only with I/O regions, most devices require a more complicated approach, devices cooperate with

More information