MIDI Event Search Window Compression for Embedded Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional MIDI compression methods are impractical for embedded systems due to limited time resolution, inefficient channel-by-channel compression, and high computational overhead, especially in devices with limited processing power like cordless telephones, which struggle with storing and decompressing MIDI files effectively.

Innovation Solution

The method employs an adjustable-size Lempel-Ziv-like MIDI Event Search Window (MESW) to find optimal matches between look-ahead and previous MIDI events, reducing storage by discarding matched events and using a simpler decoding strategy that reduces the number of bits required for each MIDI event, allowing for more efficient compression and decompression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional channel-by-channel MIDI compression is used, then basic music data can be compressed, but the compression is inefficient for small size MIDI data and embedded systems with limited processing power

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcomputational processing power requirement
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple channel trunks into a single compressed data stream, processing all MIDI channels simultaneously rather than sequentially. This combining approach reduces the overall processing overhead and improves compression efficiency for small MIDI files in embedded systems.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The invention creates a universal compression framework that handles multiple MIDI channels and event types through a single unified process. The compression method is designed to be adaptable to different MIDI file sizes and embedded system constraints, providing multi-functional utility across various application scenarios.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If note length is defined with 8 level time resolution, then basic timing can be represented, but the resolution is insufficient for general MIDI file conversion

Engineering Contradiction:
Improvetime resolutionVSAvoidMIDI file compatibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic time resolution by using variable-length encoding for note lengths. Instead of fixed 8-level resolution, the system adapts the timing precision to the actual needs of the MIDI data, allowing for more accurate representation of diverse timing patterns while maintaining efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the time resolution parameter from a fixed 8-level system to a more flexible representation that can accommodate general MIDI files. This parameter change enables better compatibility with standard MIDI timing while optimizing for the specific requirements of embedded system storage.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If only immediate preceding event matching is considered, then simple compression can be achieved, but the compression efficiency is not optimized as maximal matched repetition patterns may exist in previous several events

Engineering Contradiction:
Improvecompression ratioVSAvoidsearch window complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by pre-processing MIDI data to identify and mark repetitive patterns before the main compression process. This preliminary pattern recognition allows the compression algorithm to efficiently reference previously matched events without requiring complex real-time searching during compression.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention uses copying by referencing indices of previously matched events instead of storing complete event data. When a repetition pattern is detected in previous events, the system copies the reference index rather than the actual event data, significantly reducing storage requirements while maintaining compression efficiency.

Inventive Principle:
Principle #26Copying

4Reliability

If tempo and channel-by-channel based decoding is used, then accurate decompression can be achieved, but the computational overhead is relatively intensive for embedded systems

Engineering Contradiction:
Improvedecompression accuracyVSAvoidcomputational processing power requirement
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service decompression where the compressed data structure contains embedded timing and synchronization information that enables the decompression process to be self-sufficient. The data format includes inherent temporal relationships that allow accurate reconstruction without requiring complex external tempo management or channel-by-channel processing.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7378587B2Method for fast compressing and decompressing music data and system for executing the same
Publication Date: 2008.05.27 VTECH TELECOMM
  • US7378587B2 patent drawing
  • US7378587B2 patent drawing
  • US7378587B2 patent drawing

AI summary

MIDI compression and decompression methods that reduce the size of a standard MIDI file and maintains information to play the MIDI music. The exemplary method of the invention makes use of the high correlation and repetitions between a look-ahead MIDI event and previous set of MIDI events. An adjustable size Lempel-Ziv-like MIDI Event Search Window (MESW) is created during the compression and decompression process to allow searching of matched events or event elements in previous window size of MIDI events. Further reduction of the MIDI events can be made by discarding the matched events in the event search window. Therefore, with 4-bit of MIDI event search window, the number of MIDI events stored in the window can be more than 16.