Giter Site home page Giter Site logo

supragya / visionvault Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 2.0 63.28 MB

Raw video stream encoding and processing suite for open source hardware camera https://apertus.org/axiom-beta. Part of Google Summer of Code 2018.

License: GNU General Public License v2.0

C++ 0.56% C 6.73% CMake 0.01% Shell 0.03% Makefile 0.05% HTML 30.62% C# 0.02% Perl 6 0.01% Objective-C 0.04% Perl 61.86% CSS 0.02% PostScript 0.06%
apertus camera mlv video-file-formats

visionvault's Introduction

Raw Video Container Format - GSoC 2018

This repository hosts a working proof of concept for proposed MLV file containerising systems for the AXIOM Beta's RAW12 frames.

For a wholesome analysis of this GSoC work, please visit gsoc.supragyaraj.com

GSoC project: https://summerofcode.withgoogle.com/projects/#4617058810068992

What does the code do?

The source code compiles a few binaries and runs them to emulate the usage scenario of the camera. The following are some important modules:

  1. Generator: This compiles two files - rawinfo and rawdata that models the two streams coming out of the camera - rawdata being the high speed video frame transport and rawinfo being low speed meta transport.
  2. Stream Handler: This application models the primary interface code for the recording unit. Uses two threads to store two streams on disk as fast as it can. Highly I/O based application with very little processing involved.
  3. Joiner: Joins the high speed output (video frames) and low speed output (metadata) into one MLV file. Uses cat internally to join. However, there are a few considerations on whether this module may really be needed. See gsoc.supragyaraj.com for more details.
  4. MLV_dump / MLVFS: Final "publisher" system (3rd party) which is used to convert mlv files into corresponding DNG files.

1, 2 and 3 model the cam2mlv portion of the system while 4 is solely responsible for mlv2dng conversion.

A few changes to mlv2dng are proposed for

  • Removing the Joiner altogether
  • Allowing PLR data to be used for linearization table calculations while mlv2dng conversion.

The information regarding the above proposals are given at: gsoc.supragyaraj.com

Getting the code and setting up

For getting started with this codebase, consider checking out: gsoc.supragyaraj.com for all the analysis and the ideology behind the code seen in this repository.

  1. Get the code using git clone github.com/supragya/AXIOM_RawStreamHandler
  2. cd AXIOM_RawStreamHandler after this should put you in the project directory.
  3. Make sure you have all the dependencies by running ./scripts/get_dependencies_apt.sh (for debian based linux distributions).
  4. Build the system using ./scripts/build_all.sh
  5. Run the emulation using ./scripts/run_emulation.sh
  6. DNG exports should now be available in processed_data folder.
  7. Clean the project directory using ./scripts/clean_project.sh

Note: You can check your current dependencies version with ./scripts/check_verions.sh

Get in touch

Freenode IRC #apertus

visionvault's People

Contributors

supragya avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.