아래 표와 같이 STM32F7x7/8/9 칩셋에서는 H/W적으로 JPEG 코덱이 내장되어 있습니다.
이와는 달리 STM32F7x6 칩셋에는 H/W JPEG 코덱이 들어있지 않고, 소프트웨어적으로 처리를 하기 위해 디코딩 라이브러리를 예제와 함께 제공해 주고 있어서 테스트를 해 보았습니다.
새 프로젝트를 생성하여 DMA2D/FATFS/FMC/GPIO/I2C3/LIBJPEG/LTDC/NVIC/RCC/SDMMC1/USART1을 설정하였습니다. 점점 사용하는 디바이스가 늘어나다 보니 설정해야 할 장치들이 많아지고 있지만 이것도 몇 번 설정하다 보니 익숙해집니다.
다른 디바이스들은 이전에 LDC와 SDMMC를 하면서 사용해 봤기때문에 생략하고 새로 추가된 LIBJPEG 설정만 추가 해 놓았습니다. 모두 기본 설정값을 사용하였습니다.
STM32Cube_FW_F7_V1.16.1\Projects\STM32746G-Discovery\Applications\LibJPEG\LibJPEG_Decoding 예제 프로젝트를 참고하여 새 프로젝트를 생성하시면 됩니다.
예제에서 중요 함수는 jpeg_decode, Jpeg_CallbackFunction 함수입니다.
jpeg_decode 함수에서는 scanline만큼 읽어들여 디코딩을 한 후 Jpeg_CallbackFunction을 호출하여 LCD의 SDRAM 영역에 직접 이미지를 출력하는 구조입니다.
윈도우10 PC에서 테스트용 이미지 2장을 MicroSD 카드에 복사해 넣었습니다.
MicroSD 카드를 STM32F746G-DISCO 보드에 꽂은 후 부팅을 시킵니다.
CLI에 구현된 명령어를 사용하여 MicroSD의 파일리스트를 확인한 후 "jpeg <파일명>"의 명령어를 사용하여 테스트용 jpeg 이미지를 디코딩해 봅니다.
sample1.jpg를 디코딩 해 보았습니다.
sample2.jpg를 디코딩 해 보았습니다.
S/W 라이브러리를 사용하기 때문에 JPEG 이미지가 디코딩 시 시간이 조금 걸리지만 정상적으로 잘 디코딩됩니다.
아래는 테스트 영상입니다.
'Hardware > STM32' 카테고리의 다른 글
[STM32F746G-DISCO] STemWin 살펴보기 (0) | 2024.07.12 |
---|---|
STLINK-V3SET 제품 설명 및 사용하기 (0) | 2024.07.11 |
[STM32F746G-DISCO] STM32Cube Log Utilities Driver 사용하기 (0) | 2024.07.11 |
[STM32F746G-DISCO] SDMMC 사용하기(feat. FATFS) (0) | 2024.07.10 |
[STM32F746G-DISCO] RNG(Random number generator) 사용하기 (0) | 2024.07.10 |
댓글