Talk:OggYUV: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
Line 32: Line 32:


=== Chroma Subsampling Methods ===
=== Chroma Subsampling Methods ===
# There are less than 32 possible methods for chroma subsampling within a 4x2 block, it'd be fairly simple to simply put these into a table and refer to them by index# <br>--[[User:Arc|Arc]] 19:36, 9 Nov 2005 (PST)
* We need to know two things, what the size/shape of chroma pixels are, and if they are packed, what order they are provided in the bitstream.
#* This method seems a bit.. non-optimal, and also doesn't define how those samples are mapped to neighboring pixels.<br>--[[User:Arc|Arc]] 19:36, 9 Nov 2005 (PST)
** This seperates the order of the data and the processing of the data, both of which are important but get very complicated if mixed
# U and V can be defined seperatly, with more patterns specifiedThese patterns are listed below. --[[User:Arc|Arc]] 19:36, 9 Nov 2005 (PST)
** The order must match the shape it's based on, ie, 4:4:4 should be in "0:0" order, any other value (which is illegal) should not be supported by any software if encountered and should never be generated.
 
Chroma Pixel "Shapes"
=====================
ID  Shape  Used-In
  0  #---  4:4:4
    ----
    ----
    ----
  .
  1  ##--  4:2:2
    ----
    ----
    ----
  .
  2  ####  4:1:1
    ----
    ----
    ----
  .
  3  #---  ?
    #---
    ----
    ----
  .
  4  ##--   4:2:0
    ##--
    ----
    ----
  .
  5 ####  4:1:0
    ####
    ----
    ----
  .
  6  ####  ?
    ####
    ####
    ####
  .
  7  Extended Shape, unsupported in v1.0

Revision as of 21:30, 9 November 2005

Interlace Flag?

  • The interlacing information doesn't seem complete to me. How do you know which field(s) you have in any give packet, for example? How do you distinguish between a 25Hz shutter and a 50Hz shutter? Field order switching? Mixing with uninterlaced data?

--Gumboot 03:00, 9 Nov 2005 (PST)

  • In my experience, all interlace is every other frame, even scanlines followed by odd scanlines. Is there any video codec which supports more than an interlace flag?

--Arc 10:42, 9 Nov 2005 (PST)


Variable frame-rates

  • There doesn't seem to be any handling of variable frame-rate data, or a specification for a timebase for the granulepos.

--Gumboot 03:00, 9 Nov 2005 (PST)

  • Granulepos is the last frame decodable in the current packet/page. As far as variable framerates within a single stream, is there any codec which supports this currently?

--Arc 10:42, 9 Nov 2005 (PST)


Codec Identifier

  • The identifier seems a little short. You'd get false positives if somebody wanted to use a "YUVx" format, for example.

--Gumboot 03:00, 9 Nov 2005 (PST)

  • I believe that's OK with raw formats, if someone wanted to use a YUV-like codec they could use a prefix, vs a suffix, to identify it by. Also, if their header packet ID is something other than 0x00, it will not generate a false positive to have a YUV* codec identifier since the YUV plugins only support streams which begin with packet id 0.

--Arc 10:42, 9 Nov 2005 (PST)


Aspect ratio

  • Is the aspect ratio the pixel aspect or the frame aspect?

--Gumboot 03:00, 9 Nov 2005 (PST)

  • Frame aspect, this acts exactly like the aspect ratio in the Theora header, right down to having the same bit-size for the fields. Typically, the ratio is 4:3 or 16:9.

--Arc 10:42, 9 Nov 2005 (PST)


Chroma Subsampling Methods

  • We need to know two things, what the size/shape of chroma pixels are, and if they are packed, what order they are provided in the bitstream.
    • This seperates the order of the data and the processing of the data, both of which are important but get very complicated if mixed
    • The order must match the shape it's based on, ie, 4:4:4 should be in "0:0" order, any other value (which is illegal) should not be supported by any software if encountered and should never be generated.
Chroma Pixel "Shapes"
=====================
ID  Shape  Used-In
 0  #---   4:4:4
    ----
    ----
    ----
 .
 1  ##--   4:2:2
    ----
    ---- 
    ----
 .
 2  ####   4:1:1
    ----
    ----
    ----
 .
 3  #---   ?
    #---
    ----
    ----
 .
 4  ##--   4:2:0
    ##--
    ----
    ----
 .
 5  ####   4:1:0
    ####
    ----
    ----
 .
 6  ####   ?
    ####
    ####
    ####
 .
 7  Extended Shape, unsupported in v1.0