Constants.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using Ryujinx.Graphics.Nvdec.Vp9.Types;
  2. namespace Ryujinx.Graphics.Nvdec.Vp9
  3. {
  4. internal static class Constants
  5. {
  6. public const int Vp9InterpExtend = 4;
  7. public const int MaxMbPlane = 3;
  8. public const int None = -1;
  9. public const int IntraFrame = 0;
  10. public const int LastFrame = 1;
  11. public const int GoldenFrame = 2;
  12. public const int AltRefFrame = 3;
  13. public const int MaxRefFrames = 4;
  14. public const int MiSizeLog2 = 3;
  15. public const int MiBlockSizeLog2 = 6 - MiSizeLog2; // 64 = 2^6
  16. public const int MiSize = 1 << MiSizeLog2; // pixels per mi-unit
  17. public const int MiBlockSize = 1 << MiBlockSizeLog2; // mi-units per max block
  18. public const int MiMask = MiBlockSize - 1;
  19. public const int PartitionPloffset = 4; // number of probability models per block size
  20. /* Segment Feature Masks */
  21. public const int MaxMvRefCandidates = 2;
  22. public const int CompInterContexts = 5;
  23. public const int RefContexts = 5;
  24. public const int EightTap = 0;
  25. public const int EightTapSmooth = 1;
  26. public const int EightTapSharp = 2;
  27. public const int SwitchableFilters = 3; /* Number of switchable filters */
  28. public const int Bilinear = 3;
  29. public const int Switchable = 4; /* should be the last one */
  30. // Frame
  31. public const int RefsPerFrame = 3;
  32. public const int NumPingPongBuffers = 2;
  33. public const int Class0Bits = 1; /* bits at integer precision for class 0 */
  34. public const int Class0Size = 1 << Class0Bits;
  35. public const int MvInUseBits = 14;
  36. public const int MvUpp = (1 << MvInUseBits) - 1;
  37. public const int MvLow = -(1 << MvInUseBits);
  38. // Coefficient token alphabet
  39. public const int ZeroToken = 0; // 0 Extra Bits 0+0
  40. public const int OneToken = 1; // 1 Extra Bits 0+1
  41. public const int TwoToken = 2; // 2 Extra Bits 0+1
  42. public const int PivotNode = 2;
  43. public const int Cat1MinVal = 5;
  44. public const int Cat2MinVal = 7;
  45. public const int Cat3MinVal = 11;
  46. public const int Cat4MinVal = 19;
  47. public const int Cat5MinVal = 35;
  48. public const int Cat6MinVal = 67;
  49. public const int EobModelToken = 3;
  50. public const int SegmentAbsData = 1;
  51. public const int MaxSegments = 8;
  52. }
  53. }