dirac_bitstream.txt
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
- Dirac Bitstream Format
- by Anuradha Suraparaju (anuradha@rd.bbc.co.uk)
- v0.1: 18-Aug-2004
- [ This document is a temporary document. It will be replaced by full-fledged
- bitstream syntax and decoding process document in alpha release 0.5.0 ]
- 1. Introduction
- A Dirac bitstream is made of up of a sequence of one or more frames. Each
- frame is either intra or inter-coded. Intra frames are compressed without
- references to any other frame. Inter frames are motion compensated with
- respect to one or more reference frames.
-
- 2. Sequence structure
- The start of a sequence is the only random access point in this version of
- the Dirac bitstream. A random access point is from where a decoder can
- start decoding the bitstream without prior information.
- 2.1 Start codes
- Start codes are unique bit patterns that do not otherwise occur in the
- bitstream. They identify specific points in the bitstream e.g. start of
- frame, start of sequence, etc. A start code is made up of a 4 byte
- start code prefix and a one byte code. The start code prefix is
- 0x42 0x42 0x43 0x44 (BBCD)
- Due to the nature of the arithmetic coded output, the first four bytes can
- be output as part of the component data and therefore an additional code is
- required to indicate that a header does not follow. The different start
- codes are
- Code Description
- 0xD7 Start of Sequence
- 0xD6 Start of an I Frame
- 0xD5 Start of an L2 Frame
- 0xD4 Start of an L1 Frame
- 0xD0 End of Sequence
- 0xFF Not a header code treat code prefix and next byte as
- data
- 2.2 Sequence data
- A sequence commences with a start of sequence code followed by
- the sequence header which is followed by one or more coded frames.
- The order of the coded frames in the coded bistream is in the order
- in which the the decoder processes them but not in the display
- order. The sequence is terminated by a sequence end code.
- TODO: list sequence header fields
- 2.3. Frame structure
- Each frame commences with a start of frame code (I or L1 or L2 depending
- on the type of frame) and is followed by a frame header. A frame can be
- either an intra frame (I frame) or inter frame. There are two types of
- inter-coded frames: Level 1 (L1) frames which are also used as temporal
- references for other pictures and Level 2 (L2) pictures which are
- bi-directionally predicted and are not used as temporal references. The
- frame header is followed by motion vector data (for L1 and L2 frames only)
- and component data.
- TODO: list frame header fields and frame data format
- 3. Bitstream syntax
- Field Value
- stream-id 8 byte identfier set to KW-DIRAC
- sequence start code 0x42424344D7
- sequence header Golomb coded sequence header
- frame start code 0x42424344D6 (I) or 0x42424344D5(L2) or
- 0x42424344D5 (L1)
- frame header Golomb coded frame header
- frame data Arithmetic coder output
- .
- .
- .
- sequence end code 0x42424344D0