BBC R&D has released the first version of the Turing codec, an open source software HEVC video encoder that allows highly efficient compression of video content with low computational complexity.
Due to the high volume of video data associated with UHD (Ultra High Definition) content in services like broadcasting or internet video streaming, fast and highly efficient compression is essential to deliver such content. The Turing codec was optimised specifically to address these needs, to achieve high compression performance when encoding UHD content in order to ease the challenging task of supporting UHD video material in an increasing number of video services. The codec was named after Alan Turing, one of the most influential scientists in the development of the foundations of theoretical computer science.
The Turing codec is compliant with the Main and Main10 profiles of the HEVC standard. HEVC is state-of-the-art in video compression and allows the usage of advanced and extremely complex video compression tools to achieve remarkable coding performance. The HEVC standard was ratified in 2013 and published as recommendation H.265 by the ITU-T and as MPEG-H Part 2 by ISO/IEC. The standard can achieve more than 50% bitrate reductions compared to its predecessor H.264/Advanced Video Coding (AVC) for the same subjective quality, as reported in the HEVC final verification tests. It is expected that in the years to come, practical implementations of HEVC encoders will become more and more mature, expanding the adoption of HEVC in video services involving video storage/transmission. The Turing codec is an important milestone in that direction as it enables excellent compression performance for challenging UHD video.
The Turing codec was optimised for fast encoding of UHD video content. The code-base at the core of the codec was designed from scratch to be as lightweight as possible in terms of execution time and memory consumption. To achieve this goal, the codec relies on two essential features:
- An optimised software framework composed by state-of-the-art C++11 constructs and assembly optimisations. This means that the software is optimised specifically for those computations that are typically performed by video compression algorithms, minimising branch instructions in critical paths and making use of SIMD instructions via assembly code. The codec also makes use of clever memory management, to only buffer information that is needed during the encoding while discarding unnecessary data, hence keeping its memory requirements to a minimum.
- Advanced algorithms that speed-up the encoding process. During the development of the encoder, great effort was put into evaluating the impact that various HEVC tools have on compression efficiency and complexity. This allowed us to design an encoder that has the ability to predict the most promising encoding decisions in terms of compression efficiency without having to perform extensive searches to test all options and tools available in the HEVC standard.
The Turing codec also supports different speed presets, designed to provide flexibility and adjust the operation of the encoder to different use cases. The presets control the pre-defined values of many encoder options, allowing specific trade-offs between computational complexity and encoder efficiency. Apart from these presets, users are also able to easily fine tune the parameters of the encoder to better adapt the codec to their needs.
The first version of the Turing codec provides consistently good compression efficiency when compressing very high resolution content. Therefore it can significantly outperform other HEVC software encoders on UHD content. Furthermore, the memory resources consumed by the Turing codec during the encoding process are only a fraction of what is used by other practical HEVC encoders as highlighted in the following figure. The plot shows a snapshot of 25 frames of a UHD video sequence compressed with the HEVC reference test Model (HM), the Turing codec and another practical HEVC software encoder. For each frame, the amount of memory consumed is listed with the Turing codec consuming the lowest amount. This means that encoding with the Turing codec is potentially much cheaper, even when dealing with highly demanding tasks, such as the compression of UHD content.
The Turing codec software is open source under the GPLv2 license and the source code can be accessed from our repository on GitHub. The codec is the result of a partnership led by the BBC R&D video compression team including Parabola Research and Queen Mary University of London and supported by Innovate UK under project THIRA. The open source distribution of the Turing codec is a way of sharing our knowledge and expertise with everyone professionally involved in video compression applications or simply interested in this field. Contributions to our open source project are also welcome. The codec is at an advanced maturity stage, but it is still under active development to implement additional functionalities and further improve its performance. If you are interested in the development of the Turing codec, check the contribution guidelines on our GitHub repository page. You can also find more information about the Turing codec, the complete documentation and a comprehensive guide for downloading, installing and running the software on the codec’s website.