FFV1: Difference between revisions
Jump to navigation
Jump to search
(→Frame) |
No edit summary |
||
Line 3: | Line 3: | ||
The FFV1 video codec is a simple and efficient lossless intra-frame only codec. | The FFV1 video codec is a simple and efficient lossless intra-frame only codec. | ||
Multiple version of the codec are available. ([[User:Lu zero|lu_zero]] Describe only version 2?) | |||
== Bitstream structure == | == Bitstream structure == | ||
Line 38: | Line 40: | ||
=== Frame === | === Frame === | ||
Each frame is composed by a small header and the frame data in slices | Each frame is composed by a small header and the frame data in slices. | ||
Version 0 and 1 use a larger per frame header, version 2 and later store | |||
only the initial 1bit Range Coded keyframe flag. | |||
Depending on the version the slice data provides additional information, | |||
a specific quantization table and a redundancy check. | |||
==== Header ==== | ==== Header ==== | ||
Version 0 and 1 use a large per frame header, version 2 and later store | |||
Version 0 and 1 use | only the initial 1bit Range Coded keyframe flag. | ||
===== | ==== Slice ==== | ||
Version 2 slice has the following structure | |||
== Frame Encoding == | == Frame Encoding == |
Revision as of 05:38, 19 October 2012
- FOURCCs: FFV1
- Technical Description: http://www.ffmpeg.org/~michael/ffv1.html
The FFV1 video codec is a simple and efficient lossless intra-frame only codec.
Multiple version of the codec are available. (lu_zero Describe only version 2?)
Bitstream structure
Global Header
Version 1 does not have a global header, from version 2 the following field compose the global header.
- version
- minor version
- coder type
- state transition table
- colorspace type
- bits per sample
- chroma_planes
- horizontal subsampling
- vertical subsampling
- alpha plane presence
- number of horizontal slices
- number of vertical slices
- quantization tables
- error correction
- cyclic redundancy check
Frame
Each frame is composed by a small header and the frame data in slices. Version 0 and 1 use a larger per frame header, version 2 and later store only the initial 1bit Range Coded keyframe flag. Depending on the version the slice data provides additional information, a specific quantization table and a redundancy check.
Header
Version 0 and 1 use a large per frame header, version 2 and later store only the initial 1bit Range Coded keyframe flag.
Slice
Version 2 slice has the following structure