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

📄 deblock_kc.h

📁 deblocking 在SPI DSP平台优化好的代码,超级强
💻 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 + -