⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shape_def.hpp

📁 完整的RTP RTSP代码库
💻 HPP
字号:
/****************************************************************************//*   MPEG4 Visual Texture Coding (VTC) Mode Software                        *//*                                                                          *//*   This software was jointly developed by the following participants:     *//*                                                                          *//*   Single-quant,  multi-quant and flow control                            *//*   are provided by  Sarnoff Corporation                                   *//*     Iraj Sodagar   (iraj@sarnoff.com)                                    *//*     Hung-Ju Lee    (hjlee@sarnoff.com)                                   *//*     Paul Hatrack   (hatrack@sarnoff.com)                                 *//*     Shipeng Li     (shipeng@sarnoff.com)                                 *//*     Bing-Bing Chai (bchai@sarnoff.com)                                   *//*     B.S. Srinivas  (bsrinivas@sarnoff.com)                               *//*                                                                          *//*   Bi-level is provided by Texas Instruments                              *//*     Jie Liang      (liang@ti.com)                                        *//*                                                                          *//*   Shape Coding is provided by  OKI Electric Industry Co., Ltd.           *//*     Zhixiong Wu    (sgo@hlabs.oki.co.jp)                                 *//*     Yoshihiro Ueda (yueda@hlabs.oki.co.jp)                               *//*     Toshifumi Kanamaru (kanamaru@hlabs.oki.co.jp)                        *//*                                                                          *//*   OKI, Sharp, Sarnoff, TI and Microsoft contributed to bitstream         *//*   exchange and bug fixing.                                               *//*                                                                          *//*                                                                          *//* In the course of development of the MPEG-4 standard, this software       *//* module is an implementation of a part of one or more MPEG-4 tools as     *//* specified by the MPEG-4 standard.                                        *//*                                                                          *//* The copyright of this software belongs to ISO/IEC. ISO/IEC gives use     *//* of the MPEG-4 standard free license to use this  software module or      *//* modifications thereof for hardware or software products claiming         *//* conformance to the MPEG-4 standard.                                      *//*                                                                          *//* Those intending to use this software module in hardware or software      *//* products are advised that use may infringe existing  patents. The        *//* original developers of this software module and their companies, the     *//* subsequent editors and their companies, and ISO/IEC have no liability    *//* and ISO/IEC have no liability for use of this software module or         *//* modification thereof in an implementation.                               *//*                                                                          *//* Permission is granted to MPEG members to use, copy, modify,              *//* and distribute the software modules ( or portions thereof )              *//* for standardization activity within ISO/IEC JTC1/SC29/WG11.              *//*                                                                          *//* Copyright 1995, 1996, 1997, 1998 ISO/IEC                                 *//****************************************************************************/#ifndef _SHAPE_DEF_H_#define _SHAPE_DEF_H_#include	<limits.h>#define		ALL0			0#define		ALL255			1#define		BORDER			2#define		CR1_1			2#define		CR1_2			3#define		CR1_4			4/**************  Code Book for shape MMR coding  ******************/static	Int		LMMR_first_shape_code_I [81][3] = {	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*0*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*1*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 2, 2, 1 },/*2*/	{ 2, 2, 1 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*3*/	{ 2, 2, 1 },	{ 1, 2, 2 },	{ 2, 1, 2 },/*4*/	{ 2, 2, 1 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*5*/	{ 2, 2, 1 },	{ 1, 2, 2 },	{ 2, 2, 1 },/*6*/	{ 2, 2, 1 },	{ 1, 2, 2 },	{ 2, 2, 1 },/*7*/	{ 2, 2, 1 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*8*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*9*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*10*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 2, 2, 1 },/*11*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*12*/	{ 1, 2, 2 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*13*/	{ 1, 2, 2 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*14*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*15*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*16*/	{ 1, 2, 2 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*17*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*18*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 1, 2, 2 },/*19*/	{ 1, 2, 2 },	{ 1, 2, 2 },	{ 2, 2, 1 },/*20*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*21*/	{ 2, 2, 1 },	{ 2, 1, 2 },	{ 2, 1, 2 },/*22*/	{ 2, 2, 1 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*23*/	{ 1, 2, 2 },	{ 2, 2, 1 },	{ 2, 2, 1 },/*24*/	{ 2, 2, 1 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*25*/	{ 1, 2, 2 },	{ 2, 1, 2 },	{ 2, 2, 1 },/*26*/};static	UInt	CMMR_first_shape_code_I [81][3] = {	{ 0, 3, 2 },	{ 3, 2, 0 },	{ 2, 3, 0 },/*0*/	{ 0, 3, 2 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*1*/	{ 0, 3, 2 },	{ 0, 2, 3 },	{ 2, 3, 0 },/*2*/	{ 3, 2, 0 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*3*/	{ 3, 2, 0 },	{ 0, 2, 3 },	{ 2, 0, 3 },/*4*/	{ 3, 2, 0 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*5*/	{ 2, 3, 0 },	{ 0, 2, 3 },	{ 3, 2, 0 },/*6*/	{ 2, 3, 0 },	{ 0, 2, 3 },	{ 3, 2, 0 },/*7*/	{ 2, 3, 0 },	{ 3, 2, 0 },	{ 3, 2, 0 },/*8*/	{ 0, 2, 3 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*9*/	{ 0, 2, 3 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*10*/	{ 0, 2, 3 },	{ 0, 2, 3 },	{ 3, 2, 0 },/*11*/	{ 0, 2, 3 },	{ 3, 2, 0 },	{ 3, 2, 0 },/*12*/	{ 0, 2, 3 },	{ 3, 0, 2 },	{ 3, 2, 0 },/*13*/	{ 0, 2, 3 },	{ 3, 0, 2 },	{ 3, 2, 0 },/*14*/	{ 0, 2, 3 },	{ 3, 2, 0 },	{ 2, 3, 0 },/*15*/	{ 0, 2, 3 },	{ 3, 2, 0 },	{ 2, 3, 0 },/*16*/	{ 0, 3, 2 },	{ 3, 0, 2 },	{ 2, 3, 0 },/*17*/	{ 0, 3, 2 },	{ 2, 3, 0 },	{ 2, 3, 0 },/*18*/	{ 0, 2, 3 },	{ 0, 2, 3 },	{ 0, 2, 3 },/*19*/	{ 0, 2, 3 },	{ 0, 2, 3 },	{ 2, 3, 0 },/*20*/	{ 0, 2, 3 },	{ 3, 2, 0 },	{ 3, 2, 0 },/*21*/	{ 2, 3, 0 },	{ 3, 0, 2 },	{ 3, 0, 2 },/*22*/	{ 2, 3, 0 },	{ 3, 0, 2 },	{ 3, 2, 0 },/*23*/	{ 0, 3, 2 },	{ 3, 2, 0 },	{ 2, 3, 0 },/*24*/	{ 2, 3, 0 },	{ 3, 0, 2 },	{ 3, 2, 0 },/*25*/	{ 0, 3, 2 },	{ 3, 0, 2 },	{ 3, 2, 0 },/*26*/};static Int LCR[5] = { 0, 1, 2, 0, 2 };static UInt CCR[5]= { 0x00, 0x00, 0x02, 0x00, 0x03 };static Int LST = 1;/*  Probability Tables for Shape Coding (CAE)  */static	UInt	intra_prob[1024] = {65267, 16468, 65003, 17912, 64573,  8556, 64252,  5653,40174,  3932, 29789,   277, 45152,  1140, 32768,  2043, 4499,    80,  6554,  1144, 21065,   465, 32768,   799, 5482,   183,  7282,   264,  5336,    99,  6554,   563,54784, 30201, 58254,  9879, 54613,  3069, 32768, 58495,32768,32768,32768,2849,58982,54613,32768,12892,31006,1332,49152,3287,60075,350,32768,712,39322,760,32768,354,52659,432,61854,150,64999,28362,65323,42521,63572,32768,63677,18319,4910,32768,64238,434,53248,32768,61865,13590,16384,32768,13107,333,32768,32768,32768,32768,32768,32768,1074,780,25058,5461,6697,233,62949,30247,63702,24638,59578,32768,32768,42257,32768,32768,49152,546,62557,32768,54613,19258,62405,32569,64600,865,60495,10923,32768,898,34193,24576,64111,341,47492,5231,55474,591,65114,60075,64080,5334,65448,61882,64543,13209,54906,16384,35289,4933,48645,9614,55351,7318,49807,54613,32768,32768,50972,32768,32768,32768,15159,1928,2048,171,3093,8,6096,74,32768,60855,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,55454,32768,57672,32768,16384,32768,21845,32768,32768,32768,32768,32768,32768,32768,5041,28440,91,32768,45,65124,10923,64874,5041,65429,57344,63435,48060,61440,32768,63488,24887,59688,3277,63918,14021,32768,32768,32768,32768,32768,32768,32768,32768,690,32768,32768,1456,32768,32768,8192,728,32768,32768,58982,17944,65237,54613,32768,2242,32768,32768,32768,42130,49152,57344,58254,16740,32768,10923,54613,182,32768,32768,32768,7282,49152,32768,32768,5041,63295,1394,55188,77,63672,6554,54613,49152,64558,32768,32768,5461,64142,32768,32768,32768,62415,32768,32768,16384,1481,438,19661,840,33654,3121,64425,6554,4178,2048,32768,2260,5226,1680,32768,565,60075,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,32768,16384,261,32768,412,16384,636,32768,4369,23406,4328,32768,524,15604,560,32768,676,49152,32768,49152,32768,32768,32768,64572,32768,32768,32768,54613,32768,32768,32768,32768,32768,4681,32768,5617,851,32768,32768,59578,32768,32768,32768,3121,3121,49152,32768,6554,10923,32768,32768,54613,14043,32768,32768,32768,3449,32768,32768,32768,32768,32768,32768,32768,32768,57344,32768,57344,3449,32768,32768,32768,3855,58982,10923,32768,239,62259,32768,49152,85,58778,23831,62888,20922,64311,8192,60075,575,59714,32768,57344,40960,62107,4096,61943,3921,39862,15338,32768,1524,45123,5958,32768,58982,6669,930,1170,1043,7385,44,8813,5011,59578,29789,54613,32768,32768,32768,32768,32768,32768,32768,32768,32768,58254,56174,32768,32768,64080,25891,49152,22528,32768,2731,32768,10923,10923,3283,32768,1748,17827,77,32768,108,62805,32768,62013,42612,32768,32768,61681,16384,58982,60075,62313,58982,65279,58982,62694,62174,32768,32768,10923,950,32768,32768,32768,32768,5958,32768,38551,1092,11012,39322,13705,2072,54613,32768,32768,11398,32768,32768,32768,145,32768,32768,32768,29789,60855,32768,61681,54792,32768,32768,32768,17348,32768,32768,32768,8192,57344,16384,32768,3582,52581,580,24030,303,62673,37266,65374,6197,62017,32768,49152,299,54613,32768,32768,32768,35234,119,32768,3855,31949,32768,32768,49152,16384,32768,32768,32768,24576,32768,49152,32768,17476,32768,32768,57445,51200,50864,54613,27949,60075,20480,32768,57344,32768,32768,32768,32768,32768,45875,32768,32768,11498,3244,24576,482,16384,1150,32768,16384,7992,215,32768,1150,23593,927,32768,993,65353,32768,65465,46741,41870,32768,64596,59578,62087,32768,12619,23406,11833,32768,47720,17476,32768,32768,2621,6554,32768,32768,32768,32768,32768,32768,5041,32768,16384,32768,4096,2731,63212,43526,65442,47124,65410,35747,60304,55858,60855,58982,60075,19859,35747,63015,64470,25432,58689,1118,64717,1339,24576,32768,32768,1257,53297,1928,32768,33,52067,3511,62861,453,64613,32768,32768,32768,64558,32768,32768,2731,49152,32768,32768,32768,61534,32768,32768,35747,32768,32768,32768,32768,13107,32768,32768,32768,32768,32768,32768,32768,20480,32768,32768,32768,32768,32768,32768,54613,40960,5041,32768,32768,32768,32768,32768,3277,64263,57592,32768,3121,32768,32768,32768,32768,32768,10923,32768,32768,32768,8192,32768,32768,5461,6899,32768,1725,63351,3855,63608,29127,62415,7282,64626,60855,32768,32768,60075,5958,44961,32768,61866,53718,32768,32768,32768,32768,32768,32768,6554,32768,32768,32768,32768,32768,2521,978,32768,1489,58254,32768,58982,61745,21845,32768,54613,58655,60075,32768,49152,16274,50412,64344,61643,43987,32768,32768,32768,1638,32768,32768,32768,24966,54613,32768,32768,2427,46951,32768,17970,654,65385,27307,60075,26472,64479,32768,32768,4681,61895,32768,32768,16384,58254,32768,32768,6554,37630,3277,54613,6554,4965,5958,4681,32768,42765,16384,32768,21845,22827,16384,32768,6554,65297,64769,60855,12743,63195,16384,32768,37942,32768,32768,32768,32768,60075,32768,62087,54613,41764,2161,21845,1836,17284,5424,10923,1680,11019,555,32768,431,39819,907,32768,171,65480,32768,64435,33803,2595,32768,57041,32768,61167,32768,32768,32768,32768,32768,32768,1796,60855,32768,17246,978,32768,32768,8192,32768,32768,32768,14043,2849,32768,2979,6554,6554,65507,62415,65384,61891,65273,58982,65461,55097,32768,32768,32768,55606,32768,2979,3745,16913,61885,13827,60893,12196,60855,53248,51493,11243,56656,783,55563,143,63432,7106,52429,445,65485,1031,65020,1380,65180,57344,65162,36536,61154,6554,26569,2341,63593,3449,65102,533,47827,2913,57344,3449,35688,1337,32768,22938,25012,910,7944,1008,29319,607,64466,4202,64549,57301,49152,20025,63351,61167,32768,45542,58982,14564,32768,9362,61895,44840,32768,26385,59664,17135,60855,13291,40050,12252,32768,7816,25798,1850,60495,2662,18707,122,52538,231,65332,32768,65210,21693,65113,6554,65141,39667,62259,32768,22258,1337,63636,32768,64255,52429,60362,32768,6780,819,16384,32768,16384,4681,49152,32768,8985,2521,24410,683,21535,16585,65416,46091,65292,58328,64626,32768,65016,39897,62687,47332,62805,28948,64284,53620,52870,49567,65032,31174,63022,28312,64299,46811,48009,31453,61207,7077,50299,1514,60047,2634,46488,235};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -