From 947bae24f9f65f078c7ba00ae9790082214f99de Mon Sep 17 00:00:00 2001 From: Ari Koivula Date: Thu, 17 Dec 2015 13:42:57 +0200 Subject: [PATCH] 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. --- README.md | 3 +- docs.doxy | 11 +++--- src/bitstream.c | 4 --- src/bitstream.h | 5 +-- src/cabac.c | 5 --- src/cabac.h | 5 +-- src/checkpoint.h | 5 +++ src/cli.h | 8 ++--- src/config.c | 4 --- src/config.h | 5 +-- src/context.c | 4 --- src/context.h | 5 +-- src/cu.c | 4 --- src/cu.h | 5 +-- src/encoder.c | 4 --- src/encoder.h | 5 +-- src/encoder_state-bitstream.h | 4 ++- src/encoder_state-ctors_dtors.h | 4 ++- src/encoder_state-geometry.h | 4 ++- src/encoderstate.c | 4 --- src/encoderstate.h | 7 ++-- src/filter.c | 4 --- src/filter.h | 5 +-- src/global.h | 35 +++++++++++++++++-- src/image.c | 4 --- src/image.h | 5 +-- src/imagelist.c | 4 --- src/imagelist.h | 5 +-- src/input_frame_buffer.c | 4 --- src/input_frame_buffer.h | 4 ++- src/inter.c | 4 --- src/inter.h | 5 +-- src/intra.c | 5 --- src/intra.h | 9 ++--- src/kvazaar.h | 5 +-- src/kvazaar_internal.h | 6 ++++ src/kvazaar_version.h | 6 ++++ src/nal.c | 4 --- src/nal.h | 3 +- src/rate_control.h | 5 +-- src/rdo.c | 4 --- src/rdo.h | 5 +-- src/sao.c | 4 --- src/sao.h | 5 +-- src/scalinglist.h | 5 +-- src/search.c | 4 --- src/search.h | 5 +-- src/search_inter.c | 4 --- src/search_inter.h | 9 ++--- src/search_intra.c | 4 --- src/search_intra.h | 9 ++--- src/strategies/altivec/picture-altivec.c | 3 -- src/strategies/altivec/picture-altivec.h | 7 ++++ src/strategies/avx2/dct-avx2.h | 10 ++++-- src/strategies/avx2/intra-avx2.c | 4 --- src/strategies/avx2/intra-avx2.h | 7 ++++ src/strategies/avx2/ipol-avx2.h | 7 ++++ src/strategies/avx2/picture-avx2.h | 7 ++++ src/strategies/avx2/quant-avx2.h | 7 ++++ src/strategies/generic/dct-generic.c | 4 --- src/strategies/generic/dct-generic.h | 6 ++++ src/strategies/generic/intra-generic.c | 4 --- src/strategies/generic/intra-generic.h | 7 ++++ src/strategies/generic/ipol-generic.c | 4 --- src/strategies/generic/ipol-generic.h | 7 ++++ src/strategies/generic/nal-generic.c | 4 --- src/strategies/generic/nal-generic.h | 7 ++++ src/strategies/generic/picture-generic.c | 4 --- src/strategies/generic/picture-generic.h | 6 ++++ src/strategies/generic/quant-generic.c | 4 --- src/strategies/generic/quant-generic.h | 7 ++++ src/strategies/sse2/picture-sse2.c | 3 -- src/strategies/sse2/picture-sse2.h | 6 ++++ src/strategies/sse41/picture-sse41.c | 3 -- src/strategies/sse41/picture-sse41.h | 6 ++++ src/strategies/strategies-common.h | 8 ++++- src/strategies/strategies-dct.h | 8 ++++- src/strategies/strategies-intra.h | 8 ++++- src/strategies/strategies-ipol.h | 8 ++++- src/strategies/strategies-nal.h | 6 ++++ src/strategies/strategies-picture.h | 6 ++++ src/strategies/strategies-quant.h | 8 ++++- src/strategies/x86_asm/picture-x86-asm-sad.h | 8 +++-- src/strategies/x86_asm/picture-x86-asm-satd.h | 8 +++-- src/strategies/x86_asm/picture-x86-asm.c | 3 -- src/strategies/x86_asm/picture-x86-asm.h | 6 ++++ src/strategyselector.c | 4 --- src/strategyselector.h | 6 ++++ src/tables.h | 6 ++++ src/threadqueue.h | 6 ++++ src/threads.h | 6 ++++ src/transform.c | 4 --- src/transform.h | 5 +-- src/videoframe.c | 4 --- src/videoframe.h | 5 +-- 95 files changed, 331 insertions(+), 211 deletions(-) diff --git a/README.md b/README.md index 5e18937c..29d7da87 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/docs.doxy b/docs.doxy index 666f58b2..a205bc98 100644 --- a/docs.doxy +++ b/docs.doxy @@ -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 diff --git a/src/bitstream.c b/src/bitstream.c index d26c198c..7c1ebf9b 100644 --- a/src/bitstream.c +++ b/src/bitstream.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "bitstream.h" #include diff --git a/src/bitstream.h b/src/bitstream.h index c2de4f5c..229da73a 100644 --- a/src/bitstream.h +++ b/src/bitstream.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \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" diff --git a/src/cabac.c b/src/cabac.c index a9e3da66..adabe8e0 100644 --- a/src/cabac.c +++ b/src/cabac.c @@ -18,11 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - * - */ - #include "cabac.h" #include diff --git a/src/cabac.h b/src/cabac.h index 147c88cc..2efd7baa 100644 --- a/src/cabac.h +++ b/src/cabac.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup CABAC * \file - * \brief The Content Adaptive Binary Arithmetic Coder (CABAC). + * Coding bins using CABAC. */ #include "global.h" diff --git a/src/checkpoint.h b/src/checkpoint.h index 71cb15da..050bb906 100644 --- a/src/checkpoint.h +++ b/src/checkpoint.h @@ -20,6 +20,11 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \file + * Printing of debug information. + */ + #ifdef CHECKPOINTS #ifdef NDEBUG #error "CHECKPOINTS require assertions to be enabled!" diff --git a/src/cli.h b/src/cli.h index f2dc82a7..cd6c662e 100644 --- a/src/cli.h +++ b/src/cli.h @@ -20,10 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -* \brief Contains code related to command line interface. -*/ +/** + * \file + * Command line interface + */ #include "kvazaar.h" #include "global.h" diff --git a/src/config.c b/src/config.c index 69a0272f..cb58a6d2 100644 --- a/src/config.c +++ b/src/config.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "config.h" #include diff --git a/src/config.h b/src/config.h index dd107da7..c437955e 100644 --- a/src/config.h +++ b/src/config.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file - * \brief Handles parsing and storing of configuration of the encoder. + * Runtime configuration through defaults and parsing of arguments. */ #include "kvazaar.h" diff --git a/src/context.c b/src/context.c index 625ae145..2056daca 100644 --- a/src/context.c +++ b/src/context.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "context.h" #include diff --git a/src/context.h b/src/context.h index 49c74292..1cb26aa6 100644 --- a/src/context.h +++ b/src/context.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup CABAC * \file - * \brief Context derivation for CABAC. + * Context derivation for CABAC. */ #include "global.h" diff --git a/src/cu.c b/src/cu.c index d8810d62..354199e2 100644 --- a/src/cu.c +++ b/src/cu.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include diff --git a/src/cu.h b/src/cu.h index 4269769b..0109b49e 100644 --- a/src/cu.h +++ b/src/cu.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup DataStructures * \file - * \brief CU and coefficients related functions + * Coding Unit data structure and related functions. */ #include "global.h" diff --git a/src/encoder.c b/src/encoder.c index b1626df3..be776ceb 100644 --- a/src/encoder.c +++ b/src/encoder.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "encoder.h" #include diff --git a/src/encoder.h b/src/encoder.h index ee8fcbe1..7578e03c 100644 --- a/src/encoder.h +++ b/src/encoder.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file - * \brief The highest level of the encoder. + * Initialization of encoder_control_t. */ #include "global.h" diff --git a/src/encoder_state-bitstream.h b/src/encoder_state-bitstream.h index 3b6c0c11..97f46799 100644 --- a/src/encoder_state-bitstream.h +++ b/src/encoder_state-bitstream.h @@ -20,8 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Bitstream * \file + * Coding of HEVC bitstream elements. */ #include "global.h" diff --git a/src/encoder_state-ctors_dtors.h b/src/encoder_state-ctors_dtors.h index f3ebbb02..97a8291f 100644 --- a/src/encoder_state-ctors_dtors.h +++ b/src/encoder_state-ctors_dtors.h @@ -20,8 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file + * Creation and destruction of encoder_state_t. */ #include "global.h" diff --git a/src/encoder_state-geometry.h b/src/encoder_state-geometry.h index ed628dd9..20cc9df0 100644 --- a/src/encoder_state-geometry.h +++ b/src/encoder_state-geometry.h @@ -20,8 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file + * Helper functions for tiles and slices. */ #include "global.h" diff --git a/src/encoderstate.c b/src/encoderstate.c index 1fbed0d3..77b4424c 100644 --- a/src/encoderstate.c +++ b/src/encoderstate.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "encoderstate.h" #include diff --git a/src/encoderstate.h b/src/encoderstate.h index edc7b33f..3226d464 100644 --- a/src/encoderstate.h +++ b/src/encoderstate.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \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_ diff --git a/src/filter.c b/src/filter.c index ba387777..54a88f7d 100644 --- a/src/filter.c +++ b/src/filter.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "filter.h" #include diff --git a/src/filter.h b/src/filter.h index 50906441..8437ae20 100644 --- a/src/filter.h +++ b/src/filter.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Reconstruction * \file - * \brief Filtering, such as deblocking. + * Deblocking filter. */ #include "global.h" diff --git a/src/global.h b/src/global.h index 22d39184..b888fcff 100644 --- a/src/global.h +++ b/src/global.h @@ -20,9 +20,9 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** * \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 diff --git a/src/image.c b/src/image.c index 7854475c..52deac6a 100644 --- a/src/image.c +++ b/src/image.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "threads.h" #include "image.h" #include "strategyselector.h" diff --git a/src/image.h b/src/image.h index 81d6b29a..168c9db9 100644 --- a/src/image.h +++ b/src/image.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup DataStructures * \file - * \brief Image and pixel related functions + * A reference counted YUV pixel buffer. */ #include "global.h" diff --git a/src/imagelist.c b/src/imagelist.c index 11dba2d8..73450996 100644 --- a/src/imagelist.c +++ b/src/imagelist.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "threads.h" #include "imagelist.h" #include "strategyselector.h" diff --git a/src/imagelist.h b/src/imagelist.h index 0b2ebc69..8a6932de 100644 --- a/src/imagelist.h +++ b/src/imagelist.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup DataStructures * \file - * \brief List of images (for reference pictures) + * Container for a list of reference pictures. */ #include "image.h" diff --git a/src/input_frame_buffer.c b/src/input_frame_buffer.c index fb87ca78..a547ca4e 100644 --- a/src/input_frame_buffer.c +++ b/src/input_frame_buffer.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "input_frame_buffer.h" #include "encoderstate.h" #include diff --git a/src/input_frame_buffer.h b/src/input_frame_buffer.h index 4fffc8b0..8127b29a 100644 --- a/src/input_frame_buffer.h +++ b/src/input_frame_buffer.h @@ -20,8 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file + * Buffering of input for reordering. */ #include "global.h" diff --git a/src/inter.c b/src/inter.c index 054c5192..d7107536 100644 --- a/src/inter.c +++ b/src/inter.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "inter.h" #include diff --git a/src/inter.h b/src/inter.h index 2647f5cc..6976bc05 100644 --- a/src/inter.h +++ b/src/inter.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Reconstruction * \file - * \brief Handling Coding Units (CU's) for inter frames. + * Inter prediction. */ #include "global.h" diff --git a/src/intra.c b/src/intra.c index 87a6f52f..82226b5f 100644 --- a/src/intra.c +++ b/src/intra.c @@ -18,11 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/** - * \file - * \brief Functions for handling intra frames. - */ - #include "intra.h" #include diff --git a/src/intra.h b/src/intra.h index 02750619..78aaac6a 100644 --- a/src/intra.h +++ b/src/intra.h @@ -20,10 +20,11 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - * \brief Handling Coding Units (CU's) for intra frames. - */ +/** +* \ingroup Reconstruction +* \file +* Intra prediction. +*/ #include "global.h" diff --git a/src/kvazaar.h b/src/kvazaar.h index d1dfd49b..e830bdd9 100644 --- a/src/kvazaar.h +++ b/src/kvazaar.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/** +/** + * \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 diff --git a/src/kvazaar_internal.h b/src/kvazaar_internal.h index 33c61477..64b38c2f 100644 --- a/src/kvazaar_internal.h +++ b/src/kvazaar_internal.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Control + * \file + * \brief Definitions for opaque structs in kvazaar.h + */ + #include "kvazaar.h" #include "input_frame_buffer.h" diff --git a/src/kvazaar_version.h b/src/kvazaar_version.h index 36cab2a6..aefb54b0 100644 --- a/src/kvazaar_version.h +++ b/src/kvazaar_version.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Control + * \file + * \brief Libkvazaar version numbers. + */ + // KVZ_API_VERSION is incremented every time the public api changes. #define KVZ_API_VERSION 10 diff --git a/src/nal.c b/src/nal.c index a9a8c8f7..e540a2b3 100644 --- a/src/nal.c +++ b/src/nal.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "nal.h" #include "strategyselector.h" diff --git a/src/nal.h b/src/nal.h index 5f94645c..e53001a2 100644 --- a/src/nal.h +++ b/src/nal.h @@ -21,8 +21,9 @@ ****************************************************************************/ /* + * \ingroup Bitstream * \file - * \brief Network Abstraction Layer (NAL) messages. + * Network Abstraction Layer (NAL) messages. */ #include "global.h" diff --git a/src/rate_control.h b/src/rate_control.h index 768591fd..b192eebd 100644 --- a/src/rate_control.h +++ b/src/rate_control.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Control * \file - * \brief Functions related with rate control + * \brief Functions related to rate control. */ #include "encoderstate.h" diff --git a/src/rdo.c b/src/rdo.c index 31059034..a735456b 100644 --- a/src/rdo.c +++ b/src/rdo.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include #include diff --git a/src/rdo.h b/src/rdo.h index 1e7296af..c1371d89 100644 --- a/src/rdo.h +++ b/src/rdo.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Compression * \file - * \brief Handling Rate-Distortion Optimization related functionality + * Rate-Distortion Optimization related functionality. */ #include "global.h" diff --git a/src/sao.c b/src/sao.c index 475453a6..ef8db432 100644 --- a/src/sao.c +++ b/src/sao.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "sao.h" #include "rdo.h" #include "strategies/strategies-picture.h" diff --git a/src/sao.h b/src/sao.h index 3dec8f4c..45b90913 100644 --- a/src/sao.h +++ b/src/sao.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Reconstruction * \file - * \brief Coding Unit (CU) and picture data related functions. + * Sample Adaptive Offset filter. */ #include "checkpoint.h" diff --git a/src/scalinglist.h b/src/scalinglist.h index 2b592945..a90871c8 100644 --- a/src/scalinglist.h +++ b/src/scalinglist.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Reconstruction * \file - * \brief Coding Unit (CU) and picture data related functions. + * Scaling list initialization. */ #include "global.h" diff --git a/src/search.c b/src/search.c index 719a1927..b0247b5d 100644 --- a/src/search.c +++ b/src/search.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "search.h" #include diff --git a/src/search.h b/src/search.h index 46a32795..24acbc68 100644 --- a/src/search.h +++ b/src/search.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Compression * \file - * \brief Searching of parameters for intra and inter frames. + * \brief Compression of a single coding tree unit (CTU). */ #include "global.h" diff --git a/src/search_inter.c b/src/search_inter.c index c209eca8..316efc81 100644 --- a/src/search_inter.c +++ b/src/search_inter.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -*/ - #include "search_inter.h" #include diff --git a/src/search_inter.h b/src/search_inter.h index 27ba9498..b1f59fec 100644 --- a/src/search_inter.h +++ b/src/search_inter.h @@ -20,10 +20,11 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -* \brief Functions related to inter prediction mode search. -*/ +/** + * \ingroup Compression + * \file + * Inter prediction parameter search. + */ #include "global.h" diff --git a/src/search_intra.c b/src/search_intra.c index ee4d23a4..c827f3db 100644 --- a/src/search_intra.c +++ b/src/search_intra.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -*/ - #include "search_intra.h" #include "encoderstate.h" diff --git a/src/search_intra.h b/src/search_intra.h index d6513250..dbb99fb7 100644 --- a/src/search_intra.h +++ b/src/search_intra.h @@ -20,10 +20,11 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -* \brief Functions related to intra prediction mode search. -*/ +/** + * \ingroup Compression + * \file + * Intra prediction parameter search. + */ #include "global.h" diff --git a/src/strategies/altivec/picture-altivec.c b/src/strategies/altivec/picture-altivec.c index 5490de6d..7c9d1fb9 100644 --- a/src/strategies/altivec/picture-altivec.c +++ b/src/strategies/altivec/picture-altivec.c @@ -18,9 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ #include "picture-altivec.h" #include "strategyselector.h" #include "image.h" diff --git a/src/strategies/altivec/picture-altivec.h b/src/strategies/altivec/picture-altivec.h index 88063455..6fd28334 100644 --- a/src/strategies/altivec/picture-altivec.h +++ b/src/strategies/altivec/picture-altivec.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Optimizations for Altivec. + */ + #include "global.h" int kvz_strategy_register_picture_altivec(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/avx2/dct-avx2.h b/src/strategies/avx2/dct-avx2.h index ef1b6e27..f86fcf2b 100644 --- a/src/strategies/avx2/dct-avx2.h +++ b/src/strategies/avx2/dct-avx2.h @@ -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 . ****************************************************************************/ +/** + * \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_ diff --git a/src/strategies/avx2/intra-avx2.c b/src/strategies/avx2/intra-avx2.c index dc872996..da088601 100644 --- a/src/strategies/avx2/intra-avx2.c +++ b/src/strategies/avx2/intra-avx2.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "intra-avx2.h" diff --git a/src/strategies/avx2/intra-avx2.h b/src/strategies/avx2/intra-avx2.h index 26b1aec6..2387fedc 100644 --- a/src/strategies/avx2/intra-avx2.h +++ b/src/strategies/avx2/intra-avx2.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Optimizations for AVX2. + */ + #include #include "encoderstate.h" diff --git a/src/strategies/avx2/ipol-avx2.h b/src/strategies/avx2/ipol-avx2.h index cb3a50c1..ef146d02 100644 --- a/src/strategies/avx2/ipol-avx2.h +++ b/src/strategies/avx2/ipol-avx2.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Optimizations for AVX2. + */ + #include "global.h" int kvz_strategy_register_ipol_avx2(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/avx2/picture-avx2.h b/src/strategies/avx2/picture-avx2.h index e5655909..2052c506 100644 --- a/src/strategies/avx2/picture-avx2.h +++ b/src/strategies/avx2/picture-avx2.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Optimizations for AVX2. + */ + #include "global.h" int kvz_strategy_register_picture_avx2(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/avx2/quant-avx2.h b/src/strategies/avx2/quant-avx2.h index b1b2e910..0de0e184 100644 --- a/src/strategies/avx2/quant-avx2.h +++ b/src/strategies/avx2/quant-avx2.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Optimizations for AVX2. + */ + #include int kvz_strategy_register_quant_avx2(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/generic/dct-generic.c b/src/strategies/generic/dct-generic.c index 330486ab..ba9aacd2 100644 --- a/src/strategies/generic/dct-generic.c +++ b/src/strategies/generic/dct-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "strategyselector.h" diff --git a/src/strategies/generic/dct-generic.h b/src/strategies/generic/dct-generic.h index 2a76b3bb..5cd97950 100644 --- a/src/strategies/generic/dct-generic.h +++ b/src/strategies/generic/dct-generic.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Optimization + * \file + * Generic C implementations of optimized functions. + */ + #include "global.h" extern const int16_t kvz_g_dst_4[4][4]; diff --git a/src/strategies/generic/intra-generic.c b/src/strategies/generic/intra-generic.c index ea0a0f41..4e266046 100644 --- a/src/strategies/generic/intra-generic.c +++ b/src/strategies/generic/intra-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "intra-generic.h" diff --git a/src/strategies/generic/intra-generic.h b/src/strategies/generic/intra-generic.h index 63640b61..ce60d008 100644 --- a/src/strategies/generic/intra-generic.h +++ b/src/strategies/generic/intra-generic.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Generic C implementations of optimized functions. + */ + #include #include "encoderstate.h" diff --git a/src/strategies/generic/ipol-generic.c b/src/strategies/generic/ipol-generic.c index 395a6900..83ab4f27 100644 --- a/src/strategies/generic/ipol-generic.c +++ b/src/strategies/generic/ipol-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "ipol-generic.h" diff --git a/src/strategies/generic/ipol-generic.h b/src/strategies/generic/ipol-generic.h index 0b7ffb3d..997b33d5 100644 --- a/src/strategies/generic/ipol-generic.h +++ b/src/strategies/generic/ipol-generic.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Generic C implementations of optimized functions. + */ + #include "encoder.h" int kvz_strategy_register_ipol_generic(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/generic/nal-generic.c b/src/strategies/generic/nal-generic.c index 7b1d7fa3..8cb26069 100644 --- a/src/strategies/generic/nal-generic.c +++ b/src/strategies/generic/nal-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include diff --git a/src/strategies/generic/nal-generic.h b/src/strategies/generic/nal-generic.h index b36527bd..00234994 100644 --- a/src/strategies/generic/nal-generic.h +++ b/src/strategies/generic/nal-generic.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Generic C implementations of optimized functions. + */ + #include "global.h" int kvz_strategy_register_nal_generic(void* opaque, uint8_t bitdepth); diff --git a/src/strategies/generic/picture-generic.c b/src/strategies/generic/picture-generic.c index 22910f17..bfed2d16 100644 --- a/src/strategies/generic/picture-generic.c +++ b/src/strategies/generic/picture-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "strategyselector.h" diff --git a/src/strategies/generic/picture-generic.h b/src/strategies/generic/picture-generic.h index c254dfcd..af50d170 100644 --- a/src/strategies/generic/picture-generic.h +++ b/src/strategies/generic/picture-generic.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \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) diff --git a/src/strategies/generic/quant-generic.c b/src/strategies/generic/quant-generic.c index 3c46361c..dee4f5ee 100644 --- a/src/strategies/generic/quant-generic.c +++ b/src/strategies/generic/quant-generic.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include "quant-generic.h" diff --git a/src/strategies/generic/quant-generic.h b/src/strategies/generic/quant-generic.h index c4540d38..68bffb67 100644 --- a/src/strategies/generic/quant-generic.h +++ b/src/strategies/generic/quant-generic.h @@ -19,6 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ + +/** + * \ingroup Optimization + * \file + * Generic C implementations of optimized functions. + */ + #include #include "encoderstate.h" diff --git a/src/strategies/sse2/picture-sse2.c b/src/strategies/sse2/picture-sse2.c index 4b4e502e..822451de 100644 --- a/src/strategies/sse2/picture-sse2.c +++ b/src/strategies/sse2/picture-sse2.c @@ -18,9 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ #include "picture-sse2.h" #include "strategyselector.h" diff --git a/src/strategies/sse2/picture-sse2.h b/src/strategies/sse2/picture-sse2.h index c1a02d94..cba40a53 100644 --- a/src/strategies/sse2/picture-sse2.h +++ b/src/strategies/sse2/picture-sse2.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** +* \ingroup Optimization +* \file +* Optimizations for SSE2. +*/ + int kvz_strategy_register_picture_sse2(void* opaque, unsigned char bitdepth); #endif //STRATEGIES_PICTURE_SSE2_H_ diff --git a/src/strategies/sse41/picture-sse41.c b/src/strategies/sse41/picture-sse41.c index 6cc86be3..c78708c7 100644 --- a/src/strategies/sse41/picture-sse41.c +++ b/src/strategies/sse41/picture-sse41.c @@ -18,9 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ #include "picture-sse41.h" #include "strategyselector.h" diff --git a/src/strategies/sse41/picture-sse41.h b/src/strategies/sse41/picture-sse41.h index 08ac5ca7..742daea0 100644 --- a/src/strategies/sse41/picture-sse41.h +++ b/src/strategies/sse41/picture-sse41.h @@ -22,6 +22,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Optimization + * \file + * Optimizations for SSE4.1. + */ + int kvz_strategy_register_picture_sse41(void* opaque, uint8_t bitdepth); #endif //STRATEGIES_PICTURE_SSE41_H_ diff --git a/src/strategies/strategies-common.h b/src/strategies/strategies-common.h index a5131caa..026e03fb 100644 --- a/src/strategies/strategies-common.h +++ b/src/strategies/strategies-common.h @@ -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_ \ No newline at end of file +#endif //STRATEGIES_COMMON_H_ diff --git a/src/strategies/strategies-dct.h b/src/strategies/strategies-dct.h index c3f48936..84f2221b 100644 --- a/src/strategies/strategies-dct.h +++ b/src/strategies/strategies-dct.h @@ -19,7 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ - + +/** + * \ingroup Optimization + * \file + * Interface for transform functions. + */ + #include typedef unsigned (dct_func)(int8_t bitdepth, const int16_t *input, int16_t *output); diff --git a/src/strategies/strategies-intra.h b/src/strategies/strategies-intra.h index 387789b4..0faa6b9f 100644 --- a/src/strategies/strategies-intra.h +++ b/src/strategies/strategies-intra.h @@ -19,7 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ - + +/** + * \ingroup Optimization + * \file + * Interface for intra prediction functions. + */ + #include "encoderstate.h" typedef void (angular_pred_func)( diff --git a/src/strategies/strategies-ipol.h b/src/strategies/strategies-ipol.h index 1d35c261..79ed2a8e 100644 --- a/src/strategies/strategies-ipol.h +++ b/src/strategies/strategies-ipol.h @@ -19,7 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ - + +/** + * \ingroup Optimization + * \file + * Interface for subpixel interpolation functions. + */ + #include #include "encoder.h" diff --git a/src/strategies/strategies-nal.h b/src/strategies/strategies-nal.h index 2eccca61..f0971e8c 100644 --- a/src/strategies/strategies-nal.h +++ b/src/strategies/strategies-nal.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Optimization + * \file + * Interface for hash functions. + */ + #include "../nal.h" //Function pointer to kvz_array_checksum diff --git a/src/strategies/strategies-picture.h b/src/strategies/strategies-picture.h index 38b98a57..f9795886 100644 --- a/src/strategies/strategies-picture.h +++ b/src/strategies/strategies-picture.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Optimization + * \file + * Interface for distortion metric functions. + */ + #include "../image.h" typedef kvz_pixel (*pred_buffer)[32 * 32]; diff --git a/src/strategies/strategies-quant.h b/src/strategies/strategies-quant.h index de92d996..005f656b 100644 --- a/src/strategies/strategies-quant.h +++ b/src/strategies/strategies-quant.h @@ -19,7 +19,13 @@ * You should have received a copy of the GNU General Public License along * with Kvazaar. If not, see . ****************************************************************************/ - + +/** + * \ingroup Optimization + * \file + * Interface for quantization functions. + */ + #include "encoderstate.h" // Declare function pointers. diff --git a/src/strategies/x86_asm/picture-x86-asm-sad.h b/src/strategies/x86_asm/picture-x86-asm-sad.h index e44c76cf..64ea9b94 100644 --- a/src/strategies/x86_asm/picture-x86-asm-sad.h +++ b/src/strategies/x86_asm/picture-x86-asm-sad.h @@ -20,9 +20,11 @@ * with Kvazaar. If not, see . ****************************************************************************/ - /*! \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*); diff --git a/src/strategies/x86_asm/picture-x86-asm-satd.h b/src/strategies/x86_asm/picture-x86-asm-satd.h index 0889c89c..f13508f4 100644 --- a/src/strategies/x86_asm/picture-x86-asm-satd.h +++ b/src/strategies/x86_asm/picture-x86-asm-satd.h @@ -20,10 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \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); diff --git a/src/strategies/x86_asm/picture-x86-asm.c b/src/strategies/x86_asm/picture-x86-asm.c index 91f2db6a..35fe9196 100644 --- a/src/strategies/x86_asm/picture-x86-asm.c +++ b/src/strategies/x86_asm/picture-x86-asm.c @@ -18,9 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* -* \file -*/ #include #include "strategyselector.h" diff --git a/src/strategies/x86_asm/picture-x86-asm.h b/src/strategies/x86_asm/picture-x86-asm.h index cf171c84..2109e206 100644 --- a/src/strategies/x86_asm/picture-x86-asm.h +++ b/src/strategies/x86_asm/picture-x86-asm.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \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_ diff --git a/src/strategyselector.c b/src/strategyselector.c index 2cedce2e..8d833152 100644 --- a/src/strategyselector.c +++ b/src/strategyselector.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "strategyselector.h" #include diff --git a/src/strategyselector.h b/src/strategyselector.h index af5c43b3..eba9869a 100644 --- a/src/strategyselector.h +++ b/src/strategyselector.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Optimization + * \file + * Dynamic dispatch based on cpuid. + */ + #include "global.h" #if defined(KVZ_DEBUG) && !defined(DEBUG_STRATEGYSELECTOR) diff --git a/src/tables.h b/src/tables.h index c3f2bf5a..78a1b2c6 100644 --- a/src/tables.h +++ b/src/tables.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Reconstruction + * \file + * Various tables. + */ + #include "global.h" //4 8 16 32 64 128 diff --git a/src/threadqueue.h b/src/threadqueue.h index a305443a..911c5113 100644 --- a/src/threadqueue.h +++ b/src/threadqueue.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Threading + * \file + * Container for worker tasks. + */ + #include "global.h" #include diff --git a/src/threads.h b/src/threads.h index a50f6d91..35d7e8a2 100644 --- a/src/threads.h +++ b/src/threads.h @@ -20,6 +20,12 @@ * with Kvazaar. If not, see . ****************************************************************************/ +/** + * \ingroup Threading + * \file + * Abstractions for operating system specific stuff. + */ + #include "global.h" #include diff --git a/src/transform.c b/src/transform.c index d5c62b88..a417e3de 100644 --- a/src/transform.c +++ b/src/transform.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include "transform.h" #include diff --git a/src/transform.h b/src/transform.h index f32f7aa8..340a62f6 100644 --- a/src/transform.h +++ b/src/transform.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup Reconstruction * \file - * \brief Transformations, such as quantization and DST. + * Quantization and transform functions. */ #include "global.h" diff --git a/src/videoframe.c b/src/videoframe.c index 871a0648..a6e5a3e9 100644 --- a/src/videoframe.c +++ b/src/videoframe.c @@ -18,10 +18,6 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* - * \file - */ - #include #include diff --git a/src/videoframe.h b/src/videoframe.h index 2b02afea..f66c83f8 100644 --- a/src/videoframe.h +++ b/src/videoframe.h @@ -20,9 +20,10 @@ * with Kvazaar. If not, see . ****************************************************************************/ -/* +/** + * \ingroup DataStructures * \file - * \brief Video frame stuff + * \brief Container for the frame currently being encoded. */ #include "global.h"