Intel Media SDK Documentation

repository·master·Indexed 21 days ago

https://github.com/intel-media-sdk/mediasdk

Documentation for the Intel Media SDK, including instructions for rebuilding shaders from CM language sources using CMC and GenX_IR compilers, using the embed_isa tool to generate C arrays from ISA files, and configuring the fastboot profile for embedded builds. Also contains detailed integration and build guides for Google Mock and Google Test used within the project.

Tokens
217.8K
Snippets
519
Records
810
Agent score
75%

What's inside Intel Media SDK

  1. Introduction to Intel® Media SDK Tutorials

    master

    The Intel® Media SDK provides hardware acceleration for video decoding, encoding, and Video Pre/Post-Processing (VPP).

    This tutorial series is designed to teach the SDK by progressing from simple to complex implementations. It primarily uses the H.264 (AVC) codec as a baseline, but the patterns are applicable to other supported codecs by adjusting configuration parameters.

    Key Concepts:

    • Layered Complexity: Concepts are introduced incrementally. It is recommended to use a file difference tool to compare successive tutorial steps.
    • Self-Contained Samples: Most tutorial samples are self-contained. Common logic (like bitstream reading/writing or raw frame handling) is moved to a common folder to improve readability.
    • Reference Material: For deep technical details, refer to the SDK API Reference Manual. The SDK also includes a set of official samples that showcase a wider range of parameters and scenarios.
  2. Overview of Flexible Encode Infrastructure (FEI)

    master

    The Flexible Encode Infrastructure (FEI) is an extension of the Intel® Media SDK designed for fine-tuning the hardware encoding pipeline. While the general SDK provides a high-level ENCODE class for quick results, FEI introduces granular control by splitting the encoding process into more discrete stages.

    Warning for Developers:

    • Expert Use Only: FEI is intended for trusted experts. It is not foolproof; incorrect configuration can lead to system crashes or hangs.
    • No Backward Compatibility: FEI is not backward compatible. Applications using FEI must be recompiled and potentially retuned for every new version of the driver, hardware, or operating system.
    • Limited Validation: Validation is only guaranteed for the specific usage models defined in the documentation.
  3. Overview of Media SDK Tracer

    master
    Media SDK Tracer is a diagnostic tool used to dump logging information from application calls made to the Media SDK library. The trace logs generated by this tool are the recommended format for providing diagnostic information when submitting questions or issues to the Media SDK team.
  4. Overview of Intel® Media SDK for Linux*

    master

    The Intel® Media SDK for Linux provides software development tools and libraries for developing media solutions on Intel® Xeon® and Core™ processor-based platforms. It is designed to optimize datacenter and embedded media applications for Linux by utilizing hardware acceleration from Iris®, Iris® Pro, and Intel® HD Graphics.

    For installation procedures, refer to the <sdk-extract-folder>/doc/mediasdk_getting_started_guide.pdf provided with your SDK extraction.

  5. Overview of Google Test and Google Mock

    master

    Google Test is a C++ testing framework based on the xUnit architecture. It provides features such as test discovery, a rich set of assertions (both fatal and non-fatal), death tests, and support for value-parameterized and type-parameterized tests. It also supports XML test report generation.

    Google Mock is an extension to Google Test specifically designed for writing and using C++ mock classes. The two projects are maintained together in this repository.

  6. Overview of Video Processing (VPP) Sample

    master
    The VPP Sample is a console application built using the Intel® Media SDK. It demonstrates how to use the SDK API to perform video processing on raw video sequences. It supports various uncompressed input and output formats, allowing for tasks like resizing, cropping, color conversion, and enhancement.
  7. Overview of ASG-HEVC

    master

    ASG-HEVC is a validation tool specifically designed for motion estimation and mode decision analysis. It was developed to analyze the HEVC FEI (Flexible Encoding Infrastructure) encoder.

    Key capabilities include:

    • Checking motion estimation quality (with and without External MVP).
    • Validating the optimality of Inter and Intra predictions.

    It is a required tool for the validation of the open source Media SDK.

  8. Overview of Intel Media SDK sample applications

    master

    The Media SDK provides several console applications to demonstrate various media processing capabilities:

    • Video Decoding Sample: Decodes elementary compressed video streams (e.g., HEVC) to raw frames. Supports color conversion post-processing and X11 rendering via the -r option.
    • Video Encoding Sample: Encodes raw video frames into compressed streams. Supports video resizing and rotation (via User Plug-in Sample).
    • Video Processing Sample: Performs various video processing algorithms on raw frames.
    • Video Transcoding Sample: Transcodes video from one compressed format to another. Supports multiple streams, resizing, de-interlacing, and VPP (Video Post Processing) algorithms.
    • FEI Encoding Samples: Uses the Flexible Encoder Interface (FEI) API. Note that FEI is not backward compatible and may require more effort to implement than the standard Media SDK API.
      • sample_fei: Showcases AVC FEI.
      • sample_hevc_fei: Showcases HEVC FEI for encoding and transcoding.
      • sample_hevc_fei_abr: Demonstrates Look Ahead BRC for transcoding scenarios using HEVC FEI.
  9. Overview of Multi-Transcoding Sample

    master

    The Multi-Transcoding Sample is a console application built using the Intel® Media SDK that demonstrates high-throughput video transcoding (decoding and encoding).

    Key capabilities include:

    • Concurrent Sessions: Supports multiple input and output streams to execute multiple transcoding pipelines in parallel.
    • CPU/GPU Balancing: Designed to maximize throughput on Intel® hardware-accelerated platforms by fully loading both the CPU and GPU.
    • Video Processing: Demonstrates how to integrate user-defined functions (e.g., picture rotation plug-ins) and resizing into the transcoding pipeline.
    • Surface Type Neutrality: Demonstrates transcoding using opaque memory usage.
    • HEVC Support: Fully supports HEVC (High Efficiency Video Coding) decoding and encoding.
  10. Overview of the Encoding Sample

    master

    The Encoding Sample is a console application designed to demonstrate the capabilities of the Intel® Media SDK. It showcases how to use the SDK API to perform preprocessing and encoding of uncompressed video streams into specific compression standards.

    Key capabilities include:

    • Creating an encoding pipeline for uncompressed video.
    • Integrating user-defined functions (plugins) into the encoding pipeline (e.g., a picture rotation plugin).
    • Working with HEVC Decoder & Encoder (requires specific plugin configuration).

    Supported Video Formats:

    Format TypeSupported Formats
    Input (uncompressed)YUV420, NV12
    Output (compressed)H.264 (AVC, MVC – Multi-View Coding), H.265 (with HEVC), MPEG-2 video, JPEG/Motion JPEG, HEVC (High Efficiency Video Coding)

    Note: For YUV420 input, the sample assumes the byte order Y, U, V in the input file.

  11. Overview of Intel Media SDK capabilities

    master

    Intel® Media SDK provides a plain C API for hardware-accelerated video processing on Intel® Gen graphics hardware platforms. The implementation is written in C++ 11 with components in C-for-Media (CM).

    Supported Features

    • Video Encoders: HEVC, AVC, MPEG-2, JPEG, VP9
    • Video Decoders: HEVC, AVC, VP8, VP9, MPEG-2, VC1, JPEG, AV1
    • Pre-processing Filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition