EncJpegQuantTables.h 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. /*------------------------------------------------------------------------------
  2. -- --
  3. -- This software is confidential and proprietary and may be used --
  4. -- only as expressly authorized by a licensing agreement from --
  5. -- --
  6. -- Hantro Products Oy. --
  7. -- --
  8. -- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
  9. -- ALL RIGHTS RESERVED --
  10. -- --
  11. -- The entire notice above must be reproduced --
  12. -- on all copies and should not be removed. --
  13. -- --
  14. --------------------------------------------------------------------------------
  15. --
  16. -- Abstract :
  17. --
  18. ------------------------------------------------------------------------------*/
  19. /*------------------------------------------------------------------------------
  20. Table of contents
  21. 1. Include headers
  22. 2. Module defines
  23. 3. Data types
  24. 4. Function prototypes
  25. ------------------------------------------------------------------------------*/
  26. #ifndef __QUANT_TABLES_H__
  27. #define __QUANT_TABLES_H__
  28. /*------------------------------------------------------------------------------
  29. 1. Include headers
  30. ------------------------------------------------------------------------------*/
  31. #include "basetype.h"
  32. /*------------------------------------------------------------------------------
  33. 2. Module defines
  34. ------------------------------------------------------------------------------*/
  35. /*------------------------------------------------------------------------------
  36. 3. Data types
  37. ------------------------------------------------------------------------------*/
  38. /* Quantization tables for luminance, levels 0-10 */
  39. static const u8 QuantLuminance[11][64] = {
  40. {80, 56, 50, 80, 120, 200, 248, 248,
  41. 60, 60, 72, 96, 136, 248, 248, 248,
  42. 72, 68, 80, 120, 200, 248, 248, 248,
  43. 72, 88, 112, 152, 248, 248, 248, 248,
  44. 92, 112, 192, 248, 248, 248, 248, 248,
  45. 120, 176, 248, 248, 248, 248, 248, 248,
  46. 152, 248, 248, 248, 248, 248, 248, 248,
  47. 248, 248, 248, 248, 248, 248, 248, 248},
  48. {40, 28, 25, 40, 60, 100, 128, 160,
  49. 30, 30, 36, 48, 68, 152, 152, 144,
  50. 36, 34, 40, 60, 100, 144, 176, 144,
  51. 36, 44, 56, 76, 128, 224, 200, 160,
  52. 46, 56, 96, 144, 176, 248, 248, 200,
  53. 60, 88, 144, 160, 208, 248, 248, 232,
  54. 124, 160, 200, 224, 248, 248, 248, 248,
  55. 184, 232, 240, 248, 248, 248, 248, 248},
  56. {27, 18, 17, 27, 40, 68, 88, 104,
  57. 20, 20, 23, 32, 44, 96, 100, 92,
  58. 23, 22, 27, 40, 68, 96, 116, 96,
  59. 23, 28, 38, 48, 88, 144, 136, 104,
  60. 30, 38, 62, 96, 116, 184, 176, 128,
  61. 40, 58, 92, 108, 136, 176, 192, 160,
  62. 84, 108, 136, 144, 176, 208, 200, 168,
  63. 120, 160, 160, 168, 192, 168, 176, 168},
  64. {20, 14, 13, 20, 30, 50, 64, 76,
  65. 15, 15, 18, 24, 34, 76, 76, 72,
  66. 18, 16, 20, 30, 50, 72, 88, 72,
  67. 18, 21, 28, 36, 64, 112, 100, 80,
  68. 23, 28, 46, 72, 88, 136, 136, 96,
  69. 30, 44, 72, 80, 104, 136, 144, 116,
  70. 62, 80, 100, 112, 136, 152, 152, 128,
  71. 92, 116, 120, 124, 144, 128, 136, 124},
  72. {16, 11, 10, 16, 24, 40, 52, 62,
  73. 12, 12, 14, 19, 26, 58, 60, 56,
  74. 14, 13, 16, 24, 40, 58, 72, 56,
  75. 14, 17, 22, 29, 52, 88, 80, 62,
  76. 18, 22, 38, 56, 68, 112, 104, 80,
  77. 24, 36, 56, 64, 84, 104, 116, 92,
  78. 50, 64, 80, 88, 104, 124, 120, 104,
  79. 72, 92, 96, 100, 124, 100, 104, 100},
  80. {13, 9, 8, 13, 19, 32, 42, 50,
  81. 10, 10, 11, 15, 21, 46, 48, 44,
  82. 11, 10, 13, 19, 32, 46, 56, 46,
  83. 11, 14, 18, 23, 42, 72, 64, 50,
  84. 14, 18, 30, 46, 54, 88, 84, 62,
  85. 19, 28, 44, 52, 68, 84, 92, 76,
  86. 40, 52, 62, 72, 84, 100, 96, 84,
  87. 58, 76, 76, 80, 100, 80, 84, 80},
  88. {10, 7, 6, 10, 14, 24, 31, 38,
  89. 7, 7, 8, 11, 16, 36, 36, 34,
  90. 8, 8, 10, 14, 24, 34, 42, 34,
  91. 8, 10, 13, 17, 32, 52, 48, 38,
  92. 11, 13, 22, 34, 42, 68, 62, 46,
  93. 14, 21, 34, 38, 50, 62, 68, 56,
  94. 29, 38, 48, 52, 62, 76, 72, 62,
  95. 44, 56, 58, 60, 68, 60, 62, 60},
  96. { 6, 4, 4, 6, 10, 16, 20, 24,
  97. 5, 5, 6, 8, 10, 23, 24, 22,
  98. 6, 5, 6, 10, 16, 23, 28, 22,
  99. 6, 7, 9, 12, 20, 36, 32, 25,
  100. 7, 9, 15, 22, 27, 44, 42, 31,
  101. 10, 14, 22, 26, 32, 42, 46, 38,
  102. 20, 26, 31, 36, 42, 48, 48, 40,
  103. 29, 38, 38, 40, 46, 40, 42, 40},
  104. { 3, 2, 2, 3, 5, 8, 10, 12,
  105. 2, 2, 3, 4, 5, 12, 12, 11,
  106. 3, 3, 3, 5, 8, 11, 14, 11,
  107. 3, 3, 4, 6, 10, 17, 16, 12,
  108. 4, 4, 7, 11, 14, 22, 21, 15,
  109. 5, 7, 11, 13, 16, 21, 23, 18,
  110. 10, 13, 16, 17, 21, 24, 24, 20,
  111. 14, 18, 19, 20, 22, 20, 21, 20},
  112. { 1, 1, 1, 1, 2, 3, 3, 4,
  113. 1, 1, 1, 1, 2, 4, 4, 4,
  114. 1, 1, 1, 2, 3, 4, 5, 4,
  115. 1, 1, 1, 2, 3, 6, 5, 4,
  116. 1, 1, 2, 4, 5, 7, 7, 5,
  117. 2, 2, 4, 4, 5, 7, 8, 6,
  118. 3, 4, 5, 6, 7, 8, 8, 7,
  119. 5, 6, 6, 7, 7, 7, 7, 7},
  120. {1, 1, 1, 1, 1, 1, 1, 1,
  121. 1, 1, 1, 1, 1, 1, 1, 1,
  122. 1, 1, 1, 1, 1, 1, 1, 1,
  123. 1, 1, 1, 1, 1, 1, 1, 1,
  124. 1, 1, 1, 1, 1, 1, 1, 1,
  125. 1, 1, 1, 1, 1, 1, 1, 1,
  126. 1, 1, 1, 1, 1, 1, 1, 1,
  127. 1, 1, 1, 1, 1, 1, 1, 1}
  128. };
  129. /* Quantization tables for chrominance, levels 0-10 */
  130. static const u8 QuantChrominance[11][64] = {
  131. {88, 92, 120, 240, 248, 248, 248, 248,
  132. 92, 108, 136, 248, 248, 248, 248, 248,
  133. 120, 136, 248, 248, 248, 248, 248, 248,
  134. 240, 248, 248, 248, 248, 248, 248, 248,
  135. 248, 248, 248, 248, 248, 248, 248, 248,
  136. 248, 248, 248, 248, 248, 248, 248, 248,
  137. 248, 248, 248, 248, 248, 248, 248, 248,
  138. 248, 248, 248, 248, 248, 248, 248, 248},
  139. {44, 46, 60, 120, 248, 248, 248, 248,
  140. 46, 54, 68, 168, 248, 248, 248, 248,
  141. 60, 66, 144, 248, 248, 248, 248, 248,
  142. 120, 168, 248, 248, 248, 248, 248, 248,
  143. 248, 248, 248, 248, 248, 248, 248, 248,
  144. 248, 248, 248, 248, 248, 248, 248, 248,
  145. 248, 248, 248, 248, 248, 248, 248, 248,
  146. 248, 248, 248, 248, 248, 248, 248, 248},
  147. {28, 30, 40, 80, 168, 168, 168, 168,
  148. 30, 36, 44, 112, 168, 168, 168, 168,
  149. 40, 44, 96, 168, 168, 168, 168, 168,
  150. 80, 112, 168, 168, 168, 168, 168, 168,
  151. 168, 168, 168, 168, 168, 168, 168, 168,
  152. 168, 168, 168, 168, 168, 168, 168, 168,
  153. 168, 168, 168, 168, 168, 168, 168, 168,
  154. 168, 168, 168, 168, 168, 168, 168, 168},
  155. {21, 23, 30, 60, 124, 124, 124, 124,
  156. 23, 26, 34, 84, 124, 124, 124, 124,
  157. 30, 34, 72, 124, 124, 124, 124, 124,
  158. 60, 84, 124, 124, 124, 124, 124, 124,
  159. 124, 124, 124, 124, 124, 124, 124, 124,
  160. 124, 124, 124, 124, 124, 124, 124, 124,
  161. 124, 124, 124, 124, 124, 124, 124, 124,
  162. 124, 124, 124, 124, 124, 124, 124, 124},
  163. {17, 18, 24, 48, 100, 100, 100, 100,
  164. 18, 21, 26, 68, 100, 100, 100, 100,
  165. 24, 26, 56, 100, 100, 100, 100, 100,
  166. 48, 68, 100, 100, 100, 100, 100, 100,
  167. 100, 100, 100, 100, 100, 100, 100, 100,
  168. 100, 100, 100, 100, 100, 100, 100, 100,
  169. 100, 100, 100, 100, 100, 100, 100, 100,
  170. 100, 100, 100, 100, 100, 100, 100, 100},
  171. {14, 14, 19, 38, 80, 80, 80, 80,
  172. 14, 17, 21, 54, 80, 80, 80, 80,
  173. 19, 21, 46, 80, 80, 80, 80, 80,
  174. 38, 54, 80, 80, 80, 80, 80, 80,
  175. 80, 80, 80, 80, 80, 80, 80, 80,
  176. 80, 80, 80, 80, 80, 80, 80, 80,
  177. 80, 80, 80, 80, 80, 80, 80, 80,
  178. 80, 80, 80, 80, 80, 80, 80, 80},
  179. {10, 11, 14, 28, 60, 60, 60, 60,
  180. 11, 13, 16, 40, 60, 60, 60, 60,
  181. 14, 16, 34, 60, 60, 60, 60, 60,
  182. 28, 40, 60, 60, 60, 60, 60, 60,
  183. 60, 60, 60, 60, 60, 60, 60, 60,
  184. 60, 60, 60, 60, 60, 60, 60, 60,
  185. 60, 60, 60, 60, 60, 60, 60, 60,
  186. 60, 60, 60, 60, 60, 60, 60, 60},
  187. { 7, 7, 10, 19, 40, 40, 40, 40,
  188. 7, 8, 10, 26, 40, 40, 40, 40,
  189. 10, 10, 22, 40, 40, 40, 40, 40,
  190. 19, 26, 40, 40, 40, 40, 40, 40,
  191. 40, 40, 40, 40, 40, 40, 40, 40,
  192. 40, 40, 40, 40, 40, 40, 40, 40,
  193. 40, 40, 40, 40, 40, 40, 40, 40,
  194. 40, 40, 40, 40, 40, 40, 40, 40},
  195. { 3, 4, 5, 9, 20, 20, 20, 20,
  196. 4, 4, 5, 13, 20, 20, 20, 20,
  197. 5, 5, 11, 20, 20, 20, 20, 20,
  198. 9, 13, 20, 20, 20, 20, 20, 20,
  199. 20, 20, 20, 20, 20, 20, 20, 20,
  200. 20, 20, 20, 20, 20, 20, 20, 20,
  201. 20, 20, 20, 20, 20, 20, 20, 20,
  202. 20, 20, 20, 20, 20, 20, 20, 20},
  203. { 1, 1, 2, 3, 7, 7, 7, 7,
  204. 1, 1, 2, 4, 7, 7, 7, 7,
  205. 2, 2, 4, 7, 7, 7, 7, 7,
  206. 3, 4, 7, 7, 7, 7, 7, 7,
  207. 7, 7, 7, 7, 7, 7, 7, 7,
  208. 7, 7, 7, 7, 7, 7, 7, 7,
  209. 7, 7, 7, 7, 7, 7, 7, 7,
  210. 7, 7, 7, 7, 7, 7, 7, 7},
  211. {1, 1, 1, 1, 1, 1, 1, 1,
  212. 1, 1, 1, 1, 1, 1, 1, 1,
  213. 1, 1, 1, 1, 1, 1, 1, 1,
  214. 1, 1, 1, 1, 1, 1, 1, 1,
  215. 1, 1, 1, 1, 1, 1, 1, 1,
  216. 1, 1, 1, 1, 1, 1, 1, 1,
  217. 1, 1, 1, 1, 1, 1, 1, 1,
  218. 1, 1, 1, 1, 1, 1, 1, 1}
  219. };
  220. #endif /* #ifndef __QUANT_TABLES_H__ */