Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Showcase
  4. My first QT imageformats plug-in for AV1 Image File Format (AVIF)
Forum Updated to NodeBB v4.3 + New Features

My first QT imageformats plug-in for AV1 Image File Format (AVIF)

Scheduled Pinned Locked Moved Unsolved Showcase
14 Posts 4 Posters 2.7k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    novomeskyd
    wrote on last edited by novomeskyd
    #1

    This was the very first time I worked with QT.
    I wanted to add support of the new AVIF image format to KDE apps.
    I shared the source here: https://bugs.kde.org/show_bug.cgi?id=416941
    The plug-in works on Linux, I haven't tried other platforms yet.
    I would welcome suggestions/recommendations what to improve.
    I want to add support for color profiles, in the future I will probably use QImage::Format_RGBA64 too as AVIF support 10bit and 12bit depth too.
    Later in the future I wish to examine support for image sequences/animation.

    1 Reply Last reply
    1
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi and welcome to devnet,

      Thanks !

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • N Offline
        N Offline
        novomeskyd
        wrote on last edited by
        #3

        May I ask, is there a chance that QT will officially support AVIF format in the future?
        Support in QT automatically enables many applications to work with AVIF images:
        KDE applications now open AVIF
        This is a web browser from KDE which opened AVIF picture in website because it is a QT application:
        Konqueror web browser
        I don't insist that any of future versions of my plug-in to be included, it can be any alternative implementation. The goal is to support AVIF. It seems that browsers will support this format and big players are interested too: Google, Netflix, Facebook (they are mentioning AVIF in the job offer).
        You can open AVIF pictures in Windows10 if you installed AV1 Video Extension from Microsoft Store.

        I used libavif in my plug-in. Libavif needs at least one AV1 encoder and decoder. You can choose libaom, dav1d, rav1e, libgav1.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          You should check with the KDE guys to avoid duplicating efforts. The Qt project has the qimageformats module for extra formats.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          N 1 Reply Last reply
          1
          • SGaistS SGaist

            You should check with the KDE guys to avoid duplicating efforts. The Qt project has the qimageformats module for extra formats.

            N Offline
            N Offline
            novomeskyd
            wrote on last edited by novomeskyd
            #5

            As I understood for KDE guys it doesn't matter whether AVIF is in kimageformats or in qtimageformats (I know it cannot be in both packages - they install in the same folder). KDE guys answered that it depends on license.

            I don't create any additional restrictions beside mentioning license of dependencies I use.

            I believe that including AVIF in qtimageformats would be the best for majority.

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #6

              As they say, you have to check the licence(s) of the dependencies you use to ensure they are compatible with the Qt licences.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              N 1 Reply Last reply
              0
              • SGaistS SGaist

                As they say, you have to check the licence(s) of the dependencies you use to ensure they are compatible with the Qt licences.

                N Offline
                N Offline
                novomeskyd
                wrote on last edited by
                #7

                @SGaist
                Yes, I checked the licenses:
                libavif - https://github.com/AOMediaCodec/libavif/blob/master/LICENSE
                libaom - https://aomedia.googlesource.com/aom/+/refs/heads/master/LICENSE

                These licenses says no warranty, no liability, as-is. There is no restrictions for closed source, no open-source requirements. Only requirement is to retain&reproduce copyright notice of their permissive license.

                It is like WEBP license and WEBP is included in qtimageformats already.

                So I think it should be OK with https://www.qt.io/licensing/

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  Looks like it should be ok.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • fcarneyF Offline
                    fcarneyF Offline
                    fcarney
                    wrote on last edited by
                    #9

                    Copyright is only part of it though. There may be patent issues.

                    C++ is a perfectly valid school of magic.

                    N 1 Reply Last reply
                    0
                    • fcarneyF fcarney

                      Copyright is only part of it though. There may be patent issues.

                      N Offline
                      N Offline
                      novomeskyd
                      wrote on last edited by
                      #10

                      @fcarney
                      There are some patents but they are free to use. This URL is in AVIF specification:
                      http://aomedia.org/license/
                      A there you can find:
                      http://aomedia.org/license/patent-license/

                      1 Reply Last reply
                      3
                      • N Offline
                        N Offline
                        novomeskyd
                        wrote on last edited by
                        #11

                        Just letting you know that I continue to improve this AVIF format plug-in.
                        I will post it again when I finish with things on my TODO list.

                        I want to say that I appreciate the fact that QColorSpace Class was introduced in Qt 5.14 - that's very important for correctly displaying images.

                        Maybe in the future it will be good to have direct support for modern WCG/HDR colorspaces with PQ & HLG TransferFunctions too. AVIF can use such colorspaces.

                        1 Reply Last reply
                        0
                        • N Offline
                          N Offline
                          novomeskyd
                          wrote on last edited by
                          #12

                          I create a new version of the plug-in.
                          I prepared an illustrated manual how to install the plug-in to KDE and how the applications are able to use the AVIF image format afterwards:
                          http://188.121.162.14/avif/kde.html
                          Download link with source (including build script and dependencies - libavif and libaom) are on the webpage too.

                          The new version of the plug-in supports image sequences (animation) too.

                          I am willing to contribute this code to Qt. AVIF format is practically better than JPEG, GIF, PNG and WEBP together. I believe AVIF deserve to be supported. Many applications would benefit from AVIF if it gets included in Qt.

                          What can I do so the plug-in would be closer to get accepted by Qt?

                          jsulmJ 1 Reply Last reply
                          2
                          • N novomeskyd

                            I create a new version of the plug-in.
                            I prepared an illustrated manual how to install the plug-in to KDE and how the applications are able to use the AVIF image format afterwards:
                            http://188.121.162.14/avif/kde.html
                            Download link with source (including build script and dependencies - libavif and libaom) are on the webpage too.

                            The new version of the plug-in supports image sequences (animation) too.

                            I am willing to contribute this code to Qt. AVIF format is practically better than JPEG, GIF, PNG and WEBP together. I believe AVIF deserve to be supported. Many applications would benefit from AVIF if it gets included in Qt.

                            What can I do so the plug-in would be closer to get accepted by Qt?

                            jsulmJ Offline
                            jsulmJ Offline
                            jsulm
                            Lifetime Qt Champion
                            wrote on last edited by
                            #13

                            @novomeskyd said in My first QT imageformats plug-in for AV1 Image File Format (AVIF):

                            What can I do so the plug-in would be closer to get accepted by Qt?

                            Take a look at https://wiki.qt.io/Qt_Contribution_Guidelines

                            https://forum.qt.io/topic/113070/qt-code-of-conduct

                            N 1 Reply Last reply
                            1
                            • jsulmJ jsulm

                              @novomeskyd said in My first QT imageformats plug-in for AV1 Image File Format (AVIF):

                              What can I do so the plug-in would be closer to get accepted by Qt?

                              Take a look at https://wiki.qt.io/Qt_Contribution_Guidelines

                              N Offline
                              N Offline
                              novomeskyd
                              wrote on last edited by
                              #14

                              Thanks for info.
                              I still wish the AVIF support to be included in Qt in the future.
                              In order to get experiences and prepare myself for more complicated steps (from my point of view) I decided to host my project on GitHub ( https://github.com/novomesk/qt-avif-image-plugin ).

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved