TechSmith Screen Capture Codec 2
From MultimediaWiki
(Difference between revisions)
| Revision as of 13:12, 7 July 2012 Kostya (Talk | contribs) ← Previous diff |
Current revision Kostya (Talk | contribs) (→Frame format) |
||
| Line 9: | Line 9: | ||
| 0 - frame type (1- coded, 0 - skip frame) | 0 - frame type (1- coded, 0 - skip frame) | ||
| - | 1 - luma quantiser? | + | 1 - quantiser1 (0-12) |
| - | 2 - chroma quantiser? | + | 2 - quantiser2 (0-12) |
| 3 - ??? | 3 - ??? | ||
| [macroblock properties] | [macroblock properties] | ||
| Line 18: | Line 18: | ||
| 4 bytes LE - chunk size | 4 bytes LE - chunk size | ||
| - | rest - RLE-coded properties in bytes in form (val << 6) | (count) | + | rest - RLE-coded mode in bytes in form (val << 6) | (count) |
| Macroblock slices begin with slice size. If the first byte is odd, then it's the full size. Otherwise read whole 32-bit word and divide it by two in order to obtain real macroblock data size. | Macroblock slices begin with slice size. If the first byte is odd, then it's the full size. Otherwise read whole 32-bit word and divide it by two in order to obtain real macroblock data size. | ||
| + | |||
| + | Mode meaning: 0/3 - skip block, 1 - select quantiser1, 2 - select quantiser2 | ||
| Macroblocks encode series of 4x4 DCT blocks (4x2), one component after another. | Macroblocks encode series of 4x4 DCT blocks (4x2), one component after another. | ||
| Line 50: | Line 52: | ||
| Q2 = 4 * round(quant * 32768 * 0.1313064328597225^2 ) // about 4 * round(quant * 564.966) | Q2 = 4 * round(quant * 32768 * 0.1313064328597225^2 ) // about 4 * round(quant * 564.966) | ||
| - | IDCT: (TODO) | + | Unquantising: |
| + | |||
| + | val = (quant * (qval << 6) + 0x10000) >> 17 | ||
| + | |||
| + | IDCT matrix: | ||
| + | |||
| + | 5 5 5 2 | ||
| + | 5 2 -5 -5 | ||
| + | 5 -2 -5 5 | ||
| + | 5 -5 5 -2 | ||
| [[Category:Video Codecs]] | [[Category:Video Codecs]] | ||
| - | [[Category:Undiscovered Video Codecs]] | ||
| [[Category:Screen Capture Video Codecs]] | [[Category:Screen Capture Video Codecs]] | ||
Current revision
- FOURCC: TSC2
- Company: TechSmith
This codec was developed by TechSmith and used in their screen capturing products.
[edit]
Frame format
This codec operates on 16x8 macroblocks.
0 - frame type (1- coded, 0 - skip frame) 1 - quantiser1 (0-12) 2 - quantiser2 (0-12) 3 - ??? [macroblock properties] [macroblock slices]
Macroblock properties:
4 bytes LE - chunk size rest - RLE-coded mode in bytes in form (val << 6) | (count)
Macroblock slices begin with slice size. If the first byte is odd, then it's the full size. Otherwise read whole 32-bit word and divide it by two in order to obtain real macroblock data size.
Mode meaning: 0/3 - skip block, 1 - select quantiser1, 2 - select quantiser2
Macroblocks encode series of 4x4 DCT blocks (4x2), one component after another.
Block format:
DC - 8 bits for the first block, or VLC (for the difference from the previous DC) number of AC coefficients - VLC [AC coefficients] - VLC, bottom 4 bits - skip value, top 8 bits - AC value
Scan order is zigzag:
0 2 3 9 1 4 8 10 5 7 11 14 6 12 13 15
Quantisation:
Q0 Q1 Q0 Q1 Q1 Q2 Q1 Q2 Q0 Q1 Q0 Q1 Q1 Q2 Q1 Q2
where
Q0 = 4 * round(quant * 327.68) Q1 = 4 * round(quant / 5 * 16384 * 0.1313064328597225) // about 4 * round(quant * 430.265) Q2 = 4 * round(quant * 32768 * 0.1313064328597225^2 ) // about 4 * round(quant * 564.966)
Unquantising:
val = (quant * (qval << 6) + 0x10000) >> 17
IDCT matrix:
5 5 5 2 5 2 -5 -5 5 -2 -5 5 5 -5 5 -2
