FFmpeg
|
Simple post processing filter. More...
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "internal.h"
#include "vf_spp.h"
Go to the source code of this file.
Macros | |
#define | OFFSET(x) offsetof(SPPContext, x) |
#define | FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define | STORE(pos) |
#define | STORE16(pos) |
Enumerations | |
enum | mode { FF_EBUR128_MODE_M = (1 << 0), FF_EBUR128_MODE_S = (1 << 1) | FF_EBUR128_MODE_M, FF_EBUR128_MODE_I = (1 << 2) | FF_EBUR128_MODE_M, FF_EBUR128_MODE_LRA = (1 << 3) | FF_EBUR128_MODE_S, FF_EBUR128_MODE_SAMPLE_PEAK = (1 << 4) | FF_EBUR128_MODE_M, MODE_NONE, MODE_RO, MODE_RW, MODE_TOGGLE, MODE_RANDOM, NB_MODES, MODE_COVER, MODE_BLUR, NB_MODES, MODE_HARD, MODE_SOFT, MODE_MEDIUM, MODE_HARD, MODE_SOFT, NB_MODES } |
Functions | |
static const AVClass * | child_class_next (const AVClass *prev) |
static void * | child_next (void *obj, void *prev) |
static void | hardthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation) |
static void | softthresh_c (int16_t dst[64], const int16_t src[64], int qp, const uint8_t *permutation) |
static void | store_slice_c (uint8_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8]) |
static void | store_slice16_c (uint16_t *dst, const int16_t *src, int dst_linesize, int src_linesize, int width, int height, int log2_scale, const uint8_t dither[8][8], int depth) |
static void | add_block (uint16_t *dst, int linesize, const int16_t block[64]) |
static void | filter (SPPContext *p, uint8_t *dst, uint8_t *src, int dst_linesize, int src_linesize, int width, int height, const uint8_t *qp_table, int qp_stride, int is_luma, int depth) |
static int | query_formats (AVFilterContext *ctx) |
static int | config_input (AVFilterLink *inlink) |
static int | filter_frame (AVFilterLink *inlink, AVFrame *in) |
static int | process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) |
static av_cold int | init_dict (AVFilterContext *ctx, AVDictionary **opts) |
static av_cold void | uninit (AVFilterContext *ctx) |
Variables | |
static const AVOption | spp_options [] |
static const AVClass | spp_class |
static const uint8_t | ldither [8][8] |
static const uint8_t | offset [127][2] |
static const AVFilterPad | spp_inputs [] |
static const AVFilterPad | spp_outputs [] |
AVFilter | ff_vf_spp |
Simple post processing filter.
This implementation is based on an algorithm described in "Aria Nosratinia Embedded Post-Processing for Enhancement of Compressed Images (1999)"
Originally written by Michael Niedermayer for the MPlayer project, and ported by Clément Bœsch for FFmpeg.
Definition in file vf_spp.c.
#define OFFSET | ( | x | ) | offsetof(SPPContext, x) |
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM |
#define STORE | ( | pos | ) |
Referenced by store_slice_c().
#define STORE16 | ( | pos | ) |
Referenced by store_slice16_c().
enum mode |
|
static |
Definition at line 116 of file vf_spp.c.
Referenced by init_dict().
|
static |
Definition at line 137 of file vf_spp.c.
Referenced by init_dict().
|
static |
Definition at line 159 of file vf_spp.c.
Referenced by init_dict().
|
static |
Definition at line 232 of file vf_spp.c.
Referenced by filter_frame().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 81 of file vf_spp.c.
Referenced by filter().
|
static |
Definition at line 92 of file vf_spp.c.
Referenced by aa_read_header(), add_tone(), add_wave0(), add_waves(), adx_decode(), adx_probe(), aiff_read_header(), alloc_and_copy(), alloc_frame_buffer(), ape_decode_frame(), apng_read_header(), apply_window_and_mdct(), asf_parse_packet(), asf_read_simple_index(), asf_read_single_payload(), asf_write_markers(), asf_write_packet(), assign_pair(), av_fifo_generic_peek_at(), av_probe_input_buffer2(), avc_biwgt_4x2_msa(), avc_biwgt_4x4_msa(), avc_biwgt_4x8_msa(), avc_biwgt_8x16_msa(), avc_biwgt_8x4_msa(), avc_biwgt_8x8_msa(), avc_wgt_4x2_msa(), avc_wgt_4x4_msa(), avc_wgt_4x8_msa(), avc_wgt_8x16_msa(), avc_wgt_8x4_msa(), avc_wgt_8x8_msa(), avi_extract_stream_metadata(), avio_seek(), avpriv_copy_pce_data(), aw_parse_coords(), bfi_decode_frame(), bidir_sal(), bitplane_decoding(), bl_intrp(), buffer_offset(), bytestream2_seek(), bytestream2_seek_p(), celt_decode_allocation(), celt_decode_final_energy(), celt_decode_fine_energy(), celt_quant_final(), celt_quant_fine(), check_rgb2yuv(), check_yuv2rgb(), check_yuv2yuv(), chroma_4mv_motion(), chroma_4mv_motion_lowres(), chroma_tc(), chs_clear_band_data(), cin_decode_lzss(), codebook_bits_offset(), comp_block(), comp_interp_index(), comp_ppf_coeff(), compute_pkt_fields(), config_input(), config_output(), convert_coeffs(), cook_decode_frame(), copy_cell(), copy_param_sets(), count_nalus(), count_ts(), cuvid_output_frame(), decode_0(), decode_8_pulses_35bits(), decode_blockcodes(), decode_blocks(), decode_bytes_and_gain(), decode_cell(), decode_dds1(), decode_decorrelation_matrix(), decode_delta_d(), decode_delta_e(), decode_delta_j(), decode_delta_l(), decode_dsw1(), decode_entropy_coded_image(), decode_fixed_sparse(), decode_frame(), decode_init(), decode_init_static(), decode_interframe_v4(), decode_interframe_v4a(), decode_log_area(), decode_rgb_frame_TMPL(), decode_rle(), decode_rle16(), decode_rle_bpp2(), decode_rle_bpp4(), decode_scalefactors(), decode_short_horizontal_delta(), decode_string(), decode_subframe(), decode_tilehdr(), decode_tsw1(), dequant(), determine_bits(), dnxhd_decode_row(), dnxhd_encode_picture(), dnxhd_init_vlc(), dnxhd_setup_threads_slices(), draw_slice(), dss_723_1_read_packet(), dss_read_seek(), dss_sp_read_packet(), dss_sp_update_state(), dv_frame_offset(), dv_read_seek(), dwt_plane(), dyn_buf_seek(), encode_422_bitstream(), encode_block(), encode_callback(), encode_frame(), encode_init(), encode_plane(), encode_rgb_frame_TMPL(), envelope_peak(), envelope_peak16(), estimate_pitch(), estimate_timings_from_pts(), ff_adx_decode_header(), ff_ass_split_dialog2(), ff_biweight_h264_pixels16_8_msa(), ff_celt_enc_bitalloc(), ff_copy_and_dup(), ff_cos(), ff_dca_exss_parse(), ff_denoise_dct_mmi(), ff_draw_horiz_band(), ff_g723_1_get_residual(), ff_h2645_packet_split(), ff_h264_chroma422_dc_dequant_idct(), ff_h264_decode_init_vlc(), ff_h264_draw_horiz_band(), ff_h264_filter_mb(), ff_h264_luma_dc_dequant_idct(), ff_h264_weight_pixels8_8_mmi(), ff_hevc_hls_residual_coding(), ff_huff_gen_len_table(), ff_interleaved_peek(), ff_mediacodec_dec_decode(), ff_mjpeg_decode_frame(), ff_mpa_synth_filter_TMPL(), ff_mpeg4_encode_mb(), ff_mpv_export_qp_table(), ff_mspel_motion(), ff_rtmpe_gen_pub_key(), ff_rtp_send_latm(), ff_rv34_decode_frame(), ff_snow_get_buffer(), ff_spdif_probe(), ff_spdif_read_packet(), ff_weight_h264_pixels16_8_msa(), filter(), filter_frame(), find_header(), find_headers_search_validate(), fixup_vorbis_headers(), flac_fifo_read(), flac_fifo_read_wrap(), flac_read_header(), flv_read_header(), fsb_read_header(), g723_1_encode_frame(), gen_fcb_excitation(), get_buffer_with_edge(), get_intra_count(), get_matching_parameters(), get_p_cbp(), gmc1_motion(), gsm_decode_block(), h263_mv4_search(), h_block_filter(), hashNext(), headphone_convolute(), headphone_fast_convolute(), hevc_biwgt_copy_12w_msa(), hevc_biwgt_copy_16multx4mult_msa(), hevc_biwgt_copy_4w_msa(), hevc_biwgt_copy_6w_msa(), hevc_biwgt_copy_8w_msa(), hevc_hv_biwgt_4t_4multx8mult_msa(), hevc_hv_biwgt_4t_4x2_msa(), hevc_hv_biwgt_4t_4x4_msa(), hevc_hv_biwgt_4t_6w_msa(), hevc_hv_biwgt_4t_8multx4mult_msa(), hevc_hv_biwgt_4t_8x2_msa(), hevc_hv_biwgt_4t_8x6_msa(), hevc_hv_biwgt_8t_4w_msa(), hevc_hv_biwgt_8t_8multx2mult_msa(), hevc_hz_biwgt_4t_12w_msa(), hevc_hz_biwgt_4t_16w_msa(), hevc_hz_biwgt_4t_24w_msa(), hevc_hz_biwgt_4t_32w_msa(), hevc_hz_biwgt_4t_4x2_msa(), hevc_hz_biwgt_4t_4x4_msa(), hevc_hz_biwgt_4t_4x8multiple_msa(), hevc_hz_biwgt_4t_6w_msa(), hevc_hz_biwgt_4t_8x2_msa(), hevc_hz_biwgt_4t_8x4multiple_msa(), hevc_hz_biwgt_4t_8x6_msa(), hevc_hz_biwgt_8t_16w_msa(), hevc_hz_biwgt_8t_24w_msa(), hevc_hz_biwgt_8t_32w_msa(), hevc_hz_biwgt_8t_48w_msa(), hevc_hz_biwgt_8t_4w_msa(), hevc_hz_biwgt_8t_64w_msa(), hevc_hz_biwgt_8t_8w_msa(), hevc_intra_pred_angular_lower_16width_msa(), hevc_intra_pred_angular_lower_32width_msa(), hevc_intra_pred_angular_lower_4width_msa(), hevc_intra_pred_angular_lower_8width_msa(), hevc_intra_pred_angular_upper_16width_msa(), hevc_intra_pred_angular_upper_32width_msa(), hevc_intra_pred_angular_upper_4width_msa(), hevc_intra_pred_angular_upper_8width_msa(), hevc_sao_band_filter_4width_msa(), hevc_sao_edge_filter_0degree_4width_msa(), hevc_sao_edge_filter_0degree_8width_msa(), hevc_sao_edge_filter_135degree_4width_msa(), hevc_sao_edge_filter_135degree_8width_msa(), hevc_sao_edge_filter_45degree_4width_msa(), hevc_sao_edge_filter_45degree_8width_msa(), hevc_sao_edge_filter_90degree_4width_msa(), hevc_sao_edge_filter_90degree_8width_msa(), hevc_vt_biwgt_4t_12w_msa(), hevc_vt_biwgt_4t_16w_msa(), hevc_vt_biwgt_4t_24w_msa(), hevc_vt_biwgt_4t_32w_msa(), hevc_vt_biwgt_4t_4x2_msa(), hevc_vt_biwgt_4t_4x4_msa(), hevc_vt_biwgt_4t_4x8multiple_msa(), hevc_vt_biwgt_4t_6w_msa(), hevc_vt_biwgt_4t_8x2_msa(), hevc_vt_biwgt_4t_8x4multiple_msa(), hevc_vt_biwgt_4t_8x6_msa(), hevc_vt_biwgt_8t_12w_msa(), hevc_vt_biwgt_8t_16multx2mult_msa(), hevc_vt_biwgt_8t_4w_msa(), hevc_vt_biwgt_8t_8w_msa(), hls_slice_data_wpp(), horizontal_fill(), imdct_output(), init(), init_gaussian_filter(), init_ref(), ism_seek(), ivr_read_header(), lag_decode_arith_plane(), libvorbis_encode_init(), load_data(), lrc_probe(), lsp2lpc(), luma_mc_bi(), luma_mc_uni(), lz_copy(), magy_decode_frame(), main(), matroska_parse_frame(), matroska_parse_seekhead_entry(), matroska_parse_wavpack(), mc_dir_part(), mkv_strip_wavpack(), mkv_write_block(), motion_search(), mov_flush_fragment_interleaving(), mov_probe(), mov_read_sidx(), mov_read_trun(), mov_write_sidx_tag(), move_audio(), mp_read_changes_map(), musx_read_header(), mxf_absolute_bodysid_offset(), mxf_compute_ptses_fake_index(), no_codebook_bits(), no_codebook_bits_offset(), nsv_probe(), ogg_write_vorbiscomment(), oggvorbis_decode_init(), opus_packet_assembler(), pop_integer(), postProcess_TMPL(), premultiply16offset(), premultiply8offset(), probe(), process_frame(), process_intra_lower_16x16_msa(), process_intra_upper_16x16_msa(), process_options(), ptx_decode_frame(), put_hevc_epel_bi_h(), put_hevc_epel_bi_hv(), put_hevc_epel_bi_v(), put_hevc_epel_uni_h(), put_hevc_epel_uni_hv(), put_hevc_epel_uni_v(), put_hevc_epel_uni_w_h(), put_hevc_epel_uni_w_hv(), put_hevc_epel_uni_w_v(), put_hevc_pel_bi_pixels(), put_hevc_pel_uni_w_pixels(), put_hevc_qpel_bi_h(), put_hevc_qpel_bi_hv(), put_hevc_qpel_bi_v(), put_hevc_qpel_uni_h(), put_hevc_qpel_uni_hv(), put_hevc_qpel_uni_v(), put_hevc_qpel_uni_w_h(), put_hevc_qpel_uni_w_hv(), put_hevc_qpel_uni_w_v(), qdm2_fft_decode_tones(), qdm2_fft_init_coefficient(), qdm2_fft_tone_synthesizer(), quant_band_template(), quantize_value(), radix_count(), read_frame_data(), read_header(), read_odml_index(), read_packet(), read_tfra(), read_ts(), read_uncompressed_sgi(), read_var_block_data(), request_frame(), revert_channel_correlation(), rfc4175_handle_packet(), ring_drain(), rpl_read_header(), rv10_decode_frame(), s337m_probe(), s337m_read_packet(), sao_edge_restore_0(), sao_edge_restore_1(), seg_write_packet(), seq_decode_op3(), set_sar(), silk_decode_lpc(), silk_lsf2lpc(), sofalizer_convolute(), sofalizer_fast_convolute(), step_collect_psy_metrics(), svq1_decode_init(), svq1_encode_plane(), svq3_decode_init(), svq3_luma_dc_dequant_idct_c(), tgv_decode_inter(), unpack(), unpack_intraframe(), unpack_parse_unit(), v_block_filter(), vb_decode_framedata(), vble_decode_frame(), vble_restore_plane(), vcr1_decode_frame(), vorbis_floor1_decode(), vp3_draw_horiz_band(), vp56_get_vectors_predictors(), vpk_read_header(), write_mb_info(), write_packet(), write_sei(), writer_print_data(), writer_print_integers(), wtvfile_seek(), x8_vlc_init(), xan_decode_chroma(), xma_decode_packet(), xvag_read_header(), yae_flush(), yuv2NBPS(), yuv2plane1_8_c(), and yuv2yuvX_TMPL().
|
static |
|
static |
AVFilter ff_vf_spp |