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