資源簡介
一個簡單有效的視頻差錯掩蓋算法MATLAB實現--BMA源程序
代碼片段和文件信息
function??bma
clear?all
close?all
R=imread(‘1.bmp‘);
C=imread(‘2.bmp‘);%read?two?frames
R=uint8(R);
figure;imshow(R);
M=288;
N=352;
R=double(R);
C=double(C);
%lose
framesize=M*N;????%?一幀所有像素
???blocksize=8;??????%?塊的大小
???vnum=M/blocksize;?%?垂直方向塊個數
???hnum=N/blocksize;?%?水平方向塊個數
for?i=1:vnum
???????i1=(i-1)*blocksize+1;
???????for?j=1:hnum
???????????j1=(j-1)*blocksize+1;
???????????if?mod(i2)==0?&?mod(j2)==0?&?i~=vnum?&?j~=hnum???????????????%?離散丟失???????????
???????????%if?((i==2?|?i==10?|?i==14)?&?j~=1?&?j~=hnum)|?(i==6?&?j>=6?&?j<=20)?|?(i==7?&?j>=12?&?j<=18)?|?(i==13?&?j>=6?&?j<=12)?|?(i==15?&?j>=8?&?j<=18)
???????????%if?((i==2?|?i==3)?&?j~=1?&?j~=hnum)?|?((i==9?|?i==10)?&?j~=1?&?j~=hnum)?|?((i==14?|?i==15)?&?j~=1?&?j~=hnum)
???????????%if?(mod(i2)==0?&?i~=vnum?&?j~=1?&?j~=hnum)?|?(mod(i3)==0?&?i~=vnum?&?j~=1?&?j~=hnum)
??????????????concealmentok(ij)=0;
??????????????for?m=0:blocksize-1
??????????????????for?n=0:blocksize-1
??????????????????????E(i1+mj1+n)=0;???????????????????%?丟失的像素值以0代替
??????????????????end
??????????????end??????????????
???????????else
??????????????concealmentok(ij)=1;
??????????????for?m=0:blocksize-1
??????????????????for?n=0:blocksize-1
??????????????????????E(i1+mj1+n)=C(i1+mj1+n);????
??????????????????end
??????????????end
???????????end?
???????????reMovVector(ij).x=0;
???????????reMovVector(ij).y=0;
???????end
???end
???
E=uint8(E);
figure;imshow(E);
imwrite(E‘erro2.bmp‘);
E=double(E);
%當前幀C圖像2前一幀R圖像1,差錯幀E圖像erro2
tic
?for?i=1:vnum??????????????????
?????for?j=1:hnum
?????????if?concealmentok(ij)==0
??????????????min=100000;
?????????????for?k=(i-1)*blocksize-7:(i-1)*blocksize+9
?????????????????for?l=(j-1)*blocksize-7:(j-1)*blocksize+9
???????????????????
???????????????????err2=0;
???????????????????if?concealmentok(ij-1)~=0??????????????%?左
??????????????????????for?
- 上一篇:編碼制作二維傅里葉全息圖的Matlab程序
- 下一篇:magnify.m工具
評論
共有 條評論