{"id":51440506,"url":"https://github.com/moesay/hyperisp","last_synced_at":"2026-07-05T11:01:25.429Z","repository":{"id":364190332,"uuid":"1266793461","full_name":"moesay/HyperISP","owner":"moesay","description":"A GPU-accelerated ISP succeeding the fast-openISP, which is a successor to the openISP","archived":false,"fork":false,"pushed_at":"2026-06-20T17:25:00.000Z","size":1325,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-20T19:13:11.640Z","etag":null,"topics":["image-processing","image-quality","image-signal-processing","isp"],"latest_commit_sha":null,"homepage":"","language":"Cuda","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moesay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-12T00:43:19.000Z","updated_at":"2026-06-20T17:25:04.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/moesay/HyperISP","commit_stats":null,"previous_names":["moesay/hyperisp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/moesay/HyperISP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moesay%2FHyperISP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moesay%2FHyperISP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moesay%2FHyperISP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moesay%2FHyperISP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moesay","download_url":"https://codeload.github.com/moesay/HyperISP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moesay%2FHyperISP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35151638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-05T02:00:06.290Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["image-processing","image-quality","image-signal-processing","isp"],"created_at":"2026-07-05T11:01:24.532Z","updated_at":"2026-07-05T11:01:25.412Z","avatar_url":"https://github.com/moesay.png","language":"Cuda","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/moesay/hyperISP/\"\u003e\n    \u003cimg src=\"assets/logo.png\" alt=\"HyperISP\" width=\"600\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A GPU-accelerated re-implementation of \u003ca href=\"https://github.com/QiuJueqin/fast-openISP\"\u003efast-openISP\u003c/a\u003e,\n  aiming to push an image signal processing pipeline onto the GPU for real-time throughput.\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/moesay/hyperISP/issues/new\"\u003eReport bug\u003c/a\u003e\n  ·\n  \u003ca href=\"https://github.com/moesay/hyperISP/issues/new\"\u003eRequest feature\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n      \u003ca href=\"https://github.com/moesay/hyperISP/blob/main/LICENSE\" alt=\"License\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/moesay/hyperISP\" /\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/moesay/hyperISP/\" alt=\"Status\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Status-WIP-f10\" /\u003e\u003c/a\u003e\n      \u003ca href=\"https://github.com/moesay/hyperISP/\" alt=\"Dev Status\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Developing-Active-green\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Table of contents\n\n- [Why?](#why)\n- [Overview](#overview)\n  - [Pipeline](#pipeline)\n- [Performance](#performance)\n- [Quick start](#quick-start)\n- [Configuration](#configuration)\n- [Contributing](#contributing)\n- [Copyright and license](#copyright-and-license)\n\n## Why?\n\n[openISP](https://github.com/cruxopen/openISP) is a Python reference implementation of a classic\nimage signal processing pipeline. [fast-openISP](https://github.com/QiuJueqin/fast-openISP) is its\nsuccessor: a drop-in, NumPy-vectorized rewrite that gets the same pipeline running **over 300x\nfaster** on the CPU.\n\nHyperISP picks up where fast-openISP leaves off. The pipeline stages are inherently\ndata-parallel. Each one maps a function over every pixel of a frame, which makes them a natural\nfit for the GPU. By re-implementing the pipeline in C++/CUDA, HyperISP aims to take the same\nalgorithms several steps further: from \"fast enough to batch-process on a CPU\" to \"fast enough\nfor real-time, frame-by-frame processing\".\n\n## Overview\n\nHyperISP is written in modern C++/CUDA. Each pipeline stage is an independent `IspBlock` that\noperates on shared `PipelineData` (Bayer, demosaiced RGB, and YCbCr frame buffers), launched on a\nCUDA stream. Per-camera tuning is read from a TOML config file (see [`configs/`](configs)), which\nalso controls which blocks are enabled.\n\n### Pipeline\n\nMirroring the fast-openISP pipeline, the following stages are planned:\n\n- [x] **DPC** — Dead Pixel Correction\n- [x] **BLC** — Black Level Compensation\n- [x] **AAF** — Anti-aliasing Filter\n- [x] **AWB** — Auto White Balance\n- [x] **CFA** — Color Filter Array Demosaicing\n- [x] **CNF** — Chroma Noise Filtering\n- [x] **CCM** — Color Correction Matrix\n- [x] **GAC** — Gamma Correction\n- [x] **CSC** — Color Space Conversion\n- [x] **NLM** — Non-Local Means Denoising\n- [x] **BNF** — Bilateral Noise Filtering\n- [ ] **CEH** — Contrast Enhancement\n- [ ] **EEH** — Edge Enhancement\n- [ ] **FCS** — False Color Suppression\n- [ ] **HSC** — Hue \u0026 Saturation Control\n- [ ] **BCC** — Brightness \u0026 Contrast Control\n- [ ] **SCL** — Scaling\n\n## Performance\n\nRunning times for each stage on a 1920x1080, 12-bit RGGB frame, compared against fast-openISP:\n\n| Block| fast-openISP | HyperISP | Speedup |\n|:------:|:-------------------:|:----------------:|:-------:|\n| DPC    | 0.29 s                    | 1.9 ms                  | 152.6x         |\n| BLC    | 0.02 s                    | 0.02 ms                 | 1000x         |\n| AAF    | 0.08 s                    | 0.9 ms                  | 88.8x         |\n| AWB    | 0.02 s                    | 0.03 ms                  | 666.7x         |\n| CFA    | 0.20 s                    | 0.94 ms                  | 212.7x         |\n| CNF    | 0.25 s                    | 0.7 ms                  | 357.1x         |\n| CCM    | 0.06 s                    | 0.7 ms                  | 85.7x         |\n| GAC    | 0.07 s                    | 0.4 ms                  | 175x         |\n| CSC    | 0.06 s                    | 0.8 ms                  | 75x          |\n| NLM    | 5.37 s                    | 24.8 ms                  | 216.5x         |\n| BNF    | 0.75 s                    | 1.6 ms                  | 469x         |\n| CEH    | 0.14 s                    |[x]                  |         |\n| EEH    | 0.24 s                    |[x]                  |         |\n| FCS    | 0.08 s                    |[x]                  |         |\n| HSC    | 0.07 s                    |[x]                  |         |\n| BCC    | 0.03 s                    |[x]                  |         |\n| **End-to-end** | 7.82 s             |[x]                  |         |\n\n## Quick start\n\n**Requirements:**\n- CMake 3.20 or higher\n- CUDA Toolkit (nvcc 13.3 is preferable) with a C++23-capable host compiler\n- Git (for fetching the `tomlplusplus` dependency)\n\n```bash\n# Clone the repository\ngit clone https://github.com/moesay/hyperISP.git\ncd hyperISP\n\n# Configure and build\ncmake -S . -B build\n# If CMake have some problems with C++23, manually pass the standard flags\ncmake -S . -B build -DCMAKE_CUDA_COMPILER=\u003ccuda_path\u003e/cuda-13.3/bin/nvcc -DCMAKE_CXX_STANDARD=23\n\ncmake --build build\n```\n\nAfter building `libhyperisp.a`, you can build the example\n```bash\n# Configure and build the example/s\ncmake -S examples/ -B examples/build -DCMAKE_CUDA_COMPILER=\u003ccuda_path\u003e/cuda-13.3/bin/nvcc -DCMAKE_CXX_STANDARD=23\ncmake --build examples/build/\n./examples/build/hyperisp_example -c configs/nikon_d3200.toml -r test_raws/test.raw\n```\n\n## Configuration\n\nEach camera/sensor has its own TOML config under [`configs/`](configs), describing the sensor\nlayout (resolution, bit depth, Bayer pattern) and the tunable parameters for every pipeline stage,\nplus a per-block enable/disable switch.\n\n## Contributing\n\nContributions are welcome — feel free to fork the repo, open issues, and submit pull requests for\nnew pipeline blocks, optimizations, or fixes.\n\nBefore opening a PR, please format any C++/CUDA changes with the `.clang-format` config provided\nat the project root (4-space indentation, no tabs):\n\n```bash\nclang-format -i \u003cchanged files\u003e\n```\n\nand make sure the project still builds with `cmake --build build`.\n\n## Copyright and license\n\nHyperISP is licensed under the **GNU General Public License v3.0 (GPL-3.0)**.\n\nFor the complete license text, see the [LICENSE](LICENSE) file in the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoesay%2Fhyperisp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoesay%2Fhyperisp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoesay%2Fhyperisp/lists"}