View Full Version : Weird quantizers displayed for x264
redfordxx
30th November 2007, 13:31
I compressed test video at various constant quantizers with only I frames.
Then I run it FFDShow with visualization to display quantizers.
I compressed it at qp=0,10,20,30,...
FFDShow displayed 0,7,17,27,37...
Is that error or there is a reason...?
akupenguin
30th November 2007, 15:13
--qp controls the qps of P-frames. I- and B-frames are offset based on --ipratio and --pbratio. This applies even if there aren't any P-frames.
redfordxx
3rd December 2007, 18:28
I see, thank you.
When you are here I have question;-)
Afaik, for DCT coding x264 uses also other DCT than 8x8. Can it be forced to use only one kind? Let's say only 8x8 or only 16x16...
R*
Dark Shikari
3rd December 2007, 18:32
I see, thank you.
When you are here I have question;-)
Afaik, for DCT coding x264 uses also other DCT than 8x8. Can it be forced to use only one kind? Let's say only 8x8 or only 16x16...
R*
H.264 only has two DCT types: 4x4 and 8x8. By default, only 4x4 is used. --8x8dct causes x264 to adaptively decide between them. At --subme 5 and below, SATD mode decision is used for this. At --subme 6 and above, RD mode decision is used.
For 16x16 blocks with no sub-partitions and 4x4 DCT, a recursive 4x4 DCT is done (16 4x4 DCTs -> DC coefficients make up a 4x4 matrix of coefficients -> DCT on that matrix yields the final result, which is quantized and stored).
Sergey A. Sablin
4th December 2007, 07:26
For 16x16 blocks with no sub-partitions and 4x4 DCT, a recursive 4x4 DCT is done (16 4x4 DCTs -> DC coefficients make up a 4x4 matrix of coefficients -> DCT on that matrix yields the final result, which is quantized and stored).
it's not true.
it's only for intra coded mb with mode intra16x16, and second stage transform isn't same DCT, it's Hadamard.
Dark Shikari
4th December 2007, 07:33
it's not true.
it's only for intra coded mb with mode intra16x16, and second stage transform isn't same DCT, it's Hadamard.Then what's used for a p/b16x16?
Sergey A. Sablin
4th December 2007, 08:03
Then what's used for a p/b16x16?
just DCT 4x4 or 8x8 for each block, regardless of partition mode of mb (except that for mb with partitions less than 8x8, where only 4x4 DCT can be used).
redfordxx
4th December 2007, 09:03
For 16x16 blocks with no sub-partitions and 4x4 DCT, a recursive 4x4 DCT is done (16 4x4 DCTs -> DC coefficients make up a 4x4 matrix of coefficients -> DCT on that matrix yields the final result, which is quantized and stored).
So...If I understand it correctly, every 4x4 submatrix has all coeffs except DC zeroed?
Dark Shikari
4th December 2007, 09:16
So...If I understand it correctly, every 4x4 submatrix has all coeffs except DC zeroed?I think that's how it works for i16x16 blocks. Obviously as Sergey said above that isn't the case for any other block type.
Sergey A. Sablin
4th December 2007, 09:33
So...If I understand it correctly, every 4x4 submatrix has all coeffs except DC zeroed?
nothing is zeroed. after DCT all coeffs are quantized and then entropy coded.
the only difference for intra 16x16 mode is that DC coeffs from 4x4 blocks are additionally transformed by Hadamard transform before quantization. Then every coeff gets entropy coded - firstly all DC coeffs, then all AC. Same for chroma part of any mb mode, except it might have different subsampling (usually 4:2:0, so there are only 4 DC coeffs after 4x4 DCT for each chroma component in mb, which are hadamard transformed).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.