zigzag扫描matlab,Zigzag逆扫描
Zigzag逆扫描代码 MATLAB版
即将一个1 * k 长度的向量,逆扫描为 M * N 的矩阵(如果 k < M * N,则在 M * N 的矩阵中用 0 补齐;若 k > M * N,则向量会被截断)。
代码如下,仅供参考。
function mtr = izigzagScan(vec, m, n)
% izigzagScan(vec, m, n) Inverse zigzag scan.
% mtr = izigzagScan(vec, m, n) inverse zigzag scan of vec, and the target
% matrix is m-by-n. The input parameter vec is an 1-by-k vector. If the
% length of vector is smaller than the size of mtr (i.e. k < m*n), then, the
% pargram will use 0 to fill the matrix. If k > m*n, the vector will be truncated.
%
% version: v1.0
% author: tianlan
% time: Dec 16, 2016
% CHECK INPUT ARGUMENTS
if nargin < 3
error('Not enough input arguments!');
elseif nargin > 3
error('Too many input arguments!');
end
% Get length of vector.
[mv,nv,tv] = size(vec);
if tv ~= 1 || mv ~=1
error('The input vector needs to be 1-by-k vector!');
end
if nv < m*n % if nv < m*n, then, use 0 to fill the matrix.
vec = [vec, zeros(1,m*n-nv)];
end
% REVERSE SCAN A VECTOR BY USING ZIGZAG ORDER.
mtr = zeros(m,n);
% zigzag scan.
x = 1;
y = 1;
vecNum = 0;
vecNum = vecNum + 1;
mtr(x,y) = vec(1,vecNum);
while 1
% arrive right-up border, needs to change direction.
if (y+1) <= n && x == 1 % towards right one step.
y = y + 1;
elseif (y+1) > n && (x+1) <= m % towards down one step.
x = x + 1;
else
break;
end
vecNum = vecNum + 1;
mtr(x,y) = vec(1,vecNum) ;
% judge the scan process is arrived the right-down corner (i.e. mtr(m,n)) or not.
if x == m && y == n
break;
end
% scan the matrix towards with left-down direction.
while (y-1) >= 1 && (x+1) <= m
y = y - 1;
x = x + 1;
vecNum = vecNum + 1;
mtr(x,y) = vec(1,vecNum);
end
% arrive the left-down border, needs to change direction.
if (x+1) <= m && y == 1% towards down one step.
x = x + 1;
elseif (y+1) <= n && x == m % towards right one step.
y = y + 1;
else
break;
end
vecNum = vecNum + 1;
mtr(x,y) = vec(1,vecNum);
% judge the scan process is arrived the right-down corner (i.e. mtr(m,n)) or not.
if x == m && y == n
break;
end
% scan the matrix towards with right-up direction.
while (x-1) >= 1 && (y+1) <= n
x = x - 1;
y = y + 1;
vecNum = vecNum + 1;
mtr(x,y) = vec(1,vecNum);
end
end
zigzag扫描matlab,Zigzag逆扫描相关推荐
- zigzag扫描matlab,ZIGZAG扫描的MATLAB实现 | 学步园
转自阿须数码,用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这 ...
- zigzag扫描matlab,ZIGZAG扫描的MATLAB实现
用matlab实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这是参照 Uni ...
- SVAC1.0逆扫描反变换反量化分析
###Date: 2017/10/17 一.逆扫描 根据帧场的不同,场大小的不同,8x8块和4x4块的扫描方式定义如下:
- HEVC逆扫描之三:TU逆扫描过程
注:HM代码版本为HM-16.2+SCM-3.0rc1/. 对应TDecSbac::parseCoeffNxN()函数解析.暂时先忽略掉几个模式:pcCU->getCUTransquantByp ...
- ZigZag 与 反ZigZag编码
2019独角兽企业重金招聘Python工程师标准>>> 如图所示,ZigZag编码就是将 8 x 8 的矩阵块按照箭头运动方向重新排列 在 Jpeg 图像编码中主要用于 RLE (R ...
- Nmap扫描教程之基础扫描详解
Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...
- 漏洞扫描工具_Vulmap漏洞扫描工具
本文来源于https://github.com/zhzyker/vulmap 已与作者联系 作者同意发送本文章 Vulmap目前支持以下漏洞 +-------------------+-------- ...
- mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)
full index scan:全索引扫描,查询时,遍历索引树来获取数据行.如果数据不是密集的会产生随机IO 在执行计划中是Type列,index full table scan:通过读物理表获取数据 ...
- 4x4矩阵键盘工作原理及扫描程序_AVR单片机扫描4X4矩阵键盘并数码管显示程序
/* program name : keyboard ; 功能描述 : 扫描16个按键(4X4),并把键值显示在数码管上(两位); 要点 : 在扫描按键时运用了比较复杂的两个for()循环嵌套 ...
最新文章
- 56.4 AP!超越YOLOv4,更快更强的CenterNet2来了!
- Python 计算机视觉(三)—— 数字图像处理基本操作
- 福建物联网产业发展势头良好
- cron表达式 每隔8小时_cron表达式详解
- JAVA——实验肆——多线程
- 蛋白对接_JCIM | 金属蛋白分子对接程序哪家强?七种对接程序的基准测试
- android https通过载入pfx证书获取数据
- 快速安装Pytorch
- pythonddos防御_一个自动封IP防御DDOS脚本
- 王者荣耀美化包制作教程(一;进阶)
- 【实践】如何用python绘制词云图(文本数据可视化)?
- [C#]Excel画斜线以及Excel宏的利用
- 什么是rip协议其优缺点_ospf和rip 优缺点
- python制作四川话并生成证书,可打包为exe
- Sort exceeded memory limit of 104857600 bytes 解决方案
- 哪些方面的纠纷可以去北京互联网法院提起诉讼?
- 百分点数据科学实验室:产品生命周期管理创新应用落地实践
- Linu中的网络配置(设置ip,网关(路由功能),dns),虚拟机上网
- 年薪50万开发者相亲失败:程序员,别输在不会说话上
- C++ sprintf 方法使用示例( for循环数组,字符串拼接、删除、格式化等)
热门文章
- 3、Windows之CMD装逼命令————CMD命令打开网页(让人一看你就是个电脑高手)
- CCNA第三天(交换机)
- 事件10001,10016,10037
- 通过movie_id来查询数据库获取电影名字和平均得分
- Pcap数据包资源下载汇总-恶意威胁流量
- 2d游戏碰撞检测C语言,2D游戏中的碰撞检测:圆形与矩形碰撞检测(Javascrip版)...
- 微信小程序真机调试,苹果用户记得打开本地网络
- 工作中可能用到的——集中式版本控制系统SVN
- 怎么安装LINUX系统
- Ureal:用ue4做出游戏中的爆炸特效真实感和力量感