google / brunsli

Practical JPEG Repacker
MIT License
730 stars 51 forks source link

brunsli.dev cannot decode JPEG compressed by recent cbrunsli.exe builds (CMake build 78 and newer) #106

Closed Mithgol closed 4 years ago

Mithgol commented 4 years ago

Looks like an interoperability problem. Steps to reproduce:

Step 1. We'll use the following “why is the Internet like this” meme (quoted from “Oshi no Ko” manga) as an example JPEG:

(why is the Internet like this)

Download it.

Step 2. Let's confirm that the problem is (relatively) recent.

Visit the “Actions” section and open the page of CMake build 77. Its “windows” artifact looks like that:

windows.zip

Unpack cbrunsli.exe from this ZIP to the subdirectory where the meme from step 1 resides.

Run the command cbrunsli.exe "why is the Internet like this.jpg" in that subdirectory.

The following why is the Internet like this.jpg.brn file (55141 bytes long) is generated (see in the attached ZIP):

why is the Internet like this 1.zip

Dragging and dropping that file to https://brunsli.dev/ generates a decoded picture:

(screenshot)

Step 3. Let's confirm where the problem started.

Visit the “Actions” section and open the page of the next CMake build: CMake build 78. Its “windows” artifact looks like that:

windows78.zip

Unpack cbrunsli.exe from this ZIP to the subdirectory where the meme from step 1 resides (replacing cbrunsli.exe that was unpacked by the previous step).

Run the command cbrunsli.exe "why is the Internet like this.jpg" in that subdirectory.

The following why is the Internet like this.jpg.brn file (55483 bytes long) is generated (see in the attached ZIP):

why is the Internet like this 2.zip

Its difference from the result of step 2 is made obvious by its different filesize.

Dragging and dropping that file to https://brunsli.dev/ generates an error message (“Reconstuction failed”):

(screenshot)

Step 4. Let's confirm that the problem persists.

Visit the “Actions” section and open the page of the latest CMake build: CMake build 85. Its “windows” artifact looks like that:

windows85.zip

Unpack cbrunsli.exe from this ZIP to the subdirectory where the meme from step 1 resides (replacing cbrunsli.exe that was unpacked by the previous step).

Run the command cbrunsli.exe "why is the Internet like this.jpg" in that subdirectory.

Confirm that the generated file why is the Internet like this.jpg.brn has the same filesize (55483 bytes) as the file generated by step 3 and that files' contents do not differ.

Dragging and dropping that file to https://brunsli.dev/ generates the same error message (“Reconstuction failed”).

(However, newer dbrunsli.exe correctly decodes files generated by the corresponding newer cbrunsli.exe.

Does that mean that https://brunsli.dev/ needs an update?)

eustas commented 4 years ago

Hello. Thanks for the report. Will update site soon...

Mithgol commented 4 years ago

Is it fine for the newer cbrunsli to generate a slightly larger compressed file? (I know the difference is less than 1%, but…)

eustas commented 4 years ago

Sorry for the long wait. Should work now.

As for size regression - yes, that might be a side-effect. On some (hopefully most) files it became better, on some it is worse...