你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 472|回复: 0

【中文文档】AN4996

[复制链接]

1347

主题

1124

回帖

0

蝴蝶豆

管理员

最后登录
2020-12-9
发表于 2019-3-21 10:19:32 | 显示全部楼层 |阅读模式
STM32F76/77xxx和STM32H7x3系列微控制器中的硬件JPEG编解码外设

引言

本应用笔记描述在STM32F76/77xxx和STM32H7x3系列微控制器中如何对JPEG解码/编码应用使用硬件JPEG编解码外设。

STM32F76/77xxx和STM32H7x3系列微控制器嵌入了专用的硬件JPEG编解码外设,它提供了快速又简单的硬件JPEG图像压缩程序和解压程序,具备:
• JPEG文件头的全面管理能力,
• 完全可编程的霍夫曼表(两个AC表和两个DC表),
• 多达四个可编程量化表,
• 完全可编程最小编码单元(MCU)。

硬件JPEG编解码器支持YCbCr或RGB(3个颜色分量)、灰度(1个颜色分量)和CMYK(4个颜色分量)模式的像素输入/输出格式,每个分量的下采样因子完全可编程。

为了充分利用本应用笔记,用户应熟悉:
• STM32的JPEG编解码外设,如STM32F76/77xxx参考手册(RM0410)所述,该手册可从意法半导体网站www.st.com上获得。
• STM32的JPEG编解码外设,如STM32H7x3参考手册(RM0433)所述,该手册可从意法半导体网站www.st.com上获得。
• JPEG压缩标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)和JFIF文件格式标准(JPEG文件交换格式)。

参考文档

• STM32F76xxx和STM32F77xxx基于32位MCU的高级Arm®参考手册(RM0410),
• STM32H7x3基于32位MCU的高级Arm®参考手册(RM0433),
• STM32F7系列(STM32CubeF7)和STM32H7系列(STM32CubeH7)的嵌入式软件
1.png

1 硬件JPEG编解码器概述

硬件JPEG编解码外设符合JPEG标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)。它可以解码/编码JPEG压缩图像,每个样本8位。

硬件JPEG编解码外设为熵编解码段(ECS)编码和解码提供硬件加速。它支持JPEG文件头生成和解析。硬件JPEG编解码外设还支持JFIF(JPEG文件交换格式),使用事实标准对JPEG图像进行编码。但是,在这些数据流中找到的所有应用特定的标记段均被忽略。JPEG编解码器支持最多四个颜色分量、四个量化表和两组DC和AC霍夫曼表。

硬件JPEG编解码器可以灵活地指定要对每个分量使用的量化表和霍夫曼表。

JPEG标准定义的JPEG编码和解码操作按块执行。JPEG标准将MCU(最小编解码单元)定义为可以编码或解码的最小块数。在硬件JPEG编解码外设中,MCU的构成是可编程的。硬件JPEG编解码器可以定义每个MCU中属于特定颜色分量的块数。每个块是样本的一个8x8数组,每个样本被定义为8位(1个字节)。因此,每个块均是一个64字节数组(每个样本1个字节)。

硬件JPEG编解码器支持YCbCr或RGB(3个颜色分量)、灰度(1个颜色分量)和CMYK(4个颜色分量)模式的像素输入/输出格式,每个分量的下采样因子完全可编程。

使用STM32H7x3系列器件进行JPEG解码操作,当输出颜色格式为YCbCr时,Chrom-ArtAccelerator™外设(也称为DMA2D)能够将YCbCr块(JPEG解码器的输出)转换为可直接显示的RGB像素。

使用STM32H7x3系列器件进行编码(所有颜色格式)或非YCbCr(灰度或CMYK颜色格式时)颜色格式的解码时,从/至RGB像素的转换不进行硬件加速且必须通过软件执行。

使用STM32F76/77xxx器件进行解码或编码时,YCbCr至RGB的转换不加速且必须通过软件执行。

STM32CubeF7/H7固件包提供包含必要API的专用JPEG实用工具软件,能够执行JPEGMCU块至/从RGB像素的转换(位于\Firmware\Utilities\JPEG目录下)。

STM32CubeF7/H7为JPEG编解码外设提供专用HAL(硬件抽象层)驱动程序:

• STM32CubeF7:stm32f7xx_hal_jpeg.c/ stm32f7xx_hal_jpeg.h

• STM32CubeH7:stm32h7xx_hal_jpeg.c/ stm32h7xx_hal_jpeg.h

本文档适用于基于Arm®的器件。

2 不同色彩空间的硬件JPEG编解码器设置

2.1 YCbCr色彩空间

2.1.1 YCbCr与RGB之间的相互转换

JPEG文件交换格式(JFIF)标准描述了YCbCr与RGB之间的相互转换和色度采样。JFIF合规文件通常具有如下扩展名:.jpg、.jpeg、.JPG、.JPEG。

JPEG标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)没有定义要对源行图像使用的色彩空间,而JFIF标准则定义了两个可能的色彩空间:灰度(Y亮度)或彩色(YCbCr亮度和色度)。

JFIF标准使用YCbCr颜色而不是原始的RGB色彩空间。该色彩空间能够从给出像素颜色的2个色度分量Cb和Cr中分离出亮度分量(Y),即像素亮度(本质上是灰度信号)。RGB色彩空间与YCbCr之间相互转换的转换矩阵如下:

1.png

已知人眼对亮度变化比对颜色变化更敏感,可使用YCbCr对两个独立的量化表进行定义,分别用于亮度和色度(Cb和Cr)分量,以便进一步量化色度(至少对于低频率)。

2.1.2 YCbCr量化表

图 2和图 3所示为JPEG标准提供的样本亮度和色度量化表。按照标准中的描述,这些表在每个样本8位的亮度和色度图像上给出很好的结果(对于STM32F7/H7硬件JPEG编解码器)。

该标准还对这些表格做了如下描述:如果将这些量化值除以2,得到的重构图像与源图像的差异通常难以辨别。

1.png

2.png

请注意,这些表格采用Z形排序。



..............

想了解更多,请下载原文阅读

回复

使用道具 举报

请先关注话题后回复
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版