Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >zigzag扫描matlab,ZIGZAG扫描的MATLAB实现

zigzag扫描matlab,ZIGZAG扫描的MATLAB实现

作者头像
全栈程序员站长
发布于 2022-11-01 03:36:56
发布于 2022-11-01 03:36:56
5890
举报

转自阿须数码,用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); % 将输入块变成1×64的向量

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/198606.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MATLAB 实现zigzag扫描(z字形扫描)
今天在做多媒体作业的时候需要实现JPEG压缩,其中一步就是将量化后的块做zigzag扫描。我在网上找了很久,发现反复流传的就一份MATLAB代码,无奈这份代码跑起来结果和我预料的不一致,于是进行了修改,下面是修改后的代码。
vincentbbli
2021/08/18
1.8K0
DS图—图的最短路径(无框架)迪杰斯特拉算法
每行格式:顶点v编号-其他顶点编号-最短路径值----[最短路径]。没有路径输出:顶点v编号-其他顶点编号--1。具体请参考示范数据
叶茂林
2023/07/30
3200
分享一些有趣的代码注释
本文最后更新于 February 19, 2021,文中内容可能已过时,请谨慎使用。
雨临Lewis
2022/01/12
7640
R语言入门 Chapter01 | 向量
这篇文章讲述的是R语言中关于向量相关知识。希望这篇R语言文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言
不温卜火
2020/10/28
1.2K0
Python基础——切片实例
切片实例 L = list(range(100)) print(L, end=' ') [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 5
py3study
2020/01/20
5260
【数据处理包Pandas】分组及相关操作
数据集team.xlsx下载地址: 链接:https://pan.quark.cn/s/9e3b2a933510 提取码:7i2y
Francek Chen
2025/01/22
2840
【数据处理包Pandas】分组及相关操作
代码审计-dubbo admin <=2.6.1远程命令执行漏洞
通过结构化的思维进行以软件程序为中心的威胁建模、枚举威胁、缓解威胁、验证来解决四个问题:具体业务是什么?哪些地方可能出现风险?如何规避解决?是否覆盖完整。 通过前排了解(包括在fofa、zoomeyes、shodan的范围分析、wooyun历史漏洞材料输入),考量以下方面: - 数据流或代码布局; - 访问控制; - 现有的或内置的安全控制; - 非用户输入的入口点; - 与外部服务的集成; - 配置文件和数据源的位置; - 插件和定制化展现(在内置设计框架的情况下)。
安全乐观主义
2019/11/19
3.8K0
Ajax异步验证登陆或者注册
首先介绍一个不错的学习Ajax的中文网站:http://www.w3school.com.cn/ajax/index.asp AJAX = 异步 JavaScript 和 XML。详细介绍见上面的网址
别先生
2018/01/02
3.9K0
Ajax异步验证登陆或者注册
冒泡排序简单操作模版及实例分析
1 #include <bits/stdc++.h> 2 using namespace std; 3 inline int read() 4 { 5 int x=0,f=1; 6 char ch=getchar(); 7 while(ch<'0'||ch>'9') 8 { 9 if(ch=='-') 10 f=-1; 11 ch=getchar(); 12 } 13 while(ch>
Angel_Kitty
2018/04/09
4410
c/c++:计算可变参数宏 __VA_ARGS__ 的参数个数
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/80760533
10km
2019/05/25
2.6K0
【欧拉计划第 11 题】 网格中的最大乘积 Largest product in a grid
Problem 11 Largest product in a grid In the grid below, four numbers along a diagonal line have been marked in red. The product of these numbers is 26 × 6
攻城狮杰森
2022/06/03
6550
【欧拉计划第 11 题】 网格中的最大乘积 Largest product in a grid
解决webpack打包静态资源(样式)无法添加厂商前缀-webkit -moz -ms -o的问题
可以设置以下browserlist,现在webpack默认你的项目支持高版本浏览器,我们可以将支持的浏览器覆盖的全面一点就出来前缀了
砖业洋__
2023/05/06
2810
解决webpack打包静态资源(样式)无法添加厂商前缀-webkit -moz -ms -o的问题
休闲娱乐|手把手教你在Python中使用turtle模块实现二次元少女(二)代码部分1
六月暴雪飞梨花
2024/04/07
4320
休闲娱乐|手把手教你在Python中使用turtle模块实现二次元少女(二)代码部分1
python打印数组的全部元素
学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序。因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用print命令或print函数可以答应出数组中的每个元素;如果数组的容量过大,只能打印出数组的部分元素,打印结果只包含开始部分元素和结尾部分元素,中间元素省略。省略的部分不利于程序的调试,因此,为了方便调试程序,需要将数组中的元素全部打印出来。
py3study
2020/01/13
4.2K0
休闲娱乐|手把手教你在Python中使用turtle模块实现二次元少女(一)
小假期悄然走去,选题的任务还未完成,趁着年轻活力的余热好好找找资料来梳理下。今天想要学习的Python语言中的 turtle模块 工具。
六月暴雪飞梨花
2024/04/07
8905
休闲娱乐|手把手教你在Python中使用turtle模块实现二次元少女(一)
Excel公式练习69: 求奇数和
这是一个数组公式。公式生成一个由1至100范围内的奇数值组成的数组,然后对它们求和。
fanjy
2020/06/24
1.1K0
欧拉计划——方阵中的最大乘积
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95 78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66 88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69 04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36 20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
lop
2019/03/13
5740
SKISTYLE_flask-caching
train: ndarray。如果KFold设置shuffle参数是True,是混乱的。
全栈程序员站长
2022/11/04
1500
统计学与pandas学习(三)——方差和标准差
平均值表示“数据在其周围分布”这一大致的推测,只根据这一点并不能弄清数据分布的状态。
fanzhh
2019/08/20
2.8K0
统计学与pandas学习(三)——方差和标准差
AVFrame转换到Mat,yuv420p转换到RGB源代码
FFmpeg中AVFrame到OpenCV中Mat的两种转换方法 方法一:查表法 void AVFrame2Img(AVFrame *pFrame, cv::Mat& img) { int frameHeight = pFrame->height; int frameWidth = pFrame->width; int channels = 3; //输出图像分配内存 img = cv::Mat::zeros(frameHeight, frameWidth, CV_8
一棹烟波
2018/01/12
2.6K0
推荐阅读
相关推荐
MATLAB 实现zigzag扫描(z字形扫描)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档