📄 macroblock.h
字号:
/************************************************************************* COPYRIGHT AND WARRANTY INFORMATION** Copyright 2001, International Telecommunications Union, Geneva** DISCLAIMER OF WARRANTY** These software programs are available to the user without any* license fee or royalty on an "as is" basis. The ITU disclaims* any and all warranties, whether express, implied, or* statutory, including any implied warranties of merchantability* or of fitness for a particular purpose. In no event shall the* contributor or the ITU be liable for any incidental, punitive, or* consequential damages of any kind whatsoever arising from the* use of these programs.** This disclaimer of warranty extends to the user of these programs* and user's customers, employees, agents, transferees, successors,* and assigns.** The ITU does not represent or warrant that the programs furnished* hereunder are free of infringement of any third-party patents.* Commercial implementations of ITU-T Recommendations, including* shareware, may be subject to royalty fees to patent holders.* Information regarding the ITU-T patent policy is available from* the ITU Web site at http://www.itu.int.** THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY.*************************************************************************//*! ************************************************************************ * \file * macroblock.h * * \author * Inge Lille-Lang鴜 <inge.lille-langoy@telenor.com> \n * Telenor Satellite Services \n * P.O.Box 6914 St.Olavs plass \n * N-0130 Oslo, Norway * ************************************************************************/#ifndef _MACROBLOCK_H_#define _MACROBLOCK_H_//! just to make new temp intra mode tableconst int MODTAB[3][2]={ { 0, 4}, {16,12}, { 8,20}};//! gives codeword number from CBP value, both for intra and interconst int NCBP[48][2]={ { 3, 0},{29, 2},{30, 3},{17, 7},{31, 4},{18, 8},{37,17},{ 8,13},{32, 5},{38,18},{19, 9},{ 9,14}, {20,10},{10,15},{11,16},{ 2,11},{16, 1},{33,32},{34,33},{21,36},{35,34},{22,37},{39,44},{ 4,40}, {36,35},{40,45},{23,38},{ 5,41},{24,39},{ 6,42},{ 7,43},{ 1,19},{41, 6},{42,24},{43,25},{25,20}, {44,26},{26,21},{46,46},{12,28},{45,27},{47,47},{27,22},{13,29},{28,23},{14,30},{15,31},{ 0,12},};/*!Return prob.(0-5) for the input intra prediction mode(0-5),depending on previous (right/above) pred mode(0-6). \n \nNA values are set to 0 in the array. \nThe modes for the neighbour blocks are signalled: \n0 = outside \n1 = DC \n2 = diagonal vert 22.5 deg \n3 = vertical \n4 = diagonal 45 deg \n5 = horizontal \n6 = diagonal horizontal -22.5 deg \n \nprob order=PRED_IPRED[B(block left)][A(block above)][intra mode] */const byte PRED_IPRED[7][7][6]={ { {0,0,0,0,0,0}, {0,0,0,0,1,2}, {0,0,0,0,1,2}, {0,0,0,0,1,2}, {0,0,0,0,1,2}, {1,0,0,0,0,2}, {1,0,0,0,2,0}, }, { {0,2,1,0,0,0}, {0,2,5,3,1,4}, {0,1,4,3,2,5}, {0,1,2,3,4,5}, {1,3,5,0,2,4}, {1,4,5,2,0,3}, {2,4,5,3,1,0}, }, { {1,0,2,0,0,0}, {1,0,4,3,2,5}, {1,0,2,4,3,5}, {1,0,2,3,4,5}, {2,1,4,0,3,5}, {1,2,5,4,0,3}, {0,1,5,4,3,2}, }, { {1,2,0,0,0,0}, {2,4,0,1,3,5}, {1,3,0,2,4,5}, {2,1,0,3,4,5}, {3,2,0,1,5,4}, {2,5,0,3,1,4}, {1,2,0,5,3,4}, }, { {0,1,2,0,0,0}, {1,4,3,0,2,5}, {0,3,2,1,4,5}, {1,3,2,0,4,5}, {1,4,3,0,2,5}, {2,4,5,1,0,3}, {2,4,5,1,3,0}, }, { {0,1,2,0,0,0}, {0,3,5,2,1,4}, {0,2,4,3,1,5}, {0,3,2,4,1,5}, {1,4,5,2,0,3}, {1,4,5,2,0,3}, {2,4,5,3,0,1}, }, { {0,1,2,0,0,0}, {0,4,5,2,1,3}, {0,1,5,3,2,4}, {0,1,3,2,4,5}, {1,4,5,0,3,2}, {1,4,5,3,0,2}, {1,3,5,4,2,0}, }};/*! return codeword number from two combined intra prediction blocks*/const int IPRED_ORDER[6][6]={ { 0, 2, 3, 9,10,20}, { 1, 4, 8,11,19,21}, { 5, 7,12,18,22,29}, { 6,13,17,23,28,30}, {14,16,24,27,31,34}, {15,25,26,32,33,35},};extern int JQ[32][2];extern int QP2QUANT[32];#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -