Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

What Is an Image, Anyway

16:45 - 17:45 Wednesday 14th September 2022 MDT Summit 8 & 9 / Online C
Beginner
Intermediate
Advanced
Math & Numbers

We all have at least a vague idea of what an image is, and that they are useful. It has even been proposed that 2D graphics functionality be added to the C++ language. But many developers haven't gotten too far into the weeds with the topic. What is an image? Sure, it's a 2D array of pixels. But what are pixels? What do the values in the pixels really mean? And, are you sure it's always just a single 2D array? Or that every pixel format actually stores discrete pixels? The reality is that the concept of an image can be blurry and filled with corner cases that will bewilder the newcomer and exasperate even experts.

Take a journey from the absolute basics of images in a computer, through a brief survey a more advanced topics. How much memory you need to allocate for n pixels. Alignment of pixels for efficient processing. Types like 12 bit int and half-float that aren't native C++ types. Almost (but not quite) compatible pixel formats across some common API's. Colorspaces. Colorspaces, but as defined from a slightly different niche. Planar formats. Subsampling used in video formats. Some of the complexities from using a GPU, like compressed formats and mixed type formats. The performance implications of needing redundant copies of pixel data to interoperate between different libraries and API's. And how much of this you need to be aware of when making API's that might get used by developers with use cases you hadn't considered.

Will Rosecrans

Will Rosecrans is an independent software developer.  He has recent experience working at global scale on the EdgeCast/Edgio content delivery network which handles billions of web requests and video streams.  He worked on build and CI systems for C++ server software and his work led to a patent on rapid configuration propagation.   He previously worked in the visual effects industry, working on pipeline technology at Moving Picture Company, and was responsible for the general care and feeding of pixels and servers for advertising, TV and film projects.  His academic background in film production includes the UCLA film production Summer Institute.