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

【中文文档】AN4996

[复制链接]
STMCU-管管 发布时间:2019-3-21 10:19
STM32F76/77xxx和STM32H7x3系列微控制器中的硬件JPEG编解码外设
* R, ~" R$ X$ ^6 ^+ \8 n4 I0 ~0 i
引言 4 d! O$ w# Z$ ], T% w6 N

9 C* w+ m7 ]1 h5 c1 U" P$ J6 s本应用笔记描述在STM32F76/77xxx和STM32H7x3系列微控制器中如何对JPEG解码/编码应用使用硬件JPEG编解码外设。 1 ]& `8 N" D3 {
' ]) e. f( L8 q0 r( P
STM32F76/77xxx和STM32H7x3系列微控制器嵌入了专用的硬件JPEG编解码外设,它提供了快速又简单的硬件JPEG图像压缩程序和解压程序,具备: : s* U' ^; F! Y2 n, [
• JPEG文件头的全面管理能力,
5 \  r  E3 w* E0 S9 C! F• 完全可编程的霍夫曼表(两个AC表和两个DC表),
7 O0 X' K9 R% K$ t# z• 多达四个可编程量化表, , w; j; _6 J+ [4 W2 G3 K
• 完全可编程最小编码单元(MCU)。
- R5 n+ R; c, L+ \6 f
8 I9 p1 h' q/ [$ p2 c* P) k硬件JPEG编解码器支持YCbCr或RGB(3个颜色分量)、灰度(1个颜色分量)和CMYK(4个颜色分量)模式的像素输入/输出格式,每个分量的下采样因子完全可编程。
1 l0 R3 Y% q1 B4 h- b0 y. W% p( N

) C* ]% F) _% }8 m/ G为了充分利用本应用笔记,用户应熟悉:
1 N1 q/ B/ m8 ~4 Z1 _+ M/ R• STM32的JPEG编解码外设,如STM32F76/77xxx参考手册(RM0410)所述,该手册可从意法半导体网站www.st.com上获得。
" r% c5 E3 g" ~# q1 I6 o2 i0 M• STM32的JPEG编解码外设,如STM32H7x3参考手册(RM0433)所述,该手册可从意法半导体网站www.st.com上获得。
& ~2 ]% z! J! k• JPEG压缩标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)和JFIF文件格式标准(JPEG文件交换格式)。
! T" @0 p$ V4 w% N, V. z9 {8 f
. a( R% o) Z; y  R# x4 Y
参考文档 0 g( b" d6 s, t9 L. N4 P, y

, E$ T( q9 N. e% K• STM32F76xxx和STM32F77xxx基于32位MCU的高级Arm®参考手册(RM0410), ; W+ B" s8 b6 z% J9 h% s- P3 Z3 i
• STM32H7x3基于32位MCU的高级Arm®参考手册(RM0433),
& }3 A' _: _% [. O3 A- t: k& Q• STM32F7系列(STM32CubeF7)和STM32H7系列(STM32CubeH7)的嵌入式软件
' i* G0 C# \# |& k* ^& p0 u
1.png

- Y% O9 N" n2 G0 C9 ?# E
1 硬件JPEG编解码器概述
, j1 r5 ?* Y% j# ]! \
硬件JPEG编解码外设符合JPEG标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)。它可以解码/编码JPEG压缩图像,每个样本8位。
/ @; ~; {9 d) l8 G9 w' F! G
硬件JPEG编解码外设为熵编解码段(ECS)编码和解码提供硬件加速。它支持JPEG文件头生成和解析。硬件JPEG编解码外设还支持JFIF(JPEG文件交换格式),使用事实标准对JPEG图像进行编码。但是,在这些数据流中找到的所有应用特定的标记段均被忽略。JPEG编解码器支持最多四个颜色分量、四个量化表和两组DC和AC霍夫曼表。
. w& I  L# ~3 J5 L$ O9 p$ x
硬件JPEG编解码器可以灵活地指定要对每个分量使用的量化表和霍夫曼表。
- K5 \- D& W; w+ L: `# C# [& |2 |
JPEG标准定义的JPEG编码和解码操作按块执行。JPEG标准将MCU(最小编解码单元)定义为可以编码或解码的最小块数。在硬件JPEG编解码外设中,MCU的构成是可编程的。硬件JPEG编解码器可以定义每个MCU中属于特定颜色分量的块数。每个块是样本的一个8x8数组,每个样本被定义为8位(1个字节)。因此,每个块均是一个64字节数组(每个样本1个字节)。

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

7 n: G8 G8 p+ y$ K2 t
使用STM32H7x3系列器件进行JPEG解码操作,当输出颜色格式为YCbCr时,Chrom-ArtAccelerator™外设(也称为DMA2D)能够将YCbCr块(JPEG解码器的输出)转换为可直接显示的RGB像素。
& A" m: b0 N. b: z
使用STM32H7x3系列器件进行编码(所有颜色格式)或非YCbCr(灰度或CMYK颜色格式时)颜色格式的解码时,从/至RGB像素的转换不进行硬件加速且必须通过软件执行。

% [( u4 j: W! L" X# Q. D9 r$ h
使用STM32F76/77xxx器件进行解码或编码时,YCbCr至RGB的转换不加速且必须通过软件执行。

  B: i0 e7 ~9 Y0 w0 {7 o
STM32CubeF7/H7固件包提供包含必要API的专用JPEG实用工具软件,能够执行JPEGMCU块至/从RGB像素的转换(位于\Firmware\Utilities\JPEG目录下)。
4 K# i  S. {2 `$ [
STM32CubeF7/H7为JPEG编解码外设提供专用HAL(硬件抽象层)驱动程序:
! ~' _0 }4 R0 J6 e# N3 j
• STM32CubeF7:stm32f7xx_hal_jpeg.c/ stm32f7xx_hal_jpeg.h

6 O  Z: b: s1 X& \+ G  A7 Y, u. X. s
• STM32CubeH7:stm32h7xx_hal_jpeg.c/ stm32h7xx_hal_jpeg.h
( [6 ^& G/ D4 Y2 k* N
本文档适用于基于Arm®的器件。

2 A. F) x  o) M/ B" l, r
2 不同色彩空间的硬件JPEG编解码器设置
+ c5 i" ?5 A0 q7 u1 J3 `9 R/ Q
2.1 YCbCr色彩空间
6 R2 ?6 ^. z! D0 a4 o: C
2.1.1 YCbCr与RGB之间的相互转换

0 K; }5 ?0 G& Q  d! C/ m9 t  c, j( C
JPEG文件交换格式(JFIF)标准描述了YCbCr与RGB之间的相互转换和色度采样。JFIF合规文件通常具有如下扩展名:.jpg、.jpeg、.JPG、.JPEG。
1 I# E. m" X7 L( g, N! u9 C
JPEG标准(JPEG ISO/IEC 10918-1 ITU-T建议T.81)没有定义要对源行图像使用的色彩空间,而JFIF标准则定义了两个可能的色彩空间:灰度(Y亮度)或彩色(YCbCr亮度和色度)。

  |. ~/ Y! l# A' u+ C& l/ Q
JFIF标准使用YCbCr颜色而不是原始的RGB色彩空间。该色彩空间能够从给出像素颜色的2个色度分量Cb和Cr中分离出亮度分量(Y),即像素亮度(本质上是灰度信号)。RGB色彩空间与YCbCr之间相互转换的转换矩阵如下:
( u, d5 o/ Y% w! e9 k3 g2 r: t% @
1.png

8 |; \7 g9 B* d0 ]2 f& n
已知人眼对亮度变化比对颜色变化更敏感,可使用YCbCr对两个独立的量化表进行定义,分别用于亮度和色度(Cb和Cr)分量,以便进一步量化色度(至少对于低频率)。

, L. Q& a1 S' n* h
2.1.2 YCbCr量化表

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

! B3 ~' g8 x. S0 m, h: U% l
该标准还对这些表格做了如下描述:如果将这些量化值除以2,得到的重构图像与源图像的差异通常难以辨别。

: L5 |: D4 m& k1 V: F
1.png

1 X% P0 l/ x+ ~0 d+ P3 e; n. f
2.png

0 h4 |* Y+ j. A% ?
请注意,这些表格采用Z形排序。

6 S# D2 g8 D: u, u

- _- d" ]5 P/ a

. }: k# a- J! M8 k/ ^1 U3 B
..............

4 v; u" p2 K/ M( J6 A. u
想了解更多,请下载原文阅读

, m% k$ X: p: p5 `# r
赞 收藏 评论0 发布时间:2019-3-21 10:19

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版