home bbs files messages ]

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,341 of 131,241   
   BGB to Robert Finch   
   Re: Tonights Tradeoff (2/5)   
   22 Nov 25 14:29:23   
   
   [continued from previous message]   
      
   >>>> process and convert them into another set of files, usually inside   
   >>>> of some sort of VFS image or similar).   
   >>>>   
   >>>> Design is much more simplistic than something like SVG and I am   
   >>>> 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   
      
   [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