Beispiel #1
0
        private MacroblockType(byte mbType, string name, byte numMbPart, MbPartPredMode mbPartPredMode0, MbPartPredMode mbPartPredMode1, byte mbPartPredWidth, byte mbPartPredHeight)
        {
            _mbType                 = mbType;
            _name                   = name;
            _numMbPart              = numMbPart;
            _mbPartPredModes        = new MbPartPredMode[2];
            _mbPartPredModes[0]     = mbPartPredMode0;
            _mbPartPredModes[1]     = mbPartPredMode1;
            _macroblockPartitioning = MacroblockPartitioning.GetMacroblockPartitioning(mbPartPredWidth, mbPartPredHeight);

            _intra16X16PredMode = 0;
            _codedBlockPattern  = 0;            // encoded in bitstream

            _table = name.StartsWith("P") ? Table.P : Table.B;
        }
Beispiel #2
0
        private MacroblockType(byte mbType, string name, MbPartPredMode mbPartPredMode, byte intra16X16PredMode, byte codedBlockPatternChroma, byte codedBlockPatternLuma)
        {
            _mbType             = mbType;
            _name               = name;
            _mbPartPredModes    = new MbPartPredMode[2];
            _mbPartPredModes[0] = mbPartPredMode;
            _mbPartPredModes[1] = MbPartPredMode.na;
            _intra16X16PredMode = intra16X16PredMode;
            _codedBlockPattern  = (byte)((codedBlockPatternChroma << 4) | codedBlockPatternLuma);

            // Note: Intra-coded blocks do not have parts (na)
            _numMbPart = 0;
            _macroblockPartitioning = MacroblockPartitioning.M16X16;

            _table = name.StartsWith("I") ? Table.I : Table.Si;
        }