📄 umc_avs_dec_decompressor_rec_i.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) 2007 Intel Corporation. All Rights Reserved.
//
//
*/
#include "umc_defs.h"
#if defined(UMC_ENABLE_AVS_VIDEO_DECODER)
#include "umc_avs_dec_decompressor.h"
#include "umc_avs_picture_header.h"
#include "umc_avs_dec_mb_info.h"
#include "umc_avs_dec_tables.h"
namespace UMC
{
void AVSDecompressor::ReconstructIMacroBlocksRow(void)
{
MbMax = m_recCtx.MbIndex + m_recCtx.MbWidth;
MbIndex = m_recCtx.MbIndex;
PrepareNeighbours(&m_recCtx);
// set coeffs buffers
m_pReadCoeffs = m_recCtx.m_pCoeffs;
do
{
// decode next macroblock
ReconstructIMacroBlock();
MbIndex += 1;
AdvanceNeighbours();
AdvanceReconstruction();
} while (MbIndex < MbMax);
// update context
FinalizeReconstruction();
} // void AVSDecompressor::ReconstructIMacroBlocksRow(void)
void AVSDecompressor::ReconstructIMacroBlock(void)
{
Ipp32u chromaQP;
Ipp32s edge_type = 0;
// prepare macroblock's absent block edges variable
edge_type |= (m_pMbInfoLeft) ?
(0) : (IPPVC_LEFT_EDGE);
edge_type |= (m_pMbInfoTop) ?
(0) : (IPPVC_TOP_EDGE);
edge_type |= ((m_recCtx.MbY + 1) * m_recCtx.MbWidth - 1 != MbIndex) ?
(0) : (IPPVC_TOP_RIGHT_EDGE);
// reconstruct luminance blocks
ippiReconstructLumaIntra_AVS_16s8u_C1R(&m_pReadCoeffs,
m_recCtx.m_pPlanes8u[0],
m_recCtx.m_iPitch,
m_pMbInfo->IntraLumaPredMode,
m_pMbInfo->NumCoeffs,
m_pMbInfo->MbCBP,
m_pMbInfo->QP,
edge_type);
// reconstruct chrominance blocks
chromaQP = AVSChromaQPTable[m_pMbInfo->QP];
ippiReconstructChromaIntra_AVS_16s8u_C1R(&m_pReadCoeffs,
m_recCtx.m_pPlanes8u[1],
m_recCtx.m_pPlanes8u[2],
m_recCtx.m_iPitch,
m_pMbInfo->IntraChromaPredMode[0],
m_pMbInfo->NumCoeffs + 4,
m_pMbInfo->MbCBP >> 4,
chromaQP,
edge_type);
} // void AVSDecompressor::ReconstructIMacroBlock(void)
} // namespace UMC
#endif // #if defined(UMC_ENABLE_AVS_VIDEO_DECODER)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -