-
Archives
- January 2024
- July 2017
- December 2016
- November 2016
- May 2016
- January 2016
- September 2015
- February 2014
- January 2014
- September 2012
- March 2011
- December 2010
- July 2010
- June 2010
- April 2010
- February 2010
- January 2010
- December 2009
- July 2009
- May 2009
- April 2009
- March 2009
- February 2009
- December 2008
- August 2008
- March 2008
- December 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- November 2006
- October 2006
- September 2006
- July 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- May 2004
- April 2004
- March 2004
- February 2004
- January 2004
- December 2003
-
Meta
Category Archives: General
Taxes and section 174
7 years since my last post (2017!), so many exciting things to talk about: the AV1 video codec was released, we at Two Orioles wrote an AV1 encoder (Eve) and decoder (dav1d). Covid happened. I became a US citizen. Happily … Continue reading
Posted in General
Leave a comment
Writing x86 SIMD using x86inc.asm
In multimedia, we often write vector assembly (SIMD) implementations of computationally expensive functions to make our software faster. At a high level, there are three basic approaches to write assembly optimizations (for any architecture): intrinsics; inline assembly; hand-written assembly. Inline … Continue reading
Overview of the VP9 video codec
When I first looked into video codecs (back when VP8 was released), I imagined them being these insanely complex beasts that required multiple PhDs to understand. But as I quickly learned, video codecs are quite simple in concept. Now that VP9 is … Continue reading
Posted in General
17 Comments
Displaying video colors correctly
Uncompressed (e.g. decoded) video frames are almost universally structured in planar YUV arrays containing lines of pixels. These YUV pixels will then be drawn on-screen, e.g. using a GL shader to do the YUV-to-RGB conversion. It sounds so simple, right? All you’d … Continue reading
The world’s best VP9 encoder: Eve
VP9 is a bit of a paradox: it offers compression well above today’s industry standard for internet video streaming (H.264 – usually created using the opensource encoder x264), and playback is widely supported by today’s generation of mobile devices (Android) … Continue reading
Posted in General
22 Comments
VP9 Analyzer
Almost a year ago, I decided to quit my job and start my own business. Video coding technology in general, and VP9 specifically, seemed interesting enough that I should be able to build a business on top of it, right? … Continue reading
Posted in General
5 Comments
VP9 encoding/decoding performance vs. HEVC/H.264
A while ago, I posted about ffvp9, FFmpeg‘s native decoder for the VP9 video codec, which significantly outperforms Google’s decoder (part of libvpx). We also talked about encoding performance (quality, mainly), and showed VP9 significantly outperformed H.264, although it was … Continue reading
Posted in General
41 Comments
The world’s fastest VP9 decoder: ffvp9
As before, I was very excited when Google released VP9 – for one, because I was one of the people involved in creating it back when I worked for Google (I no longer do). How good is it, and how much … Continue reading
Posted in General
18 Comments
Brute-force thread-debugging
Thread debugging should be easy; there’s advanced tools like helgrind and chess, so it’s a solved problem, right? Once upon a time, FFmpeg merged the mt-branch, which allowed frame-level multi-threading. While one CPU core decodes frame 1, the next CPU core will decode … Continue reading
Posted in General
3 Comments
Microsoft Visual Studio support in FFmpeg and Libav
An often-requested feature for FFmpeg is to compile it using Microsoft Visual Studio’s C compiler (MSVC). The default (quite arrogant) answer used to be that this is not possible, because the godly FFmpeg code is too good for MSVC. Usually … Continue reading
Posted in General
46 Comments