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

📄 tagtree.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) 2002-2005 Intel Corporation. All Rights Reserved.//////*//*//  TagTree class encapsulate building of tag tree in memory//      space. It is used in tag tree coding/decoding systems defined//      in B.10.2 article of standard.//////*/#include "tagtree.h"#include "genalg.h"#include "wtmetric.h"TagTree::TagTree(): m_width(0), m_height(0){}void TagTree::Init(const RectSize &size){    m_width  = size.Width();    m_height = size.Height();    m_nodes.ReAlloc(NOfNodes(m_width, m_height));    int nOfLevels = NOfLevels(m_width, m_height);    Node *node    = m_nodes;    Node *parent  = &m_nodes[m_width * m_height];    Node *parent0 = parent;    for (int level = 0; level < nOfLevels - 1; level++)    {        int levelHeight = RShiftCeil(m_height, level);        int levelWidth  = RShiftCeil(m_width,  level);        for (int j = 0; j < levelHeight; j++)        {            int k = levelWidth;            while (--k >= 0)            {                node->m_parent = parent;                ++node;                if (--k >= 0)                {                    node->m_parent = parent;                    ++node;                }                ++parent;            }            if ((j & 1) || j == levelHeight - 1)            {                parent0 = parent;            }            else            {                parent = parent0;                parent0 += levelWidth;            }        }    }}int TagTree::NOfNodes(int width, int height){    int count = 0;    int level = 0;    int n;    do    {        n = RShiftCeil(width, level) * RShiftCeil(height, level);        count += n;        level++;    }    while (n > 1);    return count;}int TagTree::NOfLevels(int width, int height){    if(width*height <= 1) return 1;    return MaxNOfWTLevels(Max(width, height)) + 1;}

⌨️ 快捷键说明

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