17e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/* 2f91c8768670386683a281cc39141e21bdda9c97fKun Wang * Copyright (c) 2011 Intel Corporation. All Rights Reserved. 33f3d1e8746d2b793c982ac19a73061e006b1b178Kun Wang * Copyright (c) Imagination Technologies Limited, UK 47e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang * 5f91c8768670386683a281cc39141e21bdda9c97fKun Wang * Permission is hereby granted, free of charge, to any person obtaining a 6f91c8768670386683a281cc39141e21bdda9c97fKun Wang * copy of this software and associated documentation files (the 7f91c8768670386683a281cc39141e21bdda9c97fKun Wang * "Software"), to deal in the Software without restriction, including 8f91c8768670386683a281cc39141e21bdda9c97fKun Wang * without limitation the rights to use, copy, modify, merge, publish, 9f91c8768670386683a281cc39141e21bdda9c97fKun Wang * distribute, sub license, and/or sell copies of the Software, and to 10f91c8768670386683a281cc39141e21bdda9c97fKun Wang * permit persons to whom the Software is furnished to do so, subject to 11f91c8768670386683a281cc39141e21bdda9c97fKun Wang * the following conditions: 123f3d1e8746d2b793c982ac19a73061e006b1b178Kun Wang * 13f91c8768670386683a281cc39141e21bdda9c97fKun Wang * The above copyright notice and this permission notice (including the 14f91c8768670386683a281cc39141e21bdda9c97fKun Wang * next paragraph) shall be included in all copies or substantial portions 15f91c8768670386683a281cc39141e21bdda9c97fKun Wang * of the Software. 163f3d1e8746d2b793c982ac19a73061e006b1b178Kun Wang * 17f91c8768670386683a281cc39141e21bdda9c97fKun Wang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18f91c8768670386683a281cc39141e21bdda9c97fKun Wang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19f91c8768670386683a281cc39141e21bdda9c97fKun Wang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 20f91c8768670386683a281cc39141e21bdda9c97fKun Wang * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR 21f91c8768670386683a281cc39141e21bdda9c97fKun Wang * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 22f91c8768670386683a281cc39141e21bdda9c97fKun Wang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 23f91c8768670386683a281cc39141e21bdda9c97fKun Wang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 247e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang */ 257e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 26f91c8768670386683a281cc39141e21bdda9c97fKun Wang 277e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/* 287e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 297e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang Profile calculation masks 307e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 31bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define iWMVA_MASK (0x08) 32bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define iWMV9_MASK (0x80) 337e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 347e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/* system environment dependent switches */ 357e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Pack decoded bitplane bits into bytes (instead of 1-bit per byte) 36dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//#define BITPLANE_PACKED_BYTES 377e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 38dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Generate bitplane test vectors 39dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun#define BITPLANE_TEST_VECTORS (0) 407e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 41dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Measure bitplane decode time 42bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define BITPLANE_DECODE_TIME (0) 437e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 447e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Measure time spent parsing the picture header 45bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define PARSE_HEADER_TIME (0) 467e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 477e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Use VC1 reference decoder implementation for bitplane decoding 48bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define REFDEC_BITPLANE_DECODER (0) 497e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 507e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Interleave individual bitplanes into packed format 51bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_INTERLEAVED_BITPLANE (1) 527e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 537e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Use MSVDX hardware for bitplane decoding 54bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_BITPLANE_HARDWARE (0) 557e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 567e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*****************************************************************************/ 577e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#if VC1_BITPLANE_HARDWARE 587e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! VC1_INTERLEAVED_BITPLANE must be set to 0 when using MSVDX hardware for bitplane decoding 597e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#if VC1_INTERLEAVED_BITPLANE 60dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun#error VC1_INTERLEAVED_BITPLANE must not be defined together with VC1_BITPLANE_HARDWARE 617e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#endif 627e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#endif 637e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*****************************************************************************/ 647e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 657e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/* 667e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,JiangPossible combinations for bitplane decoding operation: 677e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 687e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang+ To use the hardware bitplane decoder, define VC1_BITPLANE_HARDWARE in the 697e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiangpreprocessor definitions of um_drivers, set REFDEC_BITPLANE_DECODER to 1 and 707e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,JiangVC1_INTERLEAVED_BITPLANE to 0. 717e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang+ To use the software bitplane decoder, don't define VC1_BITPLANE_HARDWARE. 727e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,JiangThere are two implementations of the decoder: 73bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang - To use the VC1 reference decoder implementation, set 74bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang REFDEC_BITPLANE_DECODER to 1. 75bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang - Otherwise, set REFDEC_BITPLANE_DECODER to 0. 767e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang+ When using the software bitplane decoder, the data can be sent to 777e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiangthe hardware in two formats. 78bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang - Set VC1_INTERLEAVED_BITPLANE to 1, if using the three-plane 79bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang interleaved format. 80bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang - Otherwise, set VC1_INTERLEAVED_BITPLANE to 0. 817e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang*/ 827e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 837e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! 847e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 857e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang This enumeration defines PTYPE [All] 867e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 87dc1209519284865899ca8d990b3a2c7dbca8ae08wangkuntypedef enum { 88bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PTYPE_I = 0, //!< I Picture 89bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PTYPE_P = 1, //!< P Picture 90bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PTYPE_B = 2, //!< B Picture 91bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PTYPE_BI = 3, //!< BI Picture 92bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PTYPE_SKIPPED = 4 //!< Skipped Picture 93dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun 947e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang} WMF_ePTYPE; 957e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 967e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! 977e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 987e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang This enumeration defines the stream profile 997e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 100dc1209519284865899ca8d990b3a2c7dbca8ae08wangkuntypedef enum { 101bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PROFILE_SIMPLE = 0, //!< Simple profile 102bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PROFILE_MAIN = 1, //!< Main profile 103bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_PROFILE_ADVANCED = 2, //!< Advanced profile (VC1 Only) 1047e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang WMF_PROFILE_UNDEFINED = 3, //!< Undefined profile 1057e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1067e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang} WMF_eProfile; 1077e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1087e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! 1097e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 1107e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang This enumeration defines MVMODE [All] Tables 46-50 MVMODE and MVMODE2 1117e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 112dc1209519284865899ca8d990b3a2c7dbca8ae08wangkuntypedef enum { 113bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_1MV = 0, //!< 1 MV 114bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_1MV_HALF_PEL_BILINEAR = 1, //!< 1 MV Half-pel bilinear 115bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_1MV_HALF_PEL = 2, //!< 1 MV Half-pel 116bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_MIXED_MV = 3, //!< Mixed MV 117bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_INTENSITY_COMPENSATION = 4, //!< Intensity Compensation 118bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang WMF_MVMODE_QUARTER_PEL_BICUBIC = 5, //!< Quarter pel bicubic 1197e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1207e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang} WMF_eMVMODE; 1217e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1227e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! 1237e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 1247e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang This enumeration defines FCM [Advanced Profile Only] Table 41 gFCM_VlcTable 1257e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 126dc1209519284865899ca8d990b3a2c7dbca8ae08wangkuntypedef enum { 127bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_FCM_P = 0, //!< 0 Progressive 128bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_FCM_FRMI = 2, //!< 10 Frame-Interlace 129bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_FCM_FLDI = 3, //!< 11 Field-Interlace 1307e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1317e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang} VC1_eFCM; 1327e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1337e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! 1347e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 1357e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang This enumeration defines the BDU Start Code Suffixes \n 136bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang 0x00 - 0x09 SMPTE Reserved \n 137bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang 0x20 - 0x7F SMPTE Reserved \n 138bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang 0x80 -0xFF Forbidden 1397e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 140dc1209519284865899ca8d990b3a2c7dbca8ae08wangkuntypedef enum { 141bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_ENDOFSEQU = 0x0A, //!< End of sequence 142bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_SLICE = 0x0B, //!< Slice 143bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_FIELD = 0x0C, //!< Field 144bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_PIC_LAYER = 0x0D, //!< Frame 145bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_ENTRYPNT_LAYER = 0x0E, //!< Entry-point Header 146bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_SEQ_LAYER = 0x0F, //!< Sequence Header 147bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_SLICELVL_USERDATA = 0x1B, //!< Slice Level User Data 148bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_FIELDLVL_USERDATA = 0x1C, //!< Field Level User Data 149bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_PICLVL_USERDATA = 0x1D, //!< Frame Level User Data 150bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_ENTRYPNTLVL_USERDATA = 0x1E, //!< Entry-point Level User Data 151bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang VC1_SCS_SEQLVL_USERDATA = 0x1F, //!< Sequence Level User Data 152dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun 1537e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang} VC1_eSCS; 1547e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1557e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! Test if picture type is a reference (I or P) */ 1567e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define PIC_TYPE_IS_REF(Type) ((Type) == WMF_PTYPE_I || (Type) == WMF_PTYPE_P) 1577e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1587e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! Test if picture type is intra (I or BI) */ 1597e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define PIC_TYPE_IS_INTRA(Type) ((Type) == WMF_PTYPE_I || (Type) == WMF_PTYPE_BI) 1607e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1617e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/*! Test if picture type is inter (P or B) */ 162dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun#define PIC_TYPE_IS_INTER(Type) ((Type) == WMF_PTYPE_P || (Type) == WMF_PTYPE_B) 1637e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1647e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum number of VLC tables for MB/block layer decode 1657e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define MAX_VLC_TABLES (12) 1667e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1677e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define COMPUTE_PULLBACK(s) (VC1_MB_SIZE*((s+15)/VC1_MB_SIZE)*4 - 4) /* 8.4.5.8 */ 1687e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1697e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! VC1 MB Parameter Stride 170bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MB_PARAM_STRIDE (128) 1717e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1727e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define VC1_MAX_NUM_BITPLANES (3) 1737e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1747e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang#define CABAC_RAM_WIDTH_IN_BITS (16) 1757e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1767e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang/* 1777e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang****************************************************************************** 1787e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang Frame Dimension Parameters 1797e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang******************************************************************************/ 1807e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 181dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Number of pixels in each MB dimension 182dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun#define VC1_MB_SIZE (16) 1837e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 184dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Maximum resolution in frame width (X) 185bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_X (4096) // 1920 1867e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 187dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Maximum resolution in frame height (Y) 188bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_Y (2048) // 1080 1897e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1907e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum resolution of frame 191bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_RES (VC1_MAX_X*VC1_MAX_Y) 1927e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 193dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun//! Maximum number of MBs in frame width (X) 194bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_NO_MBS_X ((VC1_MAX_X + VC1_MB_SIZE - 1)/VC1_MB_SIZE) 1957e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1967e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum number of MBs in frame height (Y) 197bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_NO_MBS_Y ((VC1_MAX_Y + VC1_MB_SIZE - 1)/VC1_MB_SIZE) 1987e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 1997e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum number of MBs in frame 200bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define VC1_MAX_NO_MBS ((VC1_MAX_RES + (VC1_MB_SIZE*VC1_MB_SIZE) - 1) /(VC1_MB_SIZE*VC1_MB_SIZE)) 2017e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 2027e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum number of bytes in bitplane 203bde3ed7517cc876cb2a6e174ea2a96a75938e787Kun Wang#define BITPLANE_BYTES VC1_MAX_NO_MBS 2047e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang 2057e8d39a9d261ff6b5256d7cf9c7a127947b2b2a5Fei,Jiang//! Maximum number of pan/scan windows per frame (VC1 Specification: 7.1.1.20) 206dc1209519284865899ca8d990b3a2c7dbca8ae08wangkun#define VC1_MAX_PANSCAN_WINDOWS (4) 207