OggRGB: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
 
(5 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{historical}}
{{draft}}
== What is it ==
== What is it ==


'''OggRGB''' is an uncompressed RGB (Red-Green-Blue) video codec for Ogg.  It's a simple way to store and transfer uncompressed RGB video within an Ogg container.
'''OggRGB''' is an uncompressed RGB (Red-Green-Blue) video codec for Ogg.  It's a simple way to transfer raw, uncompressed RGB video within an Ogg container.
 


== Why is it ==
== Why is it ==
Line 24: Line 25:
   8  [variable] Green channel bpp, typically 5, 6, or 8
   8  [variable] Green channel bpp, typically 5, 6, or 8
   8  [variable] Blue channel bpp, typically 5 or 8
   8  [variable] Blue channel bpp, typically 5 or 8
  16  [variable] Gamma Correction (ie, 1/2.2) * 4096
  24 [variable] Frame Width
16 [variable] Frame Width
  24 [variable] Frame Height
  16 [variable] Frame Height
  32  [variable] Framerate Numerator
  32  [variable] Framerate Numerator
  32  [variable] Framerate Denominator
  32  [variable] Framerate Denominator

Latest revision as of 11:21, 10 November 2007


What is it

OggRGB is an uncompressed RGB (Red-Green-Blue) video codec for Ogg. It's a simple way to transfer raw, uncompressed RGB video within an Ogg container.

Why is it

The purpose of OggRGB is as a raw video interchange format within OggStream and other media frameworks. The format design is to be simple, complete, and efficient enough to be reasonably used to export decoded video to a media player for display.

Due to the size of uncompressed video, a compressed lossless video codec should be used for storage, such as would be prefered for video recording, editing, or archiving.


Format

Packets are processed as per the value of their first byte. Packets of unknown ID should be silently ignored, providing a convient way to add future expandability which does not break the data format. Additional data in packet 0 (the header packet) must also be silently ignored.

Packet 0, BOS, 24 bytes
 8  0x00       Header Packet ID
24  "RGB"      Codec identifier 
 8  0x01       Version Major (breaks backwards compatability to increment)
 8  0x00       Version Minor (backwards compatable, ie, via extended header)
 8  [variable] Alpha channel bpp, typically 0 or 8
 8  [variable] Red channel bpp, typically 5 or 8
 8  [variable] Green channel bpp, typically 5, 6, or 8
 8  [variable] Blue channel bpp, typically 5 or 8
24  [variable] Frame Width
24  [variable] Frame Height
32  [variable] Framerate Numerator
32  [variable] Framerate Denominator
Data Packet
 8  0xFF       Data Packet ID
24  "RGB"      Codec identifier, pads data to 32-bits
..  [data]     variable length packed [a]rgb frame