block_half.c
上传用户:wstnjxml
上传日期:2014-04-03
资源大小:7248k
文件大小:2k
源码类别:

Windows CE

开发平台:

C/C++

  1. /*****************************************************************************
  2.  *
  3.  * This program is free software ; you can redistribute it and/or modify
  4.  * it under the terms of the GNU General Public License as published by
  5.  * the Free Software Foundation; either version 2 of the License, or
  6.  * (at your option) any later version.
  7.  *
  8.  * This program is distributed in the hope that it will be useful,
  9.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11.  * GNU General Public License for more details.
  12.  *
  13.  * You should have received a copy of the GNU General Public License
  14.  * along with this program; if not, write to the Free Software
  15.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  16.  *
  17.  * $Id: block_half.c 284 2005-10-04 08:54:26Z picard $
  18.  *
  19.  * The Core Pocket Media Player
  20.  * Copyright (c) 2004-2005 Gabor Kovacs
  21.  *
  22.  ****************************************************************************/
  23.  
  24. #include "../common.h"
  25. #include "softidct.h"
  26. #if defined(CONFIG_IDCT_LOWRES)
  27. #define Statistics(a,b,c,d)
  28. void Copy420Half(softidct* p,int x,int y,int Forward)
  29. {
  30. SetPtr420(p,x,y,1);
  31. CopyBlock8x8(p->RefPtr[Forward],p->DstPtr,p->CurrPitch,p->CurrPitch);
  32. IncPtrLum(p);
  33. CopyBlock4x4(p->RefPtr[Forward],p->DstPtr,p->CurrPitch,p->CurrPitch);
  34. IncPtr(p,1,1);
  35. CopyBlock4x4(p->RefPtr[Forward],p->DstPtr,p->CurrPitch,p->CurrPitch);
  36. EMMS();
  37. }
  38. void Process420Half(softidct* p,int x,int y)
  39. {
  40. ProcessHead(p,x,y);
  41. SetPtr420(p,x,y,1);
  42. ProcessTail(p,x,y);
  43. }
  44. void Process422Half(softidct* p,int x,int y)
  45. {
  46. ProcessHead(p,x,y);
  47. SetPtr422(p,x,y,1);
  48. ProcessTail(p,x,y);
  49. }
  50. void Process444Half(softidct* p,int x,int y)
  51. {
  52. ProcessHead(p,x,y);
  53. SetPtr444(p,x,y,1);
  54. ProcessTail(p,x,y);
  55. }
  56. #define HALF
  57. #define Intra8x8 Intra8x8Half
  58. #define Inter8x8Back Inter8x8BackHalf
  59. #define Inter8x8BackFwd Inter8x8BackFwdHalf
  60. #include "block.h"
  61. void Process420Quarter(softidct* p,int x,int y)
  62. {
  63. ProcessHead(p,x,y);
  64. SetPtr420(p,x,y,2);
  65. ProcessTail(p,x,y);
  66. }
  67. void Process422Quarter(softidct* p,int x,int y)
  68. {
  69. ProcessHead(p,x,y);
  70. SetPtr422(p,x,y,2);
  71. ProcessTail(p,x,y);
  72. }
  73. void Process444Quarter(softidct* p,int x,int y)
  74. {
  75. ProcessHead(p,x,y);
  76. SetPtr444(p,x,y,2);
  77. ProcessTail(p,x,y);
  78. }
  79. #undef HALF
  80. #define QUARTER
  81. #undef Intra8x8
  82. #define Intra8x8 Intra8x8Quarter
  83. #include "block.h"
  84. #endif