Nothing Special   »   [go: up one dir, main page]

Skip to content

External Decoders

Christian edited this page Dec 10, 2020 · 3 revisions

YUView is programmed in a way so one can easily extend the input sources. One example how this can be used is the de265File extension. This extension uses QLibrary to open the libde265 library into YUView. Using this library one can directly open h.265/HEVC encoded files in YUView. Just use file:Open. If the file extension is .hevc, YUView will try to use libde265 to open the file.

h.265/HEVC

Supported h.265/HEVC file format

The only natively supported file format is the h.265/HEVC Annex B raw file format. In this raw file format, each NAL unit starts with a predefined start code (0x00 0x00 0x00 0x01) followed by the NAL unit header and the NAL unit payload data. There is no header of the file and no support for multiple streams / audio etc. This is the file format that the HEVC reference test model software (HM software) outputs. Also x265 can output this format and ffmpeg can extract HEVC streams into this format:

ffmpeg.exe -i input.mkv -c:v copy -bsf hevc_mp4toannexb -f rawvideo out.hevc

The bitstream filter (hevc_mp4toannexb) takes care of converting the NAL units to the correct Annex B file format.

Libde265

This is a quite fast open source HEVC decoder library under the GNU LGPL. The source code can be found here. There also is a fork of this which supports the advanced analytics framework of YUView and can show details like motion vectors, predictions modes and much more. Pre-built libraries can be found here.

HM reference decoder

The HM reference decoder can also be used for decoding. It is much slower but works. You can find pre-built library versions of this decoder here.

h.266/VVC

VTM reference decoder

I also put together a library version of the VVC reference decoder (VTM) which can be plugged in. Unfortunately the adaption of VVC parameter parsing is not 100% finished yet and also the pre-build libraries are not available yet. The libVTM project can be found here.

AV1

Dav1d

Also the dav1d AV1 decoder works. The pre-built libraries can be found here.