ABSTRACT

Adaptive bitrate streaming is a critical feature in internet video that significantly improves the viewer experience by customizing video stream quality to the viewer device’s capability and connectivity. Encoding the source content at multiple quality tiers or bitrates is extremely demanding for post-production houses, studios, and content delivery networks.

This paper describes an intelligent multi-bitrate encoder, based on the High Efficiency Video Coding (HEVC)/H.265 standard that encodes a single title to multiple bitrates at significant performance gains and no compression efficiency loss, as compared to standalone single bitrate encoder instances.

We first describe the threading infrastructure of x265, and demonstrate its ability to dynamically adapt to varying degrees of parallelism in hardware. We then describe the key architectural design of a multi-bitrate encoder, including thread synchronization challenges across encoder instances.

We also discuss the analysis data shared across different quality tiers, that is carefully chosen to eliminate loss of compression efficiency compared to a single bitrate encoder instance. Finally, we show the high performance gains achieved by the multi-encoder, and demonstrate the feasibility of simultaneous encoding to multiple bitrates with negligible loss of compression efficiency.

INTRODUCTION

Over-The-Top (OTT) content streaming is poised to grow exponentially in the coming years, driven by the consumer’s need for a rich and high quality viewing experience. Recent projections indicate that Internet delivery of video will consume 80 to 90% of all Internet bandwidth by the year 2019 [1] [2].

Consequently, video streaming over the Internet has evolved tremendously over the past several years including advances in compression, and transmission technology. The Advanced Video Coding (AVC) standard has been the de-facto compression standard for some years now.

The recently-proposed High Efficiency Video Coding (HEVC) standard was developed by the Joint Collaborative Group for Video Coding (JCT-VC) with the goal of achieving the same quality as that achieved by the AVC standard at 50% the bit-rate. Studies have verified this improvement in encoding efficiency can be realized at typical consumer video distribution quality levels [3].

In this paper, we explore using the HEVC standard to enable OTT content streaming while ensuring a significantly improved viewer experience. Since encoding for the HEVC standard is expected to be 5-10X computationally more intensive than AVC, we discuss critical aspects related to improving encoder performance.

HEVC codec solutions play a key role in enabling OTT content streaming by significantly reducing the bitrate required for defined visual quality levels. In addition to efficient compression of video, multimedia streaming over the internet has unique challenges that need to be addressed. The open internet is by definition an “unmanaged” network where end-user bandwidth for the OTT consumer cannot be guaranteed.

Due to network congestion at times of peak demand, frames could take longer to reach, thus causing the playback to stall due to an empty buffer. A widely adopted technique to mitigate this is adaptive streaming, where the bitrate of the delivered video is dynamically adapted to changing network conditions. By encoding to multiple bitrates, and dynamically switching between the bitrate tiers, streaming media servers adapt to changing network conditions, significantly improving the viewer experience.

This discussion is guided by our experience developing x265 [4], an open-source software HEVC encoder that was developed using the x264 AVC encoder project as a reference. x265 is the world’s most widely adopted HEVC encoder and is integrated into popular media processing applications and frameworks such as VLC, Handbrake, FFMPEG, and gstreamer. In a recent comparison of HEVC encoders conducted by the video experts at Moscow State University, x265 achieved the highest efficiency (the lowest bit rate at any target quality level) of any HEVC encoder tested [5].

We also describe the UHDkit multi- bitrate encoder that enables simultaneous and efficient encoding of multiple HEVC bit- streams at different bitrate tiers from a single video source. The multi-bitrate encoder is architected around x265, and shares analysis information from one bitrate instance to the others to enable a significantly faster encode with every little impact to encoding efficiency.

Our results show that encoding to 4 bitrates with our multi-bitrate HEVC encoder results in a 2.5X speed-up for1080p streams, and a 2.1X speed-up for 4K streams.

ENCODER PARALLELISM AND PERFORMANCE

HEVC encoding is, on average, 5X more complex than encoding for the AVC standard, when targeting ultra-high definition (UHD) resolutions of 3840x2160 pixels for each frame. This complexity is further increased with 10-bit pixels, as opposed to traditional 8-bit pixels.

In x265, the paradigm of parallelism is baked fundamentally into the encoder to achieve high-performance. In this paper, we discuss the fundamental threading infrastructure in x265. While some of the features of parallelism have no impact on encoding efficiency, we also implement several features that trade-off encoding efficiency for heightened performance.

Interested readers are referred to a recent publication on x265 that discusses the trade-offs between performance and efficiency in more detail [6].

DOWNLOAD THE FULL TECH PAPER BELOW