H264CabacContext.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. /*------------------------------------------------------------------------------
  2. -- --
  3. -- This software is confidential and proprietary and may be used --
  4. -- only as expressly authorized by a licensing agreement from --
  5. -- --
  6. -- Hantro Products Oy. --
  7. -- --
  8. -- (C) COPYRIGHT 2006 HANTRO PRODUCTS OY --
  9. -- ALL RIGHTS RESERVED --
  10. -- --
  11. -- The entire notice above must be reproduced --
  12. -- on all copies and should not be removed. --
  13. -- --
  14. --------------------------------------------------------------------------------
  15. -
  16. - Description : CABAC initialization tables
  17. -
  18. ------------------------------------------------------------------------------*/
  19. #ifndef __H264CABACCONTEXT_H__
  20. #define __H264CABACCONTEXT_H__
  21. #include "basetype.h"
  22. /* m and n values for given CtxIdx */
  23. /* I Slices */
  24. static const int h264ContextInitIntra[460][2] = {
  25. /* 0 -> 10 */
  26. {20, -15}, {2, 54}, {3, 74}, {20, -15},
  27. {2, 54}, {3, 74}, {-28, 127}, {-23, 104},
  28. {-6, 53}, {-1, 54}, {7, 51},
  29. /* 11 -> 23 unsused for I */
  30. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  31. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  32. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  33. {0, 0},
  34. /* 24 -> 39 */
  35. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  36. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  37. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  38. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  39. /* 40 -> 53 */
  40. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  41. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  42. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  43. {0, 0}, {0, 0},
  44. /* 54 -> 59 */
  45. {0, 0}, {0, 0}, {0, 0}, {0, 0},
  46. {0, 0}, {0, 0},
  47. /* 60 -> 69 */
  48. {0, 41}, {0, 63}, {0, 63}, {0, 63},
  49. {-9, 83}, {4, 86}, {0, 97}, {-7, 72},
  50. {13, 41}, {3, 62},
  51. /* 70 -> 87 */
  52. {0, 11}, {1, 55}, {0, 69}, {-17, 127},
  53. {-13, 102}, {0, 82}, {-7, 74}, {-21, 107},
  54. {-27, 127}, {-31, 127}, {-24, 127}, {-18, 95},
  55. {-27, 127}, {-21, 114}, {-30, 127}, {-17, 123},
  56. {-12, 115}, {-16, 122},
  57. /* 88 -> 104 */
  58. {-11, 115}, {-12, 63}, {-2, 68}, {-15, 84},
  59. {-13, 104}, {-3, 70}, {-8, 93}, {-10, 90},
  60. {-30, 127}, {-1, 74}, {-6, 97}, {-7, 91},
  61. {-20, 127}, {-4, 56}, {-5, 82}, {-7, 76},
  62. {-22, 125},
  63. /* 105 -> 135 */
  64. {-7, 93}, {-11, 87}, {-3, 77}, {-5, 71},
  65. {-4, 63}, {-4, 68}, {-12, 84}, {-7, 62},
  66. {-7, 65}, {8, 61}, {5, 56}, {-2, 66},
  67. {1, 64}, {0, 61}, {-2, 78}, {1, 50},
  68. {7, 52}, {10, 35}, {0, 44}, {11, 38},
  69. {1, 45}, {0, 46}, {5, 44}, {31, 17},
  70. {1, 51}, {7, 50}, {28, 19}, {16, 33},
  71. {14, 62}, {-13, 108}, {-15, 100},
  72. /* 136 -> 165 */
  73. {-13, 101}, {-13, 91}, {-12, 94}, {-10, 88},
  74. {-16, 84}, {-10, 86}, {-7, 83}, {-13, 87},
  75. {-19, 94}, {1, 70}, {0, 72}, {-5, 74},
  76. {18, 59}, {-8, 102}, {-15, 100}, {0, 95},
  77. {-4, 75}, {2, 72}, {-11, 75}, {-3, 71},
  78. {15, 46}, {-13, 69}, {0, 62}, {0, 65},
  79. {21, 37}, {-15, 72}, {9, 57}, {16, 54},
  80. {0, 62}, {12, 72},
  81. /* 166 -> 196 */
  82. {24, 0}, {15, 9}, {8, 25}, {13, 18},
  83. {15, 9}, {13, 19}, {10, 37}, {12, 18},
  84. {6, 29}, {20, 33}, {15, 30}, {4, 45},
  85. {1, 58}, {0, 62}, {7, 61}, {12, 38},
  86. {11, 45}, {15, 39}, {11, 42}, {13, 44},
  87. {16, 45}, {12, 41}, {10, 49}, {30, 34},
  88. {18, 42}, {10, 55}, {17, 51}, {17, 46},
  89. {0, 89}, {26, -19}, {22, -17},
  90. /* 197 -> 226 */
  91. {26, -17}, {30, -25}, {28, -20}, {33, -23},
  92. {37, -27}, {33, -23}, {40, -28}, {38, -17},
  93. {33, -11}, {40, -15}, {41, -6}, {38, 1},
  94. {41, 17}, {30, -6}, {27, 3}, {26, 22},
  95. {37, -16}, {35, -4}, {38, -8}, {38, -3},
  96. {37, 3}, {38, 5}, {42, 0}, {35, 16},
  97. {39, 22}, {14, 48}, {27, 37}, {21, 60},
  98. {12, 68}, {2, 97},
  99. /* 227 -> 251 */
  100. {-3, 71}, {-6, 42}, {-5, 50}, {-3, 54},
  101. {-2, 62}, {0, 58}, {1, 63}, {-2, 72},
  102. {-1, 74}, {-9, 91}, {-5, 67}, {-5, 27},
  103. {-3, 39}, {-2, 44}, {0, 46}, {-16, 64},
  104. {-8, 68}, {-10, 78}, {-6, 77}, {-10, 86},
  105. {-12, 92}, {-15, 55}, {-10, 60}, {-6, 62},
  106. {-4, 65},
  107. /* 252 -> 275 */
  108. {-12, 73}, {-8, 76}, {-7, 80}, {-9, 88},
  109. {-17, 110}, {-11, 97}, {-20, 84}, {-11, 79},
  110. {-6, 73}, {-4, 74}, {-13, 86}, {-13, 96},
  111. {-11, 97}, {-19, 117}, {-8, 78}, {-5, 33},
  112. {-4, 48}, {-2, 53}, {-3, 62}, {-13, 71},
  113. {-10, 79}, {-12, 86}, {-13, 90}, {-14, 97},
  114. /* 276 special case, bypass used */
  115. {0, 0},
  116. /* 277 -> 307 */
  117. {-6, 93}, {-6, 84}, {-8, 79}, {0, 66},
  118. {-1, 71}, {0, 62}, {-2, 60}, {-2, 59},
  119. {-5, 75}, {-3, 62}, {-4, 58}, {-9, 66},
  120. {-1, 79}, {0, 71}, {3, 68}, {10, 44},
  121. {-7, 62}, {15, 36}, {14, 40}, {16, 27},
  122. {12, 29}, {1, 44}, {20, 36}, {18, 32},
  123. {5, 42}, {1, 48}, {10, 62}, {17, 46},
  124. {9, 64}, {-12, 104}, {-11, 97},
  125. /* 308 -> 337 */
  126. {-16, 96}, {-7, 88}, {-8, 85}, {-7, 85},
  127. {-9, 85}, {-13, 88}, {4, 66}, {-3, 77},
  128. {-3, 76}, {-6, 76}, {10, 58}, {-1, 76},
  129. {-1, 83}, {-7, 99}, {-14, 95}, {2, 95},
  130. {0, 76}, {-5, 74}, {0, 70}, {-11, 75},
  131. {1, 68}, {0, 65}, {-14, 73}, {3, 62},
  132. {4, 62}, {-1, 68}, {-13, 75}, {11, 55},
  133. {5, 64}, {12, 70},
  134. /* 338 -> 368 */
  135. {15, 6}, {6, 19}, {7, 16}, {12, 14},
  136. {18, 13}, {13, 11}, {13, 15}, {15, 16},
  137. {12, 23}, {13, 23}, {15, 20}, {14, 26},
  138. {14, 44}, {17, 40}, {17, 47}, {24, 17},
  139. {21, 21}, {25, 22}, {31, 27}, {22, 29},
  140. {19, 35}, {14, 50}, {10, 57}, {7, 63},
  141. {-2, 77}, {-4, 82}, {-3, 94}, {9, 69},
  142. {-12, 109}, {36, -35}, {36, -34},
  143. /* 369 -> 398 */
  144. {32, -26}, {37, -30}, {44, -32}, {34, -18},
  145. {34, -15}, {40, -15}, {33, -7}, {35, -5},
  146. {33, 0}, {38, 2}, {33, 13}, {23, 35},
  147. {13, 58}, {29, -3}, {26, 0}, {22, 30},
  148. {31, -7}, {35, -15}, {34, -3}, {34, 3},
  149. {36, -1}, {34, 5}, {32, 11}, {35, 5},
  150. {34, 12}, {39, 11}, {30, 29}, {34, 26},
  151. {29, 39}, {19, 66},
  152. /* 399 -> 435 */
  153. {31, 21}, {31, 31}, {25, 50},
  154. {-17, 120}, {-20, 112}, {-18, 114}, {-11, 85},
  155. {-15, 92}, {-14, 89}, {-26, 71}, {-15, 81},
  156. {-14, 80}, {0, 68}, {-14, 70}, {-24, 56},
  157. {-23, 68}, {-24, 50}, {-11, 74}, {23, -13},
  158. {26, -13}, {40, -15}, {49, -14}, {44, 3},
  159. {45, 6}, {44, 34}, {33, 54}, {19, 82},
  160. {-3, 75}, {-1, 23}, {1, 34}, {1, 43},
  161. {0, 54}, {-2, 55}, {0, 61}, {1, 64},
  162. {0, 68}, {-9, 92},
  163. /* 436 -> 459 */
  164. {-14, 106}, {-13, 97}, {-15, 90}, {-12, 90},
  165. {-18, 88}, {-10, 73}, {-9, 79}, {-14, 86},
  166. {-10, 73}, {-10, 70}, {-10, 69}, {-5, 66},
  167. {-9, 64}, {-5, 58}, {2, 59}, {21, -10},
  168. {24, -11}, {28, -8}, {28, -1}, {29, 3},
  169. {29, 9}, {35, 20}, {29, 36}, {14, 67}
  170. };
  171. /* P and B Slices can have cabac_init_idc == 0, 1 or 2 */
  172. static const i32 h264ContextInit[3][460][2] = {
  173. /* cabac_init_idc == 0 */
  174. {
  175. /* 0 -> 10 */
  176. {20, -15}, {2, 54}, {3, 74}, {20, -15},
  177. {2, 54}, {3, 74}, {-28, 127}, {-23, 104},
  178. {-6, 53}, {-1, 54}, {7, 51},
  179. /* 11 -> 23 */
  180. {23, 33}, {23, 2}, {21, 0}, {1, 9},
  181. {0, 49}, {-37, 118}, {5, 57}, {-13, 78},
  182. {-11, 65}, {1, 62}, {12, 49}, {-4, 73},
  183. {17, 50},
  184. /* 24 -> 39 */
  185. {18, 64}, {9, 43}, {29, 0}, {26, 67},
  186. {16, 90}, {9, 104}, {-46, 127}, {-20, 104},
  187. {1, 67}, {-13, 78}, {-11, 65}, {1, 62},
  188. {-6, 86}, {-17, 95}, {-6, 61}, {9, 45},
  189. /* 40 -> 53 */
  190. {-3, 69}, {-6, 81}, {-11, 96}, {6, 55},
  191. {7, 67}, {-5, 86}, {2, 88}, {0, 58},
  192. {-3, 76}, {-10, 94}, {5, 54}, {4, 69},
  193. {-3, 81}, {0, 88},
  194. /* 54 -> 59 */
  195. {-7, 67}, {-5, 74}, {-4, 74}, {-5, 80},
  196. {-7, 72}, {1, 58},
  197. /* 60 -> 69 */
  198. {0, 41}, {0, 63}, {0, 63}, {0, 63},
  199. {-9, 83}, {4, 86}, {0, 97}, {-7, 72},
  200. {13, 41}, {3, 62},
  201. /* 70 -> 87 */
  202. {0, 45}, {-4, 78}, {-3, 96}, {-27, 126},
  203. {-28, 98}, {-25, 101}, {-23, 67}, {-28, 82},
  204. {-20, 94}, {-16, 83}, {-22, 110}, {-21, 91},
  205. {-18, 102}, {-13, 93}, {-29, 127}, {-7, 92},
  206. {-5, 89}, {-7, 96}, {-13, 108}, {-3, 46},
  207. {-1, 65}, {-1, 57}, {-9, 93}, {-3, 74},
  208. {-9, 92}, {-8, 87}, {-23, 126}, {5, 54},
  209. {6, 60}, {6, 59}, {6, 69}, {-1, 48},
  210. {0, 68}, {-4, 69}, {-8, 88},
  211. /* 105 -> 165 */
  212. {-2, 85}, {-6, 78}, {-1, 75}, {-7, 77},
  213. {2, 54}, {5, 50}, {-3, 68}, {1, 50},
  214. {6, 42}, {-4, 81}, {1, 63}, {-4, 70},
  215. {0, 67}, {2, 57}, {-2, 76}, {11, 35},
  216. {4, 64}, {1, 61}, {11, 35}, {18, 25},
  217. {12, 24}, {13, 29}, {13, 36}, {-10, 93},
  218. {-7, 73}, {-2, 73}, {13, 46}, {9, 49},
  219. {-7, 100}, {9, 53}, {2, 53}, {5, 53},
  220. {-2, 61}, {0, 56}, {0, 56}, {-13, 63},
  221. {-5, 60}, {-1, 62}, {4, 57}, {-6, 69},
  222. {4, 57}, {14, 39}, {4, 51}, {13, 68},
  223. {3, 64}, {1, 61}, {9, 63}, {7, 50},
  224. {16, 39}, {5, 44}, {4, 52}, {11, 48},
  225. {-5, 60}, {-1, 59}, {0, 59}, {22, 33},
  226. {5, 44}, {14, 43}, {-1, 78}, {0, 60},
  227. {9, 69},
  228. /* 166 -> 226 */
  229. {11, 28}, {2, 40}, {3, 44}, {0, 49},
  230. {0, 46}, {2, 44}, {2, 51}, {0, 47},
  231. {4, 39}, {2, 62}, {6, 46}, {0, 54},
  232. {3, 54}, {2, 58}, {4, 63}, {6, 51},
  233. {6, 57}, {7, 53}, {6, 52}, {6, 55},
  234. {11, 45}, {14, 36}, {8, 53}, {-1, 82},
  235. {7, 55}, {-3, 78}, {15, 46}, {22, 31},
  236. {-1, 84}, {25, 7}, {30, -7}, {28, 3},
  237. {28, 4}, {32, 0}, {34, -1}, {30, 6},
  238. {30, 6}, {32, 9}, {31, 19}, {26, 27},
  239. {26, 30}, {37, 20}, {28, 34}, {17, 70},
  240. {1, 67}, {5, 59}, {9, 67}, {16, 30},
  241. {18, 32}, {18, 35}, {22, 29}, {24, 31},
  242. {23, 38}, {18, 43}, {20, 41}, {11, 63},
  243. {9, 59}, {9, 64}, {-1, 94}, {-2, 89},
  244. {-9, 108},
  245. /* 227 -> 275 */
  246. {-6, 76}, {-2, 44}, {0, 45}, {0, 52},
  247. {-3, 64}, {-2, 59}, {-4, 70}, {-4, 75},
  248. {-8, 82}, {-17, 102}, {-9, 77}, {3, 24},
  249. {0, 42}, {0, 48}, {0, 55}, {-6, 59},
  250. {-7, 71}, {-12, 83}, {-11, 87}, {-30, 119},
  251. {1, 58}, {-3, 29}, {-1, 36}, {1, 38},
  252. {2, 43}, {-6, 55}, {0, 58}, {0, 64},
  253. {-3, 74}, {-10, 90}, {0, 70}, {-4, 29},
  254. {5, 31}, {7, 42}, {1, 59}, {-2, 58},
  255. {-3, 72}, {-3, 81}, {-11, 97}, {0, 58},
  256. {8, 5}, {10, 14}, {14, 18}, {13, 27},
  257. {2, 40}, {0, 58}, {-3, 70}, {-6, 79},
  258. {-8, 85},
  259. /* 276 special case, bypass used */
  260. {0, 0},
  261. /* 277 -> 337 */
  262. {-13, 106}, {-16, 106}, {-10, 87}, {-21, 114},
  263. {-18, 110}, {-14, 98}, {-22, 110}, {-21, 106},
  264. {-18, 103}, {-21, 107}, {-23, 108}, {-26, 112},
  265. {-10, 96}, {-12, 95}, {-5, 91}, {-9, 93},
  266. {-22, 94}, {-5, 86}, {9, 67}, {-4, 80},
  267. {-10, 85}, {-1, 70}, {7, 60}, {9, 58},
  268. {5, 61}, {12, 50}, {15, 50}, {18, 49},
  269. {17, 54}, {10, 41}, {7, 46}, {-1, 51},
  270. {7, 49}, {8, 52}, {9, 41}, {6, 47},
  271. {2, 55}, {13, 41}, {10, 44}, {6, 50},
  272. {5, 53}, {13, 49}, {4, 63}, {6, 64},
  273. {-2, 69}, {-2, 59}, {6, 70}, {10, 44},
  274. {9, 31}, {12, 43}, {3, 53}, {14, 34},
  275. {10, 38}, {-3, 52}, {13, 40}, {17, 32},
  276. {7, 44}, {7, 38}, {13, 50}, {10, 57},
  277. {26, 43},
  278. /* 338 -> 398 */
  279. {14, 11}, {11, 14}, {9, 11}, {18, 11},
  280. {21, 9}, {23, -2}, {32, -15}, {32, -15},
  281. {34, -21}, {39, -23}, {42, -33}, {41, -31},
  282. {46, -28}, {38, -12}, {21, 29}, {45, -24},
  283. {53, -45}, {48, -26}, {65, -43}, {43, -19},
  284. {39, -10}, {30, 9}, {18, 26}, {20, 27},
  285. {0, 57}, {-14, 82}, {-5, 75}, {-19, 97},
  286. {-35, 125}, {27, 0}, {28, 0}, {31, -4},
  287. {27, 6}, {34, 8}, {30, 10}, {24, 22},
  288. {33, 19}, {22, 32}, {26, 31}, {21, 41},
  289. {26, 44}, {23, 47}, {16, 65}, {14, 71},
  290. {8, 60}, {6, 63}, {17, 65}, {21, 24},
  291. {23, 20}, {26, 23}, {27, 32}, {28, 23},
  292. {28, 24}, {23, 40}, {24, 32}, {28, 29},
  293. {23, 42}, {19, 57}, {22, 53}, {22, 61},
  294. {11, 86},
  295. /* 399 -> 435 */
  296. {12, 40}, {11, 51}, {14, 59},
  297. {-4, 79}, {-7, 71}, {-5, 69}, {-9, 70},
  298. {-8, 66}, {-10, 68}, {-19, 73}, {-12, 69},
  299. {-16, 70}, {-15, 67}, {-20, 62}, {-19, 70},
  300. {-16, 66}, {-22, 65}, {-20, 63}, {9, -2},
  301. {26, -9}, {33, -9}, {39, -7}, {41, -2},
  302. {45, 3}, {49, 9}, {45, 27}, {36, 59},
  303. {-6, 66}, {-7, 35}, {-7, 42}, {-8, 45},
  304. {-5, 48}, {-12, 56}, {-6, 60}, {-5, 62},
  305. {-8, 66}, {-8, 76},
  306. /* 436 -> 459 */
  307. {-5, 85}, {-6, 81}, {-10, 77}, {-7, 81},
  308. {-17, 80}, {-18, 73}, {-4, 74}, {-10, 83},
  309. {-9, 71}, {-9, 67}, {-1, 61}, {-8, 66},
  310. {-14, 66}, {0, 59}, {2, 59}, {21, -13},
  311. {33, -14}, {39, -7}, {46, -2}, {51, 2},
  312. {60, 6}, {61, 17}, {55, 34}, {42, 62},
  313. },
  314. /* cabac_init_idc == 1 */
  315. {
  316. /* 0 -> 10 */
  317. {20, -15}, {2, 54}, {3, 74}, {20, -15},
  318. {2, 54}, {3, 74}, {-28, 127}, {-23, 104},
  319. {-6, 53}, {-1, 54}, {7, 51},
  320. /* 11 -> 23 */
  321. {22, 25}, {34, 0}, {16, 0}, {-2, 9},
  322. {4, 41}, {-29, 118}, {2, 65}, {-6, 71},
  323. {-13, 79}, {5, 52}, {9, 50}, {-3, 70},
  324. {10, 54},
  325. /* 24 -> 39 */
  326. {26, 34}, {19, 22}, {40, 0}, {57, 2},
  327. {41, 36}, {26, 69}, {-45, 127}, {-15, 101},
  328. {-4, 76}, {-6, 71}, {-13, 79}, {5, 52},
  329. {6, 69}, {-13, 90}, {0, 52}, {8, 43},
  330. /* 40 -> 53 */
  331. {-2, 69}, {-5, 82}, {-10, 96}, {2, 59},
  332. {2, 75}, {-3, 87}, {-3, 100}, {1, 56},
  333. {-3, 74}, {-6, 85}, {0, 59}, {-3, 81},
  334. {-7, 86}, {-5, 95},
  335. /* 54 -> 59 */
  336. {-1, 66}, {-1, 77}, {1, 70}, {-2, 86},
  337. {-5, 72}, {0, 61},
  338. /* 60 -> 69 */
  339. {0, 41}, {0, 63}, {0, 63}, {0, 63},
  340. {-9, 83}, {4, 86}, {0, 97}, {-7, 72},
  341. {13, 41}, {3, 62},
  342. /* 70 -> 104 */
  343. {13, 15}, {7, 51}, {2, 80}, {-39, 127},
  344. {-18, 91}, {-17, 96}, {-26, 81}, {-35, 98},
  345. {-24, 102}, {-23, 97}, {-27, 119}, {-24, 99},
  346. {-21, 110}, {-18, 102}, {-36, 127}, {0, 80},
  347. {-5, 89}, {-7, 94}, {-4, 92}, {0, 39},
  348. {0, 65}, {-15, 84}, {-35, 127}, {-2, 73},
  349. {-12, 104}, {-9, 91}, {-31, 127}, {3, 55},
  350. {7, 56}, {7, 55}, {8, 61}, {-3, 53},
  351. {0, 68}, {-7, 74}, {-9, 88},
  352. /* 105 -> 165 */
  353. {-13, 103}, {-13, 91}, {-9, 89}, {-14, 92},
  354. {-8, 76}, {-12, 87}, {-23, 110}, {-24, 105},
  355. {-10, 78}, {-20, 112}, {-17, 99}, {-78, 127},
  356. {-70, 127}, {-50, 127}, {-46, 127}, {-4, 66},
  357. {-5, 78}, {-4, 71}, {-8, 72}, {2, 59},
  358. {-1, 55}, {-7, 70}, {-6, 75}, {-8, 89},
  359. {-34, 119}, {-3, 75}, {32, 20}, {30, 22},
  360. {-44, 127}, {0, 54}, {-5, 61}, {0, 58},
  361. {-1, 60}, {-3, 61}, {-8, 67}, {-25, 84},
  362. {-14, 74}, {-5, 65}, {5, 52}, {2, 57},
  363. {0, 61}, {-9, 69}, {-11, 70}, {18, 55},
  364. {-4, 71}, {0, 58}, {7, 61}, {9, 41},
  365. {18, 25}, {9, 32}, {5, 43}, {9, 47},
  366. {0, 44}, {0, 51}, {2, 46}, {19, 38},
  367. {-4, 66}, {15, 38}, {12, 42}, {9, 34},
  368. {0, 89},
  369. /* 166 -> 226 */
  370. {4, 45}, {10, 28}, {10, 31}, {33, -11},
  371. {52, -43}, {18, 15}, {28, 0}, {35, -22},
  372. {38, -25}, {34, 0}, {39, -18}, {32, -12},
  373. {102, -94}, {0, 0}, {56, -15}, {33, -4},
  374. {29, 10}, {37, -5}, {51, -29}, {39, -9},
  375. {52, -34}, {69, -58}, {67, -63}, {44, -5},
  376. {32, 7}, {55, -29}, {32, 1}, {0, 0},
  377. {27, 36}, {33, -25}, {34, -30}, {36, -28},
  378. {38, -28}, {38, -27}, {34, -18}, {35, -16},
  379. {34, -14}, {32, -8}, {37, -6}, {35, 0},
  380. {30, 10}, {28, 18}, {26, 25}, {29, 41},
  381. {0, 75}, {2, 72}, {8, 77}, {14, 35},
  382. {18, 31}, {17, 35}, {21, 30}, {17, 45},
  383. {20, 42}, {18, 45}, {27, 26}, {16, 54},
  384. {7, 66}, {16, 56}, {11, 73}, {10, 67},
  385. {-10, 116},
  386. /* 227 -> 275 */
  387. {-23, 112}, {-15, 71}, {-7, 61}, {0, 53},
  388. {-5, 66}, {-11, 77}, {-9, 80}, {-9, 84},
  389. {-10, 87}, {-34, 127}, {-21, 101}, {-3, 39},
  390. {-5, 53}, {-7, 61}, {-11, 75}, {-15, 77},
  391. {-17, 91}, {-25, 107}, {-25, 111}, {-28, 122},
  392. {-11, 76}, {-10, 44}, {-10, 52}, {-10, 57},
  393. {-9, 58}, {-16, 72}, {-7, 69}, {-4, 69},
  394. {-5, 74}, {-9, 86}, {2, 66}, {-9, 34},
  395. {1, 32}, {11, 31}, {5, 52}, {-2, 55},
  396. {-2, 67}, {0, 73}, {-8, 89}, {3, 52},
  397. {7, 4}, {10, 8}, {17, 8}, {16, 19},
  398. {3, 37}, {-1, 61}, {-5, 73}, {-1, 70},
  399. {-4, 78},
  400. /* 276 special case, bypass used */
  401. {0, 0},
  402. /* 277 -> 337 */
  403. {-21, 126}, {-23, 124}, {-20, 110}, {-26, 126},
  404. {-25, 124}, {-17, 105}, {-27, 121}, {-27, 117},
  405. {-17, 102}, {-26, 117}, {-27, 116}, {-33, 122},
  406. {-10, 95}, {-14, 100}, {-8, 95}, {-17, 111},
  407. {-28, 114}, {-6, 89}, {-2, 80}, {-4, 82},
  408. {-9, 85}, {-8, 81}, {-1, 72}, {5, 64},
  409. {1, 67}, {9, 56}, {0, 69}, {1, 69},
  410. {7, 69}, {-7, 69}, {-6, 67}, {-16, 77},
  411. {-2, 64}, {2, 61}, {-6, 67}, {-3, 64},
  412. {2, 57}, {-3, 65}, {-3, 66}, {0, 62},
  413. {9, 51}, {-1, 66}, {-2, 71}, {-2, 75},
  414. {-1, 70}, {-9, 72}, {14, 60}, {16, 37},
  415. {0, 47}, {18, 35}, {11, 37}, {12, 41},
  416. {10, 41}, {2, 48}, {12, 41}, {13, 41},
  417. {0, 59}, {3, 50}, {19, 40}, {3, 66},
  418. {18, 50},
  419. /* 338 -> 398 */
  420. {19, -6}, {18, -6}, {14, 0}, {26, -12},
  421. {31, -16}, {33, -25}, {33, -22}, {37, -28},
  422. {39, -30}, {42, -30}, {47, -42}, {45, -36},
  423. {49, -34}, {41, -17}, {32, 9}, {69, -71},
  424. {63, -63}, {66, -64}, {77, -74}, {54, -39},
  425. {52, -35}, {41, -10}, {36, 0}, {40, -1},
  426. {30, 14}, {28, 26}, {23, 37}, {12, 55},
  427. {11, 65}, {37, -33}, {39, -36}, {40, -37},
  428. {38, -30}, {46, -33}, {42, -30}, {40, -24},
  429. {49, -29}, {38, -12}, {40, -10}, {38, -3},
  430. {46, -5}, {31, 20}, {29, 30}, {25, 44},
  431. {12, 48}, {11, 49}, {26, 45}, {22, 22},
  432. {23, 22}, {27, 21}, {33, 20}, {26, 28},
  433. {30, 24}, {27, 34}, {18, 42}, {25, 39},
  434. {18, 50}, {12, 70}, {21, 54}, {14, 71},
  435. {11, 83},
  436. /* 399 -> 435 */
  437. {25, 32}, {21, 49}, {21, 54},
  438. {-5, 85}, {-6, 81}, {-10, 77}, {-7, 81},
  439. {-17, 80}, {-18, 73}, {-4, 74}, {-10, 83},
  440. {-9, 71}, {-9, 67}, {-1, 61}, {-8, 66},
  441. {-14, 66}, {0, 59}, {2, 59}, {17, -10},
  442. {32, -13}, {42, -9}, {49, -5}, {53, 0},
  443. {64, 3}, {68, 10}, {66, 27}, {47, 57},
  444. {-5, 71}, {0, 24}, {-1, 36}, {-2, 42},
  445. {-2, 52}, {-9, 57}, {-6, 63}, {-4, 65},
  446. {-4, 67}, {-7, 82},
  447. /* 436 -> 459 */
  448. {-3, 81}, {-3, 76}, {-7, 72}, {-6, 78},
  449. {-12, 72}, {-14, 68}, {-3, 70}, {-6, 76},
  450. {-5, 66}, {-5, 62}, {0, 57}, {-4, 61},
  451. {-9, 60}, {1, 54}, {2, 58}, {17, -10},
  452. {32, -13}, {42, -9}, {49, -5}, {53, 0},
  453. {64, 3}, {68, 10}, {66, 27}, {47, 57},
  454. },
  455. /* cabac_init_idc == 2 */
  456. {
  457. /* 0 -> 10 */
  458. {20, -15}, {2, 54}, {3, 74}, {20, -15},
  459. {2, 54}, {3, 74}, {-28, 127}, {-23, 104},
  460. {-6, 53}, {-1, 54}, {7, 51},
  461. /* 11 -> 23 */
  462. {29, 16}, {25, 0}, {14, 0}, {-10, 51},
  463. {-3, 62}, {-27, 99}, {26, 16}, {-4, 85},
  464. {-24, 102}, {5, 57}, {6, 57}, {-17, 73},
  465. {14, 57},
  466. /* 24 -> 39 */
  467. {20, 40}, {20, 10}, {29, 0}, {54, 0},
  468. {37, 42}, {12, 97}, {-32, 127}, {-22, 117},
  469. {-2, 74}, {-4, 85}, {-24, 102}, {5, 57},
  470. {-6, 93}, {-14, 88}, {-6, 44}, {4, 55},
  471. /* 40 -> 53 */
  472. {-11, 89}, {-15, 103}, {-21, 116}, {19, 57},
  473. {20, 58}, {4, 84}, {6, 96}, {1, 63},
  474. {-5, 85}, {-13, 106}, {5, 63}, {6, 75},
  475. {-3, 90}, {-1, 101},
  476. /* 54 -> 59 */
  477. {3, 55}, {-4, 79}, {-2, 75}, {-12, 97},
  478. {-7, 50}, {1, 60},
  479. /* 60 -> 69 */
  480. {0, 41}, {0, 63}, {0, 63}, {0, 63},
  481. {-9, 83}, {4, 86}, {0, 97}, {-7, 72},
  482. {13, 41}, {3, 62},
  483. /* 70 -> 104 */
  484. {7, 34}, {-9, 88}, {-20, 127}, {-36, 127},
  485. {-17, 91}, {-14, 95}, {-25, 84}, {-25, 86},
  486. {-12, 89}, {-17, 91}, {-31, 127}, {-14, 76},
  487. {-18, 103}, {-13, 90}, {-37, 127}, {11, 80},
  488. {5, 76}, {2, 84}, {5, 78}, {-6, 55},
  489. {4, 61}, {-14, 83}, {-37, 127}, {-5, 79},
  490. {-11, 104}, {-11, 91}, {-30, 127}, {0, 65},
  491. {-2, 79}, {0, 72}, {-4, 92}, {-6, 56},
  492. {3, 68}, {-8, 71}, {-13, 98},
  493. /* 105 -> 165 */
  494. {-4, 86}, {-12, 88}, {-5, 82}, {-3, 72},
  495. {-4, 67}, {-8, 72}, {-16, 89}, {-9, 69},
  496. {-1, 59}, {5, 66}, {4, 57}, {-4, 71},
  497. {-2, 71}, {2, 58}, {-1, 74}, {-4, 44},
  498. {-1, 69}, {0, 62}, {-7, 51}, {-4, 47},
  499. {-6, 42}, {-3, 41}, {-6, 53}, {8, 76},
  500. {-9, 78}, {-11, 83}, {9, 52}, {0, 67},
  501. {-5, 90}, {1, 67}, {-15, 72}, {-5, 75},
  502. {-8, 80}, {-21, 83}, {-21, 64}, {-13, 31},
  503. {-25, 64}, {-29, 94}, {9, 75}, {17, 63},
  504. {-8, 74}, {-5, 35}, {-2, 27}, {13, 91},
  505. {3, 65}, {-7, 69}, {8, 77}, {-10, 66},
  506. {3, 62}, {-3, 68}, {-20, 81}, {0, 30},
  507. {1, 7}, {-3, 23}, {-21, 74}, {16, 66},
  508. {-23, 124}, {17, 37}, {44, -18}, {50, -34},
  509. {-22, 127},
  510. /* 166 -> 226 */
  511. {4, 39}, {0, 42}, {7, 34}, {11, 29},
  512. {8, 31}, {6, 37}, {7, 42}, {3, 40},
  513. {8, 33}, {13, 43}, {13, 36}, {4, 47},
  514. {3, 55}, {2, 58}, {6, 60}, {8, 44},
  515. {11, 44}, {14, 42}, {7, 48}, {4, 56},
  516. {4, 52}, {13, 37}, {9, 49}, {19, 58},
  517. {10, 48}, {12, 45}, {0, 69}, {20, 33},
  518. {8, 63}, {35, -18}, {33, -25}, {28, -3},
  519. {24, 10}, {27, 0}, {34, -14}, {52, -44},
  520. {39, -24}, {19, 17}, {31, 25}, {36, 29},
  521. {24, 33}, {34, 15}, {30, 20}, {22, 73},
  522. {20, 34}, {19, 31}, {27, 44}, {19, 16},
  523. {15, 36}, {15, 36}, {21, 28}, {25, 21},
  524. {30, 20}, {31, 12}, {27, 16}, {24, 42},
  525. {0, 93}, {14, 56}, {15, 57}, {26, 38},
  526. {-24, 127},
  527. /* 227 -> 275 */
  528. {-24, 115}, {-22, 82}, {-9, 62}, {0, 53},
  529. {0, 59}, {-14, 85}, {-13, 89}, {-13, 94},
  530. {-11, 92}, {-29, 127}, {-21, 100}, {-14, 57},
  531. {-12, 67}, {-11, 71}, {-10, 77}, {-21, 85},
  532. {-16, 88}, {-23, 104}, {-15, 98}, {-37, 127},
  533. {-10, 82}, {-8, 48}, {-8, 61}, {-8, 66},
  534. {-7, 70}, {-14, 75}, {-10, 79}, {-9, 83},
  535. {-12, 92}, {-18, 108}, {-4, 79}, {-22, 69},
  536. {-16, 75}, {-2, 58}, {1, 58}, {-13, 78},
  537. {-9, 83}, {-4, 81}, {-13, 99}, {-13, 81},
  538. {-6, 38}, {-13, 62}, {-6, 58}, {-2, 59},
  539. {-16, 73}, {-10, 76}, {-13, 86}, {-9, 83},
  540. {-10, 87},
  541. /* 276 special case, bypass used */
  542. {0, 0},
  543. /* 277 -> 337 */
  544. {-22, 127}, {-25, 127}, {-25, 120}, {-27, 127},
  545. {-19, 114}, {-23, 117}, {-25, 118}, {-26, 117},
  546. {-24, 113}, {-28, 118}, {-31, 120}, {-37, 124},
  547. {-10, 94}, {-15, 102}, {-10, 99}, {-13, 106},
  548. {-50, 127}, {-5, 92}, {17, 57}, {-5, 86},
  549. {-13, 94}, {-12, 91}, {-2, 77}, {0, 71},
  550. {-1, 73}, {4, 64}, {-7, 81}, {5, 64},
  551. {15, 57}, {1, 67}, {0, 68}, {-10, 67},
  552. {1, 68}, {0, 77}, {2, 64}, {0, 68},
  553. {-5, 78}, {7, 55}, {5, 59}, {2, 65},
  554. {14, 54}, {15, 44}, {5, 60}, {2, 70},
  555. {-2, 76}, {-18, 86}, {12, 70}, {5, 64},
  556. {-12, 70}, {11, 55}, {5, 56}, {0, 69},
  557. {2, 65}, {-6, 74}, {5, 54}, {7, 54},
  558. {-6, 76}, {-11, 82}, {-2, 77}, {-2, 77},
  559. {25, 42},
  560. /* 338 -> 398 */
  561. {17, -13}, {16, -9}, {17, -12}, {27, -21},
  562. {37, -30}, {41, -40}, {42, -41}, {48, -47},
  563. {39, -32}, {46, -40}, {52, -51}, {46, -41},
  564. {52, -39}, {43, -19}, {32, 11}, {61, -55},
  565. {56, -46}, {62, -50}, {81, -67}, {45, -20},
  566. {35, -2}, {28, 15}, {34, 1}, {39, 1},
  567. {30, 17}, {20, 38}, {18, 45}, {15, 54},
  568. {0, 79}, {36, -16}, {37, -14}, {37, -17},
  569. {32, 1}, {34, 15}, {29, 15}, {24, 25},
  570. {34, 22}, {31, 16}, {35, 18}, {31, 28},
  571. {33, 41}, {36, 28}, {27, 47}, {21, 62},
  572. {18, 31}, {19, 26}, {36, 24}, {24, 23},
  573. {27, 16}, {24, 30}, {31, 29}, {22, 41},
  574. {22, 42}, {16, 60}, {15, 52}, {14, 60},
  575. {3, 78}, {-16, 123}, {21, 53}, {22, 56},
  576. {25, 61},
  577. /* 399 -> 435 */
  578. {21, 33}, {19, 50}, {17, 61},
  579. {-3, 78}, {-8, 74}, {-9, 72}, {-10, 72},
  580. {-18, 75}, {-12, 71}, {-11, 63}, {-5, 70},
  581. {-17, 75}, {-14, 72}, {-16, 67}, {-8, 53},
  582. {-14, 59}, {-9, 52}, {-11, 68}, {9, -2},
  583. {30, -10}, {31, -4}, {33, -1}, {33, 7},
  584. {31, 12}, {37, 23}, {31, 38}, {20, 64},
  585. {-9, 71}, {-7, 37}, {-8, 44}, {-11, 49},
  586. {-10, 56}, {-12, 59}, {-8, 63}, {-9, 67},
  587. {-6, 68}, {-10, 79},
  588. /* 436 -> 459 */
  589. {-3, 78}, {-8, 74}, {-9, 72}, {-10, 72},
  590. {-18, 75}, {-12, 71}, {-11, 63}, {-5, 70},
  591. {-17, 75}, {-14, 72}, {-16, 67}, {-8, 53},
  592. {-14, 59}, {-9, 52}, {-11, 68}, {9, -2},
  593. {30, -10}, {31, -4}, {33, -1}, {33, 7},
  594. {31, 12}, {37, 23}, {31, 38}, {20, 64},
  595. }
  596. };
  597. #endif /* __H264CABACCONTEXT_H__ */