This is the official implementation of HoloQRam: Efficient Real-Time Spatial Video Delivery via Animated QR Codes.
Jaewon Choi and JeongGil Ko
HoloQRam enables real-time, infrastructure-free spatial video delivery using animated QR codes on commodity displays with mobile RGB-D reconstruction. The system transmits lightweight 128x128 RGB video streams encoded as sequential QR symbols on standard displays, uses a Genetic Algorithm (GA)-based image filtering pipeline to improve decoding robustness under motion blur, reflections, and lighting variability, and employs a hybrid Transformer-CNN model that jointly performs 4x super-resolution and depth estimation on the receiver side. HoloQRam achieves up to 70% higher decoding success rates than baselines under adverse conditions, real-time throughput >30 fps, and 30.8 dB PSNR reconstruction quality, enabling spontaneous one-to-many spatial video broadcasting without dedicated infrastructure.
This repository contains the receiver-side reconstruction pipeline (Stage 2), including:
- Dataset preparation: C++ point cloud renderer generating multi-view RGB-D training pairs from the 8iVFB dataset
- Model training: Hybrid Transformer-CNN for joint 4x super-resolution (128x128 → 512x512) and monocular depth estimation
- Evaluation: Quantitative assessment of SR and depth reconstruction quality
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
pkg-config \
libgl1-mesa-dev \
libegl1-mesa-dev \
libgles2-mesa-dev \
libturbojpeg0-dev \
libglm-dev| Package | Description |
|---|---|
build-essential |
GCC, G++, make |
cmake |
Build system (>= 3.16) |
pkg-config |
Package configuration tool |
libgl1-mesa-dev |
OpenGL development libraries |
libegl1-mesa-dev |
EGL development libraries |
libgles2-mesa-dev |
OpenGL ES development libraries |
libturbojpeg0-dev |
libjpeg-turbo for fast JPEG encoding |
libglm-dev |
OpenGL Mathematics library (header-only) |
pip install -r scripts/requirements.txtRequires Python 3.8+ and CUDA-compatible PyTorch.
cd scripts/prepare_dataset_cpp
mkdir -p build && cd build
cmake ..
make -j$(nproc)The executable will be at build/prepare_dataset.
scripts/
├── prepare_dataset_cpp/ # C++ point cloud renderer
│ ├── src/ # Source files
│ ├── include/ # Header files
│ └── CMakeLists.txt
├── train.py # Training script
├── evaluate.py # Evaluation script
├── prepare_dataset.py # Python dataset preparation
└── requirements.txt # Python dependencies