draft-ietf-cellar-ffv1-v4-07.txt | draft-ietf-cellar-ffv1-v4-08.txt | |||
---|---|---|---|---|
cellar M. Niedermayer | cellar M. Niedermayer | |||
Internet-Draft D. Rice | Internet-Draft D. Rice | |||
Intended status: Standards Track J. Martinez | Intended status: Standards Track J. Martinez | |||
Expires: 12 April 2020 10 October 2019 | Expires: 25 April 2020 23 October 2019 | |||
FFV1 Video Coding Format Version 4 | FFV1 Video Coding Format Version 4 | |||
draft-ietf-cellar-ffv1-v4-07 | draft-ietf-cellar-ffv1-v4-08 | |||
Abstract | Abstract | |||
This document defines FFV1, a lossless intra-frame video encoding | This document defines FFV1, a lossless intra-frame video encoding | |||
format. FFV1 is designed to efficiently compress video data in a | format. FFV1 is designed to efficiently compress video data in a | |||
variety of pixel formats. Compared to uncompressed video, FFV1 | variety of pixel formats. Compared to uncompressed video, FFV1 | |||
offers storage compression, frame fixity, and self-description, which | offers storage compression, frame fixity, and self-description, which | |||
makes FFV1 useful as a preservation or intermediate video format. | makes FFV1 useful as a preservation or intermediate video format. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 34 ¶ | skipping to change at page 1, line 34 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on 12 April 2020. | This Internet-Draft will expire on 25 April 2020. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
skipping to change at page 42, line 37 ¶ | skipping to change at page 42, line 37 ¶ | |||
4.6.2. plane_pixel_height | 4.6.2. plane_pixel_height | |||
"plane_pixel_height[ p ]" is the height in pixels of plane p of the | "plane_pixel_height[ p ]" is the height in pixels of plane p of the | |||
slice. | slice. | |||
"plane_pixel_height[ 0 ]" and "plane_pixel_height[ 1 + ( | "plane_pixel_height[ 0 ]" and "plane_pixel_height[ 1 + ( | |||
chroma_planes ? 2 : 0 ) ]" value is "slice_pixel_height". | chroma_planes ? 2 : 0 ) ]" value is "slice_pixel_height". | |||
If "chroma_planes" is set to 1, "plane_pixel_height[ 1 ]" and | If "chroma_planes" is set to 1, "plane_pixel_height[ 1 ]" and | |||
"plane_pixel_height[ 2 ]" value is "ceil( slice_pixel_height / | "plane_pixel_height[ 2 ]" value is "ceil( slice_pixel_height / (1 << | |||
log2_v_chroma_subsample )". | log2_v_chroma_subsample) )". | |||
4.6.3. slice_pixel_height | 4.6.3. slice_pixel_height | |||
"slice_pixel_height" is the height in pixels of the slice. | "slice_pixel_height" is the height in pixels of the slice. | |||
Its value is "floor( ( slice_y + slice_height ) * slice_pixel_height | Its value is "floor( ( slice_y + slice_height ) * slice_pixel_height | |||
/ num_v_slices ) - slice_pixel_y". | / num_v_slices ) - slice_pixel_y". | |||
4.6.4. slice_pixel_y | 4.6.4. slice_pixel_y | |||
skipping to change at page 45, line 27 ¶ | skipping to change at page 45, line 27 ¶ | |||
Table 19 | Table 19 | |||
4.8.3. slice_crc_parity | 4.8.3. slice_crc_parity | |||
"slice_crc_parity" 32 bits that are chosen so that the slice as a | "slice_crc_parity" 32 bits that are chosen so that the slice as a | |||
whole has a crc remainder of 0. | whole has a crc remainder of 0. | |||
This is equivalent to storing the crc remainder in the 32-bit parity. | This is equivalent to storing the crc remainder in the 32-bit parity. | |||
The CRC generator polynomial used is the standard IEEE CRC polynomial | The CRC generator polynomial used is the standard IEEE CRC polynomial | |||
(0x104C11DB7) with initial value 0. | (0x104C11DB7), with initial value 0, without pre-inversion and | |||
without post-inversion. | ||||
4.9. Quantization Table Set | 4.9. Quantization Table Set | |||
The Quantization Table Sets are stored by storing the number of equal | The Quantization Table Sets are stored by storing the number of equal | |||
entries -1 of the first half of the table (represented as "len - 1" | entries -1 of the first half of the table (represented as "len - 1" | |||
in the pseudo-code below) using the method described in Range Non | in the pseudo-code below) using the method described in Range Non | |||
Binary Values (#range-non-binary-values). The second half doesn't | Binary Values (#range-non-binary-values). The second half doesn't | |||
need to be stored as it is identical to the first with flipped sign. | need to be stored as it is identical to the first with flipped sign. | |||
"scale" and "len_count[ i ][ j ]" are temporary values used for the | "scale" and "len_count[ i ][ j ]" are temporary values used for the | |||
computing of "context_count[ i ]" and are not used outside | computing of "context_count[ i ]" and are not used outside | |||
skipping to change at page 50, line 44 ¶ | skipping to change at page 50, line 44 ¶ | |||
10. Changelog | 10. Changelog | |||
See https://github.com/FFmpeg/FFV1/commits/master | See https://github.com/FFmpeg/FFV1/commits/master | |||
(https://github.com/FFmpeg/FFV1/commits/master) | (https://github.com/FFmpeg/FFV1/commits/master) | |||
11. Normative References | 11. Normative References | |||
[I-D.ietf-cellar-ffv1] | [I-D.ietf-cellar-ffv1] | |||
Niedermayer, M., Rice, D., and J. Martinez, "FFV1 Video | Niedermayer, M., Rice, D., and J. Martinez, "FFV1 Video | |||
Coding Format Version 0, 1, and 3", Internet-Draft, draft- | Coding Format Version 0, 1, and 3", Work in Progress, | |||
ietf-cellar-ffv1-09, 6 September 2019, | Internet-Draft, draft-ietf-cellar-ffv1-09, 6 September | |||
2019, | ||||
<https://tools.ietf.org/html/draft-ietf-cellar-ffv1-09>. | <https://tools.ietf.org/html/draft-ietf-cellar-ffv1-09>. | |||
[ISO.15444-1.2016] | [ISO.15444-1.2016] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Information technology -- JPEG 2000 image coding system: | "Information technology -- JPEG 2000 image coding system: | |||
Core coding system", October 2016. | Core coding system", October 2016. | |||
[ISO.9899.1990] | [ISO.9899.1990] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Programming languages - C", 1990. | "Programming languages - C", 1990. | |||
skipping to change at page 52, line 15 ¶ | skipping to change at page 52, line 15 ¶ | |||
[ISO.14496-10.2014] | [ISO.14496-10.2014] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Information technology -- Coding of audio-visual objects | "Information technology -- Coding of audio-visual objects | |||
-- Part 10: Advanced Video Coding", September 2014. | -- Part 10: Advanced Video Coding", September 2014. | |||
[ISO.14496-12.2015] | [ISO.14496-12.2015] | |||
International Organization for Standardization, | International Organization for Standardization, | |||
"Information technology -- Coding of audio-visual objects | "Information technology -- Coding of audio-visual objects | |||
-- Part 12: ISO base media file format", December 2015. | -- Part 12: ISO base media file format", December 2015. | |||
[Matroska] IETF, "Matroska", 2016, | [Matroska] IETF, "Matroska", 2016, <https://datatracker.ietf.org/doc/ | |||
<https://datatracker.ietf.org/doc/draft-lhomme-cellar- | draft-lhomme-cellar-matroska/>. | |||
matroska/>. | ||||
[NUT] Niedermayer, M., "NUT Open Container Format", December | [NUT] Niedermayer, M., "NUT Open Container Format", December | |||
2013, <https://ffmpeg.org/~michael/nut.txt>. | 2013, <https://ffmpeg.org/~michael/nut.txt>. | |||
[range-coding] | [range-coding] | |||
Nigel, G. and N. Martin, "Range encoding: an algorithm for | Nigel, G. and N. Martin, "Range encoding: an algorithm for | |||
removing redundancy from a digitised message.", July 1979. | removing redundancy from a digitised message.", July 1979. | |||
[REFIMPL] Niedermayer, M., "The reference FFV1 implementation / the | [REFIMPL] Niedermayer, M., "The reference FFV1 implementation / the | |||
FFV1 codec in FFmpeg", undated, <https://ffmpeg.org>. | FFV1 codec in FFmpeg", undated, <https://ffmpeg.org>. | |||
End of changes. 7 change blocks. | ||||
11 lines changed or deleted | 12 lines changed or added | |||
This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |