GstObuMetadata Basics

From RidgeRun Developer Wiki



  Index Next: Getting Started





AV1 Overview

The AV1 video compression format is developed by the Alliance for Open Media (AOMedia) as a successor for VP9. AV1 development considered hardware specification resulting in a codec balance in compression performance and hardware feasibility.

Open bitstream units (OBU)

An AV1 coded video is comprise of one or more temporal units. Each temorar unit is fed with a sequence of OBUs of different types like: Sequence Header, Temporal Delimiter, Frame Header, Tile Group, Metadata, Frame, Redundant Frame Header, Tile List and Padding. Each OBU contains a header and a payload byte, the header indicates the type of OBU and specifies the payload size.

The image below shows the structure of a temporal unit, where each one can have a sequence of one or more frame headers followed by zero or more tile group.

OBU's temporal unit structure


The GstObuMetadata plugin focuses on the OBU Metadata which carries information of different types such as high dynamic range, scalability, and timecode.

The plugin manage metadata as OBU Metadata units which is inserted to the frame using the obuinject element either as a string, binary or GstMeta. Also, it extract the information out of the OBU Metadata unit with the obuextract element inserted by obuinject.

GstObuMetadata allows to manage AV1 video streams transmitted via streaming or saved into a video file. The image below shows the pipeline stages for injecting a extracting metadata.

Metadata insertion and extraction representation.


The plugin description looks like:

Plugin Details:
  Name                     obu
  Description              Gstreamer plugin to add metadata as Open Bitstream Units (OBU)
  Filename                 /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libobu.so
  Version                  0.1.0
  License                  Proprietary
  Source module            gst-obu
  Binary package           gst-obu
  Origin URL               https://www.ridgerun.com/

  obuextract: OBU extract metadata
  obuinject: OBU inject metadata
  obumetatester: Helper element to insert a test GstObuMeta to buffers.

  3 features:
  +-- 3 elements

References

Links to the AV1 websites:



  Index Next: Getting Started