用matlab实现MPEG中的 ZIG-ZAG 扫描。觉得有点研究价值,实现的方法也很巧妙。

下面给一个参照MPEG提供的方法:

===

function b=zigzag(a)

% 这是参照 University of California 提供的 MPEG 源代码的基础上编制的。

% Copyright (c) 1995 The Regents of the University of California.

[n,m]=size(a);

if(n~=8 & m~=8)

error('Input array is NOT 8-by-8');

end

% Set up array for fast conversion from row/column coordinates to

% zig zag order. 下标从零开始,因为是从MPEG的C代码拷贝过来的

zigzag = [ 0, 1, 8, 16, 9, 2, 3, 10, ...

17, 24, 32, 25, 18, 11, 4, 5, ...

12, 19, 26, 33, 40, 48, 41, 34, ...

27, 20, 13, 6, 7, 14, 21, 28, ...

35, 42, 49, 56, 57, 50, 43, 36, ...

29, 22, 15, 23, 30, 37, 44, 51, ...

58, 59, 52, 45, 38, 31, 39, 46, ...

53, 60, 61, 54, 47, 55, 62, 63];

zigzag = zigzag + 1;  % 下标加1,符合MATLAB的下标习惯

aa = reshape(a,1,64); % 将输入块变成1x64的向量

b = aa(zigzag); % 对 aa 按照查表方式取元素,得到 zig-zag 扫描结果

===

程序运行结果:

?a=magic(8)

a =

64     2     3    61    60     6     7    57

9    55    54    12    13    51    50    16

17    47    46    20    21    43    42    24

40    26    27    37    36    30    31    33

32    34    35    29    28    38    39    25

41    23    22    44    45    19    18    48

49    15    14    52    53    11    10    56

8    58    59     5     4    62    63     1

?b=zigzag(a)

b =

Columns 1 through 12

64     9     2     3    55    17    40    47    54    61    60    12

Columns 13 through 24

46    26    32    41    34    27    20    13     6     7    51    21

Columns 25 through 36

37    35    23    49     8    15    22    29    36    43    50    57

Columns 37 through 48

16    42    30    28    44    14    58    59    52    45    38    31

Columns 49 through 60

24    33    39    19    53     5     4    11    18    25    48    10

Columns 61 through 64

62    63    56     1

0

zigzag扫描matlab,ZIGZAG扫描的MATLAB实现相关推荐

  1. matlab完全自学一本通 pdf,matlab r2014a自学一本通 MATLAB R2014a完全自学一本通 中文pdf扫描版[125MB] 下载-脚本之家...

    MATLAB R2014a完全自学一本通面向MATLAB 的初中级读者,在介绍MATLAB R2014a 集成环境的基础上,对MATLAB 使用中常用的知识和工具进行了详细的介绍,书中各章均提供了大量 ...

  2. zigzag扫描matlab,ZIGZAG扫描的MATLAB实现 | 学步园

    转自阿须数码,用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这 ...

  3. matlab zigzag算法,ZIGZAG扫描的MATLAB实现

    用MATLAB实现MPEG中的 ZIG-ZAG 扫描.觉得有点研究价值,实现的方法也很巧妙. 下面给一个参照MPEG提供的方法: === function b=zigzag(a) % 这是参照 Uni ...

  4. zigzag扫描matlab,Zigzag逆扫描

    Zigzag逆扫描代码 MATLAB版 即将一个1 * k 长度的向量,逆扫描为 M * N 的矩阵(如果 k < M * N,则在 M * N 的矩阵中用 0 补齐:若 k > M * ...

  5. matlab zigzag算法,MATLAB 实现zigzag扫描(z字形扫描)

    今天在做多媒体作业的时候需要实现JPEG压缩,其中一步就是将量化后的块做zigzag扫描.我在网上找了很久,发现反复流传的就一份MATLAB代码,无奈这份代码跑起来结果和我预料的不一致,于是进行了修改 ...

  6. matlab 雷达系统界面,基于Matlab的雷达系统仿真软件包设计与实现

    0 引言    近些年来国际上相继发展了一些雷达仿真系统,而国内相控阵雷达系统和脉冲压缩雷达系统仿真软件的研究已经成为一个热点.对于一个复杂的雷达系统,系统建模与仿真技术是雷达系统设计和研究的一个重要 ...

  7. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLA ...

  8. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)(9 ...

  9. 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术

    1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...

最新文章

  1. Nautilus启动报错
  2. 单片机上使用TEA加密通信(转)
  3. 第三章 python数据规整化
  4. IntelliJ IDEA for Mac工件包(artifact)中 Web facet resources 的模块名称有误,如何修改?
  5. Qt中标绘功能的实现方法对比
  6. 软件系统架构有哪几种?
  7. 凸优化第五章对偶 5.2 Lagrange对偶问题
  8. GeoServer发布shp数据
  9. java前后端分离跨域解决方案
  10. uni-app小程序刷新当前页面的两种方法
  11. ip地址解析,ip归属地识别
  12. 南方航空认沽权证21日上市 初始行权价为7.43元
  13. Django学习日志三:模型层
  14. Linux 基础命令 -- usermod
  15. RN 与android原生交互
  16. 自动控制领域期刊-自动化学会推荐学术期刊
  17. 财经365独家:基建物业投资路线图
  18. 网课作业禁止粘贴?禁用JavaScript了解一下!
  19. 技术博客搬迁通知 - 赵雷彧
  20. TCP/IP的三次握手

热门文章

  1. iso马甲包是什么意思?如何制作上传
  2. 机械设备行业专题研究:各家电池片技术路线差异几何?
  3. 视图概念,优缺点及作用
  4. 【渝粤题库】国家开放大学2021春2026国际金融题目
  5. 面试:Jetpack相关
  6. 好的提问和寻找答案的网站(会时常更新)
  7. WebRTC Simulcast测试--用Janus
  8. 解析信用卡提额失败的原因,并制定解决方案
  9. 免安装版(解压缩版)MySQL安装
  10. 如何将kotlin数组转为java的可变参数...