dirac_bitstream.txt
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. Dirac Bitstream Format
  2. by Anuradha Suraparaju (anuradha@rd.bbc.co.uk)
  3. v0.1: 18-Aug-2004
  4. [ This document is a temporary document. It will be replaced by full-fledged
  5.   bitstream syntax and decoding process document in alpha release 0.5.0 ]
  6. 1. Introduction
  7.    A Dirac bitstream is made of up of a sequence of one or more frames. Each
  8.    frame is either intra or inter-coded. Intra frames are compressed without
  9.    references to any other frame. Inter frames are motion compensated with
  10.    respect to one or more reference frames. 
  11.   
  12. 2. Sequence structure
  13.    The start of a sequence is the only random access point in this version of
  14.    the Dirac bitstream. A random access point is from where a decoder can 
  15.    start decoding the bitstream without prior information.
  16. 2.1 Start codes
  17.    Start codes are unique bit patterns that do not otherwise occur in the
  18.    bitstream. They identify specific points in the bitstream e.g. start of
  19.    frame, start of sequence, etc. A start code is made up of a 4 byte
  20.    start code prefix and a one byte code. The start code prefix is
  21.    0x42 0x42 0x43 0x44 (BBCD)
  22.    Due to the nature of the arithmetic coded output, the first four bytes can
  23.    be output as part of the component data and therefore an additional code is
  24.    required to indicate that a header does not follow. The different start 
  25.    codes are
  26.    Code                  Description
  27.    0xD7                  Start of Sequence
  28.    0xD6                  Start of an I Frame
  29.    0xD5                  Start of an L2 Frame
  30.    0xD4                  Start of an L1 Frame
  31.    0xD0                  End of Sequence
  32.    0xFF                  Not a header code treat code prefix and next byte as
  33.                          data
  34. 2.2 Sequence data
  35.    A sequence commences with a start of sequence code followed by 
  36.    the sequence header which is followed by one or more coded frames. 
  37.    The order of the coded frames in the coded bistream is in the order 
  38.    in which the the decoder processes them but not in the display
  39.    order. The sequence is terminated by a sequence end code.
  40.    TODO: list sequence header fields
  41. 2.3. Frame structure
  42.    Each frame commences with a start of frame code (I or L1 or L2 depending
  43.    on the type of frame) and is followed by a frame header. A frame can be 
  44.    either an intra frame (I frame) or inter frame. There are two types of 
  45.    inter-coded frames: Level 1 (L1) frames which are also used as temporal 
  46.    references for other pictures and Level 2 (L2) pictures which are 
  47.    bi-directionally predicted and are not used as temporal references. The 
  48.    frame header is followed by motion vector data (for L1 and L2 frames only) 
  49.    and component data.
  50.    TODO: list frame header fields and frame data format
  51. 3. Bitstream syntax
  52.    Field                 Value
  53.    stream-id             8 byte identfier set to KW-DIRAC
  54.    sequence start code   0x42424344D7
  55.    sequence header       Golomb coded sequence header 
  56.    frame start code      0x42424344D6 (I) or 0x42424344D5(L2) or
  57.                          0x42424344D5 (L1)
  58.    frame header          Golomb coded frame header
  59.    frame data            Arithmetic coder output
  60.    .
  61.    .                     
  62.    .
  63.    sequence end code    0x42424344D0