Announcement

Collapse
No announcement yet.

OpenJPH v0.10 JPEG2000 Library Adds AVX-512 Support

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by bug77 View Post



    I was gonna say, JPEG is nothing like IE6. At its time, it was even described as "alien tech from the future, something you'd find in the Area 51 wreckage". It was that good. That's why it's so widespread and hard to displace now.
    For a while I was dying to see wavelets in action (back then I would re-encode images to save disk space), I don't really care about that anymore.
    Well yeah, every analogy sucks because it's just an analogy not a direct comparison.

    Comment


    • #12
      Originally posted by coder View Post
      JPEG2000 is fundamentally different than what you're talking about (JPEG '92). At the most basic level, 2k uses wavelets, while the older one uses 8x8 DCTs.
      Please never mind, I think I figured it out.

      Sorry for the off-topic but I recall you as a very bright person, I've been reading this [1] and been curious to do all intense string operations with SIMD (write my own code to do this).
      So far I transformed the string from an array of bytes into an array of u21 (the minimum needed to store any unicode code point), and got SIMD to work with these code points (u21) instead of just u8 which only works with ASCII (and such). But it's not enough, for string manipulations to work properly I need to work not with code points but with grapheme clusters, which would mean an array holding arrays of u21. I'm pretty sure it's not a task for a SIMD beginner like me. Do you happen to know if it's possible at all? (Been trying to do this with Zig obviously).

      [1] https://www.openmymind.net/SIMD-With-Zig/
      Last edited by cl333r; 08 January 2024, 01:22 PM.

      Comment


      • #13
        Originally posted by cl333r View Post

        Please never mind, I think I figured it out.

        Sorry for the off-topic but I recall you as a very bright person, I've been reading this [1] and been curious to do all intense string operations with SIMD (write my own code to do this).
        So far I transformed the string from an array of bytes into an array of u21 (the minimum needed to store any unicode code point), and got SIMD to work with these code points (u21) instead of just u8 which only works with ASCII (and such). But it's not enough, for string manipulations to work properly I need to work not with code points but with grapheme clusters, which would mean an array holding arrays of u21. I'm pretty sure it's not a task for a SIMD beginner like me. Do you happen to know if it's possible at all? (Been trying to do this with Zig obviously).

        [1] https://www.openmymind.net/SIMD-With-Zig/
        Rather than thread hijacking, you could PM me. Or, create a new thread in Programming & Compilers and @-tag me. Better yet, since this is my first time ever looking at Zig, would be to ask on somewhere like stack overflow or a Zig-specific discussion forum.

        Anyway, thanks for mentioning you figured it out. However, what I'd say is rather than using a 2-level array, I'd put the grapheme clusters in a flat array and simply do a substring search. The tricky part is just making sure you have some way of distinguishing where each cluster ends. If they're not numerically distinguishable (sorry, I'm new to this topic), then I guess you'd have to insert special characters to demarcate them.

        Comment


        • #14
          Originally posted by coder View Post
          Out of curiosity, who's using JPEG2000 and for what?

          Up until AVIF came along, it still seemed interesting for lossy compression. However, I'm no longer so sure its use can be justified.
          JPEG2000 is the format used for DCI compliant 2k and 4k movie releases.



          If you ever went to any movie that was digital, i.e. not film, then you watched a movie encoded in JPEG2000 running on a Cinema Media Server:

          GDC manufactures and develops high-quality DCI-compliant digital cinema media servers /IMBs fulfilling customers’ needs for the past 20 years. GDC partners with the most DCI-recognized cinema display technologies in the world including Barco, Cineappo, Christie, Sony, SHARP/NEC cinema professional digital cinema projectors and Samsung Onyx Cinema LED Screens.

          Comment


          • #15
            Originally posted by sophisticles View Post
            JPEG2000 is the format used for DCI compliant 2k and 4k movie releases.
            I'd heard they used MJPEG, but I wasn't aware it was JPEG-2000 based. That's not so bad.

            These days, I'd expect using the same technologies on UHD Blu-ray would be a step up. H.265 supports up to 8k, which is enough for even a cinema screen. AFAIK, most digital cinemas are still only 4k. It also supports 12-bit, which seems like it ought to be good enough for laser-illuminated projectors.

            If I ever go see a movie in a theater, I only watch 4k laser. Usually also 3D, if available. If it's not an experience I can't get at home, why bother?

            Comment

            Working...
            X