5.0

5.0 | 6 ratings Rate this file 65 Downloads (last 30 days) File Size: 2.61 KB File ID: #6318

Convert YUV CIF 4:2:0 video file to image files

by Da Yu

 

17 Nov 2004 (Updated 22 Nov 2004)

Load the YUV file, and convert it to 2D image file (matrix form).

| Watch this File

File Information
Description

convert YUV CIF 4:2:0 video file to image files

MATLAB release MATLAB 7 (R14)
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (13)
30 Nov 2004 test test  
25 Feb 2008 Jeo Jaje

It seems a good code. But I need reverse of this. I want to write a 4:2:0 YUV file from a sequence of 2D image files (matrix form). Any idea? please help.

03 Mar 2009 Fraser Stirling

I need to convert a YUV file into a YUV16 file and also a RAW file. Then I need to convert back from these two variants to YUV.

Could this be altered to accomodate this?

01 Jun 2010 Naeem

hi
i need to convert yuv sequences downloaded from http://www.cipr.rpi.edu/resource/sequences/
into 4:2:0 yuv video file.
if you have any idea. please help me out.

nshayan@gmail.com

19 Aug 2011 MechtEngineer

Currently the program lacks an example of how to use the code.

e.g. in the file, loadFileYuv.m, the function call is:
function [mov,imgRgb] = loadFileYuv(fileName, width, height, idxFrame)
What is idxFrame? I thought it might be frames per second, but the code seems to indicate it is some sort of structure. Does this mean the YUV video file needs to be loaded into MATLAB as a variable before this subroutine is used?

It seems like this code may work well, but it just needs an example so most people can use it!! Any help would be appreciated.

19 Oct 2011 MechtEngineer

"idxFrame" is the frame number within the YUV 4:2:0 video you want extracted to an RGB image. Thus, each time you run the function loadFileYuv, it will open the YUV file, extract the specified frame from the video file in the fileName string, and close the YUV file.

For sample YUV 4:2:0 files, use the Video Trace Library at http://trace.eas.asu.edu/yuv/index.html

A versatile and extremely reliable YUV player is located here: http://www.yuvplayer.com/index.html
It is now freeware, as evidenced by here: http://www.yuvplayer.com/register.html

19 Oct 2011 MechtEngineer

"idxFrame" can be entered as a vector containing the frame numbers you desire to be extracted from the yuv movie.

e.g. idxFrame = 200:250; would extract frames 200 to 250 from the yuv file.

20 Jan 2012 elena

I have matlab 7.0.1 and unfortunately i can't find functions for yuv, e.g i want to load yuv file into matlab and i cannot find the appropriate function, help? thank you

05 Feb 2012 MechtEngineer

elena, I just use the File>import function in MATLAB. This can also generate the code for you to use to import a particular file in the future.

10 Apr 2012 Shashi barot

why is the size of one frame equals 1.5*height*width ?

10 Apr 2012 MechtEngineer

Shashi, I believe you are referring to the line
sizeFrame = 1.5 * width * height;
occuring in the file loadFileYuv.m.

The author is preparing enough memory to be able to load one whole YUV (or YCbCr) 4:2:0 frame. This type of video encoding is called "Chroma Subsampling". 4:2:0 means that all luminance values of the scene are recorded, but Cb and Cr are each subsampled at a factor of 2 both horizontally and vertically. This means the total amount of data required to store each frame is:
Total = luminance + Cb + Cr
Total = full resolution + 1/4 res + 1/4 res
Total = 1.5 * full resolution

For more information, see Wikipedia's article on Chroma Subsampling:
http://en.wikipedia.org/wiki/Chroma_subsampling

Chroma subsampling is also discussed at 24:21 minutes through A Digital Media Primer for Geeks at:
http://xiph.org/video/

11 Apr 2012 Shashi barot

I am little confused how he's separating Y,U and V components here,because I am not sure how data is saved in a YUV file. when he first uses uses buf = fread(fileId, width * height, 'uchar'); and after reshaping this data he uses fread(fileId,width/2*height/2,'uchar')

that is 1/4 of the data used in previous 'fread' function and because there is no fseek between these 2 fread function and the next fread function the read data should be the same(atleast first 1/4 part of the data read using fread(fileId,height*width,'uchar') and fread(fileID,height/2*width/2,'uchar')).I am also not getting why/how he's using 'kron' to reshape the U and V components.

05 May 2012 Shashi barot

As of now, I am using CIF video,but how does it work for interlaced video?

Please login to add a comment or rating.
Tag Activity for this File
Tag Applied By Date/Time
graphics import Da Yu 22 Oct 2008 07:35:56
graphics export Da Yu 22 Oct 2008 07:35:56
cif Da Yu 22 Oct 2008 07:35:56
yuv Da Yu 22 Oct 2008 07:35:56
420 Da Yu 22 Oct 2008 07:35:56
export Da Yu 22 Oct 2008 07:35:56
graphics Da Yu 22 Oct 2008 07:35:56
import Da Yu 22 Oct 2008 07:35:56
utilities Da Yu 22 Oct 2008 07:35:56
420 sun yang 10 Apr 2011 10:26:52
yuv frame Anand 06 Jun 2011 06:16:06
graphics export samuel 07 Jul 2011 10:56:11
graphics samuel 07 Jul 2011 10:56:15
yuv 420 MechtEngineer 19 Oct 2011 18:40:54
yuv cif 420 MechtEngineer 19 Oct 2011 18:40:54
yuv player MechtEngineer 19 Oct 2011 18:40:54
yuv to rgb MechtEngineer 19 Oct 2011 18:40:54
rgb to yuv MechtEngineer 19 Oct 2011 18:40:54
rgb2yuv MechtEngineer 19 Oct 2011 18:40:54
yuv2rgb MechtEngineer 19 Oct 2011 18:40:54
rgb2yuv420 MechtEngineer 19 Oct 2011 18:41:25
yuv4202rgb MechtEngineer 19 Oct 2011 18:41:25
yuv player Alexandre 04 Mar 2012 12:19:18

Contact us at files@mathworks.com