📄 umc_h264_deblocking_tools.h
字号:
/*
//
// 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) 2003-2007 Intel Corporation. All Rights Reserved.
//
//
*/
#ifndef __UMC_H264_DEBLOCKING_TOOLS_H
#define __UMC_H264_DEBLOCKING_TOOLS_H
#include <ippi.h>
#include "vm_event.h"
#include "vm_thread.h"
#include "umc_structures.h"
#include "umc_h264_video_encoder.h"
#include "umc_h264_core_enc.h"
using namespace UMC;
namespace UMC_H264_ENCODER
{
// forward declaration
template <class PixType, class CoeffsType> class H264EncoderThreadedDeblockingTools
{
public:
// Default constructor
H264EncoderThreadedDeblockingTools (void);
// Destructor
virtual ~H264EncoderThreadedDeblockingTools (void);
// Initialize object
Status Initialize(H264CoreEncoder<PixType, CoeffsType> *pEncoder);
// Deblock slice by two thread
void DeblockSliceTwoThreaded(Ipp32u uFirstMB, Ipp32u unumMBs,
typename H264CoreEncoder<PixType, CoeffsType>::DeblockingFunction pDeblocking);
// Deblock slice asynchronous
void WaitEndOfSlice(void);
void DeblockSliceAsync(Ipp32u uFirstMB, Ipp32u unumMBs, typename H264CoreEncoder<PixType, CoeffsType>::DeblockingFunction pDeblocking);
Ipp32u m_nMBAFF; // (Ipp32u) MBAFF flag
// Release object
void Release(void);
// Additional deblocking thread
static
Ipp32u VM_THREAD_CALLCONVENTION DeblockSliceSecondThread(void *p);
static
Ipp32u VM_THREAD_CALLCONVENTION DeblockSliceAsyncSecondThread(void *p);
H264CoreEncoder<PixType, CoeffsType> *m_pDecoder; // (H264CoreEncoder *) pointer to decoder-owner
vm_thread m_hDeblockingSliceSecondThread; // (vm_thread) handle to deblocking slice second thread
vm_thread m_hDeblockingSliceAsyncSecondThread; // (vm_thread) handle to deblocking slice second thread
vm_event m_hBeginFrame; // (vm_event) event to begin of deblocking frame
vm_event m_hBeginSlice; // (vm_event) event to begin of deblocking slice
vm_event m_hBeginRow; // (vm_event) event to begin of deblocking row
vm_event m_hDoneBorder; // (vm_event) event of border macroblock is complete
vm_event m_hDoneRow; // (vm_event) event of row is complete
vm_event m_hDoneSlice; // (vm_event) event of slice is complete
bool m_bQuit; // (bool) quit flag
Ipp32u m_nFirstMB; // (Ipp32u) first macroblock to deblock
Ipp32u m_nNumMB; // (Ipp32u) number of macroblock to deblock
typename H264CoreEncoder<PixType,CoeffsType>::DeblockingFunction m_pDeblocking; // (H264CoreEncoder::DeblockingFunction) pointer to current deblocking function
};
} // namespace UMC_H264_ENCODER
#endif // UMC_H264_DEBLOCKING_TOOLS_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -