当前位置: 首页 > news >正文

【屏显MCU】多媒体接口总结

本文主要介绍【屏显MCU】的基本概念,用于开发过程中的理解
以下是图层叠加示例

在这里插入图片描述

【屏显MCU】多媒体接口总结

  • 0. 个人简介 && 授权须知
  • 1. 三大引擎
    • 1.1 【显示引擎】Display Engine
      • 1.1.1 【UI】 图层的概念
      • 1.1.2 【Video】 图层的概念
      • 1.1.3 图层的 Blending 的概念
      • 1.1.4 图层的 Blending 的示例
    • 1.2 【图像引擎】Graphics Engine-
      • 1.2.1 图像旋转
      • 1.2.2 图像缩放
      • 1.2.3 矩形填充
      • 1.2.4 位块搬移
    • 1.3 【视频引擎】Video Engine
  • 2. UI 层的透明度 alpha
  • 3. 图像 stride 和 plane 的概念
    • 3.1 YUV 模型图像存储
    • 3.2 NV12 格式

0. 个人简介 && 授权须知

image-20230911133730620

📋 个人简介

  • 💖 作者简介:大家好,我是喜欢记录零碎知识点的菜鸟打工人。😎
  • 📝 个人主页:欢迎访问我的博客主页🔥
  • 🎉 支持我:点赞👍+收藏⭐️+留言📝
  • 📣 系列专栏:嵌入式开发专栏 🍁 🍁
  • 💬格言:写文档啊不是写文章,重要的还是直白!🔥

转载文章,禁止声明原创;不允许直接二次转载,转载请根据原文链接联系作者

若无需改版,在文首清楚标注作者及来源/原文链接,并删除【原创声明】,即可直接转载。
但对于未注明转载来源/原文链接的文章,我将保留追述的权利。

作者:积跬步、至千里

image-20230911133724204

1. 三大引擎

1.1 【显示引擎】Display Engine

功能:用于提供 【显示图层叠加】 的功能。支持一个 video 图层 + UI 图层 叠加,通过显示接口输出

常见的 UI图层图像格式:
ARGB8888/XRGB8888/RGB888/ARGB4444/ARGB1555/RGB565

常见的video 图层的图像格式:
ARGB8888/XRGB8888/RGB888/ARGB4444/ARGB1555/RGB565

NV12/NV21/NV16/NV61/YUYV/YVYU/UYVY/VYUY/YUV400

1.1.1 【UI】 图层的概念

UI 图层即用户界面(User Interface)图层,用于显示图形用户界面元素,如按钮、图标、文本、菜单等。在lvgl中创建的控件都属于UI层。

1.1.2 【Video】 图层的概念

通俗的理解为,视频播放时的一帧一帧的图像画面。

1.1.3 图层的 Blending 的概念

  • 在图形处理中,UI 图层(User Interface Layer,用户界面图层)和 video 图层(视频图层)的 Blending(混合、融合)指的是将这两个图层的图像按照一定的规则和比例进行 合成 的过程。
  • 通过 Blending,可以实现不同图层之间的 透明度、颜色、亮度 等方面的融合效果,从而创造出各种视觉效果。

1.1.4 图层的 Blending 的示例

在视频播放器的界面中,可以将【video图层】和 【UI 图层】(如播放控制按钮、进度条等) blending 混合显示,以便在 不遮挡视频 的情况下显示控制元素,同时使整个界面看起来更加协调和美观。
在这里插入图片描述

1.2 【图像引擎】Graphics Engine-

GE(Graphics Engine)模块是一个用来进行 2D 图形加速 硬件模块
主要包括格式转换、旋转、镜像、 缩放、Alpha混合、Color Key、位块搬移、Dither等功能。

1.2.1 图像旋转

一帧图像本质上是一个大的【二维矩阵】,图像旋转本质上是对矩阵的运算,点屏 MCU 硬件上支持矩阵的复杂运算。

在这里插入图片描述 在这里插入图片描述

1.2.2 图像缩放

1.2.3 矩形填充

在这里插入图片描述

1.2.4 位块搬移

在这里插入图片描述

1.3 【视频引擎】Video Engine

视频/图片编 解码加速 引擎,该模块支持 JPEG 编解码以及 PNG 图片解码。

该部分原理,不做深究,会使用接口即可

2. UI 层的透明度 alpha

alpha 是一个数值,用于表示图层的不透明程度。取值范围 0-255
0表示完全透明,即该图层不可见
255表示完全不透明,该图层或遮挡住后边的内容

如下图所示,透明度 alpha 值大概在140左右,设置完透明度和 Video 层叠加显示的效果如下。
在这里插入图片描述

3. 图像 stride 和 plane 的概念

Stride:指的是在内存中每行像素所占的空间,
在这里插入图片描述

Plane:(平面)一般是以“luma plane”(亮度平面)、“chroma plane”(色度平面)的形式出现。

例如在 YUV 图像中,YUV 分量可以分别存储在不同的 plane 中。Y在一个平面,UV在一个平面,使用2个plane

3.1 YUV 模型图像存储

可参考资料:【摄像头YUV图像常见数据格式介绍】

对于4:2:2采样的图,如果图片的宽为width,高为heigth,在内存中占的空间为width * height * 2

其中width * height的空间存放Y分量, width * height/ 2的空间存放U分量,width * height / 2的空间存放V分量

3.2 NV12 格式

NV12存储顺序是先存Y值,再UV交替存储:YYYYUVUVUV

4 X 4 图片为例子,占用内存为 4 X 4 X 3 / 2 = 24 个字节,如下图所示:

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LNMP动态网站环境部署
  • Javascript中canvas与svg详解
  • LLM评估 | 大模型评估方法调研--论文解读(持续更新ing!!!)
  • iexcel-excel 大文件读取和写入-04-order 指定列顺序
  • Spring源码学习笔记之@Async源码
  • 智能番茄成熟度评估:基于深度学习的自动检测系统
  • AI推理硬件成本分析:AMD Instinct MI300X与Nvidia GPU比较
  • 商品中心关于缓存热key的解决方案
  • web、http协议、apache服务、nginx服务
  • 汇舟问卷:轻松入门国外问卷调查工作室
  • springboot驾校管理系统-计算机毕业设计源码55471
  • 【Dash】Dash 应用的布局 app.layout
  • 【OSCP系列】OSCP靶机-BTRsys-2.1(原创)
  • Python写UI自动化--playwright(点击操作)
  • Qt基础 | 主机信息查询 | QHostInfo的介绍和使用 | QNetworkInterface的介绍和使用
  • 网络传输文件的问题
  • #Java异常处理
  • 【RocksDB】TransactionDB源码分析
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • React 快速上手 - 07 前端路由 react-router
  • 彻底搞懂浏览器Event-loop
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 容器服务kubernetes弹性伸缩高级用法
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据结构java版之冒泡排序及优化
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 异步
  • 异常机制详解
  • 06-01 点餐小程序前台界面搭建
  • !!java web学习笔记(一到五)
  • #APPINVENTOR学习记录
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (19)夹钳(用于送货)
  • (3)llvm ir转换过程
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (六)DockerCompose安装与配置
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ***原理与防范
  • .NET CF命令行调试器MDbg入门(一)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET gRPC 和RESTful简单对比
  • .net6 webapi log4net完整配置使用流程
  • .net中生成excel后调整宽度
  • @AliasFor注解
  • @TableLogic注解说明,以及对增删改查的影响