rudyb
15th April 2015, 20:18
For a simple test, I am just intending to simplify the encoder as much as I can. I was trying to make the CTU size to be 32x32. Also I was trying to avoid any Z-scanning and avoiding further CU depth breakdown. So, I set such that my CU size be also 32x32.
According to the spec, the TU size can be anywhere from 32x32 all the way down to 4x4. But I don't have to go all the way down, so I also tried to set the TU size to be only 32x32. But HM complains and it exits.
Here is my settings:
#======== Unit definition ================
MaxCUWidth : 32 # Maximum coding unit width in pixel
MaxCUHeight : 32 # Maximum coding unit height in pixel
MaxPartitionDepth : 1 # Maximum coding unit depth
QuadtreeTULog2MaxSize : 5 # Log2 of maximum transform size for quadtree-based TU coding (2...6)
QuadtreeTULog2MinSize : 5 # Log2 of minimum transform size for quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 1
QuadtreeTUMaxDepthIntra : 1
And the reason it exits is because it says:
Error: QuadtreeTULog2MinSize must not be greater than or equal to minimum CU size
Error: QuadtreeTULog2MinSize must not be greater than or equal to minimum CU size
And once I set:
QuadtreeTULog2MinSize :4
QuadtreeTULog2MinSize :4
It works fine.
So, it wants to have TU sizes of 32x32 and 16x16
But is there anyway this can be worked around?
I think the reason it wants to use it is because it uses NxN partition modes, but there is no setting for me to disable NxN partition mode!
I think if I can set it such that it only uses 2Nx2N partition, then it will be fine (I also turned off the AMVP).
Is this a limitation of HM? Because to me, according to spec, you can have only TU sizes of 32x32 for the encoder, if you wish to?
According to the spec, the TU size can be anywhere from 32x32 all the way down to 4x4. But I don't have to go all the way down, so I also tried to set the TU size to be only 32x32. But HM complains and it exits.
Here is my settings:
#======== Unit definition ================
MaxCUWidth : 32 # Maximum coding unit width in pixel
MaxCUHeight : 32 # Maximum coding unit height in pixel
MaxPartitionDepth : 1 # Maximum coding unit depth
QuadtreeTULog2MaxSize : 5 # Log2 of maximum transform size for quadtree-based TU coding (2...6)
QuadtreeTULog2MinSize : 5 # Log2 of minimum transform size for quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 1
QuadtreeTUMaxDepthIntra : 1
And the reason it exits is because it says:
Error: QuadtreeTULog2MinSize must not be greater than or equal to minimum CU size
Error: QuadtreeTULog2MinSize must not be greater than or equal to minimum CU size
And once I set:
QuadtreeTULog2MinSize :4
QuadtreeTULog2MinSize :4
It works fine.
So, it wants to have TU sizes of 32x32 and 16x16
But is there anyway this can be worked around?
I think the reason it wants to use it is because it uses NxN partition modes, but there is no setting for me to disable NxN partition mode!
I think if I can set it such that it only uses 2Nx2N partition, then it will be fine (I also turned off the AMVP).
Is this a limitation of HM? Because to me, according to spec, you can have only TU sizes of 32x32 for the encoder, if you wish to?