TxfmCommon.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. namespace Ryujinx.Graphics.Nvdec.Vp9.Dsp
  2. {
  3. internal static class TxfmCommon
  4. {
  5. // Constants used by all idct/dct functions
  6. public const int DctConstBits = 14;
  7. public const int DctConstRounding = 1 << (DctConstBits - 1);
  8. public const int UnitQuantShift = 2;
  9. public const int UnitQuantFactor = 1 << UnitQuantShift;
  10. // Constants:
  11. // for (int i = 1; i < 32; ++i)
  12. // Console.WriteLine("public const short CosPi{0}_64 = {1};", i, MathF.Round(16384 * MathF.Cos(i * MathF.PI / 64)));
  13. // Note: sin(k * Pi / 64) = cos((32 - k) * Pi / 64)
  14. public const short CosPi1_64 = 16364;
  15. public const short CosPi2_64 = 16305;
  16. public const short CosPi3_64 = 16207;
  17. public const short CosPi4_64 = 16069;
  18. public const short CosPi5_64 = 15893;
  19. public const short CosPi6_64 = 15679;
  20. public const short CosPi7_64 = 15426;
  21. public const short CosPi8_64 = 15137;
  22. public const short CosPi9_64 = 14811;
  23. public const short CosPi10_64 = 14449;
  24. public const short CosPi11_64 = 14053;
  25. public const short CosPi12_64 = 13623;
  26. public const short CosPi13_64 = 13160;
  27. public const short CosPi14_64 = 12665;
  28. public const short CosPi15_64 = 12140;
  29. public const short CosPi16_64 = 11585;
  30. public const short CosPi17_64 = 11003;
  31. public const short CosPi18_64 = 10394;
  32. public const short CosPi19_64 = 9760;
  33. public const short CosPi20_64 = 9102;
  34. public const short CosPi21_64 = 8423;
  35. public const short CosPi22_64 = 7723;
  36. public const short CosPi23_64 = 7005;
  37. public const short CosPi24_64 = 6270;
  38. public const short CosPi25_64 = 5520;
  39. public const short CosPi26_64 = 4756;
  40. public const short CosPi27_64 = 3981;
  41. public const short CosPi28_64 = 3196;
  42. public const short CosPi29_64 = 2404;
  43. public const short CosPi30_64 = 1606;
  44. public const short CosPi31_64 = 804;
  45. // 16384 * sqrt(2) * sin(kPi / 9) * 2 / 3
  46. public const short SinPi1_9 = 5283;
  47. public const short SinPi2_9 = 9929;
  48. public const short SinPi3_9 = 13377;
  49. public const short SinPi4_9 = 15212;
  50. }
  51. }