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

📄 block.cpp

📁 AVS是中国自己推出的视频图像音频编解码标准。包中是AVS 源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-2))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)));
       
        int Dpie = *(pbRefY + max(0,min(iImgHeight-1, refY+i))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 8;
        int hpie = 
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j)));
                int Hpie = *(pbRefY + max(0,min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 8; 
        int dpie = ffpie + 7*Dpie + 7*hpie + Hpie;
        pPred[i*8+j] = Clip((dpie + 64)>>7);        
      }
    }
  }
  else if(dy==1 && dx==1) //e
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int aapie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int bpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int spie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int ddpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
       
        int jpie = -aapie + 5*bpie + 5*spie - ddpie;
        
        int Dpiepie = *(pbRefY + max(0,min(iImgHeight-1, refY+i))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 64;
 
        pPred[i*8+j] = Clip((Dpiepie+jpie+64)>>7);
      }
    }
  }
  else if(dy==1 && dx==2) //f
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int xxpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

        int aapie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int bpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

        int spie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int ddpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

        int hhpie = -xxpie + 5*aapie + 5*bpie - spie;
        int jpie = -aapie + 5*bpie + 5*spie - ddpie;
        
        pPred[i*8+j] = Clip((hhpie+7*bpie*8+7*jpie+spie*8+512)>>10);      
      }
    }
  }
  else if(dy==1 && dx==3) //g
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int aapie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int bpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

        int spie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int ddpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int jpie = -aapie + 5*bpie + 5*spie - ddpie;
        int Epiepie = *(pbRefY + max(0,min(iImgHeight-1, refY+i))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))) * 64;
        pPred[i*8+j] = Clip((Epiepie+jpie+64)>>7);
      }
    }
  }
  else if(dy==2 && dx==1) //i
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int aapie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int bpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

        int spie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int ddpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int jpie = -aapie + 5*bpie + 5*spie - ddpie;

        int aaxxpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-2))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))));
        int eepie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-2))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))));

        int sxxpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-2))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))));
        int ddxxpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-2))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))));
        int ggpie = -aaxxpie + 5*eepie + 5*sxxpie - ddxxpie;
        int hpie = 
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j)));
        int mpie = 
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
          + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
          -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)));
        pPred[i*8+j] = Clip((ggpie+7*hpie*8+7*jpie+mpie*8+512)>>10);
      }
    }
  }
  else if(dy==2 && dx==3) //k
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int bbpie = 
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1)));
        int hpie =  
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j)));
        int mpie = 
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1)));
        int ccpie = 
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2)));
        int jpie = -bbpie + 5*hpie + 5*mpie - ccpie;

        int xxpie = 
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+3)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+3)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+3)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+3)));
        int kkpie = -hpie + 5*mpie + 5*ccpie - xxpie;
        pPred[i*8+j] = Clip((hpie*8+7*jpie+7*mpie*8+kkpie+512)>>10);

      }
    }
  }
  else if(dy==3 && dx==0) //n
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int Dpie = *(pbRefY + max(0,min(iImgHeight-1, refY+i))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 8;
        int hpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j))));
        int Hpie = *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 8;  
        int xxpie = 
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              + 5* *(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j)))
              -    *(pbRefY + max(0, min(iImgHeight-1, refY+i+3))*iImgWidth + max(0, min(iImgWidth-1, refX+j)));
        pPred[i*8+j] = Clip((Dpie+7*hpie+7*Hpie+xxpie+64)>>7);
     }
    }

  }
  else if(dy==3 && dx==1) //p
  {
    for(i=0; i<8; i++)
    {
      for(j=0; j<8; j++)
      {
        int Hpiepie = *(pbRefY + max(0,min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j))) * 64;  
        int aapie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i-1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int bpie =  
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i  ))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int spie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+1))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));
        int ddpie = 
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j-1))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j  ))))
              + 5* (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+1))))
              -    (*(pbRefY + max(0, min(iImgHeight-1, refY+i+2))*iImgWidth + max(0, min(iImgWidth-1, refX+j+2))));

⌨️ 快捷键说明

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