Auravision: Difference between revisions
No edit summary |
m (→Hypothesis 2) |
||
Line 20: | Line 20: | ||
== Hypothesis 2 == | == Hypothesis 2 == | ||
--[[User:Kostya|Kostya]] 06:07, 10 December 2008 (EST) | --[[User:Kostya|Kostya]] 06:07, 10 December 2008 (EST) | ||
<pre> | |||
first 16 bytes - some rubbish | first 16 bytes - some rubbish | ||
next 16 bytes - quantization table for luma | next 16 bytes - quantization table for luma | ||
next 16 bytes - quantization table for chroma | next 16 bytes - quantization table for chroma | ||
</pre> | |||
the rest is packed into nibbles somehow with actual value obtained via table | the rest is packed into nibbles somehow with actual value obtained via table | ||
[[Category:Video Codecs]] | [[Category:Video Codecs]] | ||
[[Category:Undiscovered Video Codecs]] | [[Category:Undiscovered Video Codecs]] |
Revision as of 07:34, 10 December 2008
- FourCCs: AURA, AUR2
- Company: Auravision
- Samples:
According to various codec lists, AURA is a YUV 4:1:1 codec while AUR2 is YUV 4:2:2. The payload of an AURA frame begins with the 6 ASCII bytes 'YUV411'.
Hypothesis
--Multimedia Mike 02:42, 10 December 2008 (EST)
Any given AURA sample contains frames of a constant size. For 160x120 files, the frames are each 14448 bytes. For 240x180 files, the frames are each 32448 bytes. In YUV 4:1:1 data, a 4x4 block consisting of 16 pixels assigns a Y sample to each pixel while all 16 pixels share a U and a V sample. If each sample is 1 byte, the size of a raw YUV 4:1:1 frame is (width * height * 18) / 16. This formula does not reconcile with AURA frames.
However, if each of the Y samples is only coded with 5 bits, the observed frame sizes come close, with 48 extra bytes. Indeed, the frames do appear to begin with a 48-byte header. So the size of the frame is calculated as
p = width * height 48 + (p * 5/8) + (p/16) * 2
Testing this hypothesis might require trying several different bit reading methods.
Hypothesis 2
--Kostya 06:07, 10 December 2008 (EST)
first 16 bytes - some rubbish next 16 bytes - quantization table for luma next 16 bytes - quantization table for chroma
the rest is packed into nibbles somehow with actual value obtained via table