Bit Stream Packing with Boundary Prefixes for Memory Alignment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage methods in memory often require padding bits to align data with memory word sizes, leading to suboptimal memory usage, particularly in applications with restricted memory, such as image processing for stitching multiple images into a larger image.

Innovation Solution

A data packer and unpacker system that inserts prefixes at predetermined boundaries in a bit stream to efficiently align and store data, accommodating varying bit lengths and inserting padding bits as needed to optimize memory usage without leaving gaps.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is aligned with memory word sizes using padding bits, then system performance is enhanced, but memory usage becomes suboptimal

Engineering Contradiction:
Improvesystem performanceVSAvoidmemory usage
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the bit stream into fixed-width words by inserting prefixes at predetermined boundaries. Each prefix indicates the number of bits belonging to the preceding value, allowing the data to be divided into manageable memory-aligned segments without requiring traditional padding bits throughout the entire data structure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter representation by using variable-length prefixes to encode bit counts. This allows the data structure to adapt its parameters dynamically, fitting variable amounts of data into fixed memory word boundaries without wasting space, thereby resolving the contradiction between alignment performance and memory efficiency.

Inventive Principle:
Principle #35Parameter changes

2Quantity of substance

If prefixes are inserted at predetermined boundaries in the bit stream, then memory alignment is optimized, but data structure complexity increases

Engineering Contradiction:
Improvememory usage efficiencyVSAvoiddata structure complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent introduces prefixes as intermediary elements in the bit stream. These prefixes act as mediators that provide boundary markers and bit-count information, enabling efficient memory alignment without requiring complex data structures. The prefixes simplify the overall structure by providing clear delimiters that ease both storage and retrieval operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If padding bits are inserted to fill available bits, then memory alignment is achieved, but memory bandwidth is wasted

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidmemory bandwidth waste
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent applies partial action by inserting prefixes only where needed at predetermined boundaries rather than uniformly padding entire data structures. This selective approach achieves necessary memory alignment without the excessive action of padding all available bit positions, thereby reducing memory bandwidth waste while maintaining alignment benefits.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11386021B2Apparatus and method for packing a bit stream
Publication Date: 2022.07.12 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US11386021B2 patent drawing
  • US11386021B2 patent drawing
  • US11386021B2 patent drawing

AI summary

A data packer forma bit stream for forwarding values to memory. The bit stream includes the values and respective prefixes for identifying the values and the data packer is configured to insert the prefixes at predetermined boundaries in the bit stream, such that a prefix for identifying one value is inserted between bits that define a value identified by a preceding prefix. A data unpacker unpacks a bit stream that comprises values and respective prefixes for identifying those values that are located at predetermined boundaries in the bit stream, such that a prefix for identifying one value is inserted between bits that define a value identified by a preceding prefix. The data unpacker identifies a prefix at a predetermined boundary in the bit stream and determine, in dependence on that prefix and the predetermined boundaries, a location of the next prefix in the bit stream.