FFmpeg  4.0
Data Structures | Macros | Enumerations | Variables
signature.h File Reference

MPEG-7 video signature calculation and lookup filter. More...

#include <float.h>
#include "libavutil/common.h"
#include "libavutil/opt.h"
#include "libavutil/timestamp.h"
#include "avfilter.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  Point
 
struct  Block
 
struct  ElemCat
 
struct  FineSignature
 
struct  CoarseSignature
 
struct  MatchingInfo
 
struct  StreamContext
 
struct  SignatureContext
 

Macros

#define ELEMENT_COUNT   10
 
#define SIGELEM_SIZE   380
 
#define DIFFELEM_SIZE   348 /* SIGELEM_SIZE - elem_a1 - elem_a2 */
 
#define COARSE_SIZE   90
 

Enumerations

enum  lookup_mode { MODE_OFF, MODE_FULL, MODE_FAST, NB_LOOKUP_MODE }
 
enum  formats { FORMAT_BINARY, FORMAT_XML, NB_FORMATS }
 

Variables

static const Block elem_a1_data []
 
static const ElemCat elem_a1 = { 1, 1, 1, 20, elem_a1_data }
 
static const Block elem_a2_data []
 
static const ElemCat elem_a2 = { 1, 1, 1, 12, elem_a2_data }
 
static const Block elem_d1_data []
 
static const ElemCat elem_d1 = { 0, 1, 2, 116, elem_d1_data }
 
static const Block elem_d2_data []
 
static const ElemCat elem_d2 = { 0, 2, 4, 25, elem_d2_data }
 
static const Block elem_d3_data []
 
static const ElemCat elem_d3 = { 0, 1, 2, 36, elem_d3_data }
 
static const Block elem_d4_data []
 
static const ElemCat elem_d4 = { 0, 1, 2, 30, elem_d4_data }
 
static const Block elem_d5_data []
 
static const ElemCat elem_d5 = { 0, 4, 5, 62, elem_d5_data }
 
static const Block elem_d6_data []
 
static const ElemCat elem_d6 = { 0, 1, 2, 9, elem_d6_data }
 
static const Block elem_d7_data []
 
static const ElemCat elem_d7 = { 0, 2, 3, 50, elem_d7_data }
 
static const Block elem_d8_data []
 
static const ElemCat elem_d8 = { 0, 1, 2, 20, elem_d8_data }
 
static const ElemCatelements [ELEMENT_COUNT]
 

Detailed Description

MPEG-7 video signature calculation and lookup filter.

Definition in file signature.h.

Macro Definition Documentation

◆ ELEMENT_COUNT

#define ELEMENT_COUNT   10

Definition at line 36 of file signature.h.

Referenced by filter_frame().

◆ SIGELEM_SIZE

#define SIGELEM_SIZE   380

Definition at line 37 of file signature.h.

Referenced by binary_export(), filter_frame(), get_l1dist(), and xml_export().

◆ DIFFELEM_SIZE

#define DIFFELEM_SIZE   348 /* SIGELEM_SIZE - elem_a1 - elem_a2 */

Definition at line 38 of file signature.h.

Referenced by filter_frame().

◆ COARSE_SIZE

#define COARSE_SIZE   90

Definition at line 39 of file signature.h.

Referenced by get_matching_parameters().

Enumeration Type Documentation

◆ lookup_mode

Enumerator
MODE_OFF 
MODE_FULL 
MODE_FAST 
NB_LOOKUP_MODE 

Definition at line 41 of file signature.h.

◆ formats

enum formats
Enumerator
FORMAT_BINARY 
FORMAT_XML 
NB_FORMATS 

Definition at line 48 of file signature.h.

Variable Documentation

◆ elem_a1_data

const Block elem_a1_data[]
static
Initial value:
= {
{{ 0, 0},{ 7, 7}},
{{ 8, 0},{15, 7}},
{{ 0, 8},{ 7,15}},
{{ 8, 8},{15,15}},
{{16, 0},{23, 7}},
{{24, 0},{31, 7}},
{{16, 8},{23,15}},
{{24, 8},{31,15}},
{{ 0,16},{ 7,23}},
{{ 8,16},{15,23}},
{{ 0,24},{ 7,31}},
{{ 8,24},{15,31}},
{{16,16},{23,23}},
{{24,16},{31,23}},
{{16,24},{23,31}},
{{24,24},{31,31}},
{{ 0, 0},{15,15}},
{{16, 0},{31,15}},
{{ 0,16},{15,31}},
{{16,16},{31,31}}
}

Definition at line 146 of file signature.h.

◆ elem_a1

const ElemCat elem_a1 = { 1, 1, 1, 20, elem_a1_data }
static

Definition at line 168 of file signature.h.

◆ elem_a2_data

const Block elem_a2_data[]
static
Initial value:
= {
{{ 2, 2},{ 9, 9}},
{{12, 2},{19, 9}},
{{22, 2},{29, 9}},
{{ 2,12},{ 9,19}},
{{12,12},{19,19}},
{{22,12},{29,19}},
{{ 2,22},{ 9,29}},
{{12,22},{19,29}},
{{22,22},{29,29}},
{{ 9, 9},{22,22}},
{{ 6, 6},{25,25}},
{{ 3, 3},{28,28}}
}

Definition at line 170 of file signature.h.

◆ elem_a2

const ElemCat elem_a2 = { 1, 1, 1, 12, elem_a2_data }
static

Definition at line 184 of file signature.h.

◆ elem_d1_data

const Block elem_d1_data[]
static

Definition at line 186 of file signature.h.

◆ elem_d1

const ElemCat elem_d1 = { 0, 1, 2, 116, elem_d1_data }
static

Definition at line 304 of file signature.h.

◆ elem_d2_data

const Block elem_d2_data[]
static
Initial value:
= {
{{ 0, 0},{ 3, 3}},{{ 4, 4},{ 7, 7}},{{ 4, 0},{ 7, 3}},{{ 0, 4},{ 3, 7}},
{{ 8, 0},{11, 3}},{{12, 4},{15, 7}},{{12, 0},{15, 3}},{{ 8, 4},{11, 7}},
{{16, 0},{19, 3}},{{20, 4},{23, 7}},{{20, 0},{23, 3}},{{16, 4},{19, 7}},
{{24, 0},{27, 3}},{{28, 4},{31, 7}},{{28, 0},{31, 3}},{{24, 4},{27, 7}},
{{ 0, 8},{ 3,11}},{{ 4,12},{ 7,15}},{{ 4, 8},{ 7,11}},{{ 0,12},{ 3,15}},
{{ 8, 8},{11,11}},{{12,12},{15,15}},{{12, 8},{15,11}},{{ 8,12},{11,15}},
{{16, 8},{19,11}},{{20,12},{23,15}},{{20, 8},{23,11}},{{16,12},{19,15}},
{{24, 8},{27,11}},{{28,12},{31,15}},{{28, 8},{31,11}},{{24,12},{27,15}},
{{ 0,16},{ 3,19}},{{ 4,20},{ 7,23}},{{ 4,16},{ 7,19}},{{ 0,20},{ 3,23}},
{{ 8,16},{11,19}},{{12,20},{15,23}},{{12,16},{15,19}},{{ 8,20},{11,23}},
{{16,16},{19,19}},{{20,20},{23,23}},{{20,16},{23,19}},{{16,20},{19,23}},
{{24,16},{27,19}},{{28,20},{31,23}},{{28,16},{31,19}},{{24,20},{27,23}},
{{ 0,24},{ 3,27}},{{ 4,28},{ 7,31}},{{ 4,24},{ 7,27}},{{ 0,28},{ 3,31}},
{{ 8,24},{11,27}},{{12,28},{15,31}},{{12,24},{15,27}},{{ 8,28},{11,31}},
{{16,24},{19,27}},{{20,28},{23,31}},{{20,24},{23,27}},{{16,28},{19,31}},
{{24,24},{27,27}},{{28,28},{31,31}},{{28,24},{31,27}},{{24,28},{27,31}},
{{ 4, 4},{ 7, 7}},{{ 8, 8},{11,11}},{{ 8, 4},{11, 7}},{{ 4, 8},{ 7,11}},
{{12, 4},{15, 7}},{{16, 8},{19,11}},{{16, 4},{19, 7}},{{12, 8},{15,11}},
{{20, 4},{23, 7}},{{24, 8},{27,11}},{{24, 4},{27, 7}},{{20, 8},{23,11}},
{{ 4,12},{ 7,15}},{{ 8,16},{11,19}},{{ 8,12},{11,15}},{{ 4,16},{ 7,19}},
{{12,12},{15,15}},{{16,16},{19,19}},{{16,12},{19,15}},{{12,16},{15,19}},
{{20,12},{23,15}},{{24,16},{27,19}},{{24,12},{27,15}},{{20,16},{23,19}},
{{ 4,20},{ 7,23}},{{ 8,24},{11,27}},{{ 8,20},{11,23}},{{ 4,24},{ 7,27}},
{{12,20},{15,23}},{{16,24},{19,27}},{{16,20},{19,23}},{{12,24},{15,27}},
{{20,20},{23,23}},{{24,24},{27,27}},{{24,20},{27,23}},{{20,24},{23,27}}
}

Definition at line 306 of file signature.h.

◆ elem_d2

const ElemCat elem_d2 = { 0, 2, 4, 25, elem_d2_data }
static

Definition at line 333 of file signature.h.

◆ elem_d3_data

const Block elem_d3_data[]
static

Definition at line 335 of file signature.h.

◆ elem_d3

const ElemCat elem_d3 = { 0, 1, 2, 36, elem_d3_data }
static

Definition at line 373 of file signature.h.

◆ elem_d4_data

const Block elem_d4_data[]
static

Definition at line 375 of file signature.h.

◆ elem_d4

const ElemCat elem_d4 = { 0, 1, 2, 30, elem_d4_data }
static

Definition at line 407 of file signature.h.

◆ elem_d5_data

const Block elem_d5_data[]
static

Definition at line 409 of file signature.h.

◆ elem_d5

const ElemCat elem_d5 = { 0, 4, 5, 62, elem_d5_data }
static

Definition at line 473 of file signature.h.

◆ elem_d6_data

const Block elem_d6_data[]
static
Initial value:
= {
{{ 3, 5},{12,10}},{{ 5, 3},{10,12}},
{{11, 5},{20,10}},{{13, 3},{18,12}},
{{19, 5},{28,10}},{{21, 3},{26,12}},
{{ 3,13},{12,18}},{{ 5,11},{10,20}},
{{11,13},{20,18}},{{13,11},{18,20}},
{{19,13},{28,18}},{{21,11},{26,20}},
{{ 3,21},{12,26}},{{ 5,19},{10,28}},
{{11,21},{20,26}},{{13,19},{18,28}},
{{19,21},{28,26}},{{21,19},{26,28}}
}

Definition at line 475 of file signature.h.

◆ elem_d6

const ElemCat elem_d6 = { 0, 1, 2, 9, elem_d6_data }
static

Definition at line 486 of file signature.h.

◆ elem_d7_data

const Block elem_d7_data[]
static

Definition at line 488 of file signature.h.

◆ elem_d7

const ElemCat elem_d7 = { 0, 2, 3, 50, elem_d7_data }
static

Definition at line 540 of file signature.h.

◆ elem_d8_data

const Block elem_d8_data[]
static
Initial value:
= {
{{ 0, 0},{ 7, 3}},{{ 0, 4},{ 7, 7}},
{{ 8, 0},{11, 7}},{{12, 0},{15, 7}},
{{ 0, 8},{ 3,15}},{{ 4, 8},{ 7,15}},
{{ 8, 8},{15,11}},{{ 8,12},{15,15}},
{{16, 0},{19, 7}},{{20, 0},{23, 7}},
{{24, 0},{31, 3}},{{24, 4},{31, 7}},
{{16, 8},{23,11}},{{16,12},{23,15}},
{{24, 8},{27,15}},{{28, 8},{31,15}},
{{ 0,16},{ 3,23}},{{ 4,16},{ 7,23}},
{{ 8,16},{15,19}},{{ 8,20},{15,23}},
{{ 0,24},{ 7,27}},{{ 0,28},{ 7,31}},
{{ 8,24},{11,31}},{{12,24},{15,31}},
{{16,16},{23,19}},{{16,20},{23,23}},
{{24,16},{27,23}},{{28,16},{31,23}},
{{16,24},{19,31}},{{20,24},{23,31}},
{{24,24},{31,27}},{{24,28},{31,31}},
{{ 0, 0},{ 7,15}},{{ 8, 0},{15,15}},
{{16, 0},{31, 7}},{{16, 8},{31,15}},
{{ 0,16},{15,23}},{{ 0,24},{15,31}},
{{16,16},{23,31}},{{24,16},{31,31}}
}

Definition at line 542 of file signature.h.

◆ elem_d8

const ElemCat elem_d8 = { 0, 1, 2, 20, elem_d8_data }
static

Definition at line 564 of file signature.h.

◆ elements

const ElemCat* elements[ELEMENT_COUNT]
static
Initial value:
static const ElemCat elem_d3
Definition: signature.h:373
static const ElemCat elem_a1
Definition: signature.h:168
static const ElemCat elem_d6
Definition: signature.h:486
static const ElemCat elem_d7
Definition: signature.h:540
static const ElemCat elem_d5
Definition: signature.h:473
static const ElemCat elem_d2
Definition: signature.h:333
static const ElemCat elem_d4
Definition: signature.h:407
static const ElemCat elem_a2
Definition: signature.h:184
static const ElemCat elem_d8
Definition: signature.h:564
static const ElemCat elem_d1
Definition: signature.h:304

Definition at line 566 of file signature.h.

Referenced by decode_frame(), dxv_decompress_opcodes(), filter_frame(), get_bits1_vector(), and read_uncoded_coeff().