mirror of
https://github.com/ultravideo/uvg266.git
synced 2024-11-24 10:34:05 +00:00
947bae24f9
Add module information to all header files. Update all header file documentations to briefly say what they are, and to use the javadoc format so the brief actually gets included into the doxygen documentation. Remove \file from implementation files, in order to not repeat the info from the header files. Add files under strategies and tools to Doxygen and update the Doxygen settings to be just plain better. Make README be the main page of Doxygen documentation.
91 lines
3.4 KiB
C
91 lines
3.4 KiB
C
#ifndef INTER_H_
|
|
#define INTER_H_
|
|
/*****************************************************************************
|
|
* This file is part of Kvazaar HEVC encoder.
|
|
*
|
|
* Copyright (C) 2013-2015 Tampere University of Technology and others (see
|
|
* COPYING file).
|
|
*
|
|
* Kvazaar is free software: you can redistribute it and/or modify it under
|
|
* the terms of the GNU Lesser General Public License as published by the
|
|
* Free Software Foundation; either version 2.1 of the License, or (at your
|
|
* option) any later version.
|
|
*
|
|
* Kvazaar is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
|
* more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
|
|
****************************************************************************/
|
|
|
|
/**
|
|
* \ingroup Reconstruction
|
|
* \file
|
|
* Inter prediction.
|
|
*/
|
|
|
|
#include "global.h"
|
|
|
|
#include "image.h"
|
|
#include "encoder.h"
|
|
#include "encoderstate.h"
|
|
|
|
typedef struct {
|
|
uint8_t dir;
|
|
uint8_t ref[2];
|
|
int16_t mv[2][2];
|
|
|
|
} inter_merge_cand_t;
|
|
|
|
|
|
void kvz_inter_recon_lcu(const encoder_state_t * const state,
|
|
const kvz_picture * ref,
|
|
int32_t xpos,
|
|
int32_t ypos,
|
|
int32_t width,
|
|
int32_t height,
|
|
const int16_t mv_param[2],
|
|
lcu_t* lcu,
|
|
hi_prec_buf_t *hi_prec_out);
|
|
|
|
void kvz_inter_recon_lcu_bipred(const encoder_state_t * const state,
|
|
const kvz_picture * ref1,
|
|
const kvz_picture * ref2,
|
|
int32_t xpos,
|
|
int32_t ypos,
|
|
int32_t width,
|
|
int32_t height,
|
|
int16_t mv_param[2][2],
|
|
lcu_t* lcu);
|
|
|
|
void kvz_inter_get_spatial_merge_candidates(int32_t x,
|
|
int32_t y,
|
|
int32_t width,
|
|
int32_t height,
|
|
cu_info_t **b0,
|
|
cu_info_t **b1,
|
|
cu_info_t **b2,
|
|
cu_info_t **a0,
|
|
cu_info_t **a1,
|
|
lcu_t *lcu);
|
|
|
|
void kvz_inter_get_mv_cand(const encoder_state_t * const state,
|
|
int32_t x,
|
|
int32_t y,
|
|
int32_t width,
|
|
int32_t height,
|
|
int16_t mv_cand[2][2],
|
|
cu_info_t* cur_cu,
|
|
lcu_t *lcu,
|
|
int8_t reflist);
|
|
|
|
uint8_t kvz_inter_get_merge_cand(const encoder_state_t * const state,
|
|
int32_t x, int32_t y,
|
|
int32_t width, int32_t height,
|
|
bool use_a1, bool use_b1,
|
|
inter_merge_cand_t mv_cand[MRG_MAX_NUM_CANDS],
|
|
lcu_t *lcu);
|
|
#endif
|