#include <linux/module.h>
#include <media/v4l2-vp9.h>
const u8 v4l2_vp9_kf_y_mode_prob[10][10][9] = …;
EXPORT_SYMBOL_GPL(…);
const u8 v4l2_vp9_kf_partition_probs[16][3] = …;
EXPORT_SYMBOL_GPL(…);
const u8 v4l2_vp9_kf_uv_mode_prob[10][9] = …;
EXPORT_SYMBOL_GPL(…);
const struct v4l2_vp9_frame_context v4l2_vp9_default_probs = …;
EXPORT_SYMBOL_GPL(…);
static u32 fastdiv(u32 dividend, u16 divisor)
{ … }
static int inv_recenter_nonneg(int v, int m)
{ … }
static int update_prob(int delta, int prob)
{ … }
static void update_tx_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
#define BAND_6(band) …
static void update_coeff(const u8 deltas[6][6][3], u8 probs[6][6][3])
{ … }
static void update_coef_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas,
const struct v4l2_ctrl_vp9_frame *dec_params)
{ … }
static void update_skip_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void update_inter_mode_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void update_interp_filter_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void update_is_inter_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void
update_frame_reference_mode_probs(unsigned int reference_mode,
struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void update_y_mode_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static void update_partition_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas)
{ … }
static inline int update_mv_prob(int delta, int prob)
{ … }
static void update_mv_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas,
const struct v4l2_ctrl_vp9_frame *dec_params)
{ … }
void v4l2_vp9_fw_update_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_ctrl_vp9_compressed_hdr *deltas,
const struct v4l2_ctrl_vp9_frame *dec_params)
{ … }
EXPORT_SYMBOL_GPL(…);
u8 v4l2_vp9_reset_frame_ctx(const struct v4l2_ctrl_vp9_frame *dec_params,
struct v4l2_vp9_frame_context *frame_context)
{ … }
EXPORT_SYMBOL_GPL(…);
static u8 merge_prob(u8 pre_prob, u32 ct0, u32 ct1, u16 count_sat, u32 max_update_factor)
{ … }
static inline u8 noncoef_merge_prob(u8 pre_prob, u32 ct0, u32 ct1)
{ … }
static inline void merge_probs_variant_a(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
{ … }
static inline void merge_probs_variant_b(u8 *p, const u32 *c, u16 count_sat, u32 update_factor)
{ … }
static inline void merge_probs_variant_c(u8 *p, const u32 *c)
{ … }
static void merge_probs_variant_d(u8 *p, const u32 *c)
{ … }
static inline void merge_probs_variant_e(u8 *p, const u32 *c)
{ … }
static inline void merge_probs_variant_f(u8 *p, const u32 *c)
{ … }
static void merge_probs_variant_g(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_a_coef(u8 *p, const u32 *c, u32 update_factor)
{ … }
static inline void adapt_probs_variant_b_coef(u8 *p, const u32 *c, u32 update_factor)
{ … }
static void _adapt_coeff(unsigned int i, unsigned int j, unsigned int k,
struct v4l2_vp9_frame_context *probs,
const struct v4l2_vp9_frame_symbol_counts *counts,
u32 uf)
{ … }
static void _adapt_coef_probs(struct v4l2_vp9_frame_context *probs,
const struct v4l2_vp9_frame_symbol_counts *counts,
unsigned int uf)
{ … }
void v4l2_vp9_adapt_coef_probs(struct v4l2_vp9_frame_context *probs,
struct v4l2_vp9_frame_symbol_counts *counts,
bool use_128,
bool frame_is_intra)
{ … }
EXPORT_SYMBOL_GPL(…);
static inline void adapt_probs_variant_b(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_c(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_d(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_e(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_f(u8 *p, const u32 *c)
{ … }
static inline void adapt_probs_variant_g(u8 *p, const u32 *c)
{ … }
static inline u8 adapt_prob(u8 prob, const u32 counts[2])
{ … }
void v4l2_vp9_adapt_noncoef_probs(struct v4l2_vp9_frame_context *probs,
struct v4l2_vp9_frame_symbol_counts *counts,
u8 reference_mode, u8 interpolation_filter, u8 tx_mode,
u32 flags)
{ … }
EXPORT_SYMBOL_GPL(…);
bool
v4l2_vp9_seg_feat_enabled(const u8 *feature_enabled,
unsigned int feature,
unsigned int segid)
{ … }
EXPORT_SYMBOL_GPL(…);
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;