Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.arch    |    Apparently more than just beeps & boops    |    131,241 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 130,337 of 131,241    |
|    Robert Finch to BGB    |
|    Re: Tonights Tradeoff (2/4)    |
|    22 Nov 25 12:45:57    |
      [continued from previous message]              >>> currently assuming its use for mostly hand-edited files. Unlike SVG,       >>> it also assumes drawing to a pixel grid rather than some more       >>> abstract coordinate space (so, its abstract model is more like "MS       >>> Paint" or similar); also SVG would suck as a human-edited format.       >>>       >>> Granted, one could argue maybe it could make scope that asset-       >>> processing is its own tool, then one converts it to a format that the       >>> compiler accepts (WAD2 or WAD4 in this case) prior to compiling the       >>> main binary (and/or not use resource data).       >>>       >>> Still, IMO, an internal WAD image is still better than the horrid/       >>> unusable mess that Windows had used (where anymore most people don't       >>> bother with the resource section much more than storing a program       >>> icon or similar...).       >>>       >>> But, realistically, one does still want to limit how much data they       >>> stick into the EXE.       >>>       >>> ...       >>>       >>>       >> My forays into the world of graphics formats are pretty limited. I       >> tend to use libraries already written by other people. I assume people       >> a lot brighter than myself have come up with them.       >>       >       > I usually wrote my own code for most things.       >       > Not dealt much with FLIC.       >       >       > In the past, whenever doing animated stuff, had usually used the AVI       > file format. A lot of time, the codecs were custom.       >       > Both AVI (and BMP) can be used to hold a wide range of image data,       > partly as a merit of using FOURCCs.       >       > Over the course of the past 15 years, have fiddled a lot here.       >       >       >       > A few of the longer-lived ones:       > BTIC1C (~ 2010):       > Was a modified version of RPZA with Deflate compression glued on.       > BTIC1H:       > Made use of multiple block formats,       > used STF+AdRice for entropy coding, and Paeth for color       endpoints.       > Block formats, IIRC:       > 4x4x2, 4x2x2, 2x4x2, 2x2x2, 4x4x1, 2x2x1, flat       > 4x4x2: 32-bits for pixel selectors       > 2x2x2: 8 bits for pixel selectors       > BTIC4B:       > Similar to BTIC1H, but a lot more complicated.       > Switched to 8x8 blocks, so had a whole lot of block formats.       >       > Shorter-Lived:       > BTIC2C: Similar design to MPEG;       > IIRC, used Huffman, but updated the Huffman tables for each I-Frame.       > This sort of thing being N/A with STF+AdRice,       > which starts from a clean slate every time.       >       >       > 1C: Was used for animated textures in my first 3D engine.       >       > 1H and 4B could be used for video, but were also used in my second 3D       > engine for sprites and textures (inside of a BMP packaging).       >       >       > My 3rd 3D engine is mostly using a mix of:       > DDS (mostly DXt1)       > BMP (mostly 16 color and 256 color).       >       > Though, in modern times, things like 16-color graphics are overlooked,       > in some cases they are still usable or useful (or at least sufficient).       >       > Typically, I had settled on a variant of the CGA/EGA color palette:       > 0: 000000 (Black)       > 1: 0000AA (Blue)       > 2: 00AA00 (Green)       > 3: 00AAAA (Cyan)       > 4: AA0000 (Red)       > 5: AA00AA (Magenta)       > 6: AA5500 (Brown)       > 7: AAAAAA (LightGray)       > 8: 555555 (DarkGray)       > 9: 5555FF (LightBlue)       > A: 55FF55 (LightGreen)       > B: 55FFFF (LightCyan)       > C: FF5555 (LightRed)       > D: FF55FF (Violet)       > E: FFFF55 (Yellow)       > F: FFFFFF (White)       >       > I am not sure why they changed it for the default 16-color assignments       > in VGA (eg, in the Windows 256-color system palette). Like, IMO, 00/AA       > and 55/FF works better for typical 16-color use-cases than 00/80 and 00/FF.       >       > Sorta depends on use-case: Sometimes something works well as 16 colors,       > other times it would fall on its face.       >       >       >       > Most other designs sucked so bad they didn't get very far.       >       > Where, I had ended up categorizing designs:       > BTIC1x: Designs mostly following an RPZA like path.       > 1C: RPZA + Deflate       > Mostly built on 4x4x2 blocks (32 bits).       > 1D, 1E: Byte-Encoding + Deflate       > Both sucked, quickly dropped.       > Both were like RPZA both with 48-bit 4:2:0 blocks.       > Neither great compression nor particularly fast.       > Deflate carries a high computational overhead.       > 1F, 1G: No entropy coding (back to being like RPZA)       > Major innovations: Variable-size pixel blocks.       > 1H: STF+AdRice       > Mostly final state of 1x line.       > BTIC2x: Designs mostly influenced by JPEG and MPEG.       > Difficult to make particularly fast.       > 1A/1B: Modified MJPEG IIRC.       > Technically, also based on my BTJPEG format (*1).       > 2C: IIRC, MPEG-like, Huffman-coded.       > Well influenced by both MPEG and the Xiph Theora codec.       > 2D: Like 2C, but STF+AdRice       > 2E: Like 2C, but byte stream based       > Was trying, mostly in vain, to make it faster.       > My attempts at this style of codecs were mostly, too slow.       > 2F: Goes back to a more JPEG like core in some ways.       > Entropy and VLN scheme borrows more from Deflate.       > Though, uses a shorter limit on max symbol length (13 bit).       > 13 bit simplifies things and makes decoding faster vs 15 bit.       > Abandons DCT and YCbCr in favor of Block-Haar and RCT.       > Later, UPIC did similar, just with STF+AdRice versus Huffman.       > BTIC3x:       > Attempts to hybridize 1x and 2x       > Nothing implemented, all designs too complicated to bother with.       > BTIC4x:       > 4A: RPZA-like but with 8x8 blocks and multiple block sizes.       > 4B: Like 4A but reusing the encoding scheme from 1H.       > BTIC5x:       > 5A: Resembled a CRAM/QOI hybrid, but with 8-bit indexed colors.       > No entropy coding.       > 5B: Like 5A, but used differential RGB555 (still QOI like).       > Major innovation was to use a 6-bit 64-entry pattern table.       > Optionally, can use per-frame RP2 or TKuLZ compression.       > Used if doing so results in a significant savings.       >       >       > *1: BTJPEG was an attempt at making a more advanced image format based       > on tweaking the existing T.81 JPEG format in a way that sorta worked in       > existing decoders. The more widespread use (and "not totally dead"       > feature) being to allow for an embedded alpha channel as essentially       > another monochrome JPEG inside the APP11 marker.       >       > I had tried a bunch of other ideas, but it turned into a mess of       > experimental tweaks, and most of it died off. The surviving variant is       > basically just T.81+JFIF with an optional alpha channel (ignored by a       > non-aware JPEG decoder).       >       > Some other (mostly dead) tweaks were things like:       > Allowing multi-layered images (more like Paint.NET's PDN or GIMP's XCF,       > mostly by nesting the images like a Matryoshka doll), where the top-       > level image would contain a view of all the layers rendered together;       > Allowing lossless images (similar to PNG) by using SERMS-RDCT and RCT       > (where SERMS-RDCT was a trick to make the DCT/IDCT transform exactly       > reversible, at the cost of speed).       >       >       > In the early 2010s, I was pretty bad about massively over-engineering       > everything.       >       > Later on, some ideas were reused in 2F and UPIC.       > Though, 2F and UPIC were much less over-engineered.       >       > Did specify possible use as video codecs, but thus far both were used       > only as still image formats.       >              [continued in next message]              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca