社区
机器视觉
帖子详情
一个关于数据对齐的问题,请高手指教!!!
yanglight
2005-12-04 06:42:34
在图像处理中,图像处理的数据矩阵是按行存储的,如一个八位图(每个像素点用8位表示),111*100的图像,按行排成一维数组但存储的数组大小不是111*100字节而是112*100因为他要使每行是4的倍数,现在要问为什么要以4对齐。
...全文
222
8
打赏
收藏
一个关于数据对齐的问题,请高手指教!!!
在图像处理中,图像处理的数据矩阵是按行存储的,如一个八位图(每个像素点用8位表示),111*100的图像,按行排成一维数组但存储的数组大小不是111*100字节而是112*100因为他要使每行是4的倍数,现在要问为什么要以4对齐。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zzwu
2006-01-02
打赏
举报
回复
这是Windows规定的bmp图像格式.
你自己存放图像不一定要这样,为了节省,可以任意宽度.
一次读写4字节,比4次读写1字节要快,
但4字节对齐,仅仅是为了最后几个字节的读写而已,因为,
如果不对齐,前面的象素也可以用4字节读写,甚至一次读
写一行或整个一页(多到65536个象素)!
固定用4字节读写也不一定方便,因为需要单个象素读写时,
就要和其余3个象素进行拼接,很麻烦.
bmp图像格式并不一定合理,例如它的写入次序和屏幕写入
次序向反,不是从上到下,而是从下到上,这就不合理.
huanyun
2005-12-27
打赏
举报
回复
写错了 是宽301
另外 有些算法会要求图像数据指针的起始地址4,8,16字节对齐,也是因为效率关系。
huanyun
2005-12-27
打赏
举报
回复
因为MMX是64位SSE,SSE2是128位
在处理数据时需要使用单指令多数据的MMX,SSE,SSE2高效的处理图像
那么使用4字节,16字节对齐的数据处理没有边界问题
比如一张长301象素的图像
一字节字节的处理 一行处理301次
MMX可以4字节4字节的处理 可最后到第301象素 无法用mmx指令处理,
sse,sse2类似
弟十六
2005-12-14
打赏
举报
回复
32位CPU当然以4字节对齐运行效率最高了,一个时钟周期正好处理4个字节,低于32位的话浪费,高于的话处理时间成倍的增长。
寻开心
2005-12-14
打赏
举报
回复
这个是bmp格式的要求吧,不是所有的图形格式的要求
快乐鹦鹉
2005-12-14
打赏
举报
回复
显然是方便处理了。固定长度后,就不用费劲去判断,固定程式处理,速度自然好一点。
zcz0918
2005-12-13
打赏
举报
回复
补齐成sizeof int的倍数可以处理的快些
GoogleGeek
2005-12-05
打赏
举报
回复
便于处理,有些机器(比如ARM,SPARC)不像x86那样对char和 int变量的处理速度一样!
在这些机器上32Bit或者64bit的访问速度最快!
至于为什么会这样,你找本计算机原理的书看看吧
C语言编程练习——循环结构(一)
帮
一个
C语言小白 朋友撸代码,改进的空间还有很大,希望大神多多
指教
! 一、生成3的乘方表 输入
一个
非负整数n,生成一张3的乘方表,输出30~3n的值。可调用幂函数计算3的乘方。 输入格式: 输入在一行中给出
一个
非负整数n。 输出格式: 按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出
数据
不超过长整型整数的范围。 输入样例: 3 输出样...
【转】32位汇编 NASM 入门级
1.
问题
:VC.NET中如何调用汇编asm文件中定义的函数,
请
高手
多多指点!!!? 我的普通VC工程中(没用到托管)要调用
一个
asm文件中定义的函数 但是编译不能通过,
请
高手
多多
指教
提问时间:2004-3-15 20:51:24 回答次数:(4) 提问人:软界网友 我来回答 回答(1) http://www.fruitfruit.com/vc/vc_asm.txt
Silverlight边学边写之一“Silverlight+Webservice+Dataset”综合应用
学SL有一段时间了,可是总感觉缺少点什么,那就是实际应用,怎么能把SL应用到我的项目中呢?一直是
一个
难题,我是个懒人喜欢用Dataset来帮我做一些底层
数据
访问的工作,SL毕竟是表示层的技术,对
数据
访问是门外汉,只能用过wcf或webservice来实现异步调用,今天把我的学习笔记给大家看看,没有太高深的技术,只是共享而已,大家如果有别的方法欢迎
指教
! 新建
一个
Silverli
算式计算器C++实现代码(顺序栈结构 增加了一些功能 比如三角函数 求
指教
)
数据
结构课上学习栈结构的时候 根据老师的实验要求用VC++6.0平台写了这段代码除了加减乘除乘方,稍微自己加了一些好玩的小功能,比如计算阶乘"!",三角函数,比如正弦 "sin",对数"log"与"ln",常量pi(圆周率),自然对数底数"e"也加进去了,算是初步模仿中学用的科学计算器吧~~~~可惜有
一个
小缺陷,就是减号与负号没法区别T_T 只好投机取巧用"-"表示减号,用下划线"_"表示负号^_^用我们老师的话说,我这太不地道了……有没有哪位
高手
可以告诉我怎么样可以变“地道”的????跪求教。
操作系统内存映射机制
这个
问题
思考的是程序与内存的映射
问题
? (
请
高手
指教
) 程序在编译以后,被分配到了
一个
4G的逻辑地址空间当中, 在这当中是以分区段的方式进行管理的(如有代码段,
数据
段,堆栈段等) 。 那么,如何将这4G的地址映射到真实的内存空间中? cpu当中,有内存控制单元(硬件),这通过两次地址映射(第一次是分段单元,第二次是分页单元)将程序中的逻辑地址映射到真实的内容地址中。
机器视觉
4,445
社区成员
15,335
社区内容
发帖
与我相关
我的任务
机器视觉
图形图像/机器视觉
复制链接
扫一扫
分享
社区描述
图形图像/机器视觉
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章