GstSEIMetadata - GstSEIMetadata Basics

From RidgeRun Developer Wiki


  Index Next: Getting Started





H264-H265 Standards Overview

H264, also known as Advanced Video Coding (AVC) and H265, also known as High Efficiency Video Coding (HEVC) are respectively the most and the second most used video compression standards. They offer good video quality at lower bit rates than other standards such as MPEG-2 or H263.

Network Abstraction Layer

The Network Abstraction Layer (NAL) is part of the H264 and H265 standards. The NAL units are the constituent parts of the encoded video, in H264 the first byte is a header byte that indicates the type of data in the NAL unit, the remaining bytes contain the payload data of the type specified by the header. NAL units are divided into VCL NAL units and Non-VCL NAL units. NAL units of the first kind contain data that represents values of the samples in the video pictures, while NAL units of the second kind contain additional information such as parameter sets and supplemental enhanced information.

Access Units

An access unit is a set of NAL units of a specific form. Decoding one access unit results in one picture. The image below shows the structure of a NAL access unit.

Diagram of access units
Structure of an access unit

Access Unit Delimiter

May or may not be present, helps locating the start of the access unit.

Suplemental Enhanced Information (SEI)

Contains data such as picture timing and other relevant information.

Primary Coded Picture

A set of VCL NAL units that represent the samples of the video picture.

Redundant Coded Picture

Redundant representations of areas of the same video picture, used in recovering from loss or corruption of data in the primary coded pictures.

End of Sequence

May or may not be present, indicates the end of the video sequence.

End of Stream

May or may not be present, indicates the stream is ending.

The GstSEI plugin

The GstSEI plugin manages metadata as SEI NAL units. It contains three elements: seiinject to insert metadata either as a property, as binary or as a GstMeta, seiextract to extract the metadata inserted by seiinject and seimetatimestamp which puts the buffer timestamp into a GstMeta.

#gst-inspect-1.0 sei

Plugin Details:
  Name                     sei
  Description              Gstreamer plugin to add meta-data as SEI NAL units
  Filename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libsei.so
  Version                  0.5.4
  License                  Proprietary
  Source module            gst-sei
  Binary package           gst-sei
  Origin URL               Unknown package origin

  seiextract: SEI Extract Metadata
  seiinject: SEI Inject Meta-data
  seilatencytester: Helper element to measure latency using the GstSeiMeta from buffers.
  seimetatimestamp: Helper element to insert a test GstSeiMeta to buffers.

  4 features:
  +-- 4 elements

References

Links to the H264 and H265 websites:


  Index Next: Getting Started