Update Doxygen documentation

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.
This commit is contained in:
Ari Koivula 2015-12-17 13:42:57 +02:00
parent 84e2c0c9b7
commit 947bae24f9
95 changed files with 331 additions and 211 deletions

View file

@ -1,4 +1,5 @@
#Kvazaar
Kvazaar {#mainpage}
=========
An open-source HEVC encoder licensed under LGPLv2.1
Join channel #kvazaar_hevc in Freenode IRC network to contact us.

View file

@ -97,7 +97,7 @@ BRIEF_MEMBER_DESC = YES
# brief descriptions will be completely suppressed.
# The default value is: YES.
REPEAT_BRIEF = YES
REPEAT_BRIEF = NO
# This tag implements a quasi-intelligent brief description abbreviator that is
# used to form the text in various listings. Each string in this list, if found
@ -167,7 +167,7 @@ SHORT_NAMES = NO
# description.)
# The default value is: NO.
JAVADOC_AUTOBRIEF = NO
JAVADOC_AUTOBRIEF = YES
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
@ -734,7 +734,8 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
INPUT = src
INPUT = README.md src src/strategies src/strategies/altivec src/strategies/avx2 src/strategies/generic src/strategies/sse2 src/strategies/sse41 src/strategies/x86_asm tools
USE_MDFILE_AS_MAINPAGE = README.md
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@ -754,7 +755,7 @@ INPUT_ENCODING = UTF-8
# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
# *.qsf, *.as and *.js.
FILE_PATTERNS =
FILE_PATTERNS = *.md *.c *.h *.asm *.py
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
@ -2043,7 +2044,7 @@ HAVE_DOT = YES
# Minimum value: 0, maximum value: 32, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_NUM_THREADS = 1 # Marko usually has encoding in the background.
DOT_NUM_THREADS = 6
# When you want a differently looking font n the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "bitstream.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup CABAC
* \file
* \brief Bitstream can be written to one or several bits at a time.
* Appending bits into an Annex-B coded bitstream.
*/
#include "kvazaar.h"

View file

@ -18,11 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*
*/
#include "cabac.h"
#include <assert.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup CABAC
* \file
* \brief The Content Adaptive Binary Arithmetic Coder (CABAC).
* Coding bins using CABAC.
*/
#include "global.h"

View file

@ -20,6 +20,11 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \file
* Printing of debug information.
*/
#ifdef CHECKPOINTS
#ifdef NDEBUG
#error "CHECKPOINTS require assertions to be enabled!"

View file

@ -20,10 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
* \brief Contains code related to command line interface.
*/
/**
* \file
* Command line interface
*/
#include "kvazaar.h"
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "config.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* \brief Handles parsing and storing of configuration of the encoder.
* Runtime configuration through defaults and parsing of arguments.
*/
#include "kvazaar.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "context.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup CABAC
* \file
* \brief Context derivation for CABAC.
* Context derivation for CABAC.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <string.h>
#include <stdlib.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup DataStructures
* \file
* \brief CU and coefficients related functions
* Coding Unit data structure and related functions.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "encoder.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* \brief The highest level of the encoder.
* Initialization of encoder_control_t.
*/
#include "global.h"

View file

@ -20,8 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Bitstream
* \file
* Coding of HEVC bitstream elements.
*/
#include "global.h"

View file

@ -20,8 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* Creation and destruction of encoder_state_t.
*/
#include "global.h"

View file

@ -20,8 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* Helper functions for tiles and slices.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "encoderstate.h"
#include <math.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* \brief
* Top level of the encoder implementation.
*/
#include "global.h"
@ -38,7 +39,6 @@
#include "threadqueue.h"
#include "imagelist.h"
// Submodules
// Functions to obtain geometry information from LCU
#include "encoder_state-geometry.h"
@ -252,5 +252,6 @@ static const uint8_t g_min_in_group[10] = {
#define OFFSET_HOR_BUF(position_x, position_y, cur_pic, i) ((position_x) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width)
#define OFFSET_HOR_BUF_C(position_x, position_y, cur_pic, i) ((position_x/2) + i + ((position_y)/LCU_WIDTH - 1) * (cur_pic)->width / 2)
/** @} */
#endif //ENCODERSTATE_H_

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "filter.h"
#include <assert.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Reconstruction
* \file
* \brief Filtering, such as deblocking.
* Deblocking filter.
*/
#include "global.h"

View file

@ -20,9 +20,9 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \file
* \brief Header that is included in every other header.
* Header that is included in every other header.
*
* This file contains global constants that can be referred to from any header
* or source file. It also contains some helper macros and includes stdint.h
@ -39,6 +39,37 @@
#include "kvazaar.h"
/**
* \defgroup Bitstream
* HEVC bitstream coding
*
* \defgroup CABAC
* Context Adaptive Binary Arithmetic Encoder implementation
*
* \defgroup Compression
* Prediction parameter decisions and ratedistortion optimization
*
* \defgroup Control
* Initialization and control flow of the encoder
*
* \defgroup DataStructures
* Containers for images, predictions parameters and such
*
* \defgroup Extras
* 3rd party modules not considered part of the encoder.
*
* \defgroup Optimization
* Architecture dependant SIMD optimizations and dynamic dispatch mechanism
*
* \defgroup Reconstruction
* Stuff required for creating the resulting image after lossy compression
*
* \defgroup Threading
* Stuff related to multi-threading using pthreads
*/
#if defined(_MSC_VER) && defined(_M_AMD64)
#define X86_64
#endif

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "threads.h"
#include "image.h"
#include "strategyselector.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup DataStructures
* \file
* \brief Image and pixel related functions
* A reference counted YUV pixel buffer.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "threads.h"
#include "imagelist.h"
#include "strategyselector.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup DataStructures
* \file
* \brief List of images (for reference pictures)
* Container for a list of reference pictures.
*/
#include "image.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "input_frame_buffer.h"
#include "encoderstate.h"
#include <assert.h>

View file

@ -20,8 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* Buffering of input for reordering.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "inter.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Reconstruction
* \file
* \brief Handling Coding Units (CU's) for inter frames.
* Inter prediction.
*/
#include "global.h"

View file

@ -18,11 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \file
* \brief Functions for handling intra frames.
*/
#include "intra.h"
#include <assert.h>

View file

@ -20,10 +20,11 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
* \brief Handling Coding Units (CU's) for intra frames.
*/
/**
* \ingroup Reconstruction
* \file
* Intra prediction.
*/
#include "global.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
/**
* \ingroup Control
* \file
* \brief This file defines the public API of Kvazaar when used as a library.
* This file defines the public API of Kvazaar when used as a library.
*/
#include <stddef.h>

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Control
* \file
* \brief Definitions for opaque structs in kvazaar.h
*/
#include "kvazaar.h"
#include "input_frame_buffer.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Control
* \file
* \brief Libkvazaar version numbers.
*/
// KVZ_API_VERSION is incremented every time the public api changes.
#define KVZ_API_VERSION 10

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "nal.h"
#include "strategyselector.h"

View file

@ -21,8 +21,9 @@
****************************************************************************/
/*
* \ingroup Bitstream
* \file
* \brief Network Abstraction Layer (NAL) messages.
* Network Abstraction Layer (NAL) messages.
*/
#include "global.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Control
* \file
* \brief Functions related with rate control
* \brief Functions related to rate control.
*/
#include "encoderstate.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Compression
* \file
* \brief Handling Rate-Distortion Optimization related functionality
* Rate-Distortion Optimization related functionality.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "sao.h"
#include "rdo.h"
#include "strategies/strategies-picture.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Reconstruction
* \file
* \brief Coding Unit (CU) and picture data related functions.
* Sample Adaptive Offset filter.
*/
#include "checkpoint.h"

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Reconstruction
* \file
* \brief Coding Unit (CU) and picture data related functions.
* Scaling list initialization.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "search.h"
#include <stdio.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Compression
* \file
* \brief Searching of parameters for intra and inter frames.
* \brief Compression of a single coding tree unit (CTU).
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "search_inter.h"
#include <stdlib.h>

View file

@ -20,10 +20,11 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
* \brief Functions related to inter prediction mode search.
*/
/**
* \ingroup Compression
* \file
* Inter prediction parameter search.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "search_intra.h"
#include "encoderstate.h"

View file

@ -20,10 +20,11 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
* \brief Functions related to intra prediction mode search.
*/
/**
* \ingroup Compression
* \file
* Intra prediction parameter search.
*/
#include "global.h"

View file

@ -18,9 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "picture-altivec.h"
#include "strategyselector.h"
#include "image.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for Altivec.
*/
#include "global.h"
int kvz_strategy_register_picture_altivec(void* opaque, uint8_t bitdepth);

View file

@ -1,7 +1,5 @@
#ifndef STRATEGIES_DCT_AVX2_H_
#define STRATEGIES_DCT_AVX2_H_
#include "global.h"
/*****************************************************************************
* This file is part of Kvazaar HEVC encoder.
*
@ -22,6 +20,14 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX2.
*/
#include "global.h"
int kvz_strategy_register_dct_avx2(void* opaque, uint8_t bitdepth);
#endif //STRATEGIES_DCT_AVX2_H_

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "intra-avx2.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX2.
*/
#include <stdint.h>
#include "encoderstate.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX2.
*/
#include "global.h"
int kvz_strategy_register_ipol_avx2(void* opaque, uint8_t bitdepth);

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX2.
*/
#include "global.h"
int kvz_strategy_register_picture_avx2(void* opaque, uint8_t bitdepth);

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX2.
*/
#include <stdint.h>
int kvz_strategy_register_quant_avx2(void* opaque, uint8_t bitdepth);

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "strategyselector.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
#include "global.h"
extern const int16_t kvz_g_dst_4[4][4];

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "intra-generic.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
#include <stdint.h>
#include "encoderstate.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "ipol-generic.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
#include "encoder.h"
int kvz_strategy_register_ipol_generic(void* opaque, uint8_t bitdepth);

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include <assert.h>

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
#include "global.h"
int kvz_strategy_register_nal_generic(void* opaque, uint8_t bitdepth);

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "strategyselector.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
int kvz_strategy_register_picture_generic(void* opaque, uint8_t bitdepth);
// Function to clip int16_t to pixel. (0-255 or 0-1023)

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "quant-generic.h"

View file

@ -19,6 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Generic C implementations of optimized functions.
*/
#include <stdint.h>
#include "encoderstate.h"

View file

@ -18,9 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "picture-sse2.h"
#include "strategyselector.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for SSE2.
*/
int kvz_strategy_register_picture_sse2(void* opaque, unsigned char bitdepth);
#endif //STRATEGIES_PICTURE_SSE2_H_

View file

@ -18,9 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "picture-sse41.h"
#include "strategyselector.h"

View file

@ -22,6 +22,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for SSE4.1.
*/
int kvz_strategy_register_picture_sse41(void* opaque, uint8_t bitdepth);
#endif //STRATEGIES_PICTURE_SSE41_H_

View file

@ -1,8 +1,14 @@
#ifndef STRATEGIES_COMMON_H_
#define STRATEGIES_COMMON_H_
/**
* \ingroup Optimization
* \file
* Common tools strategies.
*/
//Use with shuffle and permutation intrinsics.
//Parameters are indices to packed elements. Each must be 0, 1, 2 or 3.
#define KVZ_PERMUTE(a, b, c, d) ( (a << 0) | (b << 2) | (c << 4) | (d << 6) )
#endif //STRATEGIES_COMMON_H_
#endif //STRATEGIES_COMMON_H_

View file

@ -19,7 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for transform functions.
*/
#include <stdint.h>
typedef unsigned (dct_func)(int8_t bitdepth, const int16_t *input, int16_t *output);

View file

@ -19,7 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for intra prediction functions.
*/
#include "encoderstate.h"
typedef void (angular_pred_func)(

View file

@ -19,7 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for subpixel interpolation functions.
*/
#include <stdint.h>
#include "encoder.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for hash functions.
*/
#include "../nal.h"
//Function pointer to kvz_array_checksum

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for distortion metric functions.
*/
#include "../image.h"
typedef kvz_pixel (*pred_buffer)[32 * 32];

View file

@ -19,7 +19,13 @@
* You should have received a copy of the GNU General Public License along
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Interface for quantization functions.
*/
#include "encoderstate.h"
// Declare function pointers.

View file

@ -20,9 +20,11 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*! \file picture-x86-asm-sad.h
\brief assembly functions header for sad
*/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX, utilizing ASM implementations.
*/
unsigned kvz_sad_4x4_avx(const kvz_pixel*, const kvz_pixel*);
unsigned kvz_sad_8x8_avx(const kvz_pixel*, const kvz_pixel*);

View file

@ -20,10 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX, utilizing ASM implementations.
*/
/*! \file picture-x86-asm-satd.h
\brief assembly functions header for satd
*/
unsigned kvz_satd_4x4_avx(const kvz_pixel *org, const kvz_pixel *cur);
unsigned kvz_satd_8x8_avx(const kvz_pixel *org, const kvz_pixel *cur);
unsigned kvz_satd_16x16_avx(const kvz_pixel *org, const kvz_pixel *cur);

View file

@ -18,9 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include "strategyselector.h"

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Optimizations for AVX, utilizing ASM implementations.
*/
int kvz_strategy_register_picture_x86_asm_avx(void* opaque, uint8_t bitdepth);
#endif //STRATEGIES_PICTURE_X86_ASM_H_

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "strategyselector.h"
#include <assert.h>

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Optimization
* \file
* Dynamic dispatch based on cpuid.
*/
#include "global.h"
#if defined(KVZ_DEBUG) && !defined(DEBUG_STRATEGYSELECTOR)

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Reconstruction
* \file
* Various tables.
*/
#include "global.h"
//4 8 16 32 64 128

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Threading
* \file
* Container for worker tasks.
*/
#include "global.h"
#include <pthread.h>

View file

@ -20,6 +20,12 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/**
* \ingroup Threading
* \file
* Abstractions for operating system specific stuff.
*/
#include "global.h"
#include <pthread.h>

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include "transform.h"
#include <string.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup Reconstruction
* \file
* \brief Transformations, such as quantization and DST.
* Quantization and transform functions.
*/
#include "global.h"

View file

@ -18,10 +18,6 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
* \file
*/
#include <stdlib.h>
#include <string.h>

View file

@ -20,9 +20,10 @@
* with Kvazaar. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
/*
/**
* \ingroup DataStructures
* \file
* \brief Video frame stuff
* \brief Container for the frame currently being encoded.
*/
#include "global.h"