# Glossary

[中文]

Terms, domain nouns, and abbreviations used in ESP-GMF code and documentation, listed in alphabetical order.

A2DP

  Advanced Audio Distribution Profile

  Classic Bluetooth audio transport protocol for bidirectional audio streams.

Acquire-Release

  Data access protocol for data ports

  The read side calls `acquire_in` to obtain a payload, then `release_in` to return it. The write side calls `acquire_out` to obtain an empty payload, then `release_out` to submit it downstream.

AEC

  Acoustic Echo Cancellation

  Removes the loudspeaker output component from the microphone signal.

AFE

  Audio Front-End

  A set of algorithms that process raw microphone data, including AEC, NS, VAD, and WakeNet modules.

ALC

  Automatic Level Control

  Adjusts gain independently per channel.

AVRCP

  Audio/Video Remote Control Profile

  Used for playback control, metadata, and notifications.

BMGR / Board Manager

  Board Manager

  A YAML-based board hardware configuration system (`esp_board_manager`); a code generator translates the YAML into C initialization code.

Cache

  Byte cache

  `esp_gmf_cache` provides a byte-level sliding buffer that accumulates bytes from multiple payloads into a contiguous cache, then reads them back in arbitrary lengths. Commonly used by decoders to parse protocol or frame headers.

Capability

  Capability descriptor

  The mechanism by which an element declares its capabilities externally. Each capability descriptor node uses an EIGHTCC to identify the capability category and can carry performance information and attribute ranges, which the pool, pipeline, or application queries to select an element.

Data Bus

  Data bus

  The data queue underlying a port, providing four implementations: ringbuffer, fifo, block, and pbuf, responsible for cross-thread synchronization and buffering.

DRC

  Dynamic Range Control

  Compresses the signal according to a knee curve.

EIGHTCC

  Eight Character Code

  An 8-character algorithm category identifier defined in `esp_gmf_caps_def.h`, describing the algorithm type of an element (e.g., `AUDDEC` / `AUDEQ`).

Element

  Processing unit

  The processing unit in ESP-GMF, corresponding to one specific algorithm. Each element implements three fixed lifecycle functions: `open` / `process` / `close`.

EQ

  Equalizer

  Adjusts frequency response by band.

FourCC

  Four Character Code

  A 32-bit identifier using 4 ASCII characters to represent an encoding or container format, defined in `esp_fourcc.h`.

GMF

  General Multimedia Framework

  A lightweight general-purpose software framework built by Espressif for IoT multimedia applications.

GOP

  Group of Pictures

  The number of frames between two I-frames in video encoding.

HFP

  Hands-Free Profile

  Classic Bluetooth hands-free calling protocol.

IO

  External interface

  Special elements at the head or tail of a pipeline that connect to external data sources or sinks, implemented based on `esp_gmf_io_t` for file, HTTP, flash, codec, and I2S read/write capabilities.

is_done

  End-of-stream flag (`esp_gmf_payload_t` field)

  Set to 1 when the source IO reaches the end of its data; downstream elements process it in turn, triggering close at each stage.

Job

  Work unit

  The specific work unit scheduled by a task, registered in the task’s job list according to the element’s open / process / close phases. Can be marked for single or unlimited execution.

Job Stack

  Job stack

  The structure inside a task that stores jobs temporarily suspended by `TRUNCATE`. After downstream consumers process data, the task can return to the suspended job and continue execution.

MBC

  Multi-Band Compressor

  Compresses each frequency band independently.

Method

  Runtime method

  A runtime control action exposed by an element outside of `open` / `process` / `close`, described by `esp_gmf_method_t` with method name, execution function, and parameter description. Applications can call methods by name to adjust parameters such as volume, target sample rate, or target resolution.

NS

  Noise Suppression

  A sub-module within AFE.

OAL

  Operating System Abstraction Layer

  Encapsulates memory, mutex, thread, and system statistics interfaces related to the operating system and ESP-IDF.

Payload

  Payload

  The data carrier (`esp_gmf_payload_t`) flowing between elements, containing a data buffer, valid length, end-of-stream flag, timestamp, and other fields.

Pipeline

  Pipeline

  The orchestrator of a processing chain, connecting multiple elements in sequence and exposing `run` / `stop` / `pause` / `resume` / `reset` / `seek` control interfaces.

Pool

  Pool

  A template registry for elements and IO components (`esp_gmf_pool_t`), used to instantiate pipelines by name.

Port

  Port

  The data read/write interface exposed by an element, using the acquire-release protocol to access payloads. The underlying data queue is provided by a data bus.

PPA

  Pixel Processing Accelerator

  A hardware acceleration unit on ESP32-P4/ESP32-S3, supporting color conversion, scaling, rotation, and cropping.

PTS

  Presentation Time Stamp

  Used for audio/video synchronization.

QP

  Quantization Parameter

  The quantization parameter in video encoding, affecting compression ratio and image quality.

SE

  Speech Enhancement

  A sub-module within AFE.

Task

  Task

  A FreeRTOS thread encapsulated by the framework, running in `esp_gmf_task.c`, executing jobs one by one.

URL Score

  URL scoring mechanism

  The IO selection mechanism. Each IO implements a `get_score` callback to evaluate URL match quality; the pool selects the IO with the highest score.

VAD

  Voice Activity Detection

  Determines whether the current frame contains speech.

VCMD

  Voice Command Detection

  Recognizes preset command phrases based on the `MultiNet` model.

WWE / WakeNet

  Wake Word Engine

  Detects a specific wake word to trigger device activation.

Was this page helpful?

- Thank you! We received your feedback.
- If you have any comments, fill in Espressif Documentation Feedback Form.

- We value your feedback.
- Let us know how we can improve this page by filling in Espressif Documentation Feedback Form.