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

📄 enchtbl.cpp

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 CPP
字号:
/*////               INTEL CORPORATION PROPRIETARY INFORMATION//  This software is supplied under the terms of a license agreement or//  nondisclosure agreement with Intel Corporation and may not be copied//  or disclosed except in accordance with the terms of that agreement.//    Copyright (c) 2001-2005 Intel Corporation. All Rights Reserved.//*/#include "precomp.h"#ifndef __JPEGBASE_H__#include "jpegbase.h"#endif#ifndef __ENCHTBL_H__#include "enchtbl.h"#endifCJPEGEncoderHuffmanTable::CJPEGEncoderHuffmanTable(void){  m_id     = 0;  m_hclass = 0;  m_table  = 0;  ippsZero_8u(m_bits,sizeof(m_bits));  ippsZero_8u(m_vals,sizeof(m_vals));  return;} // ctorCJPEGEncoderHuffmanTable::~CJPEGEncoderHuffmanTable(void){  Destroy();  return;} // dtorJERRCODE CJPEGEncoderHuffmanTable::Create(void){  int       size;  IppStatus status;  status = ippiEncodeHuffmanSpecGetBufSize_JPEG_8u(&size);  if(ippStsNoErr != status)  {    LOG1("IPP Error: ippiEncodeHuffmanSpecGetBufSize_JPEG_8u() failed - ",status);    return JPEG_INTERNAL_ERROR;  }  if(0 != m_table)  {    ippFree(m_table);    m_table = 0;  }  m_table = (IppiEncodeHuffmanSpec*)ippMalloc(size);  if(0 == m_table)  {    LOG0("IPP Error: ippMalloc() failed");    return JPEG_OUT_OF_MEMORY;  }  return JPEG_OK;} // CJPEGEncoderHuffmanTable::Create()JERRCODE CJPEGEncoderHuffmanTable::Destroy(void){  m_id     = 0;  m_hclass = 0;  m_table  = 0;  ippsZero_8u(m_bits,sizeof(m_bits));  ippsZero_8u(m_vals,sizeof(m_vals));  if(0 != m_table)  {    ippFree(m_table);    m_table = 0;  }  return JPEG_OK;} // CJPEGEncoderHuffmanTable::Destroy()JERRCODE CJPEGEncoderHuffmanTable::Init(int id,int hclass,Ipp8u* bits,Ipp8u* vals){  IppStatus status;  m_id     = id     & 0x0f;  m_hclass = hclass & 0x0f;  ippsCopy_8u(bits,m_bits,16);  ippsCopy_8u(vals,m_vals,256);  status = ippiEncodeHuffmanSpecInit_JPEG_8u(m_bits,m_vals,m_table);  if(ippStsNoErr != status)  {    LOG1("IPP Error: ippiEncodeHuffmanSpecInit_JPEG_8u() failes - ", status);    return JPEG_INTERNAL_ERROR;  }  return JPEG_OK;} // CJPEGEncoderHuffmanTable::Init()CJPEGEncoderHuffmanState::CJPEGEncoderHuffmanState(void){  m_state = 0;  return;} // ctorCJPEGEncoderHuffmanState::~CJPEGEncoderHuffmanState(void){  Destroy();  return;} // dtorJERRCODE CJPEGEncoderHuffmanState::Create(void){  int       size;  IppStatus status;  status = ippiEncodeHuffmanStateGetBufSize_JPEG_8u(&size);  if(ippStsNoErr != status)  {    LOG1("IPP Error: ippiEncodeHuffmanStateGetBufSize_JPEG_8u() failed - ",status);    return JPEG_INTERNAL_ERROR;  }  if(0 != m_state)  {    ippFree(m_state);    m_state = 0;  }  m_state = (IppiEncodeHuffmanState*)ippMalloc(size);  if(0 == m_state)  {    LOG0("IPP Error: ippMalloc() failed");    return JPEG_OUT_OF_MEMORY;  }  return JPEG_OK;} // CJPEGEncoderHuffmanState::Create()JERRCODE CJPEGEncoderHuffmanState::Destroy(void){  if(0 != m_state)  {    ippFree(m_state);    m_state = 0;  }  return JPEG_OK;} // CJPEGEncoderHuffmanState::Destroy()JERRCODE CJPEGEncoderHuffmanState::Init(void){  IppStatus status;  status = ippiEncodeHuffmanStateInit_JPEG_8u(m_state);  if(ippStsNoErr != status)  {    LOG1("IPP Error: ippiEncodeHuffmanStateInit_JPEG_8u() failed - ",status);    return JPEG_INTERNAL_ERROR;  }  return JPEG_OK;} // CJPEGEncoderHuffmanState::Init()

⌨️ 快捷键说明

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