Image compression mechanism and specifications
To reduce the amount of data transferred while maintaining the ultra-low latency expected of a high-speed camera, INFINICAM employs a proprietary fixed-length compression algorithm.
Compression processing flow
Section titled “Compression processing flow”-
Receiving data from the image sensor
Image data is received sequentially from the image sensor. The data is read from top to bottom, and from left to right within each line (raster scan order).
-
8x8 block division and DCT transform
Once 8 lines of data have accumulated, the data is divided into 8x8 pixel blocks, and a DCT (Discrete Cosine Transform) is performed on each block.
-
Quantization
Quantization is applied to the DCT coefficients.
-
Huffman encoding
The quantized data is variable-length compressed using Huffman encoding.
-
128-bit fixed-length encoding (data truncation)
The encoded 8x8 block data is allocated as 128-bit (16-byte) fixed-length data. If the data size exceeds 128 bits, the excess data is truncated (discarded).
-
Sending to the transmission module
Data formatted into 128-bit units is sent out sequentially according to the product’s interface.
- UC-1.1: via the USB module
- GbE-2: via the Ethernet module
Benefits of fixed-length compression and advanced decoding functions
Section titled “Benefits of fixed-length compression and advanced decoding functions”Because data is managed in fixed-length units (1 block = 128 bits), data locations can be identified easily, enabling flexible, high-speed decoding on the PC side (CPU/GPU). The provided SDK library (LIB) also supports these functions.
1. High-speed decoding by specifying an ROI (Region of Interest)
Section titled “1. High-speed decoding by specifying an ROI (Region of Interest)”Rather than decoding the entire image, you can pinpoint-decode only the required area (ROI: Region of Interest). This significantly reduces processing load and memory consumption, enabling even faster processing.
2. Parallel decoding with multiple processes or a GPU
Section titled “2. Parallel decoding with multiple processes or a GPU”Because the memory layout of each block is fixed, the entire region can be decoded simultaneously in parallel using multiple CPU processes or a GPU. This is ideal for real-time analysis that makes full use of a multi-core environment.
3. High-speed preview function via DC component extraction
Section titled “3. High-speed preview function via DC component extraction”A dedicated function is provided that extracts only the DC component (average brightness data) of an 8x8 block to quickly generate an image.
- Example use cases:
- An ultra-fast, low-load check of the overall image (a 1/8-size reduced image)
- Searching for the position of the ROI (Region of Interest) to be analyzed and decoded in detail
