Quantcast
Channel: Richard Geldreich's Blog
Browsing all 302 articles
Browse latest View live
↧

Few notes about the previous post

This rant is mostly directed at the commenters that claimed I hobbled the open source codecs (including my own!) by not selecting the "proper" settings:Please look closely at the red dots. Those...

View Article


Image may be NSFW.
Clik here to view.

Brotli levels 0-10 vs. Oodle Kraken

For codec version info, compiler settings, etc. see this previous post.This graph demonstrates that varying Brotli's compression level from 0 to 10 noticeably impacts its decompression throughput....

View Article


Good article: Why software patents are evil

I have been attacked (at a time in my life when the last thing I needed was more stress!) by a patent holder before, so hey I hate software...

View Article

Image may be NSFW.
Clik here to view.

ETC1 block color clusterization experiment

IntroETC1 is a well thought out, elegant little GPU format. In my experience a few years ago writing a production quality block ETC1 encoder, I found it to be far less fiddly than DXT1. Both use...

View Article

Image may be NSFW.
Clik here to view.

Visualizing ETC1 texture compression

The ETC1 format consists of two block colors, two intensity table selectors, two mode bits ("diff" and "flip"), and 16 2-bit selectors. Here are some simple visualizations of what this encoded data...

View Article


More thoughts on a universal GPU texture interchange format

Just some random thoughts:I still think the idea of a universal GPU texture compression standard is fascinating and useful. Something that can be efficiently transcoded to 2 or more major vendor...

View Article

Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data

In this experiment, I limited my ETC1 encoder to only use a subset of the full format: differential mode, no flipping, with the diff color always set to (0,0,0). So all we use in the ETC1 format is the...

View Article

Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 2nd experiment

I lowered the ETC1 encoder's quality setting, so it doesn't try varying the block color so much during endpoint optimization. The DXT1 artifacts in my first experiment are definitely improved, although...

View Article


Image may be NSFW.
Clik here to view.

ETC1->DXT1 encoding table error visualization

Here's are two visualizations of the overall DXT1 encoding error due to using this table, assuming each selector is used equally (which is not always true). This is the lookup table referred to in my...

View Article


Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 3rd experiment

I've changed the lookup table used to convert to DXT1. Each cell in the 256K entry table (32*32*32*8, for each 5:5:5 base color and 3-bit intensity table entry in my ETC1 subset format) now contains 10...

View Article

More universal GPU texture format stuff

Some BC7 format references:https://msdn.microsoft.com/en-us/library/hh308954(v=vs.85).aspxhttps://msdn.microsoft.com/en-us/library/hh308953.aspxSource to CPU and shader BC7 (and other format)...

View Article

Some memories

I remember a few years ago at one company, I was explaining and showing one of my early graphics API tracing/replaying demos (on a really cool 1st person game made by some company in Europe) to a...

View Article

Few more random thoughts on a "universal" GPU texture format

In my experiments, a simple but usable subset of ETC1 can be easily converted to DXT1, BC7, and ATC. And after studying the standard, it very much looks like the full ETC1 format can be converted into...

View Article


Hierarchical clustering

One of the key algorithms in crunch is determining how to group together block endpoints into clusters. Crunch uses a bottom up clustering approach at the 8x8 pixel (or 2x2 DXTn block) "macroblock"...

View Article

Image may be NSFW.
Clik here to view.

Direct conversion of ETC1 to DXT1 texture data: 4th experiment

In this experiment, I've worked on reducing the size of the lookup table used to quickly convert a subset of ETC1 texture data (using only a single 5:5:5 base color, one 3-bit intensity table index,...

View Article


Idea for next texture compression experiment

Right now, I've got a GPU texture in a simple ETC1 subset that is easily converted to most other GPU formats:Base color: 15-bits, 5:5:5 RGBIntensity table index: 3-bitsSelectors: 2-bits/texelMost...

View Article

etcpak

etcpak is a very fast, but low quality ETC1 (and a little bit of ETC2) compressor:https://bitbucket.org/wolfpld/etcpak/wiki/HomeIt's the fastest open source ETC1 encoder that I'm aware of.Notice the...

View Article


ETC1 principle axis optimization

One possible potential (probably minor) optimization to ETC1 encoding: determine the principle axis of the entire texture, rotate the texture's RGB pixels (by treating them as 3D vectors) so this axis...

View Article

Image may be NSFW.
Clik here to view.

Universal texture compression: 5th experiment

I outlined a plan for my next texture compression experiment in a previous post, here. I modified my ETC1 packer so it accepts an optional parameter which forces the encoder to use a set of...

View Article

Google's new ETC2 codec looks awesome

I've worked with many of the authors of this at one time or another:Building a blazing fast ETC2 compressorRepo:https://github.com/google/etc2comp(I can't believe the Mali encoder was only single...

View Article
Browsing all 302 articles
Browse latest View live