FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions
tiny_ssim.c File Reference
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

Go to the source code of this file.

Macros

#define FFSWAP(type, a, b)   do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)
 
#define FFMIN(a, b)   ((a) > (b) ? (b) : (a))
 
#define BIT_DEPTH   8
 
#define PIXEL_MAX   ((1 << BIT_DEPTH)-1)
 
#define type   int
 

Typedefs

typedef uint8_t pixel
 

Functions

static void ssim_4x4x2_core (const pixel *pix1, intptr_t stride1, const pixel *pix2, intptr_t stride2, int sums[2][4])
 
static float ssim_end1 (int s1, int s2, int ss, int s12)
 
static float ssim_end4 (int sum0[5][4], int sum1[5][4], int width)
 
float ssim_plane (pixel *pix1, intptr_t stride1, pixel *pix2, intptr_t stride2, int width, int height, void *buf, int *cnt)
 
uint64_t ssd_plane (const uint8_t *pix1, const uint8_t *pix2, int size)
 
double ssd_to_psnr (uint64_t ssd, uint64_t denom)
 
int main (int argc, char *argv[])
 

Macro Definition Documentation

#define FFSWAP (   type,
  a,
  b 
)    do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)

Definition at line 35 of file tiny_ssim.c.

Referenced by ssim_plane().

#define FFMIN (   a,
  b 
)    ((a) > (b) ? (b) : (a))

Definition at line 36 of file tiny_ssim.c.

Referenced by ssim_plane().

#define BIT_DEPTH   8

Definition at line 38 of file tiny_ssim.c.

#define PIXEL_MAX   ((1 << BIT_DEPTH)-1)

Definition at line 39 of file tiny_ssim.c.

Referenced by ssim_end1().

#define type   int
Examples:
doc/examples/demuxing.c.

Referenced by amf_tag_contents(), asf_read_picture(), asf_read_stream_properties(), ass_split_section(), ast_read_packet(), av_log_default_callback(), av_packet_copy_props(), avformat_match_stream_specifier(), avs_decode_frame(), avs_read_packet(), bmv_read_packet(), compute_status(), create(), decode_13(), decode_cabac_b_mb_sub_type(), decode_frame(), decode_info_header(), decode_nal_sei_frame_packing_arrangement(), decode_q_branch(), decode_subframe(), default_query_formats_common(), dshow_add_device(), dshow_cycle_formats(), dshow_cycle_pins(), dshow_set_audio_buffer_size(), ebml_free(), ebml_parse_nest(), encode_picture(), exif_decode_tag(), ff_amf_match_string(), ff_amf_tag_size(), ff_estimate_b_frame_motion(), ff_flac_parse_picture(), ff_h264_decode_sei(), ff_id3v2_write_apic(), ff_print_debug_info2(), ff_rtp_send_jpeg(), ff_voc_get_packet(), filter(), filter_query_formats(), find_and_decode_index(), find_stream(), flush(), flv_data_packet(), flv_read_metabody(), flv_read_packet(), frame_configure_elements(), get_geokey_type(), gxf_resync_media(), h264_handle_packet(), h264_probe(), handle_metadata(), hevc_decode_extradata(), hevc_probe(), id3v2_parse(), init(), init_input_filter(), insert_trim(), iterative_me(), jpeg_parse_packet(), lavfi_read_header(), libAVEnumMediaTypes_Clone(), libAVPin_EnumMediaTypes(), main(), matroska_read_close(), matroska_read_header(), matroska_read_seek(), mkv_query_codec(), mm_decode_frame(), mmap_close(), mmap_start(), mms_safe_send_recv(), mov_read_default(), mov_read_dref(), mov_read_ftyp(), mov_read_glbl(), mov_read_hdlr(), mov_write_isml_manifest(), mpegps_psm_parse(), mpegps_read_packet(), nal_send(), nut_read_header(), open_output_file(), output_configure(), output_server_manifest(), parse_device_name(), parse_ffconfig(), parse_fmtp(), parse_legacy_attrib(), parse_timestamp(), print_report(), probe(), qdm2_decode_fft_packets(), qdm2_parse_subpacket(), query_formats(), read_header(), read_packet(), rm_assemble_video_frame(), rtmp_handshake(), rtmp_packet_read_one_chunk(), rtmp_write_amf_data(), rv34_parse(), rv34_pred_mv_b(), select_input_picture(), select_reference_stream(), set_codec_from_probe_data(), show_filters(), sol_read_header(), ssim_end1(), sunrast_decode_frame(), svq3_decode_mb(), tak_read_header(), targa_decode_rle(), tiff_decode_tag(), tm2_decode_blocks(), vmd_read_header(), vp3_decode_frame(), vp56_decode_4mv(), vp56_parse_mb_type_models(), wmv2_pred_motion(), and write_fragments().

Typedef Documentation

typedef uint8_t pixel

Definition at line 40 of file tiny_ssim.c.

Function Documentation

static void ssim_4x4x2_core ( const pixel pix1,
intptr_t  stride1,
const pixel pix2,
intptr_t  stride2,
int  sums[2][4] 
)
static

Definition at line 45 of file tiny_ssim.c.

Referenced by ssim_plane().

static float ssim_end1 ( int  s1,
int  s2,
int  ss,
int  s12 
)
static

Definition at line 74 of file tiny_ssim.c.

Referenced by ssim_end4().

static float ssim_end4 ( int  sum0[5][4],
int  sum1[5][4],
int  width 
)
static

Definition at line 99 of file tiny_ssim.c.

Referenced by ssim_plane().

float ssim_plane ( pixel pix1,
intptr_t  stride1,
pixel pix2,
intptr_t  stride2,
int  width,
int  height,
void buf,
int *  cnt 
)

Definition at line 112 of file tiny_ssim.c.

Referenced by main().

uint64_t ssd_plane ( const uint8_t pix1,
const uint8_t pix2,
int  size 
)

Definition at line 140 of file tiny_ssim.c.

Referenced by main().

double ssd_to_psnr ( uint64_t  ssd,
uint64_t  denom 
)

Definition at line 152 of file tiny_ssim.c.

Referenced by main().

int main ( int  argc,
char *  argv[] 
)

Definition at line 157 of file tiny_ssim.c.