Skip to content

An Intelligent video compression framework utilizing neural networks

License

Notifications You must be signed in to change notification settings

jomanovic/deepzipper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An intelligent video compression framework utilizing neural nets

DescriptionPipelineHow it worksRequiredResultsLicense

Description

What's in a frame? In 450 B.C. the ancient Greek philosopher Zeno contemplated the nature of time and its infinite divisibility, is motion any different he wondered? Like motion, videos persist through time meaning that ontop of the regular 3 dimensions necessary to describe any image i.e. (HEIGHT, WIDTH, CHANNELS), videos require an additional 4th dimension i.e. (TIME, HEIGHT, WIDTH, CHANNELS). The aim of deepzipper is to leverage redundency in color, spatial and temporal information in order to effectively reduce (compress) video data to it's utmost limit while at the same time preserving image definition.

Video compression consists of two sub-tasks:

Pipeline

How does it work

The model works as follows:

  • Compression:

    • Decompose a video into a series of frames FFmpeg
    • Convert RGB image into YUV image
    • Remove UV channels (compression by factor of 3)
    • Encode m consecutive images (n = 3) with Frame interpolation model.encoder (compression by a factor of 8)
  • Decompression:

    • Decode sequence of encoded images with Frame interpolation model.decoder (decompression by a factor of 8)
    • Colorize images with Colorization model (decompression by a factor of 3)
    • Compose series of frames into a video FFmpeg

Frame interpolation

There are two different methods of frame interpolation implemented in FrameInterp.py:

  • Reconstruction which attemps to construct the original image from scratch

The first models of this type which I've experimented with is the Convolutional LSTM. The basic idea is to transfer hidden states both forward and backwerd (in time) in order to inform compression and decompression.

  • Residual which attemps to refine the scaled encoded image to achieve decompression

Colorization

  • Colorization models are implemented in both ConvNet_Rec.py and ConvNet_Res.py.

Prerequisites

Results:

Here are some of the outputs obtained by using the models mentioned above:

Mickey Mouse "Orphans Benefit" 1941

License

MIT

About

An Intelligent video compression framework utilizing neural networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages