Open source consultancy Collabora has added the H.265 video coder and decoder to i.MX 8M processor from NXP. Several boards using the new microcontroller are being launched in the next few weeks.
“One of the platforms we have been working on at Collabora is VeriSilicon’s Hantro codec,” said Benjamin Gaignard, senior software engineer at Collabora in France.
This video IP is already ported to the NXP’s i.MX8 and other popular SoCs from Rockchip and Microchip and is marketed as a small and power efficient device, but it also has a feature that makes it specially attractive for open source developers as it is a stateless accelerator.
Stateless devices do not need firmware to operate, making them more robust and better suited for open source platforms, where having full control over the system is desirable. In this case, the support is split in two: a kernel driver provided by a Video4Linux Hantro driver, and a userspace component, which can be provided by frameworks such as GStreamer and FFMPEG.
“Our recent efforts on the Hantro kernel driver have resulted in the addition of H.264 decoding support and multiple performance improvements. Continuing this work, we are now introducing High Efficiency Video Coding (HEVC), also known as H.265, decoding support on NXP’s i.MX 8M chipset,” said Gaignard.
Unlike the currently supported codecs (JPEG, MPEG-2, VP8 and H.264), HEVC doesn’t rely on the G1 hardware block but on the second video processor unit, the G2.
For this first step, the driver supports the basic HEVC features up to level 5.1. Enhanced features like 10bits depth per sample with 4:2:0 chroma sampling, scaling or tile decoding could be added later. Another possible evolution is to take benefit of the hardware capability to use compressed buffers to limit the memory bandwidth consumption.
Supporting HEVC on the Hantro driver will help mature the HEVC V4L2 stateless API enough to be able to remove it from the staging directory says Gaignard. Getting HEVC as a stable API is an important requirement for the userland stacks that are relying on it.
“More work is in the pipeline in the kernel side and in GStreamer, to improve CODEC support. For instance, we are working on VP9 decoding and V4L2 hardware accelerated encoding,” he said.
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.