Video SDK Executable Size Control via Pointer Indirection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development kits for video processing applications face challenges in balancing executable size with the need for dynamic or static library loading, where dynamic loading results in slower application performance and increased size with static libraries.

Innovation Solution

A system that uses a video processing framework with statically linked library functions, accessed indirectly through a pointing function, allowing unused library functions to be removed via preprocessor conditionals, thereby controlling executable size by excluding unnecessary code during compilation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If dynamic loading is used to load libraries at run time, then the application can control functionality usage and discover available libraries, but the application startup time increases and performance decreases due to library load times

Engineering Contradiction:
Improvefunctionality controlVSAvoidapplication startup time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-linking library functions to the executable during compilation, so that all necessary code is prepared in advance and no runtime loading is needed. This resolves the contradiction by achieving fast startup (like static linking) while maintaining functionality control through conditional compilation directives that determine which libraries are included in the final executable.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If static libraries are linked to the final executable, then the application avoids dynamic loading problems and achieves better performance, but the executable size increases due to inclusion of all library code

Engineering Contradiction:
Improveapplication stabilityVSAvoidexecutable size
Core Design Contradiction:
ReliabilityVSWeight of stationary object

Solution Approach 1:

The patent applies the extraction principle by selectively removing unused library code from the final executable through conditional compilation. The preprocessor conditional directives evaluate at compile time and exclude unnecessary library function code from being linked into the executable, thus reducing executable size while maintaining the reliability benefits of static linking for the functions that are actually used.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies local quality by making the linking behavior function-specific rather than library-wide. Each library function can be independently selected for inclusion or exclusion based on conditional compilation directives, allowing the executable to contain only the specific functions needed rather than all functions from all libraries.

Inventive Principle:
Principle #3Local quality

3Adaptability or versatility

If all static libraries called by the framework are linked to the final executable, then the application gains access to all functionalities, but the executable size increases due to inclusion of unnecessary library code

Engineering Contradiction:
Improvefunctionality availabilityVSAvoidexecutable size
Core Design Contradiction:
Adaptability or versatilityVSWeight of stationary object

Solution Approach 1:

The patent uses preliminary action through conditional compilation directives that are evaluated at compile time to determine which library functions to include. This allows the developer to pre-determine the exact set of functionalities needed and compile only those specific functions into the executable, avoiding the inclusion of unnecessary code while maintaining full access to needed functionalities.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9244664B1System for video development kits with control of executable size
Publication Date: 2016.01.26 VISUALON
  • US9244664B1 patent drawing
  • US9244664B1 patent drawing
  • US9244664B1 patent drawing

AI summary

A system for controlling executable size of video development kits comprises an SDK. The SDK comprises a framework, an SDK library function, and a pointing function to deliver a pointer. The framework calls a pointing function. The SDK library function comprises a video processing function. The framework and the SDK library function are compiled into a video processing application. The pointing function points to the SDK library function. The pointing function includes a preprocessor conditional to remove a code section that refers to the SDK library function.