【音视频原理】图像相关概念 ⑦ ( YUV 跨距 Stride 对齐 | YUV 跨距 概念 | YUV 跨距对齐 概念 | YUV 跨距 Stride 对齐示例 )

这篇具有很好参考价值的文章主要介绍了【音视频原理】图像相关概念 ⑦ ( YUV 跨距 Stride 对齐 | YUV 跨距 概念 | YUV 跨距对齐 概念 | YUV 跨距 Stride 对齐示例 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。






一、 YUV 跨距 ( Stride ) 对齐



1、YUV 跨距 概念


Stride 跨距 , 指的是 在 内存中 每行像素 占用的空间 , 由于 系统 对 图像有 跨距对齐 的要求 , 这个 Stride 跨距 可能 大于等于 实际的 图像像素 所占用的 宽度 ;


分辨率为 638 x 480 的 RGB24 格式的图片 , 内存处理时 以 16 字节对齐 ;

RGB24 格式中 R ( 红 ) / G ( 绿 ) / B ( 蓝 ) 每个分量占用 8 位 ( 1 字节 ) , 一个像素总共占用 24 位 ( 3 字节 ) ;

每一行的 实际像素 所占用的内存是 638 * 3 = 1914 字节 ;

需要以 16 字节对齐 , 最后一个字节占用的实际 内存大小 是 1914 % 16 = 10 字节 ,

因此 还需要 额外补充 16 - 10 = 6 字节的填充字节 ,

最终达到 638 * 3 + 6 = 1920 字节 ;

yuv的h_stride,音视频原理,音视频,YUV,RGB,图像,颜色通道,Stride,跨距对齐


2、YUV 跨距对齐 概念


YUV 跨距 ( Stride ) 对齐 是 图像处理 过程中 内存对齐 概念 ;

在 处理 YUV 格式的 图像 时 , 系统 或 硬件设备 要求 , YUV 图像的 每一行 像素 , 在 内存空间 中 需要 进行对齐操作 ;


Stride 跨距对齐 是 为了满足 特定 的 内存访问模式 的要求 , 有些系统要求 进行 跨距对齐 ,

  • 要求 YUV 图像 的 每行内存宽度 必须是 " 内存对齐长度 " 的整数倍 ,
  • 如果 YUV 图像 的 每行内存宽度 不是 " 内存对齐长度 " 的整数倍 , 就需要在 每行 的末尾添加 填充字节 , 以达到 跨距对齐 要求 ;
  • 被填充的字节 , 没有实际意义 , 不包含图像数据 ;
  • 这个 " 内存对齐长度 " 可能是 16 字节 / 32 字节 / 64 字节 等 ;




二、 YUV 跨距 ( Stride ) 对齐示例



要求 内存处理 YUV 图像时 , 以 16 字节对齐 , 现在有一张图片 638 x 480 像素的 YUV420P 图片 ;


1、YUV420P 数据存储


YUV420P 数据存储 格式如下图所示 , 不同类型的分量放在不同的数组中 ,

yuv的h_stride,音视频原理,音视频,YUV,RGB,图像,颜色通道,Stride,跨距对齐

  • Y 灰度值 分量 , 存储在 最上面的数组中 , 在下图的 Y0 ~ Y7 的 灰度值 就是存放在一个数组中 ;
  • U 色度值 分量 , 存储在 中间数组中 , 在下图的 U0 ~ U3 的 色度值 就是存放在一个数组中 , U 的个数只有 4 个 , 是 Y 分量个数的一半 ;
  • V 色度值 分量 , 存储在 最下面的数组中 , 在下图的 V0 ~ V3 的 色度值 就是存放在一个数组中 , V 分量 的个数只有 4 个 , 是 Y 分量 个数的一半 ;

上面的 YUV 图像 内存数据 中 ,

  • Y0 , Y1 , Y4 , Y5 灰度值 使用 U0V0 色度值 , 4 个像素用了 6 字节 , 一个像素 1.5 字节 ;
  • Y2 , Y3 , Y6 , Y7 灰度值 使用 U1V1 色度值 , 4 个像素用了 6 字节 , 一个像素 1.5 字节 ;
  • Y8 , Y9 , Y12 , Y13 灰度值 使用 U2V2 色度值 , 4 个像素用了 6 字节 , 一个像素 1.5 字节 ;
  • Y10 , Y11 , Y14 , Y15 灰度值 使用 U3V3 色度值 , 4 个像素用了 6 字节 , 一个像素 1.5 字节 ;

该图像是一个 4 x 4 大小的图片 , 每一行 占 4 字节 ;
yuv的h_stride,音视频原理,音视频,YUV,RGB,图像,颜色通道,Stride,跨距对齐


2、跨距对齐分析


图片的像素格式是 638 x 480 像素 ;

在上面 YUV420P 格式的图像中 , 每一行 每个像素 只占 1 字节 , 那么 该图像 在内存中 , 每行的长度 是 638 字节 ;


每一行的 实际像素 所占用的内存是 638 字节 ;

需要以 16 字节对齐 , 最后一个字节占用的实际 内存大小 是 638 % 16 = 14 字节 ,

因此 每行 还需要 额外补充 16 - 14 = 2 字节的填充字节 ,

最终达到 638 + 2 = 640 字节 ;


yuv的h_stride,音视频原理,音视频,YUV,RGB,图像,颜色通道,Stride,跨距对齐文章来源地址https://www.toymoban.com/news/detail-826787.html

到了这里,关于【音视频原理】图像相关概念 ⑦ ( YUV 跨距 Stride 对齐 | YUV 跨距 概念 | YUV 跨距对齐 概念 | YUV 跨距 Stride 对齐示例 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 真-浅浅了解下音视频文件格式和相关概念

    散装知识,只是突然对这类知识感兴趣,想简单了解下,找到啥就记录啥,没有深入研究文件内部组成构造和底层实现技术和相关标准,毕竟内容挺多的,我也不是必须得学透,况且我没有chatGPT那样的”大脑\\\"…总而言之,门外汉,满足下自己浅浅的好奇心。 1、 MP4(MPEG-4

    2023年04月08日
    浏览(54)
  • 音视频编码实战-------pcm+yuv数据转成MP4

    avcodec_find_encoder: 根据编码器ID查找编码器 avcodec_alloc_context3:创建编码器上下文 avcodec_open2:打开编码器 avformat_alloc_output_context2:为输出格式创建复用器上下文 avformat_new_stream:创建音视频流 avcodec_parameters_from_context:将编码器上下文中的参数拷贝到音视频流中的编码器参数中AVCodec

    2024年02月15日
    浏览(67)
  • 音视频开发之旅——音频基础概念、交叉编译原理和实践(LAME的交叉编译)(Android)

    本文章已授权微信公众号郭霖(guolin_blog)转载。 本文主要讲解的是 音频基础概念 、 交叉编译原理和实践(LAME的交叉编译) ,是基于 Android平台 ,示例代码如下所示: AndroidAudioDemo 另外, iOS平台 也有相关的文章,如下所示: 音视频开发之旅——音频基础概念、交叉编译

    2024年04月25日
    浏览(85)
  • 【音视频原理】视频帧的 I P B 帧概念 ② ( B 帧 - 双向内插帧 | 画面组 Group of Pictures 概念 | 各类型帧解码错误影响 | 画面组编解码顺序 | 常用视频压缩算 )

    B 帧 全称 \\\" 双向内插帧 ( Bi-directional Predicted Frames ) \\\" , 采用 双向预测编码方式 , 也就是 B 帧 记录的是 本帧 B 帧 与 前后 I 帧 或 P 帧 的差别 ; 注意 : B 帧 需要依赖于其前的最近的一个 I 帧 或者 P 帧 及其后的最近的一个 P 帧 进行解码 , B 帧 不能 依赖与 B 帧 ; B 帧 依赖的 前一

    2024年01月25日
    浏览(46)
  • 【音视频原理】视频帧的 I P B 帧概念 ① ( 码率 / 帧率 / 分辨率 视频信息 | I 帧 - 内部编码帧 | I 帧 - 关键帧压缩法 | P 帧 - 前向预测帧 )

    使用 MediaInfo 软件 打开一个 mp4 文件 , 查看其属性 ; 该视频的属性如下 : 码率 : 212kb/s , 这是 视频文件 的 视频信息 在 单位时间内的 数据流量 , 码率越大 , 单位时间内采样率越大 , 数据流精度越高 , 视频质量越高 ; 视频帧率 : 5fps , 1 秒中有 5 帧的信息 , 帧率越高 , 视频越流畅

    2024年02月20日
    浏览(46)
  • 音视频基础概念(6)——视频基础

    网上冲浪时,我们会接触到网络流媒体和本地视频文件。常见的视频文件格式有MP4、MKV、AVI等。在流媒体网站上看见视频常用的协议有HTTP、RTSP、RTMP、HLS等。视频技术较为复杂,包括视频封装、视频编解码、视频播放和视频转码等内容。 当下市场常见的视频APP很多,其中10

    2024年02月04日
    浏览(110)
  • 音视频基本概念

    充分利用cpu资源的工具  多线程管理问题 资源 有限多个人去抢 有序进行 读写锁 读写分离 自旋锁 等待资源释放(例如) 可重入锁 SDL锁 互斥锁 SDL_CreateMutex/SDL_DestroyMutex SDL_LockMutex/SDL_UnlockMutex 信号量 SDL_CreateCond/SDL_DestroyCond SDL_CondWait/SDL_CondSignal pts:Presentation timestamp  展示音

    2024年01月22日
    浏览(50)
  • 音视频中的基本概念

    操作系统中的文件名都有后缀,即扩展名,例如1.doc,2.jpg,3.avi等。设置扩展名的目的是让系统中的应用程序来识别并关联这些文件,让相应的文件由相应的应用程序打开。常见的文件格式如1.avi,2.mpg,3.mp4这些都叫做视频的文件格式,可由电脑上安装的视频播放器关联和打

    2024年02月17日
    浏览(45)
  • 音视频、网络带宽等常用概念详解

            AAC帧大小为1024个sample: 指AAC编码一般以1024个采样为一个音频帧 。         采样率48khz :指1秒(即1000毫秒) 采集 4 8 0 0 0 次 。         计算1秒有多少帧 :48000 / 1024 = 46.875 = a(用a表示计算结果,多少帧) 。         计算每帧持续时长 :     

    2024年04月16日
    浏览(41)
  • 音视频基础概念(5)——音频基础说明

    现实生活中,音频(Audio)主要用在两大场景中,包括语音(Voice)和音乐(Music)。语音主要用于沟通,如打电话等。目前由于语音识别技术的发展,人机语音交互也是语音的一个应用方向,很多大厂推出智能音箱、语音助手等。音乐主要用于欣赏和陶冶情操,如播放音乐。

    2023年04月08日
    浏览(109)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包