[x265] using and encoding of h265 parameter set fields

dave dtyx265 at gmail.com
Mon May 5 20:06:51 CEST 2014


Many parameter set fields are encoded in a form that is modified I am 
guessing for the purpose of maximizing the range of possible encoded 
values but are probably more useful for the encoding of frames in their 
unmodified forms.  For example, both the VPS and SPS have a field called 
m_maxSubLayersMinus1 but m_maxSubLayers may be more useful for analyzing 
and encoding of frames.

When the unmodified form is more useful, I think it would be less 
confusing to use the unmodified form with the variable name without the 
modification and then modify the field at the time of encoding. That is, 
use m_maxSubLayers, then at the time of encoding in TEncSbac, encode 
m_maxSubLayers - 1.

This would break from naming h265 fields after the names used in the 
specification but removes any thought of "Do I need to add one to 
m_maxSubLayersMinus1 before using it.." or "do I need to subtract 1 
before encoding it.."  I don't think removing MinusX or PlusX from a 
field name is going to hurt too much, especially if it's documented in 
comments at it's declaration.

Of course some fields may be more useful in their modified form. Either 
way, I prefer to have the name of the field match the state of the value 
it holds.  If anyone knows of any particular field that should be 
treated one way or the other please let me know.


More information about the x265-devel mailing list