Constants.cs 2.4 KB

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