SoC Codec Buffer Allocation for Variable-Resolution Video Frames

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing video encoding/decoding technologies face inefficiencies in managing large amounts of image data, particularly in allocating memory buffers for varying image frame resolutions, leading to potential page faults and wasteful memory usage.

Innovation Solution

A system on a chip (SoC) with a codec controller that dynamically allocates buffers of varying sizes based on the resolution of incoming image frames, allowing efficient encoding and decoding by requesting and reallocating buffers as needed, minimizing memory waste and interactions between components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a buffer is allocated for each image frame before encoding, then the encoding process can proceed without page faults, but memory usage increases and buffer allocation overhead increases

Engineering Contradiction:
Improveencoding continuityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The codec controller allocates a buffer in advance before the codec requests it. When the codec needs to encode an image frame, the buffer is already prepared and allocated, allowing the encoding to proceed immediately without page faults or delays, thus ensuring encoding continuity while avoiding the overhead of dynamic buffer allocation during the encoding process

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If a buffer of maximum size is allocated to handle high-resolution frames, then all resolution levels can be encoded, but memory is wasted when encoding lower-resolution frames

Engineering Contradiction:
Improveresolution compatibilityVSAvoidmemory waste
Core Design Contradiction:
Adaptability or versatilityVSLoss of energy

Solution Approach 1:

The buffer size is made dynamic and adapts to the resolution of the image frame being encoded. When a high-resolution frame is received, a larger buffer is allocated; when a lower-resolution frame is received, a smaller buffer is allocated. This dynamic adjustment ensures that the buffer size matches the actual needs of each frame, preventing memory waste while maintaining the ability to handle various resolution levels

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The buffer size parameter is changed based on the resolution parameter of the incoming image frame. The codec controller monitors the resolution of each frame and adjusts the buffer size accordingly, transforming the buffer allocation from a static maximum-size approach to a dynamic parameter-based approach that optimizes memory usage for each specific encoding task

Inventive Principle:
Principle #35Parameter changes

3Productivity

If the codec controller pre-allocates buffers for all possible resolutions, then any frame can be encoded immediately, but device complexity and memory overhead increase

Engineering Contradiction:
Improveencoding speedVSAvoidbuffer management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The codec itself requests the buffer from the codec controller when it needs to encode a frame, rather than the controller proactively allocating buffers. The codec provides information about its buffering needs based on the incoming frame characteristics, and the controller allocates appropriately sized buffers on-demand. This self-service mechanism simplifies buffer management while maintaining encoding speed

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12518790B2System on chip, method for operating thereof and video system
Publication Date: 2026.01.06 SAMSUNG ELECTRONICS CO LTD
  • US12518790B2 patent drawing
  • US12518790B2 patent drawing
  • US12518790B2 patent drawing

AI summary

A system on chip includes: a codec encoding image frames; and a codec controller sending the image frames to the codec and allocating a buffer for encoding the image frames. The codec controller sends a first image frame to the codec. The codec controller allocates the first buffer to a memory and sends the first image frame to the codec. The codec encodes the first image frame and sends the encoded first image frame to the codec controller. The codec controller allocates the first buffer to the memory and sends a second image frame to the codec. The codec requests the codec controller to allocate a second buffer of a second size. The codec controller allocates the second buffer to the memory and sends the second image frame to the codec, and the codec encodes the second image frame and sends the encoded second image frame to the codec controller.