📄 deblock_kc.h
字号:
// -------------------------------------------------------------------// ?2005 Stream Processors, Inc. All rights reserved.// This Software is the property of Stream Processors, Inc. (SPI) and// is Proprietary and Confidential. It has been provided under// license for solely use in evaluating and/or developing code for a// stream processor device. Any use of the Software to develop code// for a semiconductor device not manufactured by or for SPI is// prohibited. Unauthorized use of this Software is strictly// prohibited.//// THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES ARE GIVEN,// WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WARRANTIES OR// MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE,// NONINFRINGEMENT AND TITLE. RECIPIENT SHALL HAVE THE SOLE// RESPONSIBILITY FOR THE ADEQUATE PROTECTION AND BACK-UP OF ITS DATA// USED IN CONNECTION WITH THIS SOFTWARE. IN NO EVENT WILL SPI BE// LIABLE FOR ANY CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING LOSS OF// DATA OR USE, LOST PROFITS OR ANY INCIDENTAL OR SPECIAL DAMAGES,// ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS// SOFTWARE, WHETHER IN ACTION OF CONTRACT OR TORT, INCLUDING// NEGLIGENCE. SPI FURTHER DISCLAIMS ANY LIABILITY WHATSOEVER FOR// INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD// PARTY.// -------------------------------------------------------------------//--------------------------------------------------------------------// File: $File: //depot/main/software/demo/deblock/src/deblock_kc.h $// Revision: $Revision: #1 $// Last Modified: $DateTime: 2007/12/10 16:59:57 $//// Header for KernelC version of in-loop deblocking filter.//--------------------------------------------------------------------#ifndef _DEBLOCK_KC_H__#define _DEBLOCK_KC_H__#include "mb_info.h"// Macros for combining multiple tables into single stream#define DEBLK_TBLS_SIZE (NUM_QP + (NUM_QP>>2) + (NUM_QP>>2))#define DEBLK_IDXA_TBL_OFFSET 0#define DEBLK_IDXB_TBL_OFFSET (NUM_QP)#define DEBLK_QP2CHR_TBL_OFFSET (NUM_QP + (NUM_QP>>2))// Optimized structure used by deblocking to store needed fields// from a full MB_INFO structure. This stored structure will be used// as top row in while processing strip below the current one.typedef struct R_DEBLK_COMP_MB_INFO_T{ uint8x4 type_qp_refidx_totlumac; int16x2 mvy_mvx;}R_DEBLK_COMP_MB_INFO;#define DEBLK_COMP_MBINFO_SIZE_IN_WORDS 2//---------------------------------------------------------------------//// Public Prototypes////---------------------------------------------------------------------kernel void deblock_mb_calc_bs(// MB Context //stream R_BLK_MB_INFO mb_info_str(seq_in), stream uint32x1 mb_info_str(array_in), //stream R_BLK_MB_INFO mb_info_str_top(seq_in), stream R_DEBLK_COMP_MB_INFO short_mb_info_str(array_io), // Parameters //uint32x1 s_disable_filter(in), //int32x1 s_filt_offseta(in), //int32x1 s_filt_offsetb(in), // Flag to disable filtering of bottom row //bool32x1 s_dont_filt_bot_row(in), int32x1 s_packed_a_b_disfil_dontfilt(in), // Unified output stream with bs, alpha, beta, tc etc stream uint8x4 bs_a_b_tc_str(array_out), // Lookup tables stream uint8x4 deblock_tbls_str(array_in) //stream uint8x4 QP2ChromaMapping(array_in), //stream uint8x4 idxa_tbl(array_in), //stream uint8x4 idxb_tbl(array_in) );kernel void deblock_mb_luma( // Packed BS/Alpha/Beta/tC0 stream stream uint8x4 bs_a_b_tc_str(seq_in), // Parameters int32x1 s_packed_fmbve_lmbhe_iter(in), // Input/output pixel data stream uint8x4 in_frame(array_io), stream uint8x4 out_frame_inter(array_io), // Input/output pixel data for TOP stream uint8x4 in_out_frame_bot(array_io), stream uint8x4 post_data_munge_out(array_io) );kernel void deblock_mb_chroma( // Packed BS/Alpha/Beta/tC0 stream stream uint8x4 bs_a_b_tc_str(seq_in), // Parameters int32x1 s_packed_fmbve_lmbhe_iter(in), // Input/output pixel data // Chroma related streams stream uint8x4 in_out_framec(array_io), // Input/output pixel data for TOP stream uint8x4 in_out_frame_botc(array_io), //stream uint8x4 out_frame_topc(array_io), // Input to pre data munging stream uint8x4 pre_data_munge_in_frame(array_io), // Output to Post data munging stream uint8x4 post_data_munge_out_frame(array_io) );#endif // _DEBLOCK_KC_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -