还未设置个性签名
成为VIP会员 享9项特权: 开通会员

完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>

3天内不再提示

嵌入式视频处理器内核的软件基础架构

星星科技指导员 来源:嵌入式计算设计 作者:Ranganathan Sk 2022-07-04 10:42 次阅读

借助物联网机器学习人工智能等新时代技术,公司正在通过以创新方式融合物理现实和数字信息来重新构想和创建智能多媒体应用程序。多媒体解决方案涉及音频/视频编解码器、图像/音频/视频处理、边缘/云应用,在少数情况下还包括 AR/VR。本博客将讨论任何多媒体解决方案中嵌入式视频处理器内核所涉及的软件基础架构。

视频处理器是基于 RTL 的硬化 IP 块,可用于领先的 FPGA 板。借助这个嵌入式内核,用户可以原生支持视频会议、视频流以及基于 ML 的图像识别和面部识别应用,具有低延迟和高资源效率。但是,在部署视频处理器之前可能会出现与操作系统支持、H.264/265 处理、驱动程序开发等相关的软件级别问题。

让我们从视频处理器的概述开始,看看如何为半导体公司解决这些问题,使最终用户能够获得其产品优势。

嵌入式视频处理器内核

视频处理器是一个多组件解决方案,由视频处理引擎本身、DDR4 块和同步块组成。这些组件一起专用于支持分辨率高达 4k UHD (3840x2160p60) 的 H.264/.265 编码和解码,对于该 FPGA 器件系列的最高速度等级,最高可达 4096x2160p60。支持的级别和配置文件包括用于 HEVC 的最高 L5.1 高级层和用于 AVC 的 L5.2。这三款产品都是基于 RTL 的嵌入式 IP 产品,它们部署在目标 FPGA 器件系列的可编程逻辑结构中,并经过优化/“强化”以实现最大的资源效率和性能。

视频处理器引擎能够同时编码和解码多达 32 个视频流。这是通过将 2160p60 带宽拆分到所有预期通道来实现的,支持 480p30 分辨率的视频流。H.264 解码支持在 L5.2 2160p60 高 4:2:2 配置文件 (CAVLC) 上高达 960Mb/s 的比特流和高达 533Mb/s L5.1 2160p60 Main 4:2:2 比特流的 H.265 解码10b 内部配置文件 (CABAC.)

视频处理器引擎还内置了显着的多功能性。速率控制选项包括 CBR、VBR 和恒定 QP。在较低帧速率下支持比 2160p60 更高的分辨率。该引擎可以处理 8b 和 10b 色深以及 4:0:0、4:2:0 和 4:2:2 的 YCbCr 色度格式。

微架构包括独立的编码器和解码器部分,每个部分由嵌入式 32b 可合成 MCU 通过单个 32b AXI-4 Lite I/F 从属主机 APU 管理。每个 MCU 都有由专用 32b AXI-4 主控器支持的 L1 指令和数据缓存。系统内存的数据传输通过一个 4 通道 128b AXI-4 主 I/F 进行,该 I/F 在编码器和解码器之间分离。还有一个嵌入式 AXI 性能监视器,可直接测量总线事务和延迟,无需为每个 MCU 锁定固件以外的其他软件开销。

DDR4 块是一个组合的内存控制器和 PHY。控制器部分通过 SDRAM 优化 R/W 事务,而 PHY 执行 SerDes 和时钟管理任务。还有一些额外的支持模块提供系统内存的初始化和校准。五个 AXI 端口和一个 64b SODIMM 端口提供高达 2677 MT/s 的性能。

第三个块同步视频处理器引擎编码器和 DMA 之间的数据事务。它可以缓冲多达 256 个 AXI 事务并确保低延迟性能。

该公司的集成开发环境 (IDE) 用于根据比特流数量、所选编解码器和所需配置文件来确定给定应用所需的视频处理器内核数量以及用于编码或解码的缓冲区配置。通过工具链,用户可以选择 AVC 或 HEVC 编解码器、I/B/P 帧编码、分辨率和级别、每秒帧数颜色格式和深度、内存使用以及压缩/解压缩操作。IDE 还提供带宽要求和功耗的估计值。

嵌入式软件支持

任何硬件到视频处理的嵌入式软件开发支持可分为以下几类:

视频编解码器验证和功能测试

Linux 支持,包括内核开发、驱动程序开发和应用程序支持

工具和框架开发

参考设计开发和部署

根据需要使用和贡献开源组织

视频处理器上的 AVC 和 HEVC 编解码器的验证非常广泛。它必须以 3840x2160p60 性能级别执行,以便在裸机和 Linux 支持的环境中进行编码和解码。从原型设计到全面生产,低延迟性能也得到了验证。

Linux 工作专注于多媒体框架和级别,以定制内核和驱动程序。这包括 v4l2 子系统、DRM 框架和用于同步块的驱动程序,以确保低延迟性能。

编解码器和 Linux 项目有效地引导自己代表客户开发各种参考设计。编码和解码的边缘设计、从低延迟视频会议到 32 通道视频流、基于感兴趣区域的编码和 ML 人脸检测的开发,所有这些都可以通过使用经过仔细考虑的开放式选择来完成源工具、框架和功能。在下面找到这些产品的摘要:

GStreamer – 一个开源的多操作系统多媒体组件库,可以以流水线方式组装,遵循面向对象的设计方法和插件架构,用于多媒体播放、编辑、录制和流式传输。它支持多媒体应用程序的快速构建,并在 GNU LGPL 许可下提供。GStreamer 产品还包括各种非常有用的工具,包括 gst-launch(用于构建和运行 GStreamer 管道)和 gsttrace(一个基本的跟踪工具。)

StreamEye – 一种开源工具,为深入分析视频流提供数据和图形显示。

Gstshark – 作为 Ridgerun 的一个开源项目提供,该工具提供了用于分析和调试 GStreamer 多媒体应用程序构建的基准测试和跟踪功能。

FFmpeg 和 FFprobe – 都是 FFmpeg 开源项目的一部分,它们是面向多媒体软件开发人员的与硬件无关的多操作系统工具。FFmpeg 允许用户在多种格式之间转换多媒体文件、更改采样率和缩放视频。FFprobe 是多媒体流分析的基本工具。

OpenMAX – 通过 Khronos Group 提供,这是一个 API 和信号处理函数库,允许开发人员使多媒体堆栈可跨硬件平台移植。

Yocto – 一个 Linux 基金会开源协作,它创建工具(包括 SDK 和 BSP)和支持功能,为嵌入式和物联网应用程序开发 Linux 自定义实现。社区及其 Linux 版本与硬件无关。

Libdrm - 一组用于支持 DRM 的开源低级库。Direct Rendering Manager 是一个 Linux 内核,它代表用户程序管理基于 GPU 的视频硬件。它通过命令队列以仲裁模式管理程序请求,并管理硬件子系统资源,特别是内存。libdrm 库还包括支持 IntelAMD 和 Nvidia 的 GPU 的函数。Libdrm 包括 modetest 等工具,用于测试 DRM 显示驱动程序。

Media-ctl – 一种广泛可用的开源工具,用于在 Linux v4l2 层中配置媒体控制器管道。

PYUV 播放器——另一个广泛使用的开源工具,允许用户播放未压缩的视频流。

Audacity – 免费的多操作系统音频编辑器。

上述工具/框架有助于在视频处理、流媒体和会议下设计高效和优质的多媒体解决方案。

审核编辑:郭婷

  • 嵌入式
    +关注

    关注

    3861

    文章

    15063

    浏览量

    258996
  • Linux
    +关注

    关注

    76

    文章

    7949

    浏览量

    196101
  • 编辑器
    +关注

    关注

    0

    文章

    530

    浏览量

    28036
收藏 人收藏

    评论

    相关推荐

    直流无刷电机(BLDC)基础知识---TMC4671-LA

    提到直流无刷电机,那不得不提的就是有刷电机了。有刷电机有一个比较令人讨厌的缺点:那就是“吵”。 因为电刷和换向环需要时刻...
    发表于 09-23 18:10 4377次 阅读

    linux程序设计(第4版)源代码

    linux程序设计(第4版)源代码 ,配合配套的书进行练习
    发表于 09-23 15:49 6次 阅读

    超详细的嵌入式学习路线图!

    学习完RTOS后,基本嵌入式所涉及的技术已经掌握一半了,你也可以独立完成一些小的项目,也可以找到一个....
    的头像 嵌入式微处理器 发表于 09-23 15:43 142次 阅读

    讯维会议音视频系统解决方案符合智能会议室的建设要求

    扩声系统采用电动音箱,电动调节,可预设多个定位角度;可通过Cat6网线传输,支持中控控制,会场控制有....
    发表于 09-23 14:25 75次 阅读

    Qt应用程序出现卡顿的现象怎么解决呢

    在使用Qt完成项目开发后,需要将其运行在嵌入式linux平台上,在设备启动后,经uboot引导和li....
    的头像 工程师邓生 发表于 09-23 10:38 79次 阅读

    工业4.0最佳选择-特控嵌入式工控机MEC-T6422

    工业4.0是以智能制造为主导的第四次工业革命或革命性的生产方法,是集成大量计算机、通信和控制技术为一....
    发表于 09-23 10:23 11次 阅读
    工业4.0最佳选择-特控嵌入式工控机MEC-T6422

    Linux中断编程

    中断:是指CPU在运行过程中,出现了某种异常事件,需要CPU先暂停当前工作,转而去处理新产生的异常事....
    的头像 嵌入式技术 发表于 09-23 09:01 258次 阅读
    Linux中断编程

    请问riscv系列芯片支持在Linux手动创建工程,makefile编译么?

    请问,公司的riscv系列芯片支持在Linux手动创建工程,makefile编译么?    ...
    发表于 09-23 06:53 39次 阅读

    恩智浦原型嵌入式设计:电池管理系统应用

    使用恩智浦基于模型的设计工具箱进行快速原型嵌入式设计:电池管理系统应用
    发表于 09-22 15:50 57次 阅读

    分享几个Linux服务器的优点

    Linux操作系统之所以如此流行,是因为它具备很多的优点,当然这些优点是对于特定人群来说的,不同的人....
    的头像 嵌入式微处理器 发表于 09-22 14:52 92次 阅读

    什么是架构和架构本质

    Linux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux....
    的头像 倩倩 发表于 09-22 14:18 52次 阅读

    计算机操作系统学习指南

    在讲解操作系统之前,我们先从整体上讲一下计算机,再从硬件讲到软件,最后再讲操作系统。
    发表于 09-22 09:07 90次 阅读

    linux vi/vim的几种常规操作

    vim是一个文本编辑器,在几乎所有的linux发行版中都有vi/vim编辑器,但是这个编辑器非常有特....
    发表于 09-22 09:02 100次 阅读

    Linux中CMake的使用4-代码与编译文件单独存放

    本篇介绍当源文件与编译文件独立存放时,如何编写CMakeLists.txt。
    的头像 码农爱学习 发表于 09-22 08:57 204次 阅读
    Linux中CMake的使用4-代码与编译文件单独存放

    Linux内核定时器

    在Linux内核中,也可以通过定时器来完成定时功能。但和单片机不同的是,Linux内核定时器是一种基....
    的头像 嵌入式技术 发表于 09-22 08:56 214次 阅读
    Linux内核定时器

    迅为RK3568开发板视频教程上新,ARM入门更简单

    驱动视频全新升级,并持续更新~更全,思路更科学,入门更简单。 迅为基于iTOP-RK3568开发板进行讲解, 【Android11系统移...
    发表于 09-21 17:00 385次 阅读

    浅谈无法避开的Linux 系统故障

    Linux 性能问题一直是程序员头上的“紧箍咒”,大多数时候,我们只能看到“症状”,却不知道从哪儿下....
    发表于 09-21 15:15 63次 阅读

    ROC RK3566 PC Linux SDK源码包

    电子发烧友网站提供《ROC RK3566 PC Linux SDK源码包.txt》资料免费下载
    发表于 09-21 15:03 20次 阅读
    ROC RK3566 PC Linux SDK源码包

    Oracle发布了虚拟化软件 VirtualBox 7的第一个测试版

    可以通过选中设置第一页上的框来跳过无人值守安装。无人值守安装支持允许用户立即添加用户帐户、输入产品密....
    的头像 倩倩 发表于 09-21 14:51 50次 阅读

    服务器Linux系统配置IP地址的方法

    服务器Linux系统配置IP地址的方法。
    的头像 中兴文档 发表于 09-21 14:50 92次 阅读

    CPU和GPU频率的查看及设置

    在嵌入式设备中为了降低功耗防止芯片发热,厂商一般默认都将CPU和GPU频率为最小,为了提高性能,减少....
    发表于 09-21 14:42 229次 阅读

    linux中vi、vim编辑器常用的技巧

    今天浩道跟大家分享硬核干货,关于linux中vi、vim编辑器常用的技巧!
    发表于 09-21 14:04 77次 阅读

    ROC RK3566 PC资源linux headers

    电子发烧友网站提供《ROC RK3566 PC资源linux headers.txt》资料免费下载
    发表于 09-21 11:15 8次 阅读
    ROC RK3566 PC资源linux headers

    AIO 3568J工具firefly linux repack

    电子发烧友网站提供《AIO 3568J工具firefly linux repack.txt》资料免费....
    发表于 09-21 11:06 11次 阅读
    AIO 3568J工具firefly linux repack

    关于加密状态的zip压缩包

    但是该工具无法识别,就算文件扩展名改为.zip也不行,可能因为ARCHPR是很老的缘故了,不支持现在....
    的头像 lhl545545 发表于 09-21 11:05 62次 阅读

    AIO 3568J工具Linux Upgrade Tool v1.59

    电子发烧友网站提供《AIO 3568J工具Linux Upgrade Tool v1.59.zip》....
    发表于 09-21 11:05 8次 阅读
    AIO 3568J工具Linux Upgrade Tool v1.59

    AIO 3568J Linux SDK源码包

    电子发烧友网站提供《AIO 3568J Linux SDK源码包.txt》资料免费下载
    发表于 09-21 11:02 11次 阅读
    AIO 3568J Linux SDK源码包

    AIO 3568J资源linux headers

    电子发烧友网站提供《AIO 3568J资源linux headers.txt》资料免费下载
    发表于 09-21 10:37 8次 阅读
    AIO 3568J资源linux headers

    AIO 3399ProC工具Linux Upgrade Tool 1.34

    电子发烧友网站提供《AIO 3399ProC工具Linux Upgrade Tool 1.34.zi....
    发表于 09-21 10:25 8次 阅读
    AIO 3399ProC工具Linux Upgrade Tool 1.34

    AIO 3399ProC工具Linux Upgrade Tool v1.24

    电子发烧友网站提供《AIO 3399ProC工具Linux Upgrade Tool v1.24.z....
    发表于 09-21 10:24 10次 阅读
    AIO 3399ProC工具Linux Upgrade Tool v1.24

    AIO 3399ProC解合包工具(Linux)

    电子发烧友网站提供《AIO 3399ProC解合包工具(Linux).txt》资料免费下载
    发表于 09-21 10:01 8次 阅读
    AIO 3399ProC解合包工具(Linux)

    AIO 3399ProC Linux SDK源码包(仅支持RK3399Pro)

    电子发烧友网站提供《AIO 3399ProC Linux SDK源码包(仅支持RK3399Pro).....
    发表于 09-21 09:59 8次 阅读
    AIO 3399ProC Linux SDK源码包(仅支持RK3399Pro)

    AIO 3399ProC Linux根文件系统镜像(arm64/arm32)

    电子发烧友网站提供《AIO 3399ProC Linux根文件系统镜像(arm64/arm32).t....
    发表于 09-21 09:52 10次 阅读
    AIO 3399ProC Linux根文件系统镜像(arm64/arm32)

    AIO 3399C工具Linux Upgrade Tool 1.34

    电子发烧友网站提供《AIO 3399C工具Linux Upgrade Tool 1.34.zip》资....
    发表于 09-21 09:46 8次 阅读
    AIO 3399C工具Linux Upgrade Tool 1.34

    AIO 3399C工具Linux Upgrade Tool v1.24

    电子发烧友网站提供《AIO 3399C工具Linux Upgrade Tool v1.24.zip》....
    发表于 09-21 09:45 9次 阅读
    AIO 3399C工具Linux Upgrade Tool v1.24

    AIO 3399C解合包工具(Linux)

    电子发烧友网站提供《AIO 3399C解合包工具(Linux).txt》资料免费下载
    发表于 09-21 09:23 18次 阅读
    AIO 3399C解合包工具(Linux)

    AIO 3399C源代码Linux SDK(仅支持RK3399)

    电子发烧友网站提供《AIO 3399C源代码Linux SDK(仅支持RK3399).txt》资料免....
    发表于 09-21 09:19 29次 阅读
    AIO 3399C源代码Linux SDK(仅支持RK3399)

    Linux中CMake的使用3-不同目录多个源文件

    上篇(Linux中CMake的使用2-同目录下多个源文件)介绍了在同一目录下有多个源文件时如何编写C....
    的头像 码农爱学习 发表于 09-21 08:49 434次 阅读
    Linux中CMake的使用3-不同目录多个源文件

    嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)

    智能机器人设计是不少电子发烧友首选的热门DIY项目,现整理了一批机器人开源项目,基本都包含了原理图、代码、论文资料等,速...
    发表于 09-20 15:02 9241次 阅读
    嵌入式热门DIY项目:智能机器人开源资料合集(原理图、代码、论文)

    工控机的国产化和自主可控成为发展需要

    工控机是面向其他行业的可靠、嵌入式、智能化的工控机。 目前,工控机已广泛应用于煤炭、电力、冶金、石化....
    的头像 kimkylin 发表于 09-20 14:42 78次 阅读

    如何在Linux命令行中终止进程

    如果进程在前台运行,你可以使用 Ctrl+C 终端快捷方式。但是,如果进程不可见(在后台运行),你可....
    发表于 09-20 11:07 101次 阅读

    AIO 3566JD4资源linux headers

    电子发烧友网站提供《AIO 3566JD4资源linux headers.txt》资料免费下载
    发表于 09-20 10:17 11次 阅读
    AIO 3566JD4资源linux headers

    ROC RK3568 PC工具firefly linux repack

    电子发烧友网站提供《ROC RK3568 PC工具firefly linux repack.txt》....
    发表于 09-20 10:09 12次 阅读
    ROC RK3568 PC工具firefly linux repack

    ROC RK3568 PC工具Linux Upgrade Tool v1.59

    电子发烧友网站提供《ROC RK3568 PC工具Linux Upgrade Tool v1.59.....
    发表于 09-20 10:08 15次 阅读
    ROC RK3568 PC工具Linux Upgrade Tool v1.59

    ROC RK3568 PC源代码Linux SDK源码包

    电子发烧友网站提供《ROC RK3568 PC源代码Linux SDK源码包.txt》资料免费下载
    发表于 09-20 09:56 14次 阅读
    ROC RK3568 PC源代码Linux SDK源码包

    C++字符编码转换的基本方法

    这篇文章介绍了如何在最常见的编码方式(Unicode, UTF-8, ANSI)之间进行转换,结合代....
    发表于 09-20 09:50 117次 阅读

    ROC RK3568 PC资源linux headers

    电子发烧友网站提供《ROC RK3568 PC资源linux headers.txt》资料免费下载
    发表于 09-20 09:41 12次 阅读
    ROC RK3568 PC资源linux headers

    学习C语言的绊脚石

    C语言在嵌入式学习中是必备的知识,审核大部分操作都要围绕C语言进行,而其中有三块“难啃的硬骨头”几乎....
    发表于 09-20 09:36 192次 阅读

    ROC RK3566 PC工具firefly linux repack

    电子发烧友网站提供《ROC RK3566 PC工具firefly linux repack.txt》....
    发表于 09-20 09:29 21次 阅读
    ROC RK3566 PC工具firefly linux repack

    ROC RK3566 PC工具Linux Upgrade Tool v1.59

    电子发烧友网站提供《ROC RK3566 PC工具Linux Upgrade Tool v1.59.....
    发表于 09-20 09:28 26次 阅读
    ROC RK3566 PC工具Linux Upgrade Tool v1.59

    一文详解编译系统

    什么是编译器?为什么要有编译器?编译器的作用是什么?编译系统的组成部分有哪些,它们之间的关系是什么?....
    发表于 09-20 09:09 127次 阅读

    linux高效命令总结

    今天浩道跟大家分享高效运维硬核干货,分享几十个高效的linux命令。让你在运维道路上多些高效技能!
    发表于 09-20 09:06 94次 阅读

    嵌入式人工智能学习路线

    嵌入式人工智能,一个不算陌生的新技术名词。它曾经被云端和现实技术所束缚,只能在很小范围进行实验、运用,但是随着5G时代的渐...
    发表于 09-16 17:07 2898次 阅读

    为什么Linux更受欢迎?

    1、免费程序员动手能力强,喜欢折腾,但是到处要钱,这就有点不开心了。Linux 系统完全免费。你无须为使用的操作系统或软件花费...
    发表于 09-15 17:32 672次 阅读
    为什么Linux更受欢迎?

    i.MX8MQ自制底板无PCIe问题详解

    在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEY...
    发表于 09-15 17:04 2265次 阅读

    电机驱动电路之H桥基本知识---Trinamic电机驱动芯片

      H桥是一种电子电路,可使其连接的负载或输出端两端电压反相/电流反向。这类电路可用于机器人及其它实作场合中直流电动机的顺...
    发表于 09-15 16:39 2822次 阅读

    采用TI嵌入式语音识别 (TIesr) 库的TIDEP0066参考设计

    描述                      TIDEP0066 参考设计...
    发表于 09-15 07:46 747次 阅读

    Linux和C语言的学习方法分享

    Linux的使用为什么要先学c、学linux?因为嵌入式的根本就是软件驱动硬件,而C语言是最接近硬件的语言、有指针的概念、可以直接...
    发表于 09-14 17:45 454次 阅读

    AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

    TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX™图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,EnDat等...
    发表于 09-25 11:51 725次 阅读
    AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)