视频编解码技术详解 视频编解码(Video Codec)是数字视频处理的核心技术,通过压缩算法将原始视频数据转换为更小的文件大小,同时在解码时恢复视频内容。本文将深入探讨 H.264 和 H.265 两种主流视频编码标准的原理、特点及其在嵌入式系统中的应用。 原始视频数据量巨大。以1080p@30fps视频为例: - 分辨率:1920×1080像素 - 帧率:30帧/秒 - 色深:24位(RGB各8位) - 数据率 2026-08-20 Linux > 设备驱动 > 摄像头 #Linux #设备驱动 #摄像头
基于MPP库进行视频编解码 一、MPP 介绍 以下为 RK 官方 MPP 文档的 GitHub 链接,包含了中文/英文的 MPP 开发指南: https://github.com/rockchip-linux/mpp/tree/develop/doc MPP(Media Process Platform)是 Rockchip 提供的一套 硬件视频编解码中间件,用于统一调用芯片上 VPU(Video Processing 2026-08-18 Linux > 设备驱动 > 摄像头 #Linux #设备驱动 #摄像头
Rockchip RGA 简单使用 一、简介 RGA (Raster Graphic Acceleration) 是 Rockchip 提供的 2D 图像处理硬件加速器,专门用于加速图像的缩放、颜色转换、格式转换等操作。在 RK3588 等芯片上可用。 典型优势: 硬件加速,CPU 零开销 高效的图像缩放 (resize) 色彩空间转换 (BGR↔RGB, RGB↔YUV) 支持 DMA 零拷贝 适用场景: YOLO 等目标检 2026-08-16 Linux > 设备驱动 > 摄像头 #Linux #设备驱动 #摄像头
常用图像格式介绍 一、概述 本文主要介绍一下几种图像格式: RAW、RGB、YUV、NV12、MJPEG。 这些图像格式分别处于图像处理链路的不同阶段,从传感器原始数据到最终显示/存储的压缩格式。下面按数据"原始程度"从高到低逐一讲解。 1采集 → 处理 → 显示 → 编码 → 传输 不同阶段需要不同的数据格式。 进一步简化: 123456789RAW ↓ISP ↓RGB / YUV ↓编码 2026-08-15 Linux > 设备驱动 > 摄像头 #摄像头 #图像格式
V4L2框架——视频采集完整链路 如下是 V4L2 应用程序开发的一般流程: 1234567891011121314151617181920212223242526272829303132333435363738394041用户态程序 | | open("/dev/video20") vfile descriptor fd | | VIDIOC_QUERYCAP v确认是 V 2026-08-12 Linux > 设备驱动 > 摄像头 > V4L2 #Linux #设备驱动 #摄像头 #V4L2
Linux驱动——V4L2框架 一、V4L2 架构 V4L2 子系统是 Linux 内核中关于 Video(视频)设备的API接口,是 V4L(Video for Linux)子系统的升级版本。 V4L(Video for Linux)是 Linux 内核中关于视频设备的 API 接口,出现于 Linux 内核 2.1 版本,经过修改 bug 和添加功能,Linux 内核 2.5 版本推出了 V4L2(Video for Lin 2026-08-10 Linux > 设备驱动 > 摄像头 > V4L2 #Linux #设备驱动 #摄像头 #V4L2
Linux驱动——使用workqueue处理中断 一、workqueue 与 tasklet 的区别 前面已经讲过中断和 tasklet 了,本文将介绍使用 workqueue 来处理中断。首先来看下它和 tasklet 有什么区别。 对比项 tasklet workqueue 上下文 softirq 进程上下文 能否睡眠 不能 能 能否拿 mutex 不能 能 执行者 softirq 机制 kworker 内核线程 2026-08-09 Linux > 设备驱动 > 中断子系统 #Linux #设备驱动 #中断子系统
Linux驱动——使用tasklet处理中断 一、中断 前文已经提到过中断,这里再回忆一下。中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU 就不能及时响应其他的中断请求,从而造成中断的丢失。 因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。 例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断 2026-08-08 Linux > 设备驱动 > 中断子系统 #Linux #设备驱动 #中断子系统
Linux驱动——向应用层提供sysf接口 一、用户操作驱动设备的方式 1.1 字符设备接口 这是最常用的设备交互方式,适用于流式数据传输或复杂命令交互的设备(如串口、LED、传感器、显卡等)。 核心特点: 通过 /dev 目录下的设备节点(如 /dev/ttyS0、/dev/led0)操作; 驱动需实现 file_operations 结构体(open/read/write/ioctl 等); 支持阻塞 / 非阻塞读写、ioctl 命令 2026-08-07 Linux > 设备驱动 > 设备模型 #Linux #设备驱动 #设备模型
Linux驱动——中断子系统框架 一、中断 轮询是 CPU 主动问: 1234while (1) { if (设备有事件) 处理事件;} 中断是设备主动通知 CPU: 123456设备发生事件 -> 触发中断线 -> 中断控制器通知 CPU -> CPU 跳转到 Linux 中断入口 -> Linux 找到对应 irq_desc -> 2026-08-06 Linux > 设备驱动 > 中断子系统 #Linux #设备驱动 #中断子系统