首页 > 编程知识 正文

行吊最大跨度多少,手机内存不足增加内存卡行吗

时间:2023-05-05 05:29:40 阅读:143845 作者:3386

Stride的由来是,我知道现在计算机的cpu是32位或64位的cpu。 他们一次至少读取四八个字节。 少于这个的话,反而要做额外的工作,需要更长的时间。 有所有称为内存对齐的概念,将结构的长度设置为4,8的倍数。 Stride也因为同样的理由出现了。 由于图像操作通常逐行进行,因此如果图像中的所有数据分布得很紧密,则会出现非常多的读取失配,从而影响效率。 另一方面,由于图像的处理是分秒必争的操作,所以为了提高性能而引入了Stride的概念。

Stride的含义Stride是指图像中一行图像数据所占的存储长度,它是大于或等于图像宽度的内存数组的长度。 这样,每次按行为标准读取数据时,都可以对齐内存。 内存可能会有一点浪费,但在内存充裕的今天已经没关系了。 如果视频图像存储在内存中,则图像的每一行末尾可能包含扩展的内容,这些内容仅影响图像存储在内存中的方式,而不影响图像的显示方式。 如果图像每行像素的末尾都有扩展内容,则“Stride”值必须大于“图像宽度”值。

两个缓冲区包含相同大小(宽度和高度)的视频帧,但不一定具有相同的Stride值。 处理视频帧时,计算时必须考虑Stride。 特别是在视频转换中,输入缓冲区和输出缓冲区可能不匹配,因此需要处理具有不同Stride值的图像。 例如,假设您想转换源图像并将其写入目标图像。 假设两个图像的宽度和高度相同,但像素格式可能与Stride值不同。 如果Stride值图像的“宽度”(byte )是内存数组长度的整数倍,则Stride等于“宽度”(byte )。 例如,对于ZTV2,Master对DDR的所有读取/写入都是8个字节,但由于分辨率通常是8的整数倍,因此可以看到Stride与图像的字节宽度相同。 (但是,在这里通常遇到罕见的分辨率时,Stride和图像的字节宽度不同。

Stride的计算方法和制约是用有气泡的方法在DDR中存储数据

每像素占用的字节数BPC:1(dw=8),2 )2(8DW=16 ),4 )4(16DW=32 ) Stride=Bpc * PicWidth以无气泡的方式将数据存储在DDR中

Stride=(Picwidth*dw7 )/8确定一次可读写的内存字节数。 如果单个突发为64位,则stride使用8字节对齐。 也就是说

Stride[2:0]=0如果计算出的Stride不满足配准约束,一定要进行相应的放大整形! 否则,stride会变小,消除数据。

根据Stride计算地址计算各行的结束地址endaddr _ line=startaddr _ line stride * pic heigh

计算图像的结束地址endaddr _ pic=startaddr _ pic stride * pic heigh

关于PS.Stride的符号,我们说明stride实际上是有符号的数。 这只举一个例子来说明。 一个图像在内存中有两种不同的内存序列(arranged )。 自上而下)图像中,顶部行中的像素存储在内存的第一部分;而自下而上)图像中,最后一行中的像素存储在内存的第一部分。 以下是这两种类型的图像

从下到上的图像有负的Stride值! Stride被定义为“从一行像素移动到下一行像素时是否需要跨越多个像素”,因此只针对显示的图像; YUV图像始终从上到下显示,RGB图像通常在保存到系统内存时从下到上显示。

参考文献

3359 blog.csdn.net/bjr XYZ/article/details/52690661

3358 vegetable.wodekouwei.com/2017/06/27/media-graphic-image-stride /

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。