public void SetSkipContext(int miRow, int miCol) { int aboveIdx = miCol * 2; int leftIdx = (miRow * 2) & 15; int i; for (i = 0; i < Constants.MaxMbPlane; ++i) { ref MacroBlockDPlane pd = ref Plane[i]; pd.AboveContext = AboveContext[i].Slice(aboveIdx >> pd.SubsamplingX); pd.LeftContext = new ArrayPtr <sbyte>(ref LeftContext[i][leftIdx >> pd.SubsamplingY], 16 - (leftIdx >> pd.SubsamplingY)); }
public TxSize GetUvTxSize(ref MacroBlockDPlane pd) { Debug.Assert(SbType < BlockSize.Block8x8 || Luts.SsSizeLookup[(int)SbType][pd.SubsamplingX][pd.SubsamplingY] != BlockSize.BlockInvalid); return(Luts.UvTxsizeLookup[(int)SbType][(int)TxSize][pd.SubsamplingX][pd.SubsamplingY]); }