pq_tab.c 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696
  1. //#include "osdef.h"
  2. #include <linux/delay.h>
  3. #include "pq_tab.h"
  4. #include "drv_pq_internal.h"
  5. UINT8 ID_GammaString10[14]={"SiS516_Gamma10"};
  6. UINT8 ID_GammaString12[14]={"SiS516_Gamma12"};
  7. //UINT32 ColorSpaceTableYCC601[12]= //YC C601 16~235=>0~255
  8. UINT32 ColorSpaceTableYCC_Full601[12]= //YC C601 16~235=>0~255
  9. {
  10. 0x04A8,
  11. 0x0000,
  12. 0x0662,
  13. 0x04A8,
  14. 0x3E6F,
  15. 0x3CC0,
  16. 0x04A8,
  17. 0x0811,
  18. 0x0000,
  19. 0x0000,
  20. 0x0000,
  21. 0x0000
  22. };
  23. //UINT32 ColorSpaceTableYCC709[12]= //YCC 709
  24. UINT32 ColorSpaceTableYCC_Full709[12]= //YCC 709
  25. {
  26. 0x04A8,
  27. 0x0000,
  28. 0x072b,
  29. 0x04A8,
  30. 0x3F26,
  31. 0x3DDF,
  32. 0x04A8,
  33. 0x0873,
  34. 0x0000,
  35. 0x0000,
  36. 0x0000,
  37. 0x0000
  38. };
  39. UINT32 ColorSpaceTableYCC_Limit601[12]= //YC C601 16~235=>0~255
  40. {
  41. 0x0400,
  42. 0x0000,
  43. 0x057b,
  44. 0x0400,
  45. 0x3EA8,
  46. 0x3D36,
  47. 0x0400,
  48. 0x06ee,
  49. 0x0000,
  50. 0x0000,
  51. 0x0000,
  52. 0x0000
  53. };
  54. UINT32 ColorSpaceTableYCC_Limit709[12]= //YCC 709
  55. {
  56. 0x0400,
  57. 0x0000,
  58. 0x0628,
  59. 0x0400,
  60. 0x3F45,
  61. 0x3E2C,
  62. 0x0400,
  63. 0x0741,
  64. 0x0000,
  65. 0x0000,
  66. 0x0000,
  67. 0x0000
  68. };
  69. UINT32 ColorSpaceTableFCC[12]=
  70. {
  71. //full range
  72. 0x04A8,
  73. 0x0000,
  74. 0x0688,
  75. 0x04A8,
  76. 0x3E75,
  77. 0x3CB1,
  78. 0x04A8,
  79. 0x0875,
  80. 0x0000,
  81. 0x0000,
  82. 0x0000,
  83. 0x0000
  84. /* limit range
  85. 1024,
  86. 0,
  87. 1436,
  88. 1024,
  89. 0x3EAC, //-85
  90. 0x3D28, //-182
  91. 1024,
  92. 1860,
  93. 0,
  94. 0x0000,
  95. 0x0000,
  96. 0x0000
  97. */
  98. };
  99. UINT32 ColorSpaceTable624[12]=
  100. {
  101. //full range
  102. 0x04A8,
  103. 0x0000,
  104. 0x0688,
  105. 0x04A8,
  106. 0x3E67,
  107. 0x3CAC,
  108. 0x04A8,
  109. 0x0842,
  110. 0x0000,
  111. 0x0000,
  112. 0x0000,
  113. 0x0000
  114. /* limit range
  115. 1024,
  116. 0,
  117. 1436,
  118. 1024,
  119. 0x3EA0, //-88
  120. 0x3D24, //-183
  121. 1024,
  122. 1816,
  123. 0,
  124. 0x0000,
  125. 0x0000,
  126. 0x0000
  127. */
  128. };
  129. UINT32 ColorSpaceTable240M[12]=
  130. {
  131. //full range
  132. 0x04A8,
  133. 0x0000,
  134. 0x0754,
  135. 0x04A8,
  136. 0x3EF2,
  137. 0x3DC8,
  138. 0x04A8,
  139. 0x087F,
  140. 0x0000,
  141. 0x0000,
  142. 0x0000,
  143. 0x0000
  144. /*limit range
  145. 1024,
  146. 0,
  147. 1612,
  148. 1024,
  149. 0x3F18, //-58
  150. 0x3E18, //-122
  151. 1024,
  152. 1868,
  153. 0,
  154. 0x0000,
  155. 0x0000,
  156. 0x0000
  157. */
  158. };
  159. UINT32 ColorSpaceJPEG[12]= //CCIR601 0~255=>0~255
  160. {
  161. 1024,
  162. 0,
  163. 1403,
  164. 1024,
  165. 0x3EA8, //-344
  166. 0x3D36, //-714
  167. 1024,
  168. 1774,
  169. 0,
  170. 16,
  171. 16,
  172. 16
  173. };
  174. UINT32 ColorSpaceBMP[12]=
  175. {
  176. 1192,
  177. 0,
  178. 1634,
  179. 1192,
  180. 0x3E70, //-344
  181. 0x3CBF, //-714
  182. 1192,
  183. 2067,
  184. 0,
  185. 0,
  186. 0,
  187. 0
  188. };
  189. /*
  190. //for JPEG SOURCE input is RGB format
  191. UINT32 ColorSpaceTableJPEGRGB[12]=
  192. {
  193. 0x400,
  194. 0x000,
  195. 0x000,
  196. 0x000,
  197. 0x400,
  198. 0x000,
  199. 0x0000,
  200. 0x0000,
  201. 0x400,
  202. 0x0000,
  203. 0x0000,
  204. 0x0000
  205. };
  206. */
  207. //for JPEG SOURCE input is RGB format
  208. //update JPEG RGB color space to swap Blue, Green
  209. UINT32 ColorSpaceTableJPEGRGB[12]=
  210. {
  211. 0x400,
  212. 0x000,
  213. 0x000,
  214. 0x000,
  215. 0x000,
  216. 0x400,
  217. 0x0000,
  218. 0x400,
  219. 0x0000,
  220. 0x0000,
  221. 0x0000,
  222. 0x0000
  223. };
  224. //yukuo for VGA mode input range 10~245
  225. UINT32 ColorSpaceTableRGB[12]=
  226. {
  227. 0x050d,
  228. 0x0000,
  229. 0x06ed,
  230. 0x050d,
  231. 0x3e4e,
  232. 0x3c79,
  233. 0x050d,
  234. 0x08c2,
  235. 0x0000,
  236. 0x3ff5, //-11
  237. 0x3ff5,
  238. 0x3ff5
  239. };
  240. // angle degree= ( 45-(-45) ) / 32 = 2.8125
  241. // 256 * sine(value) , 256 * cosine(value)
  242. HUE HueSetting[] =
  243. {
  244. //{ sine,cosine},/* angle*/
  245. { -180, 182 }, /*-44.8*/ { -171, 190 }, /*-42.0*/ { -162, 198 }, /*-39.2*/
  246. { -152,206 }, /*-36.4*/ { -142,213 }, /*-33.6*/ { -131,220 }, /*-30.8*/
  247. { -120,226 }, /*-28.0*/ { -109,232 }, /*-25.2*/ { -98,237 }, /*-22.4*/
  248. { -86,241 }, /*-19.6*/ { -74,245 }, /*-16.8*/ { -62,248 }, /*-14.0*/
  249. { -50,251 }, /*-11.2*/ { -37,253 }, /* -8.4*/ { -25,255 }, /* -5.6*/
  250. { -13,256 }, /* -2.8*/ { 0,256 }, /* 0 */ { 13,256 }, /* 2.8*/
  251. { 25,255 }, /* 5.6*/ { 37,253 }, /* 8.4*/ { 50,251 }, /* 11.2*/
  252. { 62,248 }, /* 14.0*/ { 74,245 }, /* 16.8*/ { 86,241 }, /* 19.6*/
  253. { 98,237 }, /* 22.4*/ { 109,232 }, /* 25.2*/ { 120,226 }, /* 28.0*/
  254. { 131,220 }, /* 30.8*/ { 142,213 }, /* 33.6*/ { 152,206 }, /* 36.4*/
  255. { 162, 198 }, /* 39.2*/ { 171, 190 }, /* 42.0*/ { 180, 182 } /* 44.8*/
  256. };
  257. HUE NewHueSetting[] =
  258. {
  259. {-196, 165},
  260. {-193, 168},
  261. {-190, 171},
  262. {-187, 175},
  263. {-184, 178},
  264. {-181, 181},
  265. {-178, 184},
  266. {-175, 187},
  267. {-171, 190},
  268. {-168, 193},
  269. {-165, 196},
  270. {-161, 199},
  271. {-158, 202},
  272. {-154, 204},
  273. {-150, 207},
  274. {-147, 210},
  275. {-143, 212},
  276. {-139, 215},
  277. {-136, 217},
  278. {-132, 219},
  279. {-128, 222},
  280. {-124, 224},
  281. {-120, 226},
  282. {-116, 228},
  283. {-112, 230},
  284. {-108, 232},
  285. {-104, 234},
  286. {-100, 236},
  287. {-96, 237},
  288. {-92, 239},
  289. {-88, 241},
  290. {-83, 242},
  291. {-79, 243},
  292. {-75, 245},
  293. {-71, 246},
  294. {-66, 247},
  295. {-62, 248},
  296. {-58, 249},
  297. {-53, 250},
  298. {-49, 251},
  299. {-44, 252},
  300. {-40, 253},
  301. {-36, 254},
  302. {-31, 254},
  303. {-27, 255},
  304. {-22, 255},
  305. {-18, 255},
  306. {-13, 256},
  307. {-9, 256},
  308. {-4, 256},
  309. {0, 256},
  310. {4, 256},
  311. {9, 256},
  312. {13, 256},
  313. {18, 255},
  314. {22, 255},
  315. {27, 255},
  316. {31, 254},
  317. {36, 254},
  318. {40, 253},
  319. {44, 252},
  320. {49, 251},
  321. {53, 250},
  322. {58, 249},
  323. {62, 248},
  324. {66, 247},
  325. {71, 246},
  326. {75, 245},
  327. {79, 243},
  328. {83, 242},
  329. {88, 241},
  330. {92, 239},
  331. {96, 237},
  332. {100, 236},
  333. {104, 234},
  334. {108, 232},
  335. {112, 230},
  336. {116, 228},
  337. {120, 226},
  338. {124, 224},
  339. {128, 222},
  340. {132, 219},
  341. {136, 217},
  342. {139, 215},
  343. {143, 212},
  344. {147, 210},
  345. {150, 207},
  346. {154, 204},
  347. {158, 202},
  348. {161, 199},
  349. {165, 196},
  350. {168, 193},
  351. {171, 190},
  352. {175, 187},
  353. {178, 184},
  354. {181, 181},
  355. {184, 178},
  356. {187, 175},
  357. {190, 171},
  358. {193, 168},
  359. {196, 165}
  360. };
  361. const USER_BIN_SET g_StaticGamma= {
  362. {0, -9, -26, -38, -46, -49, -48, -41, -30, -15, 4, 28, 57, 88, 125, 0 }, //-5
  363. {0, -8, -22, -32, -39, -40, -39, -33, -23, -11, 4, 24, 47, 71, 101, 0 }, //-4
  364. {0, -6, -18, -26, -30, -31, -29, -24, -17, -7, 4, 19, 36, 54, 75, 0 }, //-3
  365. {0, -5, -13, -18, -21, -21, -19, -16, -11, -4, 3, 13, 24, 37, 51, 0 }, //-2
  366. {0, -2, -7, -9, -10, -10, -9, -8, -5, -1, 2, 7, 12, 17, 23, 0 }, //-1
  367. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, //0
  368. {0, 3, 8, 10, 11, 11, 10, 7, 4, 1, -3, -8, -13, -18, -23, 0 }, //+1
  369. {0, 8, 18, 22, 24, 23, 20, 15, 9, 1, -7, -16, -27, -39, -51, 0 }, //+2
  370. {0, 14, 30, 36, 37, 35, 29, 22, 12, 1, -12, -26, -42, -59, -77, 0 }, //+3
  371. {0, 23, 43, 51, 51, 47, 39, 28, 15, 0, -18, -37, -58, -80, -104, 0 }, //+4
  372. {0, 33, 59, 67, 66, 59, 48, 34, 16, -3, -25, -49, -74, -101, -130, 0 }, //+5
  373. };
  374. const USER_BIN_SET g_BlackLevelExtension= {
  375. {-128, -160, -40, 0, 82, 82, 82, 82, 0, 0, 0, 0, 0, 0, 0, 0 }, //-5
  376. {-64, -160, -40, 0, 66, 66, 66, 66, 0, 0, 0, 0, 0, 0, 0, 0 }, //-4
  377. {0, -160, -40, 0, 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0}, //-3
  378. {0, -96, -24, 0, 30, 30, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0}, //-2
  379. {0, -32, -8, 0, 10, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0 }, //-1
  380. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, //0
  381. {0, 32, 8, 0, -10, -10, -10, -10, 0, 0, 0, 0, 0, 0, 0, 0}, //+1
  382. {0, 96, 24, 0, -30, -30, -30, -30, 0, 0, 0, 0, 0, 0, 0, 0 }, //+2
  383. {0, 160, 40, 0, -50, -50, -50, -50, 0, 0, 0, 0, 0, 0, 0, 0 }, //+3
  384. {64, 160, 40, 0, -66, -66, -66, -66, 0, 0, 0, 0, 0, 0, 0, 0 }, //+4
  385. {128, 160, 40, 0, -82, -82, -82, -82, 0, 0, 0, 0, 0, 0, 0, 0 }, //+5
  386. };
  387. const USER_BIN_SET g_WhiteLevelExtension= {
  388. {0, 0, 0, 0, 0, 0, 0, 0, -62, -62, -62, -62, 0, 24, 96, 128 }, // -5
  389. {0, 0, 0, 0, 0, 0, 0, 0, -46, -46, -46, -46, 0, 24, 96, 64 }, //-4
  390. {0, 0, 0, 0, 0, 0, 0, 0, -30, -30, -30, -30, 0, 24, 96, 0}, //-3
  391. {0, 0, 0, 0, 0, 0, 0, 0, -20, -20, -20, -20, 0, 16, 64, 0}, //-2
  392. {0, 0, 0, 0, 0, 0, 0, 0, -10, -10, -10, -10, 0, 8, 32, 0}, //-1
  393. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, //0
  394. {0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 10, 0, -8, -32, 0}, //+1
  395. {0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 0, -16, -64, 0}, //+2
  396. {0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 30, 30, 0, -24, -96, 0}, //+3
  397. {0, 0, 0, 0, 0, 0, 0, 0, 46, 46, 46, 46, 0, -24, -96, -64 }, //+4
  398. {0, 0, 0, 0, 0, 0, 0, 0, 62, 62, 62, 62, 0, -24, -96, -128 }, //+5
  399. };
  400. const DC_STRENGTH DCStrength[PQ_MAX_ITEM_DEGREE]=
  401. {
  402. {0x100, 0x100, 0, 0, 0},
  403. {0x106, 0xf9, 0, 0, 0},
  404. {0x10c, 0xf3, 0, 0x04, -0x04},
  405. {0x113, 0xee, 0, 0x08, -0x08},
  406. {0x119, 0xe8, 0, 0x10, -0x10}, // 4
  407. {0x120, 0xe3, 1, 0x14, -0x14},
  408. {0x126, 0xde, 1, 0x18, -0x18},
  409. {0x12c, 0xd9, 1, 0x1c, -0x1c},
  410. {0x134, 0xd5, 1, 0x20, -0x20}, //8
  411. {0x139, 0xd0, 1, 0x1c, -0x1c},
  412. {0x140, 0xcc, 1, 0x18, -0x18},
  413. {0x146, 0xc8, 0, 0x14, -0x14},
  414. {0x14c, 0xc4, 1, 0x10, -0x10}, //0xc
  415. {0x159, 0xbd, 1, 0x08, -0x08},
  416. {0x166, 0xb6, 1, 0x04, -0x04},
  417. {0x173, 0xb0, 1, 0, 0},
  418. };
  419. const PEAKING_STRENGTH PeakingStrength[PQ_MAX_PEAKING_DEGREE]=
  420. {
  421. {8, 2, 0, 0},
  422. {5, 4, 3, 1},
  423. {1, 7, 2, 1},
  424. {-2, 16, -2, -2},
  425. {-6, 12, 2, -2},
  426. {-9, 7, 6, 0},
  427. {-8, 1, 6, 3},
  428. {-11, 2, 7, 4},
  429. };
  430. const LUMA_TNR_CORING LTNRCoring[PQ_MAX_ITEM_DEGREE]=
  431. {
  432. {0, 0, 0, 64},
  433. {0, 2, 5, 64},
  434. {0, 5, 10, 64},
  435. {0, 8, 20, 64},
  436. {0, 10, 30, 64},
  437. {0, 12, 32, 64},
  438. {0, 15, 35, 64},
  439. {0, 18, 38, 64},
  440. {0, 20, 40, 64},
  441. {4, 24, 44, 64},
  442. {8, 28, 48, 64},
  443. {12, 32, 52, 64},
  444. {16, 36, 56, 64},
  445. {20, 40, 60, 64},
  446. {24, 44, 64, 64},
  447. {32, 52, 72, 64},
  448. };
  449. const LUMA_TNR_STRENGTH ATVLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  450. {
  451. {63, 63, 63, 63},
  452. {56, 56, 56, 56},
  453. {48, 48, 48, 48},
  454. {40, 40, 40, 40},
  455. {32, 32, 32, 32}, // 4
  456. {27, 27, 27, 27},
  457. {25, 25, 25, 25},
  458. {21, 21, 21, 21},
  459. {16, 16, 16, 16}, // 8
  460. {13, 13, 13, 13},
  461. {10, 10, 10, 10},
  462. {7, 7, 7, 7},
  463. {4, 4, 4, 4}, // 12
  464. {3, 3, 3, 3},
  465. {2, 2, 2, 2},
  466. {1, 1, 1, 1},
  467. };
  468. const LUMA_TNR_STRENGTH AVLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  469. {
  470. {63, 63, 63, 63},
  471. {52, 52, 52, 52},
  472. {40, 40, 40, 40},
  473. {28, 28, 28, 28},
  474. {16, 16, 16, 16}, // 4
  475. {14, 14, 14, 14},
  476. {12, 12, 12, 12},
  477. {10, 10, 10, 10},
  478. {8, 8, 8, 8}, // 8
  479. {7, 7, 7, 7},
  480. {6, 6, 6, 6},
  481. {5, 5, 5, 5},
  482. {4, 4, 4, 4}, // 12
  483. {3, 3, 3, 3},
  484. {2, 2, 2, 2},
  485. {1,01, 1, 1},
  486. };
  487. const LUMA_TNR_STRENGTH SDLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  488. {
  489. {63, 63, 63, 63},
  490. {52, 52, 52, 52},
  491. {40, 40, 40, 40},
  492. {28, 28, 28, 28},
  493. {16, 16, 16, 16}, // 4
  494. {14, 14, 14, 14},
  495. {12, 12, 12, 12},
  496. {10, 10, 10, 10},
  497. {8, 8, 8, 8}, // 8
  498. {7, 7, 7, 7},
  499. {6, 6, 6, 6},
  500. {5, 5, 5, 5},
  501. {4, 4, 4, 4}, // 12
  502. {3, 3, 3, 3},
  503. {2, 2, 2, 2},
  504. {1, 1, 1, 1},
  505. };
  506. const LUMA_TNR_STRENGTH HDLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  507. {
  508. {63, 63, 63, 63},
  509. {54, 54, 54, 54},
  510. {44, 44, 44, 44},
  511. {34, 34, 34, 34},
  512. {24, 24, 24, 24}, // 4
  513. {22, 22, 22, 22},
  514. {20, 20, 20, 20},
  515. {18, 18, 18, 18},
  516. {16, 16, 16, 16}, // 8
  517. {13, 13, 13, 13},
  518. {10, 10, 10, 10},
  519. {7, 7, 7, 7},
  520. {4, 4, 4, 4}, // 12
  521. {3, 3, 3, 3},
  522. {2, 2, 2, 2},
  523. {1, 1, 1, 1},
  524. };
  525. const LUMA_TNR_STRENGTH PCSDLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  526. {
  527. {63, 63, 63, 63},
  528. {52, 52, 52, 52},
  529. {40, 40, 40, 40},
  530. {28, 28, 28, 28},
  531. {16, 16, 16, 16}, // 4
  532. {14, 14, 14, 14},
  533. {12, 12, 12, 12},
  534. {10, 10, 10, 10},
  535. {8, 8, 8, 8}, // 8
  536. {7, 7, 7, 7},
  537. {6, 6, 6, 6},
  538. {5, 5, 5, 5},
  539. {4, 4, 4, 4}, // 12
  540. {3, 3, 3, 3},
  541. {2, 2, 2, 2},
  542. {1, 1, 1, 1},
  543. };
  544. const LUMA_TNR_STRENGTH PCHDLTNRStrength[PQ_MAX_ITEM_DEGREE]=
  545. {
  546. {63, 63, 63, 63},
  547. {54, 54, 54, 54},
  548. {44, 44, 44, 44},
  549. {34, 34, 34, 34},
  550. {24, 24, 24, 24}, // 4
  551. {22, 22, 22, 22},
  552. {20, 20, 20, 20},
  553. {18, 18, 18, 18},
  554. {16, 16, 16, 16}, // 8
  555. {13, 13, 13, 13},
  556. {10, 10, 10, 10},
  557. {7, 07, 07, 07},
  558. {4, 04, 04, 04}, // 12
  559. {3, 03, 03, 03},
  560. {2, 02, 02, 02},
  561. {1, 01, 01, 01},
  562. };
  563. const CHROMA_TNR_CORING CTNRCoring[PQ_MAX_ITEM_DEGREE]=
  564. {
  565. {0},
  566. {0},
  567. {0},
  568. {0},
  569. {0},
  570. {4},
  571. {8},
  572. {12},
  573. {16},
  574. {20},
  575. {24},
  576. {28},
  577. {32},
  578. {36},
  579. {40},
  580. {48},
  581. };
  582. const CHROMA_TNR_CORING ATVCTNRCoring[PQ_MAX_ITEM_DEGREE]=
  583. {
  584. {0},
  585. {2},
  586. {4},
  587. {6},
  588. {8},
  589. {10},
  590. {12},
  591. {14},
  592. {16},
  593. {18},
  594. {20},
  595. {22},
  596. {24},
  597. {26},
  598. {28},
  599. {30},
  600. };
  601. const CHROMA_TNR_CORING SDCTNRCoring[PQ_MAX_ITEM_DEGREE]=
  602. {
  603. {0},
  604. {0},
  605. {0},
  606. {0},
  607. {0},
  608. {0},
  609. {0},
  610. {0},
  611. {0},
  612. {6},
  613. {12},
  614. {18},
  615. {24},
  616. {30},
  617. {36},
  618. {42},
  619. };
  620. const CHROMA_TNR_CORING HDCTNRCoring[PQ_MAX_ITEM_DEGREE]=
  621. {
  622. {0},
  623. {0},
  624. {0},
  625. {0},
  626. {0},
  627. {0},
  628. {0},
  629. {0},
  630. {0},
  631. {6},
  632. {12},
  633. {18},
  634. {24},
  635. {30},
  636. {36},
  637. {42},
  638. };
  639. const CHROMA_TNR_STRENGTH CTNRStrength[PQ_MAX_ITEM_DEGREE]=
  640. {
  641. {0},
  642. {2},
  643. {5},
  644. {9},
  645. {14},
  646. {20},
  647. {27},
  648. {35},
  649. {44},
  650. {54},
  651. {65},
  652. {77},
  653. {90},
  654. {104},
  655. {154},
  656. {200},
  657. };
  658. const CHROMA_TNR_STRENGTH CVD2CTNRStrength[PQ_MAX_ITEM_DEGREE]=
  659. {
  660. {0},
  661. {2},
  662. {4},
  663. {6},
  664. {8},
  665. {10},
  666. {12},
  667. {14},
  668. {16},
  669. {18},
  670. {20},
  671. {22},
  672. {24},
  673. {26},
  674. {28},
  675. {30},
  676. };
  677. const TNR_ULTRA_LOW TnrUltraLowAlpha[PQ_MAX_ITEM_DEGREE] =
  678. {
  679. {63},
  680. {60},
  681. {56},
  682. {53},
  683. {48},
  684. {46},
  685. {43},
  686. {40},
  687. {38},
  688. {37},
  689. {35},
  690. {33},
  691. {32},
  692. {28},
  693. {24},
  694. {20},
  695. };
  696. const LUMA_SNR1_CORING LSNR1Coring[PQ_MAX_LSNR_DEGREE]=
  697. {
  698. {0, 0, 24}, // 0
  699. {0, 8, 24},
  700. {0, 16, 24},
  701. {0, 24, 24},
  702. {0, 32, 22}, // 4
  703. {4, 36, 21},
  704. {8, 40, 19},
  705. {12, 44, 17},
  706. {16, 48, 16}, // 8
  707. {20, 52, 15},
  708. {24, 56, 13},
  709. {28, 60, 11},
  710. {32, 64, 10}, // 12
  711. {40, 72, 8},
  712. {48, 80, 6},
  713. {64, 96, 4},
  714. {80, 112, 2}, // 16
  715. {100, 132, 0},
  716. {120, 152, 0},
  717. {140, 172, 0},
  718. {160, 192, 0}, // 20
  719. {180, 212, 0},
  720. {200, 232, 0},
  721. {223, 255, 0},
  722. };
  723. const LUMA_SNR1_STRENGTH LSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  724. {
  725. {0 }, // 0
  726. {4 },
  727. {8 },
  728. {12},
  729. {16},
  730. {20},
  731. {24},
  732. {28},
  733. {32}, // 8
  734. {36},
  735. {40},
  736. {44},
  737. {48}, // 12
  738. {52},
  739. {56},
  740. {63},
  741. };
  742. const LUMA_SNR1_STRENGTH ATVLSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  743. {
  744. { 8}, // 0
  745. {16},
  746. {24},
  747. {32},
  748. {40},
  749. {48},
  750. {56},
  751. {64},
  752. {72}, // 8
  753. {80},
  754. {88},
  755. {96},
  756. {104}, // 12
  757. {112},
  758. {120},
  759. {127},
  760. };
  761. const LUMA_SNR1_STRENGTH AVLSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  762. {
  763. { 0}, // 0
  764. { 2},
  765. { 4},
  766. { 6},
  767. { 8},
  768. {10 },
  769. {12},
  770. {14},
  771. {16}, // 8
  772. {20},
  773. {24},
  774. {28},
  775. {32}, // 12
  776. {40},
  777. {48},
  778. {56},
  779. };
  780. const LUMA_SNR1_STRENGTH SDSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  781. {
  782. { 0}, // 0
  783. { 2},
  784. { 4},
  785. { 6},
  786. { 8},
  787. {10 },
  788. {12},
  789. {14},
  790. {16}, // 8
  791. {20},
  792. {24},
  793. {28},
  794. {32}, // 12
  795. {40},
  796. {48},
  797. {56},
  798. };
  799. const LUMA_SNR1_STRENGTH HDSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  800. {
  801. {0 }, // 0
  802. {0 },
  803. {0 },
  804. {0 },
  805. {0 },
  806. {4 },
  807. {8 },
  808. {12},
  809. {16}, // 8
  810. {20},
  811. {24},
  812. {28},
  813. {32}, // 12
  814. {40},
  815. {48},
  816. {56},
  817. };
  818. const LUMA_SNR1_STRENGTH PCSDSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  819. {
  820. { 0}, // 0
  821. { 0},
  822. { 0},
  823. { 0},
  824. { 0},
  825. { 1 },
  826. { 2},
  827. { 3},
  828. { 4}, // 8
  829. { 5},
  830. { 6},
  831. { 7},
  832. { 8}, // 12
  833. { 9},
  834. {10},
  835. {11},
  836. };
  837. const LUMA_SNR1_STRENGTH PCHDSNR1Strength[PQ_MAX_ITEM_DEGREE]=
  838. {
  839. { 0}, // 0
  840. { 0},
  841. { 0},
  842. { 0},
  843. { 0},
  844. { 1},
  845. { 2},
  846. { 3},
  847. { 4}, // 8
  848. { 5},
  849. { 6},
  850. { 7},
  851. { 8}, // 12
  852. { 9},
  853. {10},
  854. {11},
  855. };
  856. const LUMA_SNR2_CORING LSNR2Coring[PQ_MAX_LSNR_DEGREE]=
  857. {
  858. {0, 0, 24},
  859. {0, 8, 24},
  860. {0, 16, 24},
  861. {0, 24, 24},
  862. {0, 32, 22}, // 4
  863. {4, 36, 21},
  864. {8, 40, 19},
  865. {12, 44, 17},
  866. {16, 48, 16}, //8
  867. {20, 52, 15},
  868. {24, 56, 13},
  869. {28, 60, 11},
  870. {32, 64, 10}, // 12
  871. {40, 72, 8},
  872. {48, 80, 6},
  873. {64, 96, 4},
  874. {80, 112, 2}, // 16
  875. {100, 132, 0},
  876. {120, 152, 0},
  877. {140, 172, 0},
  878. {160, 192, 0}, // 20
  879. {180, 212, 0},
  880. {200, 232, 0},
  881. {223, 255, 0},
  882. };
  883. const LUMA_SNR2_STRENGTH LSNR2Strength[PQ_MAX_ITEM_DEGREE]=
  884. {
  885. {63}, // 0
  886. {56},
  887. {48},
  888. {44},
  889. {40}, // 4
  890. {38},
  891. {36},
  892. {34},
  893. {32}, //8
  894. {30},
  895. {28},
  896. {26},
  897. {24}, // 12
  898. {16},
  899. {8},
  900. {0},
  901. };
  902. const CHROMA_SNR_CORING CSNRCoring[PQ_MAX_ITEM_DEGREE]=
  903. {
  904. {0,0,4,6,24},
  905. {0,8,4,6,24},
  906. {0,16,4,6,24},
  907. {0,24,4,6,24},
  908. {0,32,4,6,22},
  909. {4,36,4,6,21},
  910. {8,40,4,6,19},
  911. {12,44,4,6,17},
  912. {16,48,4,6,16},
  913. {20,52,4,6,15},
  914. {24,56,4,6,13},
  915. {28,60,4,6,11},
  916. {32,64,4,6,10},
  917. {36,68,4,6,8},
  918. {40,72,4,6,6},
  919. {48,76,4,6,4},
  920. };
  921. const CHROMA_SNR_STRENGTH CSNRStrength[PQ_MAX_ITEM_DEGREE]=
  922. {
  923. { 0},
  924. { 4},
  925. { 8},
  926. {12},
  927. {16},
  928. {20},
  929. {24},
  930. {28},
  931. {32},
  932. {36},
  933. {40},
  934. {44},
  935. {48},
  936. {52},
  937. {56},
  938. {60},
  939. };
  940. const SNR1_ULTRA_LOW Snr1UltraLowCoring[PQ_MAX_SNR_ULOW_DEGREE] =
  941. {
  942. {0},
  943. {0},
  944. {0},
  945. {0},
  946. {0},
  947. {4},
  948. {8},
  949. {12},
  950. {16},
  951. {20},
  952. {24},
  953. {28},
  954. {32},
  955. {40},
  956. {48},
  957. {64},
  958. {80},
  959. {100},
  960. {120},
  961. {140},
  962. {160},
  963. {180},
  964. {200},
  965. {223},
  966. };
  967. const SNR2_ULTRA_LOW Snr2UltraLowCoring[PQ_MAX_SNR_ULOW_DEGREE] =
  968. {
  969. {0},
  970. {0},
  971. {0},
  972. {0},
  973. {0},
  974. {4},
  975. {8},
  976. {12},
  977. {16},
  978. {20},
  979. {24},
  980. {28},
  981. {32},
  982. {40},
  983. {48},
  984. {64},
  985. {80},
  986. {100},
  987. {120},
  988. {140},
  989. {160},
  990. {180},
  991. {200},
  992. {223},
  993. };
  994. const BLOCK_NR_CORING BlockNrCoring[PQ_MAX_MPEGNR_DEGREE]=
  995. {
  996. {0},
  997. {6},
  998. {7},
  999. {8},
  1000. {9},
  1001. {10},
  1002. {12},
  1003. {14},
  1004. {16},
  1005. {18},
  1006. };
  1007. const BLOCK_NR_STRENGTH BlockNrStrength[PQ_MAX_MPEGNR_DEGREE]=
  1008. {
  1009. {0, 0},
  1010. {22, 15},
  1011. {14, 14},
  1012. {18, 12},
  1013. {22, 10},
  1014. {26, 8},
  1015. {30, 7},
  1016. {34, 6},
  1017. {38, 4},
  1018. {42, 2},
  1019. };
  1020. const MOSQUITO_NR_CORING MosquitoNrCoring[PQ_MAX_MPEGNR_DEGREE]=
  1021. {
  1022. {0, 0},
  1023. {10, 10},
  1024. {16, 16},
  1025. {21, 21},
  1026. {27, 27},
  1027. {32, 32},
  1028. {37, 37},
  1029. {43, 43},
  1030. {48, 48},
  1031. {56, 56},
  1032. };
  1033. const MOSQUITO_NR_STRENGTH MosquitoNrStrength[PQ_MAX_MPEGNR_DEGREE]=
  1034. {
  1035. {0},
  1036. {5},
  1037. {10},
  1038. {13},
  1039. {17},
  1040. {20},
  1041. {22},
  1042. {24},
  1043. {26},
  1044. {28},
  1045. };
  1046. const CR_HUE ANGLE_TABLE[360]=
  1047. {
  1048. {0 ,256 },
  1049. {4 ,256 },
  1050. {9 ,256 },
  1051. {13 ,256 },
  1052. {18 ,255 },
  1053. {22 ,255 },
  1054. {27 ,255 },
  1055. {31 ,254 },
  1056. {36 ,254 },
  1057. {40 ,253 },
  1058. {44 ,252 },
  1059. {49 ,251 },
  1060. {53 ,250 },
  1061. {58 ,249 },
  1062. {62 ,248 },
  1063. {66 ,247 },
  1064. {71 ,246 },
  1065. {75 ,245 },
  1066. {79 ,243 },
  1067. {83 ,242 },
  1068. {88 ,241 },
  1069. {92 ,239 },
  1070. {96 ,237 },
  1071. {100 ,236 },
  1072. {104 ,234 },
  1073. {108 ,232 },
  1074. {112 ,230 },
  1075. {116 ,228 },
  1076. {120 ,226 },
  1077. {124 ,224 },
  1078. {128 ,222 },
  1079. {132 ,219 },
  1080. {136 ,217 },
  1081. {139 ,215 },
  1082. {143 ,212 },
  1083. {147 ,210 },
  1084. {150 ,207 },
  1085. {154 ,204 },
  1086. {158 ,202 },
  1087. {161 ,199 },
  1088. {165 ,196 },
  1089. {168 ,193 },
  1090. {171 ,190 },
  1091. {175 ,187 },
  1092. {178 ,184 },
  1093. {181 ,181 },
  1094. {184 ,178 },
  1095. {187 ,175 },
  1096. {190 ,171 },
  1097. {193 ,168 },
  1098. {196 ,165 },
  1099. {199 ,161 },
  1100. {202 ,158 },
  1101. {204 ,154 },
  1102. {207 ,150 },
  1103. {210 ,147 },
  1104. {212 ,143 },
  1105. {215 ,139 },
  1106. {217 ,136 },
  1107. {219 ,132 },
  1108. {222 ,128 },
  1109. {224 ,124 },
  1110. {226 ,120 },
  1111. {228 ,116 },
  1112. {230 ,112 },
  1113. {232 ,108 },
  1114. {234 ,104 },
  1115. {236 ,100 },
  1116. {237 ,96 },
  1117. {239 ,92 },
  1118. {241 ,88 },
  1119. {242 ,83 },
  1120. {243 ,79 },
  1121. {245 ,75 },
  1122. {246 ,71 },
  1123. {247 ,66 },
  1124. {248 ,62 },
  1125. {249 ,58 },
  1126. {250 ,53 },
  1127. {251 ,49 },
  1128. {252 ,44 },
  1129. {253 ,40 },
  1130. {254 ,36 },
  1131. {254 ,31 },
  1132. {255 ,27 },
  1133. {255 ,22 },
  1134. {255 ,18 },
  1135. {256 ,13 },
  1136. {256 ,9 },
  1137. {256 ,4 },
  1138. {256 ,0 },
  1139. {256 ,-4 },
  1140. {256 ,-9 },
  1141. {256 ,-13 },
  1142. {255 ,-18 },
  1143. {255 ,-22 },
  1144. {255 ,-27 },
  1145. {254 ,-31 },
  1146. {254 ,-36 },
  1147. {253 ,-40 },
  1148. {252 ,-44 },
  1149. {251 ,-49 },
  1150. {250 ,-53 },
  1151. {249 ,-58 },
  1152. {248 ,-62 },
  1153. {247 ,-66 },
  1154. {246 ,-71 },
  1155. {245 ,-75 },
  1156. {243 ,-79 },
  1157. {242 ,-83 },
  1158. {241 ,-88 },
  1159. {239 ,-92 },
  1160. {237 ,-96 },
  1161. {236 ,-100 },
  1162. {234 ,-104 },
  1163. {232 ,-108 },
  1164. {230 ,-112 },
  1165. {228 ,-116 },
  1166. {226 ,-120 },
  1167. {224 ,-124 },
  1168. {222 ,-128 },
  1169. {219 ,-132 },
  1170. {217 ,-136 },
  1171. {215 ,-139 },
  1172. {212 ,-143 },
  1173. {210 ,-147 },
  1174. {207 ,-150 },
  1175. {204 ,-154 },
  1176. {202 ,-158 },
  1177. {199 ,-161 },
  1178. {196 ,-165 },
  1179. {193 ,-168 },
  1180. {190 ,-171 },
  1181. {187 ,-175 },
  1182. {184 ,-178 },
  1183. {181 ,-181 },
  1184. {178 ,-184 },
  1185. {175 ,-187 },
  1186. {171 ,-190 },
  1187. {168 ,-193 },
  1188. {165 ,-196 },
  1189. {161 ,-199 },
  1190. {158 ,-202 },
  1191. {154 ,-204 },
  1192. {150 ,-207 },
  1193. {147 ,-210 },
  1194. {143 ,-212 },
  1195. {139 ,-215 },
  1196. {136 ,-217 },
  1197. {132 ,-219 },
  1198. {128 ,-222 },
  1199. {124 ,-224 },
  1200. {120 ,-226 },
  1201. {116 ,-228 },
  1202. {112 ,-230 },
  1203. {108 ,-232 },
  1204. {104 ,-234 },
  1205. {100 ,-236 },
  1206. {96 ,-237 },
  1207. {92 ,-239 },
  1208. {88 ,-241 },
  1209. {83 ,-242 },
  1210. {79 ,-243 },
  1211. {75 ,-245 },
  1212. {71 ,-246 },
  1213. {66 ,-247 },
  1214. {62 ,-248 },
  1215. {58 ,-249 },
  1216. {53 ,-250 },
  1217. {49 ,-251 },
  1218. {44 ,-252 },
  1219. {40 ,-253 },
  1220. {36 ,-254 },
  1221. {31 ,-254 },
  1222. {27 ,-255 },
  1223. {22 ,-255 },
  1224. {18 ,-255 },
  1225. {13 ,-256 },
  1226. {9 ,-256 },
  1227. {4 ,-256 },
  1228. {0 ,-256 },
  1229. {-4 ,-256 },
  1230. {-9 ,-256 },
  1231. {-13 ,-256 },
  1232. {-18 ,-255 },
  1233. {-22 ,-255 },
  1234. {-27 ,-255 },
  1235. {-31 ,-254 },
  1236. {-36 ,-254 },
  1237. {-40 ,-253 },
  1238. {-44 ,-252 },
  1239. {-49 ,-251 },
  1240. {-53 ,-250 },
  1241. {-58 ,-249 },
  1242. {-62 ,-248 },
  1243. {-66 ,-247 },
  1244. {-71 ,-246 },
  1245. {-75 ,-245 },
  1246. {-79 ,-243 },
  1247. {-83 ,-242 },
  1248. {-88 ,-241 },
  1249. {-92 ,-239 },
  1250. {-96 ,-237 },
  1251. {-100 ,-236 },
  1252. {-104 ,-234 },
  1253. {-108 ,-232 },
  1254. {-112 ,-230 },
  1255. {-116 ,-228 },
  1256. {-120 ,-226 },
  1257. {-124 ,-224 },
  1258. {-128 ,-222 },
  1259. {-132 ,-219 },
  1260. {-136 ,-217 },
  1261. {-139 ,-215 },
  1262. {-143 ,-212 },
  1263. {-147 ,-210 },
  1264. {-150 ,-207 },
  1265. {-154 ,-204 },
  1266. {-158 ,-202 },
  1267. {-161 ,-199 },
  1268. {-165 ,-196 },
  1269. {-168 ,-193 },
  1270. {-171 ,-190 },
  1271. {-175 ,-187 },
  1272. {-178 ,-184 },
  1273. {-181 ,-181 },
  1274. {-184 ,-178 },
  1275. {-187 ,-175 },
  1276. {-190 ,-171 },
  1277. {-193 ,-168 },
  1278. {-196 ,-165 },
  1279. {-199 ,-161 },
  1280. {-202 ,-158 },
  1281. {-204 ,-154 },
  1282. {-207 ,-150 },
  1283. {-210 ,-147 },
  1284. {-212 ,-143 },
  1285. {-215 ,-139 },
  1286. {-217 ,-136 },
  1287. {-219 ,-132 },
  1288. {-222 ,-128 },
  1289. {-224 ,-124 },
  1290. {-226 ,-120 },
  1291. {-228 ,-116 },
  1292. {-230 ,-112 },
  1293. {-232 ,-108 },
  1294. {-234 ,-104 },
  1295. {-236 ,-100 },
  1296. {-237 ,-96 },
  1297. {-239 ,-92 },
  1298. {-241 ,-88 },
  1299. {-242 ,-83 },
  1300. {-243 ,-79 },
  1301. {-245 ,-75 },
  1302. {-246 ,-71 },
  1303. {-247 ,-66 },
  1304. {-248 ,-62 },
  1305. {-249 ,-58 },
  1306. {-250 ,-53 },
  1307. {-251 ,-49 },
  1308. {-252 ,-44 },
  1309. {-253 ,-40 },
  1310. {-254 ,-36 },
  1311. {-254 ,-31 },
  1312. {-255 ,-27 },
  1313. {-255 ,-22 },
  1314. {-255 ,-18 },
  1315. {-256 ,-13 },
  1316. {-256 ,-9 },
  1317. {-256 ,-4 },
  1318. {-256 ,0 },
  1319. {-256 ,4 },
  1320. {-256 ,9 },
  1321. {-256 ,13 },
  1322. {-255 ,18 },
  1323. {-255 ,22 },
  1324. {-255 ,27 },
  1325. {-254 ,31 },
  1326. {-254 ,36 },
  1327. {-253 ,40 },
  1328. {-252 ,44 },
  1329. {-251 ,49 },
  1330. {-250 ,53 },
  1331. {-249 ,58 },
  1332. {-248 ,62 },
  1333. {-247 ,66 },
  1334. {-246 ,71 },
  1335. {-245 ,75 },
  1336. {-243 ,79 },
  1337. {-242 ,83 },
  1338. {-241 ,88 },
  1339. {-239 ,92 },
  1340. {-237 ,96 },
  1341. {-236 ,100 },
  1342. {-234 ,104 },
  1343. {-232 ,108 },
  1344. {-230 ,112 },
  1345. {-228 ,116 },
  1346. {-226 ,120 },
  1347. {-224 ,124 },
  1348. {-222 ,128 },
  1349. {-219 ,132 },
  1350. {-217 ,136 },
  1351. {-215 ,139 },
  1352. {-212 ,143 },
  1353. {-210 ,147 },
  1354. {-207 ,150 },
  1355. {-204 ,154 },
  1356. {-202 ,158 },
  1357. {-199 ,161 },
  1358. {-196 ,165 },
  1359. {-193 ,168 },
  1360. {-190 ,171 },
  1361. {-187 ,175 },
  1362. {-184 ,178 },
  1363. {-181 ,181 },
  1364. {-178 ,184 },
  1365. {-175 ,187 },
  1366. {-171 ,190 },
  1367. {-168 ,193 },
  1368. {-165 ,196 },
  1369. {-161 ,199 },
  1370. {-158 ,202 },
  1371. {-154 ,204 },
  1372. {-150 ,207 },
  1373. {-147 ,210 },
  1374. {-143 ,212 },
  1375. {-139 ,215 },
  1376. {-136 ,217 },
  1377. {-132 ,219 },
  1378. {-128 ,222 },
  1379. {-124 ,224 },
  1380. {-120 ,226 },
  1381. {-116 ,228 },
  1382. {-112 ,230 },
  1383. {-108 ,232 },
  1384. {-104 ,234 },
  1385. {-100 ,236 },
  1386. {-96 ,237 },
  1387. {-92 ,239 },
  1388. {-88 ,241 },
  1389. {-83 ,242 },
  1390. {-79 ,243 },
  1391. {-75 ,245 },
  1392. {-71 ,246 },
  1393. {-66 ,247 },
  1394. {-62 ,248 },
  1395. {-58 ,249 },
  1396. {-53 ,250 },
  1397. {-49 ,251 },
  1398. {-44 ,252 },
  1399. {-40 ,253 },
  1400. {-36 ,254 },
  1401. {-31 ,254 },
  1402. {-27 ,255 },
  1403. {-22 ,255 },
  1404. {-18 ,255 },
  1405. {-13 ,256 },
  1406. {-9 ,256 },
  1407. {-4 ,256 },
  1408. };
  1409. const INT32 COLOR_LUTABLE[512]=
  1410. {
  1411. 0x0,
  1412. 0x20000,
  1413. 0x40000,
  1414. 0x5fc00,
  1415. 0x7f800,
  1416. 0xa0000,
  1417. 0xc0000,
  1418. 0xe0000,
  1419. 0x7f,
  1420. 0x1f878,
  1421. 0x3fc6f,
  1422. 0x5f86e,
  1423. 0x7f871,
  1424. 0xa007c,
  1425. 0xc0080,
  1426. 0xe0080,
  1427. 0xfc,
  1428. 0x1f0ee,
  1429. 0x3f4ed,
  1430. 0x5f8f1,
  1431. 0x7fcf7,
  1432. 0xa00ff,
  1433. 0xc0100,
  1434. 0xe0100,
  1435. 0x17a,
  1436. 0x1ed6f,
  1437. 0x3f170,
  1438. 0x5f976,
  1439. 0x7fd7b,
  1440. 0xa0180,
  1441. 0xc0180,
  1442. 0xe0180,
  1443. 0x208,
  1444. 0x1ea08,
  1445. 0x3f208,
  1446. 0x5fa08,
  1447. 0x80200,
  1448. 0xa0200,
  1449. 0xc0200,
  1450. 0xe0200,
  1451. 0x280,
  1452. 0x1fe80,
  1453. 0x3fe80,
  1454. 0x60280,
  1455. 0x80280,
  1456. 0xa0280,
  1457. 0xc0280,
  1458. 0xe0280,
  1459. 0x300,
  1460. 0x20300,
  1461. 0x40300,
  1462. 0x60300,
  1463. 0x80300,
  1464. 0xa0300,
  1465. 0xc0300,
  1466. 0xe0300,
  1467. 0x380,
  1468. 0x20380,
  1469. 0x40380,
  1470. 0x60380,
  1471. 0x80380,
  1472. 0xa0380,
  1473. 0xc0380,
  1474. 0xe0380,
  1475. 0x8000000,
  1476. 0x801fc00,
  1477. 0x803f800,
  1478. 0x805c800,
  1479. 0x807ac00,
  1480. 0x80a2000,
  1481. 0x80c4800,
  1482. 0x80e0c00,
  1483. 0x800007a,
  1484. 0x801c027,
  1485. 0x803c800,
  1486. 0x8059800,
  1487. 0x807a000,
  1488. 0x80ab43d,
  1489. 0x80d805a,
  1490. 0x80ec06e,
  1491. 0x80000d8,
  1492. 0x801543d,
  1493. 0x8037030,
  1494. 0x805b861,
  1495. 0x807d89d,
  1496. 0x80afcda,
  1497. 0x80dbcd6,
  1498. 0x80f80dd,
  1499. 0x8000144,
  1500. 0x80128ca,
  1501. 0x8034cd7,
  1502. 0x805b516,
  1503. 0x8080d49,
  1504. 0x80ac968,
  1505. 0x80d5d60,
  1506. 0x80fb159,
  1507. 0x8000208,
  1508. 0x8010608,
  1509. 0x8032e08,
  1510. 0x8059e08,
  1511. 0x8080200,
  1512. 0x80aa1f2,
  1513. 0x80d41e4,
  1514. 0x80fbdd9,
  1515. 0x8000292,
  1516. 0x801a6b3,
  1517. 0x803caab,
  1518. 0x805f296,
  1519. 0x8080689,
  1520. 0x80a6a7d,
  1521. 0x80d5a67,
  1522. 0x80fe259,
  1523. 0xb400309,
  1524. 0xb40f74c,
  1525. 0xb438b48,
  1526. 0x806031a,
  1527. 0x9a7231e,
  1528. 0x9a85f14,
  1529. 0x9ab0f04,
  1530. 0x9aea6f2,
  1531. 0xb40038e,
  1532. 0xb410bd0,
  1533. 0xb438bde,
  1534. 0x805fb9e,
  1535. 0x9a723b3,
  1536. 0x9a853a8,
  1537. 0x9aa6b9d,
  1538. 0x9ad8794,
  1539. 0x10000000,
  1540. 0x1001fc00,
  1541. 0x1003f400,
  1542. 0x1005b000,
  1543. 0x10078800,
  1544. 0x100a8000,
  1545. 0x100cd800,
  1546. 0x100e2400,
  1547. 0x10000078,
  1548. 0x1001a000,
  1549. 0x1003ac00,
  1550. 0x10056c00,
  1551. 0x10078000,
  1552. 0x100c4400,
  1553. 0x100ffc0c,
  1554. 0x100ffc49,
  1555. 0x100000c5,
  1556. 0x10010800,
  1557. 0x10033000,
  1558. 0x1005981a,
  1559. 0x1007f06c,
  1560. 0x100d04a0,
  1561. 0x100ffc81,
  1562. 0x100ffc95,
  1563. 0x10000129,
  1564. 0x1000c479,
  1565. 0x1002fc8c,
  1566. 0x100590e6,
  1567. 0x1008512b,
  1568. 0x100c653f,
  1569. 0x100ffd20,
  1570. 0x100ffd09,
  1571. 0x10000208,
  1572. 0x10008208,
  1573. 0x1002b208,
  1574. 0x10056208,
  1575. 0x10080200,
  1576. 0xffbba22,
  1577. 0xfff71f5,
  1578. 0xfefa20b,
  1579. 0x100002b5,
  1580. 0x10011f1b,
  1581. 0x10037f03,
  1582. 0x1005e2c2,
  1583. 0x1008169f,
  1584. 0xffb2b1d,
  1585. 0xfffa2d3,
  1586. 0xfefa312,
  1587. 0x1680031c,
  1588. 0x1680e3a8,
  1589. 0x16839f9b,
  1590. 0x1005ff4e,
  1591. 0x13472745,
  1592. 0x133893d4,
  1593. 0x133cafbd,
  1594. 0x132ec3d1,
  1595. 0x16800391,
  1596. 0x16811bf3,
  1597. 0x1683d3ff,
  1598. 0x1005e7da,
  1599. 0x134727eb,
  1600. 0x133853ff,
  1601. 0x133a8bff,
  1602. 0x132db3ff,
  1603. 0x18000000,
  1604. 0x1801fc00,
  1605. 0x1803f400,
  1606. 0x1805b000,
  1607. 0x18078800,
  1608. 0x180a8800,
  1609. 0x180ce400,
  1610. 0x180e2800,
  1611. 0x18000078,
  1612. 0x1801a000,
  1613. 0x1803ac00,
  1614. 0x18056c00,
  1615. 0x18078400,
  1616. 0x17fc6c00,
  1617. 0x17fffc04,
  1618. 0x180ffc46,
  1619. 0x180000c5,
  1620. 0x18010800,
  1621. 0x17f33000,
  1622. 0x17f5981a,
  1623. 0x1807f46c,
  1624. 0x17fd3c9b,
  1625. 0x17fffc78,
  1626. 0x17fffc8d,
  1627. 0x18000129,
  1628. 0x17f0c479,
  1629. 0x17f2fc8c,
  1630. 0x17f590e6,
  1631. 0x17f8592a,
  1632. 0x17fc913b,
  1633. 0x17fffd19,
  1634. 0x17fffd01,
  1635. 0x17f00208,
  1636. 0x17f07e08,
  1637. 0x17f2ae08,
  1638. 0x17f56208,
  1639. 0x18080200,
  1640. 0x17ebde21,
  1641. 0x17efa1f0,
  1642. 0x17dfa202,
  1643. 0x180002b9,
  1644. 0x18011325,
  1645. 0x1803770c,
  1646. 0x1805dec6,
  1647. 0x17f77ea2,
  1648. 0x17eab326,
  1649. 0x17df5f51,
  1650. 0x17cf5f88,
  1651. 0x1e80031e,
  1652. 0x1e80dfb1,
  1653. 0x1e839fa3,
  1654. 0x1805ff53,
  1655. 0x1b368b49,
  1656. 0x1b2817e4,
  1657. 0x1b2c17ff,
  1658. 0x1b0d9bff,
  1659. 0x1e800391,
  1660. 0x1e811bf7,
  1661. 0x1e83dfff,
  1662. 0x1805e3e0,
  1663. 0x1b4727f1,
  1664. 0x1b3863ff,
  1665. 0x1b3aa3ff,
  1666. 0x1b2dbbff,
  1667. 0x20000000,
  1668. 0x2001fc00,
  1669. 0x1ff3f400,
  1670. 0x1fd5b000,
  1671. 0x1fb78800,
  1672. 0x1fda8800,
  1673. 0x1fece400,
  1674. 0x200e2800,
  1675. 0x20000078,
  1676. 0x1fd1a000,
  1677. 0x1fa3ac00,
  1678. 0x1f856c00,
  1679. 0x1f978400,
  1680. 0x1f7c6c00,
  1681. 0x1f4ffc04,
  1682. 0x1faffc46,
  1683. 0x1ff000c5,
  1684. 0x1fa10800,
  1685. 0x1f833000,
  1686. 0x1f75981a,
  1687. 0x1f97f46c,
  1688. 0x1f4d3c9b,
  1689. 0x1efffc78,
  1690. 0x1f3ffc8d,
  1691. 0x1fd00129,
  1692. 0x1f90c479,
  1693. 0x1f72fc8c,
  1694. 0x1f7590e6,
  1695. 0x1f68592a,
  1696. 0x1f1c913b,
  1697. 0x1efffd19,
  1698. 0x1f0ffd01,
  1699. 0x1fa00208,
  1700. 0x1f807e08,
  1701. 0x1f52ae08,
  1702. 0x1f656208,
  1703. 0x20080200,
  1704. 0x1f1bde21,
  1705. 0x1eefa1f0,
  1706. 0x1eefa202,
  1707. 0x1fd002b9,
  1708. 0x1fa11325,
  1709. 0x1fb3770c,
  1710. 0x1fd5dec6,
  1711. 0x1fe77ea2,
  1712. 0x1f8ab326,
  1713. 0x1eff5f51,
  1714. 0x1edf5f88,
  1715. 0x2330031e,
  1716. 0x2320dfb1,
  1717. 0x23339fa3,
  1718. 0x2005ff53,
  1719. 0x21968b49,
  1720. 0x217817e4,
  1721. 0x212c17ff,
  1722. 0x20cd9bff,
  1723. 0x23400391,
  1724. 0x23411bf7,
  1725. 0x2343dfff,
  1726. 0x2005e3e0,
  1727. 0x21a727f1,
  1728. 0x219863ff,
  1729. 0x218aa3ff,
  1730. 0x216dbbff,
  1731. 0x28000000,
  1732. 0x2801fc00,
  1733. 0x27d3f400,
  1734. 0x2785b000,
  1735. 0x27378800,
  1736. 0x279a8800,
  1737. 0x27ace400,
  1738. 0x27fe2800,
  1739. 0x28000078,
  1740. 0x2781a000,
  1741. 0x26e3ac00,
  1742. 0x26a56c00,
  1743. 0x26b78400,
  1744. 0x268c6c00,
  1745. 0x25effc04,
  1746. 0x270ffc46,
  1747. 0x27d000c5,
  1748. 0x26e10800,
  1749. 0x26833000,
  1750. 0x2685981a,
  1751. 0x26b7f46c,
  1752. 0x25dd3c9b,
  1753. 0x250ffc78,
  1754. 0x25cffc8d,
  1755. 0x27900129,
  1756. 0x26d0c479,
  1757. 0x2682fc8c,
  1758. 0x268590e6,
  1759. 0x2658592a,
  1760. 0x255c913b,
  1761. 0x250ffd19,
  1762. 0x254ffd01,
  1763. 0x27300208,
  1764. 0x26d07e08,
  1765. 0x2662ae08,
  1766. 0x26956208,
  1767. 0x28080200,
  1768. 0x256bde21,
  1769. 0x24ffa1f0,
  1770. 0x250fa202,
  1771. 0x279002b9,
  1772. 0x27011325,
  1773. 0x2723770c,
  1774. 0x2795dec6,
  1775. 0x27d81ea3,
  1776. 0x26eb5327,
  1777. 0x256fa2d3,
  1778. 0x252fa30a,
  1779. 0x27e00323,
  1780. 0x27b1df92,
  1781. 0x27f41f84,
  1782. 0x2805ff53,
  1783. 0x28080b3f,
  1784. 0x27da77da,
  1785. 0x26eecfcd,
  1786. 0x260fa3c8,
  1787. 0x28000384,
  1788. 0x28021bb8,
  1789. 0x280417e3,
  1790. 0x2805e3e0,
  1791. 0x280807da,
  1792. 0x27fa17ff,
  1793. 0x27dc5bff,
  1794. 0x278ecfff,
  1795. 0x30000000,
  1796. 0x2ff1fc00,
  1797. 0x2fb3f400,
  1798. 0x2f25b000,
  1799. 0x2ea78800,
  1800. 0x2f4a5800,
  1801. 0x2f7ca000,
  1802. 0x2fee1c00,
  1803. 0x2ff00078,
  1804. 0x2f31a000,
  1805. 0x2e23ac00,
  1806. 0x2db56c00,
  1807. 0x2dd77800,
  1808. 0x2d8ba40f,
  1809. 0x2c8f5c2b,
  1810. 0x2e5fac58,
  1811. 0x2fb000c5,
  1812. 0x2e210800,
  1813. 0x2d833000,
  1814. 0x2d85981a,
  1815. 0x2de7dc6f,
  1816. 0x2c6c38b5,
  1817. 0x2b1fdca2,
  1818. 0x2c5ffcb1,
  1819. 0x2f500129,
  1820. 0x2e10c479,
  1821. 0x2d82fc8c,
  1822. 0x2d8590e6,
  1823. 0x2d38312e,
  1824. 0x2b9bc54f,
  1825. 0x2b0f0539,
  1826. 0x2b6ffd28,
  1827. 0x2ec00208,
  1828. 0x2e307e08,
  1829. 0x2d72ae08,
  1830. 0x2dc56208,
  1831. 0x30080200,
  1832. 0x2bcb6de5,
  1833. 0x2b0ecdc2,
  1834. 0x2b3ffda8,
  1835. 0x2f5002b9,
  1836. 0x2e511325,
  1837. 0x2e93770c,
  1838. 0x2f55dec6,
  1839. 0x2fc816a3,
  1840. 0x2e3b2299,
  1841. 0x2bcf1e58,
  1842. 0x2b6ffe2a,
  1843. 0x2fc00323,
  1844. 0x2f71df92,
  1845. 0x2fe41f84,
  1846. 0x3005ff53,
  1847. 0x30080b3f,
  1848. 0x2fda9b46,
  1849. 0x2e3e6b45,
  1850. 0x2ceffedd,
  1851. 0x30000384,
  1852. 0x30021bb8,
  1853. 0x300417e3,
  1854. 0x3005e3e0,
  1855. 0x300807da,
  1856. 0x300a5bc9,
  1857. 0x2fdcffe3,
  1858. 0x2f5f279e,
  1859. 0x38000000,
  1860. 0x37f1fc00,
  1861. 0x3793f800,
  1862. 0x36e5c800,
  1863. 0x3637ac00,
  1864. 0x3709fc00,
  1865. 0x373c1000,
  1866. 0x37ee0400,
  1867. 0x37f0007a,
  1868. 0x36e1c027,
  1869. 0x3593c800,
  1870. 0x34f59800,
  1871. 0x35279800,
  1872. 0x349a184e,
  1873. 0x331c5078,
  1874. 0x35be287c,
  1875. 0x379000d8,
  1876. 0x3591543d,
  1877. 0x34b37030,
  1878. 0x34b5b861,
  1879. 0x3527c89f,
  1880. 0x32fa30ef,
  1881. 0x311c5cf7,
  1882. 0x32de50f9,
  1883. 0x37100144,
  1884. 0x356118ca,
  1885. 0x34b340d7,
  1886. 0x34b5ad16,
  1887. 0x3427e94d,
  1888. 0x31da2978,
  1889. 0x310c4979,
  1890. 0x319e5d78,
  1891. 0x36500208,
  1892. 0x35908e08,
  1893. 0x3492c608,
  1894. 0x34f56e08,
  1895. 0x38080200,
  1896. 0x321a2a00,
  1897. 0x310c45fa,
  1898. 0x314e5df8,
  1899. 0x371002b9,
  1900. 0x35b11325,
  1901. 0x35f3770c,
  1902. 0x3715dec6,
  1903. 0x37a80aa2,
  1904. 0x357a4a9d,
  1905. 0x320c5e87,
  1906. 0x319e6678,
  1907. 0x37b00323,
  1908. 0x3741df92,
  1909. 0x37d41f84,
  1910. 0x3805ff53,
  1911. 0x3808073e,
  1912. 0x37ca5f39,
  1913. 0x357cab41,
  1914. 0x33ae730c,
  1915. 0x38000384,
  1916. 0x38021bb8,
  1917. 0x380417e3,
  1918. 0x3805e3e0,
  1919. 0x380807da,
  1920. 0x380a4fc2,
  1921. 0x37cc93c8,
  1922. 0x371e4f9d,
  1923. };
  1924. const UINT16 LUT17x17DefAngle[17][17] = //[u][v]
  1925. {
  1926. {225, 221, 217, 212, 207, 201, 194, 187, 180, 173, 166, 159, 153, 148, 143, 139, 135, },
  1927. {229, 225, 221, 216, 210, 203, 196, 188, 180, 172, 164, 157, 150, 144, 139, 135, 131, },
  1928. {233, 229, 225, 220, 214, 207, 198, 189, 180, 171, 162, 153, 146, 140, 135, 131, 127, },
  1929. {238, 234, 230, 225, 219, 211, 202, 191, 180, 169, 158, 149, 141, 135, 130, 126, 122, },
  1930. {243, 240, 236, 231, 225, 217, 207, 194, 180, 166, 153, 143, 135, 129, 124, 120, 117, },
  1931. {249, 247, 243, 239, 233, 225, 214, 198, 180, 162, 146, 135, 127, 121, 117, 113, 111, },
  1932. {256, 254, 252, 248, 243, 236, 225, 207, 180, 153, 135, 124, 117, 112, 108, 106, 104, },
  1933. {263, 262, 261, 259, 256, 252, 243, 225, 180, 135, 117, 108, 104, 101, 99, 98, 97, },
  1934. {270, 270, 270, 270, 270, 270, 270, 270, 0, 90, 90, 90, 90, 90, 90, 90, 90, },
  1935. {277, 278, 279, 281, 284, 288, 297, 315, 0, 45, 63, 72, 76, 79, 81, 82, 83, },
  1936. {284, 286, 288, 292, 297, 304, 315, 333, 0, 27, 45, 56, 63, 68, 72, 74, 76, },
  1937. {291, 293, 297, 301, 307, 315, 326, 342, 0, 18, 34, 45, 53, 59, 63, 67, 69, },
  1938. {297, 300, 304, 309, 315, 323, 333, 346, 0, 14, 27, 37, 45, 51, 56, 60, 63, },
  1939. {302, 306, 310, 315, 321, 329, 338, 349, 0, 11, 22, 31, 39, 45, 50, 54, 58, },
  1940. {307, 311, 315, 320, 326, 333, 342, 351, 0, 9, 18, 27, 34, 40, 45, 49, 53, },
  1941. {311, 315, 319, 324, 330, 337, 344, 352, 0, 8, 16, 23, 30, 36, 41, 45, 49, },
  1942. {315, 319, 323, 328, 333, 339, 346, 353, 0, 7, 14, 21, 27, 32, 37, 41, 45, },
  1943. };
  1944. const UINT16 LUT17x17DefSat[17][17] = //[u][v]
  1945. {
  1946. {181, 170, 160, 151, 143, 137, 132, 129, 128, 129, 132, 137, 143, 151, 160, 170, 181, },
  1947. {170, 158, 148, 138, 129, 122, 116, 113, 112, 113, 116, 122, 129, 138, 148, 158, 170, },
  1948. {160, 148, 136, 125, 115, 107, 101, 97, 96, 97, 101, 107, 115, 125, 136, 148, 160, },
  1949. {151, 138, 125, 113, 102, 93, 86, 82, 80, 82, 86, 93, 102, 113, 125, 138, 151, },
  1950. {143, 129, 115, 102, 91, 80, 72, 66, 64, 66, 72, 80, 91, 102, 115, 129, 143, },
  1951. {137, 122, 107, 93, 80, 68, 58, 51, 48, 51, 58, 68, 80, 93, 107, 122, 137, },
  1952. {132, 116, 101, 86, 72, 58, 45, 36, 32, 36, 45, 58, 72, 86, 101, 116, 132, },
  1953. {129, 113, 97, 82, 66, 51, 36, 23, 16, 23, 36, 51, 66, 82, 97, 113, 129, },
  1954. {128, 112, 96, 80, 64, 48, 32, 16, 0, 16, 32, 48, 64, 80, 96, 112, 128, },
  1955. {129, 113, 97, 82, 66, 51, 36, 23, 16, 23, 36, 51, 66, 82, 97, 113, 129, },
  1956. {132, 116, 101, 86, 72, 58, 45, 36, 32, 36, 45, 58, 72, 86, 101, 116, 132, },
  1957. {137, 122, 107, 93, 80, 68, 58, 51, 48, 51, 58, 68, 80, 93, 107, 122, 137, },
  1958. {143, 129, 115, 102, 91, 80, 72, 66, 64, 66, 72, 80, 91, 102, 115, 129, 143, },
  1959. {151, 138, 125, 113, 102, 93, 86, 82, 80, 82, 86, 93, 102, 113, 125, 138, 151, },
  1960. {160, 148, 136, 125, 115, 107, 101, 97, 96, 97, 101, 107, 115, 125, 136, 148, 160, },
  1961. {170, 158, 148, 138, 129, 122, 116, 113, 112, 113, 116, 122, 129, 138, 148, 158, 170, },
  1962. {181, 170, 160, 151, 143, 137, 132, 129, 128, 129, 132, 137, 143, 151, 160, 170, 181, },
  1963. };
  1964. //#ifdef VIP_SW_DC
  1965. #if 1
  1966. ST_SWDC_Param SWDC_Param[]=
  1967. {
  1968. {1, 255, {358, 154, 307, 205, 282, 282 },{190, 200, 230, 512, 512 },200, {128, 128, 128, 128 },256, 256 }
  1969. };
  1970. ST_SWDC_Slope SWDC_HistSlop[] =
  1971. {
  1972. {
  1973. {
  1974. //ATV
  1975. {175, 193, 191, 189, 189, 175, 163, 149, 135, 123, 109, 97, 83, 69, 57, 43 },
  1976. {77, 167, 209, 197, 187, 173, 149, 131, 119, 113, 109, 105, 101, 95, 91, 87 },
  1977. {103, 149, 199, 215, 199, 187, 175, 161, 149, 137, 125, 111, 99, 87, 75, 61 },
  1978. {59, 101, 157, 193, 219, 239, 215, 205, 197, 187, 177, 161, 141, 129, 105, 75 },
  1979. {187, 135, 127, 151, 203, 253, 253, 193, 155, 123, 115, 107, 99, 91, 83, 75 },
  1980. {97, 145, 169, 197, 209, 227, 233, 199, 189, 191, 189, 187, 147, 139, 133, 125 },
  1981. {125, 139, 155, 145, 153, 161, 185, 251, 203, 179, 153, 127, 101, 77, 51, 25 },
  1982. {39, 71, 81, 113, 157, 177, 193, 205, 193, 181, 167, 153, 133, 105, 93, 81 },
  1983. {61, 89, 109, 139, 155, 167, 177, 189, 175, 163, 151, 139, 125, 113, 101, 87 },
  1984. {83, 93, 103, 117, 125, 137, 147, 159, 169, 187, 197, 183, 167, 147, 125, 107 },
  1985. {105, 105, 105, 115, 119, 125, 129, 133, 139, 143, 149, 189, 179, 171, 159, 151 },
  1986. {57, 103, 145, 181, 157, 123, 93, 105, 147, 167, 173, 169, 149, 133, 109, 93 },
  1987. {93, 93, 93, 99, 105, 109, 115, 119, 125, 133, 149, 159, 181, 205, 213, 221 },
  1988. {57, 119, 181, 231, 173, 133, 115, 109, 103, 107, 115, 125, 155, 151, 131, 103 },
  1989. {81, 103, 177, 209, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143 },
  1990. {47, 77, 123, 147, 127, 107, 99, 99, 99, 111, 131, 151, 195, 223, 211, 161 },
  1991. {57, 119, 181, 231, 173, 133, 129, 133, 147, 159, 155, 129, 105, 97, 83, 75 },
  1992. {47, 77, 123, 147, 121, 105, 113, 137, 177, 219, 219, 171, 135, 121, 105, 95 },
  1993. {57, 103, 177, 209, 149, 103, 109, 125, 163, 195, 195, 151, 109, 101, 83, 75 },
  1994. {35, 67, 99, 145, 193, 231, 209, 169, 127, 107, 105, 109, 111, 135, 147, 117 },
  1995. {35, 59, 83, 113, 143, 159, 139, 131, 113, 111, 121, 133, 153, 209, 227, 175 },
  1996. {35, 67, 99, 141, 183, 209, 165, 143, 99, 89, 93, 109, 123, 179, 209, 159 },
  1997. {83, 125, 195, 207, 213, 223, 215, 207, 201, 179, 165, 143, 107, 93, 77, 53 },
  1998. {85, 105, 133, 173, 207, 209, 187, 169, 157, 141, 127, 117, 101, 91, 83, 75 },
  1999. {103, 133, 151, 165, 183, 197, 203, 199, 189, 177, 165, 153, 135, 85, 51, 23 },
  2000. {55, 87, 137, 155, 165, 173, 175, 171, 179, 189, 193, 187, 167, 161, 85, 39 },
  2001. {89, 127, 153, 177, 181, 181, 157, 145, 121, 101, 113, 141, 159, 191, 157, 133 },
  2002. {51, 83, 133, 175, 201, 199, 171, 147, 123, 103, 107, 119, 129, 141, 121, 105 },
  2003. {57, 103, 145, 181, 157, 123, 93, 105, 147, 167, 173, 169, 149, 133, 109, 93 },
  2004. {47, 77, 107, 133, 131, 117, 105, 113, 135, 149, 161, 179, 197, 189, 149, 123 },
  2005. {131, 141, 149, 157, 167, 175, 183, 157, 149, 143, 129, 117, 111, 105, 95, 89 },
  2006. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2007. {57, 103, 145, 181, 157, 123, 93, 105, 147, 167, 173, 169, 149, 133, 109, 93 },
  2008. {47, 77, 107, 133, 131, 117, 105, 113, 135, 149, 161, 179, 197, 189, 149, 123 },
  2009. {131, 141, 149, 157, 167, 175, 183, 157, 149, 143, 129, 117, 111, 105, 95, 89 },
  2010. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2011. }
  2012. },
  2013. };
  2014. ST_SWDC_Chroma SWDC_HistChroma[] =
  2015. {
  2016. {
  2017. {
  2018. //ATV
  2019. {191, 187, 183, 179, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131 },
  2020. {157, 157, 157, 157, 157, 163, 165, 175, 177, 179, 180, 181, 183, 167, 149, 131 },
  2021. {143, 157, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, 165 },
  2022. {167, 177, 185, 193, 189, 183, 179, 173, 167, 163, 157, 153, 147, 141, 141, 131 },
  2023. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2024. {159, 165, 173, 179, 187, 193, 201, 193, 181, 187, 195, 201, 155, 147, 139, 131 },
  2025. {153, 157, 163, 155, 145, 137, 137, 135, 135, 135, 135, 135, 135, 133, 133, 133 },
  2026. {169, 175, 181, 187, 181, 169, 163, 171, 149, 149, 149, 149, 149, 149, 149, 149 },
  2027. {191, 191, 191, 191, 185, 181, 175, 171, 165, 161, 157, 151, 147, 141, 137, 131 },
  2028. {67, 95, 121, 147, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173 },
  2029. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2030. {189, 191, 189, 185, 181, 179, 175, 173, 169, 165, 163, 159, 157, 153, 149, 147 },
  2031. {183, 183, 183, 183, 183, 183, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2032. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2033. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2034. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2035. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2036. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2037. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2038. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2039. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2040. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2041. {131, 141, 149, 159, 167, 177, 185, 195, 187, 179, 179, 179, 179, 179, 179, 179 },
  2042. {149, 153, 157, 163, 167, 173, 177, 179, 181, 183, 185, 187, 187, 187, 187, 187 },
  2043. {199, 193, 187, 177, 175, 171, 167, 163, 159, 155, 151, 147, 143, 139, 135, 131 },
  2044. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2045. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2046. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2047. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2048. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2049. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2050. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2051. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2052. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2053. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2054. {131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131 },
  2055. }
  2056. }
  2057. };
  2058. #endif
  2059. #ifdef NEW_COEFFICIENT
  2060. UINT32 V_SCALING_UP[99]={
  2061. 0x00000289, 0x0AF802AB, 0xFFD50000,
  2062. 0x00000267, 0x0AF602CE, 0xFFD60000,
  2063. 0x00000246, 0x0AF202F2, 0xFFD60000,
  2064. 0x00000227, 0x0AEC0317, 0xFFD70000,
  2065. 0x00000208, 0x0AE6033C, 0xFFD70000,
  2066. 0x000001EA, 0x0ADD0362, 0xFFD80000,
  2067. 0x000001CD, 0x0AD30389, 0xFFD80000,
  2068. 0x000001B0, 0x0AC703B1, 0xFFD80000,
  2069. 0x00000195, 0x0ABA03D9, 0xFFD90000,
  2070. 0x0000017B, 0x0AAB0402, 0xFFD90000,
  2071. 0x00000162, 0x0A9A042B, 0xFFD90000,
  2072. 0x00000149, 0x0A890455, 0xFFDA0000,
  2073. 0x00000132, 0x0A75047F, 0xFFDA0000,
  2074. 0x0000011B, 0x0A6004AA, 0xFFDB0000,
  2075. 0x00000106, 0x0A4A04D5, 0xFFDB0000,
  2076. 0x000000F1, 0x0A320501, 0xFFDC0000,
  2077. 0x000000DD, 0x0A19052D, 0xFFDD0000,
  2078. 0x000000CB, 0x09FF0559, 0xFFDE0000,
  2079. 0x000000B9, 0x09E30586, 0xFFDF0000,
  2080. 0x000000A8, 0x09C605B2, 0xFFE10000,
  2081. 0x00000098, 0x09A805DF, 0xFFE20000,
  2082. 0x00000088, 0x0988060C, 0xFFE40000,
  2083. 0x0000007A, 0x09680638, 0xFFE70000,
  2084. 0x0000006C, 0x09460665, 0xFFE90000,
  2085. 0x0000005F, 0x09230692, 0xFFEC0000,
  2086. 0x00000053, 0x08FF06BE, 0xFFEF0000,
  2087. 0x00000048, 0x08DB06EB, 0xFFF30000,
  2088. 0x0000003D, 0x08B50717, 0xFFF70000,
  2089. 0x00000033, 0x088F0743, 0xFFFC0000,
  2090. 0x0000002A, 0x0867076E, 0x00000000,
  2091. 0x00000022, 0x083F0799, 0x00060000,
  2092. 0x0000001A, 0x081707C3, 0x000C0000,
  2093. 0x00000013, 0x07ED07ED, 0x00130000,
  2094. };
  2095. UINT32 V_SCALING_100_110[99]={
  2096. 0x00000289, 0x0AF802AB, 0xFFD50000,
  2097. 0x00000267, 0x0AF602CE, 0xFFD60000,
  2098. 0x00000246, 0x0AF202F2, 0xFFD60000,
  2099. 0x00000227, 0x0AEC0317, 0xFFD70000,
  2100. 0x00000208, 0x0AE6033C, 0xFFD70000,
  2101. 0x000001EA, 0x0ADD0362, 0xFFD80000,
  2102. 0x000001CD, 0x0AD30389, 0xFFD80000,
  2103. 0x000001B0, 0x0AC703B1, 0xFFD80000,
  2104. 0x00000195, 0x0ABA03D9, 0xFFD90000,
  2105. 0x0000017B, 0x0AAB0402, 0xFFD90000,
  2106. 0x00000162, 0x0A9A042B, 0xFFD90000,
  2107. 0x00000149, 0x0A890455, 0xFFDA0000,
  2108. 0x00000132, 0x0A75047F, 0xFFDA0000,
  2109. 0x0000011B, 0x0A6004AA, 0xFFDB0000,
  2110. 0x00000106, 0x0A4A04D5, 0xFFDB0000,
  2111. 0x000000F1, 0x0A320501, 0xFFDC0000,
  2112. 0x000000DD, 0x0A19052D, 0xFFDD0000,
  2113. 0x000000CB, 0x09FF0559, 0xFFDE0000,
  2114. 0x000000B9, 0x09E30586, 0xFFDF0000,
  2115. 0x000000A8, 0x09C605B2, 0xFFE10000,
  2116. 0x00000098, 0x09A805DF, 0xFFE20000,
  2117. 0x00000088, 0x0988060C, 0xFFE40000,
  2118. 0x0000007A, 0x09680638, 0xFFE70000,
  2119. 0x0000006C, 0x09460665, 0xFFE90000,
  2120. 0x0000005F, 0x09230692, 0xFFEC0000,
  2121. 0x00000053, 0x08FF06BE, 0xFFEF0000,
  2122. 0x00000048, 0x08DB06EB, 0xFFF30000,
  2123. 0x0000003D, 0x08B50717, 0xFFF70000,
  2124. 0x00000033, 0x088F0743, 0xFFFC0000,
  2125. 0x0000002A, 0x0867076E, 0x00000000,
  2126. 0x00000022, 0x083F0799, 0x00060000,
  2127. 0x0000001A, 0x081707C3, 0x000C0000,
  2128. 0x00000013, 0x07ED07ED, 0x00130000,
  2129. };
  2130. UINT32 V_SCALING_110_120[99]={
  2131. 0x000002CE, 0x0A6102EF, 0xFFE20000,
  2132. 0x000002AE, 0x0A5F0311, 0xFFE30000,
  2133. 0x0000028F, 0x0A5B0333, 0xFFE40000,
  2134. 0x00000270, 0x0A570355, 0xFFE50000,
  2135. 0x00000252, 0x0A500378, 0xFFE60000,
  2136. 0x00000234, 0x0A49039C, 0xFFE70000,
  2137. 0x00000218, 0x0A4003C1, 0xFFE80000,
  2138. 0x000001FC, 0x0A3603E5, 0xFFE90000,
  2139. 0x000001E1, 0x0A2B040B, 0xFFEA0000,
  2140. 0x000001C7, 0x0A1E0431, 0xFFEB0000,
  2141. 0x000001AE, 0x0A100457, 0xFFEC0000,
  2142. 0x00000195, 0x0A00047E, 0xFFEE0000,
  2143. 0x0000017D, 0x09EF04A5, 0xFFEF0000,
  2144. 0x00000166, 0x09DD04CC, 0xFFF10000,
  2145. 0x00000150, 0x09CA04F3, 0xFFF20000,
  2146. 0x0000013B, 0x09B6051B, 0xFFF40000,
  2147. 0x00000127, 0x09A00543, 0xFFF60000,
  2148. 0x00000113, 0x0989056C, 0xFFF90000,
  2149. 0x00000100, 0x09710594, 0xFFFB0000,
  2150. 0x000000EE, 0x095805BC, 0xFFFE0000,
  2151. 0x000000DD, 0x093E05E5, 0x00010000,
  2152. 0x000000CC, 0x0923060D, 0x00040000,
  2153. 0x000000BC, 0x09060635, 0x00080000,
  2154. 0x000000AD, 0x08E9065E, 0x000C0000,
  2155. 0x0000009F, 0x08CB0686, 0x00100000,
  2156. 0x00000091, 0x08AC06AE, 0x00150000,
  2157. 0x00000084, 0x088C06D5, 0x001B0000,
  2158. 0x00000078, 0x086B06FD, 0x00210000,
  2159. 0x0000006D, 0x08490724, 0x00270000,
  2160. 0x00000062, 0x0827074A, 0x002E0000,
  2161. 0x00000058, 0x08030770, 0x00350000,
  2162. 0x0000004E, 0x07DF0796, 0x003D0000,
  2163. 0x00000045, 0x07BB07BB, 0x00450000,
  2164. };
  2165. UINT32 V_SCALING_120_130[99]={
  2166. 0x00000302, 0x09ED0322, 0xFFF00000,
  2167. 0x000002E3, 0x09EB0341, 0xFFF10000,
  2168. 0x000002C5, 0x09E70362, 0xFFF30000,
  2169. 0x000002A7, 0x09E30383, 0xFFF40000,
  2170. 0x00000289, 0x09DE03A4, 0xFFF60000,
  2171. 0x0000026D, 0x09D703C6, 0xFFF70000,
  2172. 0x00000251, 0x09CF03E8, 0xFFF80000,
  2173. 0x00000236, 0x09C6040B, 0xFFFA0000,
  2174. 0x0000021B, 0x09BC042E, 0xFFFC0000,
  2175. 0x00000201, 0x09B10451, 0xFFFD0000,
  2176. 0x000001E8, 0x09A40475, 0xFFFF0000,
  2177. 0x000001D0, 0x09960499, 0x00010000,
  2178. 0x000001B8, 0x098804BD, 0x00030000,
  2179. 0x000001A1, 0x097804E2, 0x00050000,
  2180. 0x0000018B, 0x09670507, 0x00080000,
  2181. 0x00000175, 0x0955052B, 0x000B0000,
  2182. 0x00000160, 0x09420550, 0x000E0000,
  2183. 0x0000014C, 0x092D0576, 0x00110000,
  2184. 0x00000139, 0x0918059B, 0x00150000,
  2185. 0x00000126, 0x090205C0, 0x00180000,
  2186. 0x00000114, 0x08EB05E5, 0x001D0000,
  2187. 0x00000103, 0x08D2060A, 0x00210000,
  2188. 0x000000F2, 0x08B9062F, 0x00260000,
  2189. 0x000000E2, 0x089F0654, 0x002B0000,
  2190. 0x000000D3, 0x08840678, 0x00310000,
  2191. 0x000000C4, 0x0868069C, 0x00370000,
  2192. 0x000000B6, 0x084C06C0, 0x003E0000,
  2193. 0x000000A9, 0x082E06E4, 0x00450000,
  2194. 0x0000009C, 0x08100707, 0x004C0000,
  2195. 0x00000090, 0x07F1072A, 0x00540000,
  2196. 0x00000085, 0x07D1074D, 0x005D0000,
  2197. 0x0000007A, 0x07B1076F, 0x00660000,
  2198. 0x00000070, 0x07900790, 0x00700000,
  2199. };
  2200. UINT32 V_SCALING_130_140[99]={
  2201. 0x00000329, 0x09910348, 0xFFFE0000,
  2202. 0x0000030B, 0x098F0366, 0xFFFF0000,
  2203. 0x000002EE, 0x098C0385, 0x00010000,
  2204. 0x000002D1, 0x098803A5, 0x00020000,
  2205. 0x000002B4, 0x098303C4, 0x00040000,
  2206. 0x00000299, 0x097D03E4, 0x00060000,
  2207. 0x0000027D, 0x09760405, 0x00080000,
  2208. 0x00000263, 0x096E0426, 0x00090000,
  2209. 0x00000249, 0x09650447, 0x000C0000,
  2210. 0x0000022F, 0x095B0469, 0x000E0000,
  2211. 0x00000216, 0x094F048A, 0x00100000,
  2212. 0x000001FE, 0x094304AC, 0x00130000,
  2213. 0x000001E6, 0x093604CE, 0x00150000,
  2214. 0x000001CF, 0x092704F1, 0x00180000,
  2215. 0x000001B9, 0x09180513, 0x001C0000,
  2216. 0x000001A3, 0x09080536, 0x001F0000,
  2217. 0x0000018E, 0x08F60558, 0x00230000,
  2218. 0x0000017A, 0x08E4057B, 0x00270000,
  2219. 0x00000166, 0x08D1059D, 0x002B0000,
  2220. 0x00000153, 0x08BD05C0, 0x00300000,
  2221. 0x00000141, 0x08A805E2, 0x00350000,
  2222. 0x0000012F, 0x08920605, 0x003B0000,
  2223. 0x0000011E, 0x087B0627, 0x00400000,
  2224. 0x0000010D, 0x08630649, 0x00470000,
  2225. 0x000000FD, 0x084B066B, 0x004D0000,
  2226. 0x000000EE, 0x0831068C, 0x00540000,
  2227. 0x000000DF, 0x081706AD, 0x005C0000,
  2228. 0x000000D1, 0x07FD06CE, 0x00640000,
  2229. 0x000000C4, 0x07E106EF, 0x006C0000,
  2230. 0x000000B7, 0x07C5070F, 0x00750000,
  2231. 0x000000AA, 0x07A8072F, 0x007F0000,
  2232. 0x0000009F, 0x078A074E, 0x00890000,
  2233. 0x00000094, 0x076C076C, 0x00940000,
  2234. };
  2235. UINT32 V_SCALING_140_150[99]={
  2236. 0x00000348, 0x09480365, 0x000B0000,
  2237. 0x0000032B, 0x09460382, 0x000D0000,
  2238. 0x0000030E, 0x094303A0, 0x000E0000,
  2239. 0x000002F2, 0x094003BE, 0x00100000,
  2240. 0x000002D6, 0x093B03DD, 0x00120000,
  2241. 0x000002BB, 0x093603FC, 0x00140000,
  2242. 0x000002A0, 0x092F041B, 0x00160000,
  2243. 0x00000286, 0x0928043A, 0x00180000,
  2244. 0x0000026D, 0x091F045A, 0x001B0000,
  2245. 0x00000253, 0x0916047A, 0x001D0000,
  2246. 0x0000023B, 0x090B049A, 0x00200000,
  2247. 0x00000223, 0x090004BA, 0x00230000,
  2248. 0x0000020C, 0x08F404DA, 0x00260000,
  2249. 0x000001F5, 0x08E704FB, 0x002A0000,
  2250. 0x000001DE, 0x08D9051B, 0x002D0000,
  2251. 0x000001C9, 0x08CA053C, 0x00310000,
  2252. 0x000001B4, 0x08BA055D, 0x00360000,
  2253. 0x0000019F, 0x08A9057D, 0x003A0000,
  2254. 0x0000018B, 0x0898059E, 0x003F0000,
  2255. 0x00000178, 0x088505BE, 0x00450000,
  2256. 0x00000165, 0x087205DF, 0x004B0000,
  2257. 0x00000153, 0x085D05FF, 0x00510000,
  2258. 0x00000141, 0x0848061F, 0x00570000,
  2259. 0x00000130, 0x0833063F, 0x005E0000,
  2260. 0x00000120, 0x081C065E, 0x00660000,
  2261. 0x00000110, 0x0805067E, 0x006D0000,
  2262. 0x00000101, 0x07ED069D, 0x00760000,
  2263. 0x000000F2, 0x07D406BB, 0x007E0000,
  2264. 0x000000E4, 0x07BA06DA, 0x00880000,
  2265. 0x000000D7, 0x07A006F7, 0x00910000,
  2266. 0x000000CA, 0x07850715, 0x009C0000,
  2267. 0x000000BE, 0x076A0732, 0x00A60000,
  2268. 0x000000B2, 0x074E074E, 0x00B20000,
  2269. };
  2270. UINT32 V_SCALING_150_160[99]={
  2271. 0x00000360, 0x090D037C, 0x00180000,
  2272. 0x00000343, 0x090B0399, 0x00190000,
  2273. 0x00000328, 0x090803B5, 0x001B0000,
  2274. 0x0000030C, 0x090503D3, 0x001D0000,
  2275. 0x000002F1, 0x090103F0, 0x001E0000,
  2276. 0x000002D6, 0x08FB040E, 0x00210000,
  2277. 0x000002BC, 0x08F5042C, 0x00230000,
  2278. 0x000002A3, 0x08EE044A, 0x00250000,
  2279. 0x00000289, 0x08E70468, 0x00280000,
  2280. 0x00000271, 0x08DE0487, 0x002B0000,
  2281. 0x00000259, 0x08D404A5, 0x002E0000,
  2282. 0x00000241, 0x08CA04C4, 0x00310000,
  2283. 0x0000022A, 0x08BF04E3, 0x00350000,
  2284. 0x00000213, 0x08B20502, 0x00390000,
  2285. 0x000001FD, 0x08A50521, 0x003D0000,
  2286. 0x000001E7, 0x08970540, 0x00410000,
  2287. 0x000001D2, 0x0889055F, 0x00460000,
  2288. 0x000001BE, 0x0879057E, 0x004B0000,
  2289. 0x000001AA, 0x0869059D, 0x00510000,
  2290. 0x00000196, 0x085705BC, 0x00570000,
  2291. 0x00000183, 0x084505DA, 0x005D0000,
  2292. 0x00000171, 0x083205F9, 0x00640000,
  2293. 0x0000015F, 0x081F0617, 0x006B0000,
  2294. 0x0000014E, 0x080A0635, 0x00720000,
  2295. 0x0000013D, 0x07F50653, 0x007A0000,
  2296. 0x0000012D, 0x07E00671, 0x00830000,
  2297. 0x0000011D, 0x07C9068E, 0x008C0000,
  2298. 0x0000010E, 0x07B206AB, 0x00950000,
  2299. 0x00000100, 0x079A06C7, 0x009F0000,
  2300. 0x000000F2, 0x078206E3, 0x00A90000,
  2301. 0x000000E4, 0x076906FF, 0x00B40000,
  2302. 0x000000D7, 0x074F071A, 0x00BF0000,
  2303. 0x000000CB, 0x07350735, 0x00CB0000,
  2304. };
  2305. UINT32 V_SCALING_160_170[99]={
  2306. 0x00000373, 0x08DC038F, 0x00230000,
  2307. 0x00000357, 0x08DA03AA, 0x00240000,
  2308. 0x0000033C, 0x08D803C6, 0x00260000,
  2309. 0x00000321, 0x08D403E3, 0x00280000,
  2310. 0x00000307, 0x08D003FF, 0x002A0000,
  2311. 0x000002ED, 0x08CC041C, 0x002C0000,
  2312. 0x000002D3, 0x08C60439, 0x002E0000,
  2313. 0x000002BA, 0x08BF0456, 0x00310000,
  2314. 0x000002A1, 0x08B80473, 0x00340000,
  2315. 0x00000289, 0x08B00490, 0x00370000,
  2316. 0x00000271, 0x08A704AE, 0x003A0000,
  2317. 0x00000259, 0x089D04CC, 0x003E0000,
  2318. 0x00000242, 0x089204E9, 0x00420000,
  2319. 0x0000022C, 0x08870507, 0x00460000,
  2320. 0x00000216, 0x087B0525, 0x004B0000,
  2321. 0x00000200, 0x086E0543, 0x004F0000,
  2322. 0x000001EB, 0x08600560, 0x00550000,
  2323. 0x000001D7, 0x0851057E, 0x005A0000,
  2324. 0x000001C3, 0x0842059C, 0x00600000,
  2325. 0x000001AF, 0x083105B9, 0x00660000,
  2326. 0x0000019C, 0x082005D6, 0x006D0000,
  2327. 0x0000018A, 0x080F05F3, 0x00740000,
  2328. 0x00000178, 0x07FC0610, 0x007C0000,
  2329. 0x00000166, 0x07E9062D, 0x00840000,
  2330. 0x00000155, 0x07D50649, 0x008C0000,
  2331. 0x00000145, 0x07C10665, 0x00950000,
  2332. 0x00000135, 0x07AB0681, 0x009E0000,
  2333. 0x00000126, 0x0796069C, 0x00A80000,
  2334. 0x00000117, 0x077F06B8, 0x00B30000,
  2335. 0x00000108, 0x076806D2, 0x00BD0000,
  2336. 0x000000FB, 0x075006EC, 0x00C90000,
  2337. 0x000000ED, 0x07380706, 0x00D40000,
  2338. 0x000000E1, 0x071F071F, 0x00E10000,
  2339. };
  2340. UINT32 V_SCALING_170_180[99]={
  2341. 0x00000383, 0x08B3039E, 0x002D0000,
  2342. 0x00000368, 0x08B103B9, 0x002E0000,
  2343. 0x0000034D, 0x08AF03D4, 0x00300000,
  2344. 0x00000333, 0x08AC03EF, 0x00320000,
  2345. 0x00000319, 0x08A8040B, 0x00340000,
  2346. 0x000002FF, 0x08A40427, 0x00360000,
  2347. 0x000002E6, 0x089E0443, 0x00390000,
  2348. 0x000002CD, 0x0898045F, 0x003B0000,
  2349. 0x000002B5, 0x0891047C, 0x003E0000,
  2350. 0x0000029D, 0x088A0498, 0x00420000,
  2351. 0x00000285, 0x088104B5, 0x00450000,
  2352. 0x0000026E, 0x087804D2, 0x00490000,
  2353. 0x00000257, 0x086E04EE, 0x004D0000,
  2354. 0x00000241, 0x0863050B, 0x00520000,
  2355. 0x0000022B, 0x08570528, 0x00560000,
  2356. 0x00000215, 0x084B0544, 0x005C0000,
  2357. 0x00000200, 0x083E0561, 0x00610000,
  2358. 0x000001EC, 0x0830057D, 0x00670000,
  2359. 0x000001D8, 0x0821059A, 0x006D0000,
  2360. 0x000001C4, 0x081205B6, 0x00740000,
  2361. 0x000001B1, 0x080205D2, 0x007B0000,
  2362. 0x0000019F, 0x07F105EE, 0x00830000,
  2363. 0x0000018D, 0x07DF060A, 0x008B0000,
  2364. 0x0000017B, 0x07CD0625, 0x00930000,
  2365. 0x0000016A, 0x07BA0640, 0x009C0000,
  2366. 0x00000159, 0x07A7065B, 0x00A50000,
  2367. 0x00000149, 0x07920676, 0x00AF0000,
  2368. 0x00000139, 0x077E0690, 0x00B90000,
  2369. 0x0000012A, 0x076806AA, 0x00C40000,
  2370. 0x0000011C, 0x075206C3, 0x00CF0000,
  2371. 0x0000010E, 0x073C06DC, 0x00DA0000,
  2372. 0x00000100, 0x072506F5, 0x00E60000,
  2373. 0x000000F3, 0x070D070D, 0x00F30000,
  2374. };
  2375. UINT32 V_SCALING_180_190[99]={
  2376. 0x00000390, 0x089103AA, 0x00360000,
  2377. 0x00000375, 0x088F03C4, 0x00370000,
  2378. 0x0000035B, 0x088D03DF, 0x00390000,
  2379. 0x00000341, 0x088A03FA, 0x003B0000,
  2380. 0x00000328, 0x08870415, 0x003D0000,
  2381. 0x0000030E, 0x08820430, 0x003F0000,
  2382. 0x000002F6, 0x087D044C, 0x00420000,
  2383. 0x000002DD, 0x08770467, 0x00440000,
  2384. 0x000002C5, 0x08710483, 0x00480000,
  2385. 0x000002AD, 0x0869049E, 0x004B0000,
  2386. 0x00000296, 0x086104BA, 0x004F0000,
  2387. 0x0000027F, 0x085804D6, 0x00530000,
  2388. 0x00000268, 0x084F04F2, 0x00570000,
  2389. 0x00000252, 0x0844050E, 0x005C0000,
  2390. 0x0000023C, 0x0839052A, 0x00610000,
  2391. 0x00000227, 0x082D0545, 0x00660000,
  2392. 0x00000212, 0x08210561, 0x006C0000,
  2393. 0x000001FE, 0x0814057D, 0x00720000,
  2394. 0x000001EA, 0x08060598, 0x00790000,
  2395. 0x000001D6, 0x07F705B3, 0x00800000,
  2396. 0x000001C3, 0x07E705CE, 0x00870000,
  2397. 0x000001B0, 0x07D705E9, 0x008F0000,
  2398. 0x0000019E, 0x07C70604, 0x00970000,
  2399. 0x0000018C, 0x07B5061F, 0x00A00000,
  2400. 0x0000017B, 0x07A30639, 0x00A90000,
  2401. 0x0000016A, 0x07900653, 0x00B30000,
  2402. 0x0000015A, 0x077D066C, 0x00BD0000,
  2403. 0x0000014A, 0x07690685, 0x00C70000,
  2404. 0x0000013B, 0x0755069E, 0x00D20000,
  2405. 0x0000012C, 0x074006B7, 0x00DE0000,
  2406. 0x0000011E, 0x072A06CF, 0x00E90000,
  2407. 0x00000110, 0x071406E6, 0x00F60000,
  2408. 0x00000103, 0x06FD06FD, 0x01030000,
  2409. };
  2410. UINT32 V_SCALING_190_200[99]={
  2411. 0x0000039A, 0x087403B4, 0x003E0000,
  2412. 0x00000380, 0x087203CE, 0x003F0000,
  2413. 0x00000367, 0x087003E8, 0x00410000,
  2414. 0x0000034D, 0x086D0403, 0x00430000,
  2415. 0x00000334, 0x086A041D, 0x00450000,
  2416. 0x0000031B, 0x08660438, 0x00470000,
  2417. 0x00000303, 0x08610453, 0x004A0000,
  2418. 0x000002EB, 0x085B046E, 0x004D0000,
  2419. 0x000002D3, 0x08550488, 0x00500000,
  2420. 0x000002BB, 0x084E04A4, 0x00530000,
  2421. 0x000002A4, 0x084604BF, 0x00570000,
  2422. 0x0000028D, 0x083E04DA, 0x005B0000,
  2423. 0x00000277, 0x083404F5, 0x00600000,
  2424. 0x00000261, 0x082A0510, 0x00650000,
  2425. 0x0000024B, 0x0820052B, 0x006A0000,
  2426. 0x00000236, 0x08140546, 0x00700000,
  2427. 0x00000221, 0x08080561, 0x00760000,
  2428. 0x0000020D, 0x07FC057C, 0x007C0000,
  2429. 0x000001F9, 0x07EE0596, 0x00830000,
  2430. 0x000001E5, 0x07E005B1, 0x008A0000,
  2431. 0x000001D2, 0x07D105CB, 0x00920000,
  2432. 0x000001BF, 0x07C205E5, 0x009A0000,
  2433. 0x000001AD, 0x07B205FF, 0x00A20000,
  2434. 0x0000019B, 0x07A10619, 0x00AB0000,
  2435. 0x0000018A, 0x078F0632, 0x00B50000,
  2436. 0x00000179, 0x077D064B, 0x00BE0000,
  2437. 0x00000169, 0x076B0664, 0x00C90000,
  2438. 0x00000159, 0x0758067C, 0x00D40000,
  2439. 0x00000149, 0x07440694, 0x00DF0000,
  2440. 0x0000013A, 0x073006AB, 0x00EA0000,
  2441. 0x0000012C, 0x071B06C3, 0x00F70000,
  2442. 0x0000011E, 0x070606D9, 0x01030000,
  2443. 0x00000110, 0x06F006F0, 0x01100000,
  2444. };
  2445. UINT32 V_SCALING_200_250[99]={
  2446. 0x000003BD, 0x081403D5, 0x005B0000,
  2447. 0x000003A4, 0x081203ED, 0x005C0000,
  2448. 0x0000038C, 0x08110406, 0x005D0000,
  2449. 0x00000374, 0x080F041E, 0x005F0000,
  2450. 0x0000035C, 0x080C0437, 0x00610000,
  2451. 0x00000345, 0x0808044F, 0x00640000,
  2452. 0x0000032E, 0x08040468, 0x00660000,
  2453. 0x00000316, 0x07FF0481, 0x006A0000,
  2454. 0x00000300, 0x07FA049A, 0x006D0000,
  2455. 0x000002E9, 0x07F404B2, 0x00710000,
  2456. 0x000002D3, 0x07ED04CB, 0x00750000,
  2457. 0x000002BD, 0x07E504E4, 0x007A0000,
  2458. 0x000002A7, 0x07DD04FD, 0x007F0000,
  2459. 0x00000292, 0x07D50515, 0x00840000,
  2460. 0x0000027C, 0x07CC052E, 0x008A0000,
  2461. 0x00000268, 0x07C20546, 0x00910000,
  2462. 0x00000253, 0x07B7055E, 0x00970000,
  2463. 0x0000023F, 0x07AC0576, 0x009E0000,
  2464. 0x0000022B, 0x07A0058E, 0x00A60000,
  2465. 0x00000218, 0x079405A6, 0x00AE0000,
  2466. 0x00000205, 0x078705BE, 0x00B60000,
  2467. 0x000001F2, 0x077A05D5, 0x00BF0000,
  2468. 0x000001E0, 0x076C05EC, 0x00C90000,
  2469. 0x000001CE, 0x075D0603, 0x00D20000,
  2470. 0x000001BC, 0x074E061A, 0x00DD0000,
  2471. 0x000001AB, 0x073E0630, 0x00E70000,
  2472. 0x0000019A, 0x072E0646, 0x00F20000,
  2473. 0x0000018A, 0x071D065B, 0x00FE0000,
  2474. 0x0000017A, 0x070C0671, 0x010A0000,
  2475. 0x0000016A, 0x06FA0685, 0x01160000,
  2476. 0x0000015B, 0x06E8069A, 0x01230000,
  2477. 0x0000014D, 0x06D506AE, 0x01310000,
  2478. 0x0000013E, 0x06C206C2, 0x013E0000,
  2479. };
  2480. UINT32 V_SCALING_250_300[99]={
  2481. 0x000003CE, 0x07E003E5, 0x006C0000,
  2482. 0x000003B7, 0x07DF03FD, 0x006D0000,
  2483. 0x0000039F, 0x07DE0414, 0x006E0000,
  2484. 0x00000388, 0x07DC042C, 0x00700000,
  2485. 0x00000371, 0x07D90443, 0x00720000,
  2486. 0x0000035B, 0x07D6045B, 0x00750000,
  2487. 0x00000344, 0x07D20473, 0x00770000,
  2488. 0x0000032D, 0x07CE048A, 0x007B0000,
  2489. 0x00000317, 0x07C904A2, 0x007E0000,
  2490. 0x00000301, 0x07C304B9, 0x00820000,
  2491. 0x000002EB, 0x07BD04D1, 0x00870000,
  2492. 0x000002D6, 0x07B604E8, 0x008C0000,
  2493. 0x000002C1, 0x07AF0500, 0x00910000,
  2494. 0x000002AB, 0x07A70517, 0x00970000,
  2495. 0x00000297, 0x079E052E, 0x009D0000,
  2496. 0x00000282, 0x07950545, 0x00A40000,
  2497. 0x0000026E, 0x078C055C, 0x00AB0000,
  2498. 0x0000025A, 0x07810573, 0x00B20000,
  2499. 0x00000246, 0x07760589, 0x00BA0000,
  2500. 0x00000233, 0x076B059F, 0x00C30000,
  2501. 0x00000220, 0x075F05B6, 0x00CB0000,
  2502. 0x0000020D, 0x075305CB, 0x00D50000,
  2503. 0x000001FB, 0x074605E1, 0x00DE0000,
  2504. 0x000001E9, 0x073805F6, 0x00E90000,
  2505. 0x000001D7, 0x072A060C, 0x00F30000,
  2506. 0x000001C6, 0x071B0620, 0x00FE0000,
  2507. 0x000001B5, 0x070C0635, 0x010A0000,
  2508. 0x000001A5, 0x06FD0649, 0x01160000,
  2509. 0x00000194, 0x06ED065D, 0x01220000,
  2510. 0x00000185, 0x06DC0670, 0x012F0000,
  2511. 0x00000175, 0x06CB0683, 0x013C0000,
  2512. 0x00000166, 0x06BA0696, 0x014A0000,
  2513. 0x00000158, 0x06A806A8, 0x01580000,
  2514. };
  2515. UINT32 V_SCALING_300_350[99]={
  2516. 0x000003D8, 0x07C103EF, 0x00770000,
  2517. 0x000003C1, 0x07C10406, 0x00780000,
  2518. 0x000003AB, 0x07BF041D, 0x00790000,
  2519. 0x00000394, 0x07BD0434, 0x007B0000,
  2520. 0x0000037E, 0x07BB044B, 0x007D0000,
  2521. 0x00000367, 0x07B80461, 0x007F0000,
  2522. 0x00000351, 0x07B40478, 0x00820000,
  2523. 0x0000033B, 0x07B0048F, 0x00850000,
  2524. 0x00000325, 0x07AB04A6, 0x00890000,
  2525. 0x00000310, 0x07A604BD, 0x008D0000,
  2526. 0x000002FA, 0x07A004D4, 0x00920000,
  2527. 0x000002E5, 0x079A04EA, 0x00970000,
  2528. 0x000002D0, 0x07930501, 0x009C0000,
  2529. 0x000002BB, 0x078B0518, 0x00A20000,
  2530. 0x000002A6, 0x0783052E, 0x00A90000,
  2531. 0x00000292, 0x077B0544, 0x00AF0000,
  2532. 0x0000027E, 0x0771055A, 0x00B70000,
  2533. 0x0000026A, 0x07680570, 0x00BE0000,
  2534. 0x00000256, 0x075D0586, 0x00C70000,
  2535. 0x00000243, 0x0752059B, 0x00CF0000,
  2536. 0x00000230, 0x074705B0, 0x00D80000,
  2537. 0x0000021E, 0x073B05C5, 0x00E20000,
  2538. 0x0000020B, 0x072F05DA, 0x00EC0000,
  2539. 0x000001F9, 0x072205EF, 0x00F60000,
  2540. 0x000001E8, 0x07150603, 0x01010000,
  2541. 0x000001D6, 0x07070617, 0x010C0000,
  2542. 0x000001C5, 0x06F8062A, 0x01180000,
  2543. 0x000001B5, 0x06E9063E, 0x01240000,
  2544. 0x000001A5, 0x06DA0650, 0x01310000,
  2545. 0x00000195, 0x06CA0663, 0x013E0000,
  2546. 0x00000185, 0x06BA0675, 0x014B0000,
  2547. 0x00000176, 0x06AA0687, 0x01590000,
  2548. 0x00000167, 0x06990699, 0x01670000,
  2549. };
  2550. UINT32 V_SCALING_350_400[99]={
  2551. 0x000003DF, 0x07AD03F5, 0x007F0000,
  2552. 0x000003C8, 0x07AD040C, 0x007F0000,
  2553. 0x000003B2, 0x07AC0422, 0x00800000,
  2554. 0x0000039C, 0x07AA0439, 0x00820000,
  2555. 0x00000385, 0x07A7044F, 0x00840000,
  2556. 0x0000036F, 0x07A50466, 0x00860000,
  2557. 0x0000035A, 0x07A1047C, 0x00890000,
  2558. 0x00000344, 0x079D0493, 0x008D0000,
  2559. 0x0000032E, 0x079904A9, 0x00900000,
  2560. 0x00000319, 0x079404BF, 0x00940000,
  2561. 0x00000303, 0x078E04D6, 0x00990000,
  2562. 0x000002EE, 0x078804EC, 0x009E0000,
  2563. 0x000002D9, 0x07810502, 0x00A40000,
  2564. 0x000002C5, 0x077A0518, 0x00AA0000,
  2565. 0x000002B0, 0x0772052E, 0x00B00000,
  2566. 0x0000029C, 0x07690543, 0x00B70000,
  2567. 0x00000288, 0x07600559, 0x00BF0000,
  2568. 0x00000274, 0x0757056E, 0x00C70000,
  2569. 0x00000261, 0x074D0583, 0x00CF0000,
  2570. 0x0000024E, 0x07430598, 0x00D80000,
  2571. 0x0000023B, 0x073805AD, 0x00E10000,
  2572. 0x00000228, 0x072C05C1, 0x00EA0000,
  2573. 0x00000216, 0x072005D5, 0x00F50000,
  2574. 0x00000204, 0x071405E9, 0x00FF0000,
  2575. 0x000001F2, 0x070705FD, 0x010A0000,
  2576. 0x000001E1, 0x06F90610, 0x01160000,
  2577. 0x000001D0, 0x06EB0623, 0x01220000,
  2578. 0x000001BF, 0x06DD0636, 0x012E0000,
  2579. 0x000001AF, 0x06CE0648, 0x013B0000,
  2580. 0x0000019F, 0x06BF065A, 0x01480000,
  2581. 0x00000190, 0x06AF066C, 0x01550000,
  2582. 0x00000180, 0x069F067D, 0x01630000,
  2583. 0x00000172, 0x068E068E, 0x01720000,
  2584. };
  2585. #endif