MATLAB中cif用于清除什么,cif420格式YUV视频的删帧函数

先给出qcif yuv420删帧的matlab代码:

% qcif yuv420视频删帧, x是文件名,t1是起始帧,t2是终止帧(删除[t1, t2])

% 假定x中的帧数小不超过2400帧

function qcif_delete_frames(x, t1, t2)

width = 176;

height = 144;

n = width * height;

m = n * 3 / 2; % yuv420

fid = fopen(x,'r');

[a, count] = fread(fid, [m, 800], 'uchar'); %分步转到a中,以免内存溢出

a = uint8(a); % 节省内存

[b, count] = fread(fid, [m, 800], 'uchar');

b = uint8(b);

a = [a,b];

[b, count] = fread(fid, [m, 800], 'uchar');

b = uint8(b);

a = [a,b];

fclose(fid);

% a矩阵的每一列代表一帧,下面语句是删除[t1, t2]之间的所有帧

a(: , t1 : t2) = [];

fidd = fopen(['deleted_', x], 'w');

fwrite(fidd, a, 'uchar');

fclose(fidd);

至于cif, 思路也是一样的,差别只是:cif每一帧的尺寸要大些,所以更要防止a矩阵的内存溢出,每一次少读入一些帧。你可以尝试着去改一下代码,我就不赘述了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值