cancel
Showing results for 
Search instead for 
Did you mean: 

32F7 jpeg HW encoder

Franzi.Edo
Senior
Posted on January 05, 2017 at 14:18

Dear all,

I would like to implement my routines to support the jpeg encoder/decoder included in the stm32F777.

Unfortunately, the documentation of this interface is really poor (unusable to do a correct job).

Does someone find application notes or any other usable documents that allow a correct usage of this jpeg hardware bloc?

Thank you

Regards

  Edo

#jpeg-encoder
6 REPLIES 6
Imen.D
ST Employee
Posted on January 05, 2017 at 15:04

Dear

Franzi.Edo

‌,

You'll probably want to

refer 'JPEG codec (JPEG)' section inyour reference manual and follow the STM32F7 JPEG

http://www.st.com/content/ccc/resource/training/technical/product_training/group0/9b/0b/70/51/69/dd/44/8d/STM32F7_Peripheral_JPEG/files/STM32F7_Peripheral_JPEG.pdf/jcr:content/translations/en.STM32F7_Peripheral_JPEG.pdf

.

Moreover, you canreview JPEG Encoding example, as you can find available in the STM32CubeF7 firmware package:

STM32Cube_FW_F7_V1.5.1\Projects\STM32756G_EVAL\Applications\LibJPEG\LibJPEG_Encoding.

Best Regards

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
Franzi.Edo
Senior
Posted on January 05, 2017 at 15:59

Dear Imen,

Thank you for your suggestions. Well, I reviewed your suggested document and the information is still not enough for writing a robust jpeg driver. Of course, I can also 'reverse engineering'  the Lib_Jpeg in the ST package, but this is also a crazy job.

The jpeg_lib is really useful when we have a clear peripheral description. In this case, the lib can help a lot.

What I expect from ST is a more complete documentation with examples and/or an application note. Maybe it is only question of time ... hope not too long :\

Anyway, thank you a lot for your support ,

Best regards

  Edo 

Posted on January 05, 2017 at 16:20

Hi

Franzi.Edo

‌,

Your request is shared internally for further investigation to add such application notein this topic.

All your feedback are welcome.

Best Regards

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
Posted on January 06, 2017 at 11:38

Dear Imen,

Maybe you can answer the following question before waiting for a full documentation from ST.

We have managed to use the jpeg decoder module successfully, but we are having problems with the encoder.

More specifically, we don’t know how to set the DHTMEM and HUFFENC register blocks, which are mentioned on page 755 of the RM0410 Reference Manual (

DocID028270 Rev 2

).

We are currently interested in encoding only 8-bit (grayscale) images. I copied the Huffman tables we would like to use below. 

Could you possibly advise on how to copy them to DHTMEM and HUFFENC memory space?

Thank you for your help,

Kind Regards,

Edo Franzi

  static const uint8_t bits_dc_luminance[17] =

    { /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 };

  static const uint8_t val_dc_luminance[] =

    { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };

  

  static const uint8_t bits_ac_luminance[17] =

    { /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d };

  static const uint8_t val_ac_luminance[] =

    { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12,

      0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07,

      0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08,

      0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0,

      0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16,

      0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28,

      0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,

      0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,

      0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59,

      0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69,

      0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79,

      0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89,

      0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,

      0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,

      0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6,

      0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5,

      0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4,

      0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2,

      0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,

      0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8,

      0xf9, 0xfa };

Posted on November 20, 2017 at 11:51

Hello

Franzi.Edo

,

We are pleased to announce youthe newApplication note

http://www.st.com/content/ccc/resource/technical/document/application_note/group0/a5/9d/22/46/61/6d/4a/ab/DM00356635/files/DM003566pdf/jcr:content/translations/en.DM003566pdf

describes the use of theh

ardware JPEG codec peripheral (

for JPEG decoding/encoding applications

) in STM32F76/77xxx and STM32H7x3 line microcontrollers.

All comments and suggestions are welcome.

Best Regards

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
Posted on November 20, 2017 at 20:42

Hi Imen, thank you for this.

Best regards

  Edo