type
status
date
slug
summary
tags
category
icon
password
Libcimbar is a tool for data transmission that uses a special two-dimensional barcode format (color icon matrix barcode) to transmit data remotely without the need for traditional network connections such as the Internet, Bluetooth or NFC.
Its basic principle is to display a dynamic barcode composed of color blocks on the computer or mobile phone screen, and the mobile phone camera reads and decodes these barcodes and converts them into files or data.
Even if some data is blurred or lost, it can be corrected and restored. This technology can be used to transfer files safely and quickly in offline situations.
- Air transmission: Libcimbar displays a dynamic barcode and allows the phone camera to read the barcode to transmit data. You only need to point your phone at the computer screen to transfer data without a network connection.
- Efficient transfer speed: This system can transfer data at speeds up to 850 kbps (about 106 KB per second), which is relatively efficient.
- Support large file transfer: Fountain codes and zstd compression
are used to support file encoding up to 33MB, which is transmitted through multiple barcode frames and the original file can be restored after decoding.
- Strong fault toleranceReed-Solomon error correction code: Lipcimbar uses, which can be restored and corrected even if part of the barcode data is lost or damaged, ensuring data integrity.
- Cross-platform support: Libcimbar is written in C++ and supports multiple platforms (such as Linux and Android), and can also run in a web browser. This means you can use it on different devices for data transfer.
- Open source project: This project is completely open source, and anyone can download, use and modify the code. It can be compiled and run through common tool libraries such as OpenCV.
Core Technologies of Libcimbar
1. The concept of Cimbar barcode
Cimbar is a 2D barcode consisting of a colored grid that encodes data. Each symbol is uniquely identified by an image hash. By image hashing and color encoding the symbol, a large amount of data can be stored in a single Cimbar image.
2. Coding process
Before encoding into a barcode, the file is first compressed. Libcimbar uses a compression algorithm called Zstandard (zstd) . This algorithm can effectively reduce the size of the file so that more data can be put into the barcode. The role of this step is to reduce the amount of data and improve transmission efficiency.
- Image generation: Data is divided into multiple blocks, each block is encoded by a symbol at a specified position. A typical Cimbar image contains 12,400 color symbol blocks, each symbol represents 6 bits of data, and ultimately each image can transmit approximately 9,300 bytes of data.
- Like a colorful square puzzle: Libcimbar converts data into small colored squares and arranges them in a grid. This grid is similar to a more complex QR code, but each small square contains color information in addition to its position. These colored squares represent binary data (0 and 1) in the computer.
- Animated transmission: These colored squares will be displayed on the screen of the computer or mobile phone in a dynamic way, forming a continuously changing animation.
3. Data Transmission
- Camera capture: The mobile phone camera can capture this ever-changing barcode animation, just like the camera recognizes the QR code when scanning the code for payment. The difference is that Libcimbar transmits more data through continuous multi-frame animation.
- Error correction: During the transmission process, some image blocks may be blurred or not clear, but the system will automatically correct these errors, just like when a puzzle is missing a few pieces, the complete picture can be restored in the end.
4. Decoding process
- Compression and chunking: If you want to transfer a file, Libcimbar will first compress the file and divide it into multiple small parts, each of which is encoded into a set of barcode animation frames. After the camera captures these frames, even if some frames are lost or the order is wrong, the file can be reassembled through a technology called Fountain encoding.
- Reassembling the file: Once the phone's camera captures enough animation frames, the system can reassemble the complete file from the data.
4. Key technologies
- Fountain Coding: Fountain coding allows the original file to be reconstructed even when frames are received in the wrong order or are missing, ensuring the reliability of the decoding process.
- Image correction and drift processing: The decoder corrects the symbol position through local image drift to improve the decoding accuracy.
This technology is particularly suitable for situations where data transmission over a network connection is not allowed, such as transferring files in a secure environment, or quickly exchanging data between devices without the help of the Internet, Bluetooth or other wireless communication methods.
GitHub: https://github.com/sz3/libcimbar
Decoder Android app: https://github.com/sz3/cfc
- Author:KCGOD
- URL:https://kcgod.com/Libcimbar
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts
Google Launches Gemini-Powered Vids App for AI Video Creation
FLUX 1.1 Pro Ultra: Revolutionary AI Image Generator with 4MP Resolution
X-Portrait 2: ByteDance's Revolutionary AI Animation Tool for Cross-Style Expression Transfer
8 Best AI Video Generators Your YouTube Channel Needs
Meta AI’s Orion AR Glasses: Smart AI-Driven Tech to Replace Smartphones