视频解码
‘视频解码’部分允许开发人员通过硬件或软件视频解码能力增强TouchGFX HAL。
Further reading
Video software decoding allows the use of a different Decoding Format, than the one used for the application framebuffer. 视频硬件解码仅支持像素格式与应用程序帧缓存相同的视频RGB缓冲区。
Note
类型
By default the "Type" of Video Decoding is disabled. If the required peripherals are not enabled in STM32CubeMX, both "Software" and "Hardware" will be greyed out. Hover the mouse over the greyed-out options the see which peripherals are required.
- Software - If LIBJPEG is enabled under the Middleware and Software Packs section in STM32CubeMX, the "Software" option can be selected and the software decoder will be generated. 这意味着TouchGFX 生成器将生成一个软件MJPEG解码器。
- 硬件 - 如果在多媒体部分启用了JPEG IP,并且在TouchGFX Generator中选择了兼容CMSIS的RTOS,则可以选择“硬件”选项。
Further reading
并发视频
“并发视频”选项可设置GUI中任意给定时间在同一屏幕上同时被解码的最大数量视频。 If you only wish to decode one video on a screen, the "Number of Videos" can be set to 1.
最多可以同时解码4个视频。
策略
关于视频解码策略,开发人员有三种选择。
- “直接到帧缓存区(Direct to Framebuffer)” - 视频在UI线程中被解码。 解码速度慢于其他策略。 When working with hardware video decoding, the "Direct to Framebuffer" option is unavailable.
- 单缓冲区 - 在专用的缓冲区中,以单独的任务进行视频解码。 该缓冲区位于内部存储器中。
- 双缓冲区 - 在两个专用缓冲区中,以单独的任务进行视频解码,以牺牲内存为代价获得更好的性能。
采用单或双帧缓存区策略时,必须启用兼容CMSIS的操作系统。
Note
Further reading
解码格式
对于软件解码,开发人员可以选择RGB缓冲区的像素格式,不管帧缓存区的像素格式是什么。 TouchGFX Generator生成的代码允许ChromART在不同的格式之间进行像素格式转换。
- RGB565——视频RGB缓冲区为16位。
- RGB888——视频RGB缓冲区为24位。
- ARGB8888——视频RGB缓冲区为32位。 Alpha值为255。
Tip
缓存大小:
缓冲区的宽度和高度设置必须大于或等于应用程序中的最大视频尺寸。 The width must be divisible by 32.