Video Decoding
Video Decoding 섹션에서는 개발자가 하드웨어 또는 소프트웨어 비디오 디코딩 기능을 이용해 TouchGFX HAL을 향상시킬 수 있습니다.
Further reading
비디오 소프트웨어 디코딩에서는 애플리케이션 프레임 버퍼에 사용되는 것과는 다른 Decoding Format을 사용할 수 있습니다. 비디오 하드웨어 디코딩은 애플리케이션 프레임 버퍼와 동일한 픽셀 형식을 가진 비디오 RGB 버퍼만 지원합니다.
Note
Type
기본적으로 Video Decoding의 "Type"은 비활성화되어 있습니다. 필요한 주변 장치가 STM32CubeMX에서 활성화되어 있지 않은 경우에는 "Software"와 "Hardware" 모두가 회색으로 비활성화됩니다. 회색으로 비활성화된 옵션 위로 마우스를 가져가면 필요한 주변 장치를 확인할 수 있습니다.
- Software - STM32CubeMX의 Middleware and Software Packs 섹션에서 LIBJPEG가 활성화된 경우에는 "Software" 옵션을 선택할 수 있고 소프트웨어 디코더가 생성됩니다. 즉, TouchGFX Generator가 소프트웨어 MJPEG 디코더를 생성합니다.
- Hardware - Multimedia 섹션에서 JPEG IP가 활성화되어 있고 TouchGFX Generator에서 CMSIS 호환 RTOS가 선택된 경우, "Hardware" 옵션을 선택할 수 있습니다.
Further reading
Concurrent Videos
"Concurrent Videos" 옵션을 사용하면 언제든지 GUI의 동일 화면에서 가장 많은 양의 비디오를 동시에 디코딩할 수 있습니다. 화면에서 하나의 비디오만 디코딩하기를 원하는 경우에는 "Number of Videos"를 1로 설정할 수 있습니다.
최대 4개의 비디오를 동시에 디코딩할 수 있습니다.
Strategy
비디오 디코딩 전략과 관련해 개발자에게 세 가지 옵션이 제공됩니다.
- Direct to Framebuffer - 비디오가 UI 스레드에서 디코딩됩니다. 이 전략은 다른 전략보다 속도가 느립니다. 하드웨어 비디오 디코딩 작업을 할 때는 "Direct to Framebuffer" 옵션을 사용할 수 없습니다.
- Single Buffer - 전용 버퍼에서 별도의 작업으로 비디오가 디코딩됩니다. 이 버퍼는 내부 메모리에서 할당이 됩니다.
- Double Buffer - 같은 메모리 비용으로 더 나은 성능을 얻을 수 있도록 2개의 전용 버퍼에서 별도의 작업으로 비디오가 디코딩됩니다.
단일 또는 이중 프레임 버퍼 전략을 사용할 때는 CMSIS 호환 OS를 활성화해야 합니다.
Note
Further reading
Decode Format
소프트웨어 디코딩의 경우, 개발자는 프레임 버퍼의 픽셀 형식에 관계 없이 RGB 버퍼의 픽셀 형식을 선택할 수 있습니다. TouchGFX Generator는 DMA2D(ChromART)가 서로 다른 형식 간에 픽셀 형식 변환을 수행할 수 있도록 코드를 생성합니다.
- RGB565 - 비디오 RGB 버퍼는 16비트입니다.
- RGB888 - 비디오 RGB 버퍼는 24비트입니다.
- ARGB8888 - 비디오 RGB 버퍼는 32비트입니다. 알파 값은 255입니다.
Tip
Buffer size
버퍼 너비 및 높이 설정은 애플리케이션에서 가장 큰 비디오보다 크거나 같아야 합니다. 너비는 32로 나누기가 가능해야 합니다.