public BackwardUpdates(ref Vp9BackwardUpdates counts) { InterModeCounts = new Array7 <Array3 <Array2 <uint> > >(); for (int i = 0; i < 7; i++) { InterModeCounts[i][0][0] = counts.InterMode[i][2]; InterModeCounts[i][0][1] = counts.InterMode[i][0] + counts.InterMode[i][1] + counts.InterMode[i][3]; InterModeCounts[i][1][0] = counts.InterMode[i][0]; InterModeCounts[i][1][1] = counts.InterMode[i][1] + counts.InterMode[i][3]; InterModeCounts[i][2][0] = counts.InterMode[i][1]; InterModeCounts[i][2][1] = counts.InterMode[i][3]; } YModeCounts = counts.YMode; UvModeCounts = counts.UvMode; PartitionCounts = counts.Partition; SwitchableInterpsCount = counts.SwitchableInterp; IntraInterCount = counts.IntraInter; CompInterCount = counts.CompInter; SingleRefCount = counts.SingleRef; CompRefCount = counts.CompRef; Tx32x32 = counts.Tx32x32; Tx16x16 = counts.Tx16x16; Tx8x8 = counts.Tx8x8; MbSkipCount = counts.Skip; Joints = counts.Joints; Sign = counts.Sign; Classes = counts.Classes; Class0 = counts.Class0; Bits = counts.Bits; Class0Fp = counts.Class0Fp; Fp = counts.Fp; Class0Hp = counts.Class0Hp; Hp = counts.Hp; CoefCounts = counts.Coef; EobCounts = counts.EobBranch; }
private static int ReadSegmentId(ref Reader r, ref Array7 <byte> segTreeProbs) { return(r.ReadTree(Luts.Vp9SegmentTree, segTreeProbs.ToSpan())); }