home *** CD-ROM | disk | FTP | other *** search
/ MPEG Toolkit / MPEG Toolkit.iso / dos / secmpeg3 / huff.h < prev    next >
Encoding:
Text File  |  1997-01-01  |  5.3 KB  |  705 lines

  1.  
  2. /* Huffmann Tables       */
  3. /* Macroblock addressing */
  4.  
  5. INT MBACoeff[] = {
  6. 1,1,1,
  7. 2,3,3,
  8. 3,3,2,
  9. 4,4,3,
  10. 5,4,2,
  11. 6,5,3,
  12. 7,5,2,
  13. 8,7,7,
  14. 9,7,6,
  15. 10,8,11,
  16. 11,8,10,
  17. 12,8,9,
  18. 13,8,8,
  19. 14,8,7,
  20. 15,8,6,
  21. 16,10,23,
  22. 17,10,22,
  23. 18,10,21,
  24. 19,10,20,
  25. 20,10,19,
  26. 21,10,18,
  27. 22,11,35,
  28. 23,11,34,
  29. 24,11,33,
  30. 25,11,32,
  31. 26,11,31,
  32. 27,11,30,
  33. 28,11,29,
  34. 29,11,28,
  35. 30,11,27,
  36. 31,11,26,
  37. 32,11,25,
  38. 33,11,24,
  39. 34,11,15,             /* Stuffing */
  40. 35,11,8,             /* Escape */
  41. 36,23,0, /* MBSC Head */
  42. -1,-1};
  43.  
  44. /* Table B2 */
  45.  
  46. INT IntraTypeCoeff[] = {
  47. 0,1,1,
  48. 1,2,1,
  49. -1,-1};
  50.  
  51. INT PredictedTypeCoeff[] = {
  52. 0,1,1,
  53. 1,2,1,
  54. 2,3,1,
  55. 3,5,3,
  56. 4,5,2,
  57. 5,5,1,
  58. 6,6,1,
  59. -1,-1};
  60.  
  61. INT InterpolatedTypeCoeff[] = {
  62. 0,2,2,
  63. 1,2,3,
  64. 2,3,2,
  65. 3,3,3,
  66. 4,4,2,
  67. 5,4,3,
  68. 6,5,3,
  69. 7,5,2,
  70. 8,6,3,
  71. 9,6,2,
  72. 10,6,1,
  73. -1,-1};
  74.  
  75. INT DCTypeCoeff[] = {
  76. 0,1,1,
  77. -1,-1};
  78.  
  79. /* Table B3 */
  80.  
  81. INT CBPCoeff[] = {
  82. 60,3,7,
  83. 4,4,13,
  84. 8,4,12,
  85. 16,4,11,
  86. 32,4,10,
  87. 12,5,19,
  88. 48,5,18,
  89. 20,5,17,
  90. 40,5,16,
  91. 28,5,15,
  92. 44,5,14,
  93. 52,5,13,
  94. 56,5,12,
  95. 1,5,11,
  96. 61,5,10,
  97. 2,5,9,
  98. 62,5,8,
  99. 24,6,15,
  100. 36,6,14,
  101. 3,6,13,
  102. 63,6,12,
  103. 5,7,23,
  104. 9,7,22,
  105. 17,7,21,
  106. 33,7,20,
  107. 6,7,19,
  108. 10,7,18,
  109. 18,7,17,
  110. 34,7,16,
  111. 7,8,31,
  112. 11,8,30,
  113. 19,8,29,
  114. 35,8,28,
  115. 13,8,27,
  116. 49,8,26,
  117. 21,8,25,
  118. 41,8,24,
  119. 14,8,23,
  120. 50,8,22,
  121. 22,8,21,
  122. 42,8,20,
  123. 15,8,19,
  124. 51,8,18,
  125. 23,8,17,
  126. 43,8,16,
  127. 25,8,15,
  128. 37,8,14,
  129. 26,8,13,
  130. 38,8,12,
  131. 29,8,11,
  132. 45,8,10,
  133. 53,8,9,
  134. 57,8,8,
  135. 30,8,7,
  136. 46,8,6,
  137. 54,8,5,
  138. 58,8,4,
  139. 31,9,7,
  140. 47,9,6,
  141. 55,9,5,
  142. 59,9,4,
  143. 27,9,3,
  144. 39,9,2,
  145. -1,-1};
  146.  
  147. /* Table B4 (Correct!) */
  148.  
  149. INT MVDCoeff[] = {
  150. 17,11,25,
  151. 18,11,27,
  152. 19,11,29,
  153. 20,11,31,
  154. 21,11,33,
  155. 22,11,35,
  156. 23,10,19,
  157. 24,10,21,
  158. 25,10,23,
  159. 26,8,7,
  160. 27,8,9,
  161. 28,8,11,
  162. 29,7,7,
  163. 30,5,3,
  164. 31,4,3,
  165. 32,3,3,
  166. 0,1,1,
  167. 1,3,2,
  168. 2,4,2,
  169. 3,5,2,
  170. 4,7,6,
  171. 5,8,10,
  172. 6,8,8,
  173. 7,8,6,
  174. 8,10,22,
  175. 9,10,20,
  176. 10,10,18,
  177. 11,11,34,
  178. 12,11,32,
  179. 13,11,30,
  180. 14,11,28,
  181. 15,11,26,
  182. 16,11,24,
  183. -1,-1};
  184.  
  185. /* Table B5 */
  186.  
  187. INT DCLumCoeff[] = {
  188. 0,3,4,
  189. 1,2,0,
  190. 2,2,1,
  191. 3,3,5,
  192. 4,3,6,
  193. 5,4,14,
  194. 6,5,30,
  195. 7,6,62,
  196. 8,7,126,
  197. -1,-1};
  198. /* 8,6,63, 1/15/93*/
  199.  
  200. INT DCChromCoeff[] = {
  201. 0,2,0,
  202. 1,2,1,
  203. 2,2,2,
  204. 3,3,6,
  205. 4,4,14,
  206. 5,5,30,
  207. 6,6,62,
  208. 7,7,126,
  209. 8,8,254,
  210. -1,-1};
  211. /* 8,6,63, 1/15/93*/
  212.  
  213. INT TCoeff1[] = {
  214. 0,2,2, /* EOF */
  215. 1,2,3, /* Not First Coef */
  216. 257,3,3,
  217. 2,4,4,
  218. 513,4,5,
  219. 3,5,5,
  220. 769,5,7,
  221. 1025,5,6,
  222. 258,6,6,
  223. 1281,6,7,
  224. 1537,6,5,
  225. 1793,6,4,
  226. 4,7,6,
  227. 514,7,4,
  228. 2049,7,7,
  229. 2305,7,5,
  230. 5,8,38,
  231. 6,8,33,
  232. 259,8,37,
  233. 770,8,36,
  234. 2561,8,39,
  235. 2817,8,35,
  236. 3073,8,34,
  237. 3329,8,32,
  238. 7,10,10,
  239. 260,10,12,
  240. 515,10,11,
  241. 1026,10,15,
  242. 1282,10,9,
  243. 3585,10,14,
  244. 3841,10,13,
  245. 4097,10,8, /* end of first table */
  246. 8,12,29,
  247. 9,12,24,
  248. 10,12,19,
  249. 11,12,16,
  250. 261,12,27,
  251. 516,12,20,
  252. 771,12,28,
  253. 1027,12,18,
  254. 1538,12,30,
  255. 1794,12,21,
  256. 2050,12,17,
  257. 4353,12,31,
  258. 4609,12,26,
  259. 4865,12,25,
  260. 5121,12,23,
  261. 5377,12,22,
  262. 12,13,26,
  263. 13,13,25,
  264. 14,13,24,
  265. 15,13,23,
  266. 262,13,22,
  267. 263,13,21,
  268. 517,13,20,
  269. 772,13,19,
  270. 1283,13,18,
  271. 2306,13,17,
  272. 2562,13,16,
  273. 5633,13,31,
  274. 5889,13,30,
  275. 6145,13,29,
  276. 6401,13,28,
  277. 6657,13,27, /* end of second table */
  278. 16,14,31,
  279. 17,14,30,
  280. 18,14,29,
  281. 19,14,28,
  282. 20,14,27,
  283. 21,14,26,
  284. 22,14,25,
  285. 23,14,24,
  286. 24,14,23,
  287. 25,14,22,
  288. 26,14,21,
  289. 27,14,20,
  290. 28,14,19,
  291. 29,14,18,
  292. 30,14,17,
  293. 31,14,16,
  294. 32,15,24,
  295. 33,15,23,
  296. 34,15,22,
  297. 35,15,21,
  298. 36,15,20,
  299. 37,15,19,
  300. 38,15,18,
  301. 39,15,17,
  302. 40,15,16,
  303. 264,15,31,
  304. 265,15,30,
  305. 266,15,29,
  306. 267,15,28,
  307. 268,15,27,
  308. 269,15,26,
  309. 270,15,25, /* end of third table */
  310. 271,16,19,
  311. 272,16,18,
  312. 273,16,17,
  313. 274,16,16,
  314. 1539,16,20,
  315. 2818,16,26,
  316. 3074,16,25,
  317. 3330,16,24,
  318. 3586,16,23,
  319. 3842,16,22,
  320. 4098,16,21,
  321. 6913,16,31,
  322. 7169,16,30,
  323. 7425,16,29,
  324. 7681,16,28,
  325. 7937,16,27, /* End of fourth table */
  326. 7167,6,1, /* Escape */
  327. -1,-1
  328. };
  329.  
  330. INT TCoeff2[] = {
  331. 1,1,1, /* First Coef */
  332. 257,3,3,
  333. 2,4,4,
  334. 513,4,5,
  335. 3,5,5,
  336. 769,5,7,
  337. 1025,5,6,
  338. 258,6,6,
  339. 1281,6,7,
  340. 1537,6,5,
  341. 1793,6,4,
  342. 4,7,6,
  343. 514,7,4,
  344. 2049,7,7,
  345. 2305,7,5,
  346. 5,8,38,
  347. 6,8,33,
  348. 259,8,37,
  349. 770,8,36,
  350. 2561,8,39,
  351. 2817,8,35,
  352. 3073,8,34,
  353. 3329,8,32,
  354. 7,10,10,
  355. 260,10,12,
  356. 515,10,11,
  357. 1026,10,15,
  358. 1282,10,9,
  359. 3585,10,14,
  360. 3841,10,13,
  361. 4097,10,8, /* end of first table */
  362. 8,12,29,
  363. 9,12,24,
  364. 10,12,19,
  365. 11,12,16,
  366. 261,12,27,
  367. 516,12,20,
  368. 771,12,28,
  369. 1027,12,18,
  370. 1538,12,30,
  371. 1794,12,21,
  372. 2050,12,17,
  373. 4353,12,31,
  374. 4609,12,26,
  375. 4865,12,25,
  376. 5121,12,23,
  377. 5377,12,22,
  378. 12,13,26,
  379. 13,13,25,
  380. 14,13,24,
  381. 15,13,23,
  382. 262,13,22,
  383. 263,13,21,
  384. 517,13,20,
  385. 772,13,19,
  386. 1283,13,18,
  387. 2306,13,17,
  388. 2562,13,16,
  389. 5633,13,31,
  390. 5889,13,30,
  391. 6145,13,29,
  392. 6401,13,28,
  393. 6657,13,27, /* end of second table */
  394. 16,14,31,
  395. 17,14,30,
  396. 18,14,29,
  397. 19,14,28,
  398. 20,14,27,
  399. 21,14,26,
  400. 22,14,25,
  401. 23,14,24,
  402. 24,14,23,
  403. 25,14,22,
  404. 26,14,21,
  405. 27,14,20,
  406. 28,14,19,
  407. 29,14,18,
  408. 30,14,17,
  409. 31,14,16,
  410. 32,15,24,
  411. 33,15,23,
  412. 34,15,22,
  413. 35,15,21,
  414. 36,15,20,
  415. 37,15,19,
  416. 38,15,18,
  417. 39,15,17,
  418. 40,15,16,
  419. 264,15,31,
  420. 265,15,30,
  421. 266,15,29,
  422. 267,15,28,
  423. 268,15,27,
  424. 269,15,26,
  425. 270,15,25, /* end of third table */
  426. 271,16,19,
  427. 272,16,18,
  428. 273,16,17,
  429. 274,16,16,
  430. 1539,16,20,
  431. 2818,16,26,
  432. 3074,16,25,
  433. 3330,16,24,
  434. 3586,16,23,
  435. 3842,16,22,
  436. 4098,16,21,
  437. 6913,16,31,
  438. 7169,16,30,
  439. 7425,16,29,
  440. 7681,16,28,
  441. 7937,16,27, /* End of fourth table */
  442. 7167,6,1, /* Escape */
  443. -1,-1
  444. };
  445.  
  446.  
  447. INT csize[] = {
  448. 0,
  449. 1,
  450. 2,
  451. 2,
  452. 3,
  453. 3,
  454. 3,
  455. 3,
  456. 4,
  457. 4,
  458. 4,
  459. 4,
  460. 4,
  461. 4,
  462. 4,
  463. 4,
  464. 5,
  465. 5,
  466. 5,
  467. 5,
  468. 5,
  469. 5,
  470. 5,
  471. 5,
  472. 5,
  473. 5,
  474. 5,
  475. 5,
  476. 5,
  477. 5,
  478. 5,
  479. 5,
  480. 6,
  481. 6,
  482. 6,
  483. 6,
  484. 6,
  485. 6,
  486. 6,
  487. 6,
  488. 6,
  489. 6,
  490. 6,
  491. 6,
  492. 6,
  493. 6,
  494. 6,
  495. 6,
  496. 6,
  497. 6,
  498. 6,
  499. 6,
  500. 6,
  501. 6,
  502. 6,
  503. 6,
  504. 6,
  505. 6,
  506. 6,
  507. 6,
  508. 6,
  509. 6,
  510. 6,
  511. 6,
  512. 7,
  513. 7,
  514. 7,
  515. 7,
  516. 7,
  517. 7,
  518. 7,
  519. 7,
  520. 7,
  521. 7,
  522. 7,
  523. 7,
  524. 7,
  525. 7,
  526. 7,
  527. 7,
  528. 7,
  529. 7,
  530. 7,
  531. 7,
  532. 7,
  533. 7,
  534. 7,
  535. 7,
  536. 7,
  537. 7,
  538. 7,
  539. 7,
  540. 7,
  541. 7,
  542. 7,
  543. 7,
  544. 7,
  545. 7,
  546. 7,
  547. 7,
  548. 7,
  549. 7,
  550. 7,
  551. 7,
  552. 7,
  553. 7,
  554. 7,
  555. 7,
  556. 7,
  557. 7,
  558. 7,
  559. 7,
  560. 7,
  561. 7,
  562. 7,
  563. 7,
  564. 7,
  565. 7,
  566. 7,
  567. 7,
  568. 7,
  569. 7,
  570. 7,
  571. 7,
  572. 7,
  573. 7,
  574. 7,
  575. 7,
  576. 8,
  577. 8,
  578. 8,
  579. 8,
  580. 8,
  581. 8,
  582. 8,
  583. 8,
  584. 8,
  585. 8,
  586. 8,
  587. 8,
  588. 8,
  589. 8,
  590. 8,
  591. 8,
  592. 8,
  593. 8,
  594. 8,
  595. 8,
  596. 8,
  597. 8,
  598. 8,
  599. 8,
  600. 8,
  601. 8,
  602. 8,
  603. 8,
  604. 8,
  605. 8,
  606. 8,
  607. 8,
  608. 8,
  609. 8,
  610. 8,
  611. 8,
  612. 8,
  613. 8,
  614. 8,
  615. 8,
  616. 8,
  617. 8,
  618. 8,
  619. 8,
  620. 8,
  621. 8,
  622. 8,
  623. 8,
  624. 8,
  625. 8,
  626. 8,
  627. 8,
  628. 8,
  629. 8,
  630. 8,
  631. 8,
  632. 8,
  633. 8,
  634. 8,
  635. 8,
  636. 8,
  637. 8,
  638. 8,
  639. 8,
  640. 8,
  641. 8,
  642. 8,
  643. 8,
  644. 8,
  645. 8,
  646. 8,
  647. 8,
  648. 8,
  649. 8,
  650. 8,
  651. 8,
  652. 8,
  653. 8,
  654. 8,
  655. 8,
  656. 8,
  657. 8,
  658. 8,
  659. 8,
  660. 8,
  661. 8,
  662. 8,
  663. 8,
  664. 8,
  665. 8,
  666. 8,
  667. 8,
  668. 8,
  669. 8,
  670. 8,
  671. 8,
  672. 8,
  673. 8,
  674. 8,
  675. 8,
  676. 8,
  677. 8,
  678. 8,
  679. 8,
  680. 8,
  681. 8,
  682. 8,
  683. 8,
  684. 8,
  685. 8,
  686. 8,
  687. 8,
  688. 8,
  689. 8,
  690. 8,
  691. 8,
  692. 8,
  693. 8,
  694. 8,
  695. 8,
  696. 8,
  697. 8,
  698. 8,
  699. 8,
  700. 8,
  701. 8,
  702. 8,
  703. 8};
  704.  
  705.