Skip to content

Commit 66ad1ea

Browse files
committed
Merge branch 'dev_refactor' into main
2 parents 6d7c4b3 + 93702be commit 66ad1ea

File tree

171 files changed

+22435
-714
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+22435
-714
lines changed

.gitignore

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,4 +149,14 @@ examples/benchmarks/stg/old
149149

150150
# examples/benchmarks/mpeg
151151

152-
*.zip
152+
*.zip
153+
154+
examples/helper/src/
155+
!examples/helper/src/HM-18.0/bin
156+
157+
logs/
158+
159+
AGENTS.md
160+
*.pdf
161+
*.tex
162+
.cursor

.gitmodules

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
[submodule "gsplat/cuda/csrc/third_party/glm"]
22
path = gsplat/cuda/csrc/third_party/glm
33
url = https://github.com/g-truc/glm.git
4+
[submodule "third_party/mpeg-gsc-tools"]
5+
path = third_party/mpeg-gsc-tools
6+
url = https://git.mpeg.expert/MPEG/Explorations/GSC/gsc-software/mpeg-gsc-tools.git
7+
[submodule "third_party/mpeg-3d-renderer"]
8+
path = third_party/mpeg-3d-renderer
9+
url = https://git.mpeg.expert/MPEG/Explorations/GSC/gsc-software/mpeg-3d-renderer.git
10+
[submodule "third_party/mpeg-gsc-metrics"]
11+
path = third_party/mpeg-gsc-metrics
12+
url = https://git.mpeg.expert/MPEG/Explorations/GSC/gsc-software/mpeg-gsc-metrics.git

README.md

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,19 @@ GSCodec Studio is an open-source framework for Gaussian Splats Compression, incl
99

1010
## Installation
1111
### Repo. & Environment
12+
Please first clone the repository and cd to the root directory.
1213
```bash
13-
# Clone the repo.
14-
git clone https://github.com/JasonLSC/GSCodec_Studio.git --recursive
14+
git clone --recursive https://git.mpeg.expert/MPEG/Explorations/GSC/gsc-software/gscodec_studio.git
1515
cd GSCodec_Studio
16+
```
1617

18+
If you are interested in MPEG GSC Video Anchor, please check out related repository:
19+
```bash
20+
git checkout MPEG152_video_anchor_1f_vid
21+
```
22+
23+
Set up conda environment.
24+
```bash
1725
# Make a conda environment
1826
conda create --name gscodec_studio python=3.10
1927
conda activate gscodec_studio
@@ -47,7 +55,7 @@ python datasets/download_dataset.py
4755
You can download the Tanks and Temples dataset and Deep Blending dataset used in original 3DGS via [this link](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/input/tandt_db.zip) and place these datasets under 'data' folder.
4856
```bash
4957
# place other dataset, e.g Tanks and Temples dataset, under 'data' folder
50-
ln -s data/tandt /xxxx/Dataset/tandt
58+
ln -s /xxxx/Dataset/tandt data/tandt
5159
```
5260

5361
We also use third-party library, 'python-fpnge', to accelerate image saving operations during the experiment for now. We also use third-party library, 'gridencoder', to facilitate hash encoding.
@@ -58,12 +66,17 @@ pip install third_party/python-fpnge-master
5866
pip install third_party/gridencoder
5967
```
6068

61-
Before we start running scripts, we also need to install library for [vector quantization](https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install) and [plas sorting](https://github.com/fraunhoferhhi/PLAS).
69+
If you are interested in post-training compression, you also need to install library for [vector quantization](https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install) and [plas sorting](https://github.com/fraunhoferhhi/PLAS), before running scripts.
6270
```bash
6371
# refer to https://github.com/DeMoriarty/TorchPQ?tab=readme-ov-file#install to see how to install TorchPQ
72+
73+
# install original implementation of PLAS
6474
pip install git+https://github.com/fraunhoferhhi/PLAS.git
6575
```
6676

77+
### MPEG GSC Activities
78+
If you are interested in MPEG GSC activities, you can find related descriptions in [this file](scripts/README.md). This covers how to run Video-based anchor, how to perform pre and post-processing of Gaussian Splats, and how to conduct Quality Assessment after completing compression experiments.
79+
6780
### Static Gaussian Splats Training and Compression
6881

6982
We provide a script that enables more memory-efficient Gaussian splats while maintaining high visual quality, such as representing the Truck scene with only about 8MB of storage. The script includes 1) the static splats training with compression simulation, 2) the compression of trained static splats, and 3) the metric evaluation of uncompressed and compressed static splats.
@@ -100,31 +113,13 @@ cd examples
100113
bash benchmarks/load_ply_and_render.sh
101114
```
102115

103-
### Compress Tracked Gaussian Splats Sequences via Video Codec
104-
105-
If you're interested in MPEG Gaussian Splats Coding, we have implemented a simple coding method for compressing temporally tracked Gaussian Splats using Video Codec as the core component. You can try this method using the script below.
106-
```bash
107-
cd examples
108-
bash benchmarks/mpeg/video_anchor_bench.sh
109-
```
110-
111-
To compare with the Point Cloud Compression-based approach in MPEG Gaussian Splats Coding group, we have developed a simple wrapper based on their software. This allows us to evaluate both methods using the same evaluation protocol. You can try the Point Cloud Compression-based approach using the script below.
112-
```bash
113-
cd examples
114-
bash benchmarks/mpeg/pcc_anchor_bench.sh
115-
```
116-
117-
**Note**:
118-
Before using the scripts mentioned above, please note the following:
119-
1. Please modify the input parameters ``--ply_dir``, ``--data_dir``, and ``--result_dir`` in the script to match your local paths.
120-
2. These experiments involve third-party programs, including point cloud codec and QMIV (quality evaluation software). If you need newer versions, you can compile them yourself and replace the current executables under ``examples/helper``.
121-
122116
## Contributors
123117

124118
This project is developed by the following contributors:
125119

126120
- Sicheng Li: [email protected]
127121
- Chengzhen Wu: [email protected]
122+
- Zhiwei Zhu: [email protected]
128123

129124
If you have any questions about this project, please feel free to contact us.
130125

assets/video_anchor_pipeline.png

467 KB
Loading

cfg_sys/__init__.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""Configuration system utilities for GSCodec Studio.
2+
3+
This package centralizes helpers that manage experiment configurations,
4+
allowing multiple entry points to share a consistent set of behaviors for
5+
parsing overrides, instantiating modules, and recording snapshots.
6+
"""
7+
8+
from .config_manager import (
9+
CONFIG_FILE_FLAGS,
10+
CONFIG_SAVE_FLAGS,
11+
DEFAULT_CONFIG_SNAPSHOT,
12+
apply_updates,
13+
build_from_registry,
14+
coerce_value,
15+
load_config_updates,
16+
pop_flag_value,
17+
prepare_presets,
18+
save_config_snapshot,
19+
serialize_config_value,
20+
synchronize_compression_config,
21+
)
22+
23+
__all__ = [
24+
"CONFIG_FILE_FLAGS",
25+
"CONFIG_SAVE_FLAGS",
26+
"DEFAULT_CONFIG_SNAPSHOT",
27+
"apply_updates",
28+
"build_from_registry",
29+
"coerce_value",
30+
"load_config_updates",
31+
"pop_flag_value",
32+
"prepare_presets",
33+
"save_config_snapshot",
34+
"serialize_config_value",
35+
"synchronize_compression_config",
36+
]

0 commit comments

Comments
 (0)