H.264 / AVC / MPEG4 part10 prediction functions. More...
Go to the source code of this file.
Macros | |
#define | LOAD_TOP_RIGHT_EDGE |
#define | LOAD_DOWN_LEFT_EDGE |
#define | LOAD_LEFT_EDGE |
#define | LOAD_TOP_EDGE |
#define | PREDICT_16x16_DC(v) |
#define | PRED16x16_X(n, v) |
#define | PRED8x8_X(n, v) |
#define | SRC(x, y) src[(x)+(y)*stride] |
#define | PL(y) const int l##y = (SRC(-1,y-1) + 2*SRC(-1,y) + SRC(-1,y+1) + 2) >> 2; |
#define | PREDICT_8x8_LOAD_LEFT |
#define | PT(x) const int t##x = (SRC(x-1,-1) + 2*SRC(x,-1) + SRC(x+1,-1) + 2) >> 2; |
#define | PREDICT_8x8_LOAD_TOP |
#define | PTR(x) t##x = (SRC(x-1,-1) + 2*SRC(x,-1) + SRC(x+1,-1) + 2) >> 2; |
#define | PREDICT_8x8_LOAD_TOPRIGHT |
#define | PREDICT_8x8_LOAD_TOPLEFT const int lt = (SRC(-1,0) + 2*SRC(-1,-1) + SRC(0,-1) + 2) >> 2 |
#define | PREDICT_8x8_DC(v) |
#define | ROW(y) |
Functions | |
static void FUNCC() | pred4x4_vertical (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_horizontal (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_left_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_top_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_128_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_127_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_129_dc (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_down_right (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_down_left (uint8_t *_src, const uint8_t *_topright, int _stride) |
static void FUNCC() | pred4x4_vertical_right (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_vertical_left (uint8_t *_src, const uint8_t *_topright, int _stride) |
static void FUNCC() | pred4x4_horizontal_up (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred4x4_horizontal_down (uint8_t *_src, const uint8_t *topright, int _stride) |
static void FUNCC() | pred16x16_vertical (uint8_t *_src, int _stride) |
static void FUNCC() | pred16x16_horizontal (uint8_t *_src, int stride) |
static void FUNCC() | pred16x16_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred16x16_left_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred16x16_top_dc (uint8_t *_src, int stride) |
PRED16x16_X (127,(1<<(BIT_DEPTH-1))-1) PRED16x16_X(128 | |
for (j=16;j >0;--j) | |
static void FUNCC() | pred16x16_plane (uint8_t *src, int stride) |
static void FUNCC() | pred8x8_vertical (uint8_t *_src, int _stride) |
static void FUNCC() | pred8x16_vertical (uint8_t *_src, int _stride) |
static void FUNCC() | pred8x8_horizontal (uint8_t *_src, int stride) |
static void FUNCC() | pred8x16_horizontal (uint8_t *_src, int stride) |
PRED8x8_X (127,(1<<(BIT_DEPTH-1))-1) PRED8x8_X(128 | |
<<(BIT_DEPTH-1))+0) PRED8x8_X(129,(1 <<(BIT_DEPTH-1))+1) staticvoidFUNCC(pred8x16_128_dc)(uint8_t *_src, intstride){FUNCC(pred8x8_128_dc)(_src, stride);FUNCC(pred8x8_128_dc)(_src+8 *stride, stride);}staticvoidFUNCC(pred8x8_left_dc)(uint8_t *_src, intstride){inti;intdc0, dc2;pixel4dc0splat, dc2splat;pixel *src=(pixel *) _src;stride/=sizeof(pixel);dc0=dc2=0;for(i=0;i < 4;i++){dc0+=src[-1+i *stride];dc2+=src[-1+(i+4)*stride];}dc0splat=PIXEL_SPLAT_X4((dc0+2)> >2);dc2splat=PIXEL_SPLAT_X4((dc2+2)>> | for (i=0;i< 4;i++) |
static void FUNCC() | pred8x16_left_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred8x8_top_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred8x16_top_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred8x8_dc (uint8_t *_src, int stride) |
static void FUNCC() | pred8x16_dc (uint8_t *_src, int stride) |
static void FUNC() | pred8x8_mad_cow_dc_l0t (uint8_t *src, int stride) |
static void FUNC() | pred8x16_mad_cow_dc_l0t (uint8_t *src, int stride) |
static void FUNC() | pred8x8_mad_cow_dc_0lt (uint8_t *src, int stride) |
static void FUNC() | pred8x16_mad_cow_dc_0lt (uint8_t *src, int stride) |
static void FUNC() | pred8x8_mad_cow_dc_l00 (uint8_t *src, int stride) |
static void FUNC() | pred8x16_mad_cow_dc_l00 (uint8_t *src, int stride) |
static void FUNC() | pred8x8_mad_cow_dc_0l0 (uint8_t *src, int stride) |
static void FUNC() | pred8x16_mad_cow_dc_0l0 (uint8_t *src, int stride) |
static void FUNCC() | pred8x8_plane (uint8_t *_src, int _stride) |
static void FUNCC() | pred8x16_plane (uint8_t *_src, int _stride) |
static void FUNCC() | pred8x8l_128_dc (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_left_dc (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_top_dc (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_dc (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_horizontal (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_vertical (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_down_left (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_down_right (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_vertical_right (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_horizontal_down (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_vertical_left (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred8x8l_horizontal_up (uint8_t *_src, int has_topleft, int has_topright, int _stride) |
static void FUNCC() | pred4x4_vertical_add (uint8_t *_pix, const DCTELEM *_block, int stride) |
static void FUNCC() | pred4x4_horizontal_add (uint8_t *_pix, const DCTELEM *_block, int stride) |
static void FUNCC() | pred8x8l_vertical_add (uint8_t *_pix, const DCTELEM *_block, int stride) |
static void FUNCC() | pred8x8l_horizontal_add (uint8_t *_pix, const DCTELEM *_block, int stride) |
static void FUNCC() | pred16x16_vertical_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
static void FUNCC() | pred16x16_horizontal_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
static void FUNCC() | pred8x8_vertical_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
static void FUNCC() | pred8x16_vertical_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
static void FUNCC() | pred8x8_horizontal_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
static void FUNCC() | pred8x16_horizontal_add (uint8_t *pix, const int *block_offset, const DCTELEM *block, int stride) |
Variables | |
<<(BIT_DEPTH-1))+0) PRED16x16_X(129,(1<<(BIT_DEPTH-1))+1) staticinlinevoidFUNCC(pred16x16_plane_compat)(uint8_t *_src, int_stride, constintsvq3, constintrv40){inti, j, k;inta;INIT_CLIPpixel *src=(pixel *) _src;intstride=_stride/sizeof(pixel);constpixel *constsrc0=src+7-stride;constpixel *src1=src+8 *stride-1;constpixel *src2=src1-2 *stride;intH=src0[1]-src0[-1];intV=src1[0]-src2[0];for(k=2;k <=8;++k){src1+=stride;src2-=stride;H+=k *(src0[k]-src0[-k]);V+=k *(src1[0]-src2[0]);}if(svq3){H=(5 *(H/4))/16;V=(5 *(V/4))/16;i=H;H=V;V=i;}elseif(rv40){H=(H+(H >>2))>> | V = ( V + (V>>2) ) >> 4 |
H.264 / AVC / MPEG4 part10 prediction functions.
Definition in file h264pred_template.c.
#define LOAD_DOWN_LEFT_EDGE |
Definition at line 129 of file h264pred_template.c.
Referenced by pred4x4_down_left_rv40_c(), pred4x4_horizontal_up_rv40_c(), and pred4x4_vertical_left_rv40_c().
#define LOAD_LEFT_EDGE |
Definition at line 135 of file h264pred_template.c.
Referenced by pred4x4_down_left_rv40_c(), pred4x4_down_left_rv40_nodown_c(), pred4x4_down_left_svq3_c(), pred4x4_down_right(), pred4x4_horizontal_down(), pred4x4_horizontal_up(), pred4x4_horizontal_up_rv40_c(), pred4x4_horizontal_up_rv40_nodown_c(), pred4x4_horizontal_vp8_c(), pred4x4_vertical_left_rv40_c(), pred4x4_vertical_left_rv40_nodown_c(), and pred4x4_vertical_right().
#define LOAD_TOP_EDGE |
Definition at line 141 of file h264pred_template.c.
Referenced by pred4x4_down_left(), pred4x4_down_left_rv40_c(), pred4x4_down_left_rv40_nodown_c(), pred4x4_down_left_svq3_c(), pred4x4_down_right(), pred4x4_horizontal_down(), pred4x4_horizontal_up_rv40_c(), pred4x4_horizontal_up_rv40_nodown_c(), pred4x4_vertical_left(), pred4x4_vertical_left_rv40(), pred4x4_vertical_left_vp8_c(), pred4x4_vertical_right(), and pred4x4_vertical_vp8_c().
#define LOAD_TOP_RIGHT_EDGE |
Definition at line 123 of file h264pred_template.c.
Referenced by pred4x4_down_left(), pred4x4_down_left_rv40_c(), pred4x4_down_left_rv40_nodown_c(), pred4x4_horizontal_up_rv40_c(), pred4x4_horizontal_up_rv40_nodown_c(), pred4x4_vertical_left(), pred4x4_vertical_left_rv40(), pred4x4_vertical_left_vp8_c(), and pred4x4_vertical_vp8_c().
Definition at line 781 of file h264pred_template.c.
Referenced by reverse_dc_prediction().
#define PRED16x16_X | ( | n, | |
v | |||
) |
Definition at line 383 of file h264pred_template.c.
#define PRED8x8_X | ( | n, | |
v | |||
) |
Definition at line 493 of file h264pred_template.c.
#define PREDICT_16x16_DC | ( | v | ) |
Definition at line 328 of file h264pred_template.c.
Referenced by pred16x16_dc(), pred16x16_left_dc(), and pred16x16_top_dc().
#define PREDICT_8x8_DC | ( | v | ) |
Definition at line 810 of file h264pred_template.c.
Referenced by pred8x8l_128_dc(), pred8x8l_dc(), pred8x8l_left_dc(), and pred8x8l_top_dc().
#define PREDICT_8x8_LOAD_LEFT |
Definition at line 783 of file h264pred_template.c.
Referenced by pred8x8l_dc(), pred8x8l_down_right(), pred8x8l_horizontal(), pred8x8l_horizontal_down(), pred8x8l_horizontal_up(), pred8x8l_left_dc(), and pred8x8l_vertical_right().
#define PREDICT_8x8_LOAD_TOP |
Definition at line 791 of file h264pred_template.c.
Referenced by pred8x8l_dc(), pred8x8l_down_left(), pred8x8l_down_right(), pred8x8l_horizontal_down(), pred8x8l_top_dc(), pred8x8l_vertical(), pred8x8l_vertical_left(), and pred8x8l_vertical_right().
Definition at line 807 of file h264pred_template.c.
Referenced by pred8x8l_down_right(), pred8x8l_horizontal_down(), and pred8x8l_vertical_right().
#define PREDICT_8x8_LOAD_TOPRIGHT |
Definition at line 800 of file h264pred_template.c.
Referenced by pred8x8l_down_left(), and pred8x8l_vertical_left().
Definition at line 789 of file h264pred_template.c.
Definition at line 798 of file h264pred_template.c.
#define ROW | ( | y | ) |
Referenced by pred8x8l_horizontal().
#define SRC | ( | x, | |
y | |||
) | src[(x)+(y)*stride] |
Definition at line 780 of file h264pred_template.c.
Referenced by pred8x8l_down_left(), pred8x8l_down_right(), pred8x8l_horizontal_down(), pred8x8l_horizontal_up(), pred8x8l_vertical_left(), and pred8x8l_vertical_right().
for | ( | j | = 16; j , |
0;-- | j | ||
) |
Definition at line 426 of file h264pred_template.c.
Referenced by ac3_decode_frame(), ac3_decode_transform_coeffs_ch(), add_frame_default(), adpcm_decode_frame(), alac_decode_frame(), apply_window_and_mdct(), atrac1_decode_frame(), audio_read_packet(), av_image_fill_pointers(), av_solve_lls(), bfi_decode_frame(), blend_slice(), bmv_aud_decode_frame(), cdg_load_palette(), compute_stereo(), copy_frame_default(), dca_parse_audio_coding_header(), decode_frame(), dnxhd_unquantize_c(), draw_slice(), ff_draw_horiz_band(), ff_h264_decode_mb_cabac(), ff_rv34_decode_frame(), fill_quantization_matrices(), fill_scaling_lists(), flashsv_decode_frame(), idcin_decode_init(), init_image(), lag_decode_frame(), libgsm_decode_frame(), load_input_picture(), msvideo1_decode_16bit(), mxf_read_close(), pack_yuv(), pcm_decode_frame(), pitch_sharpening(), pnm_decode_frame(), process_callback(), qdm2_decode_fft_packets(), qdm2_decode_frame(), qmf_32_subbands(), recheck_discard_flags(), s302m_decode_frame(), shorten_decode_frame(), sws_diffVec(), sws_init_context(), sws_sumVec(), synth_superframe(), tta_decode_frame(), txd_decode_frame(), v410_decode_frame(), v410_encode_frame(), vmdvideo_decode_init(), vorbis_encode_frame(), vp56_parse_mb_type_models(), and yop_decode_frame().
for | ( | ) |
Definition at line 529 of file h264pred_template.c.
Definition at line 337 of file h264pred_template.c.
Definition at line 313 of file h264pred_template.c.
|
static |
Definition at line 1138 of file h264pred_template.c.
Definition at line 355 of file h264pred_template.c.
Definition at line 440 of file h264pred_template.c.
Definition at line 369 of file h264pred_template.c.
Definition at line 296 of file h264pred_template.c.
|
static |
Definition at line 1132 of file h264pred_template.c.
PRED16x16_X | ( | 127 | , |
(1<<(BIT_DEPTH-1))- | 1 | ||
) |
Definition at line 100 of file h264pred_template.c.
Definition at line 89 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_0l0(), pred8x16_mad_cow_dc_l00(), pred8x8_mad_cow_dc_0l0(), and pred8x8_mad_cow_dc_l00().
Definition at line 111 of file h264pred_template.c.
Definition at line 52 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_l0t(), and pred8x8_mad_cow_dc_l0t().
|
static |
Definition at line 172 of file h264pred_template.c.
|
static |
Definition at line 147 of file h264pred_template.c.
|
static |
Definition at line 43 of file h264pred_template.c.
|
static |
Definition at line 1075 of file h264pred_template.c.
Referenced by pred16x16_horizontal_add(), pred8x16_horizontal_add(), and pred8x8_horizontal_add().
|
static |
Definition at line 271 of file h264pred_template.c.
|
static |
Definition at line 248 of file h264pred_template.c.
|
static |
Definition at line 65 of file h264pred_template.c.
Definition at line 77 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_0lt(), and pred8x8_mad_cow_dc_0lt().
|
static |
Definition at line 32 of file h264pred_template.c.
|
static |
Definition at line 1058 of file h264pred_template.c.
Referenced by pred16x16_vertical_add(), pred8x16_vertical_add(), and pred8x8_vertical_add().
|
static |
Definition at line 223 of file h264pred_template.c.
|
static |
Definition at line 198 of file h264pred_template.c.
Definition at line 618 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_0lt().
Definition at line 482 of file h264pred_template.c.
|
static |
Definition at line 1164 of file h264pred_template.c.
Definition at line 539 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_0l0(), and pred8x16_mad_cow_dc_l00().
Definition at line 698 of file h264pred_template.c.
Definition at line 675 of file h264pred_template.c.
Definition at line 686 of file h264pred_template.c.
Definition at line 665 of file h264pred_template.c.
Definition at line 739 of file h264pred_template.c.
Definition at line 569 of file h264pred_template.c.
Referenced by pred8x16_mad_cow_dc_l0t().
Definition at line 457 of file h264pred_template.c.
|
static |
Definition at line 1150 of file h264pred_template.c.
Definition at line 590 of file h264pred_template.c.
Referenced by pred8x8_mad_cow_dc_0lt().
Definition at line 470 of file h264pred_template.c.
|
static |
Definition at line 1158 of file h264pred_template.c.
Definition at line 692 of file h264pred_template.c.
Definition at line 670 of file h264pred_template.c.
Definition at line 680 of file h264pred_template.c.
Definition at line 660 of file h264pred_template.c.
Definition at line 704 of file h264pred_template.c.
Definition at line 544 of file h264pred_template.c.
Referenced by pred8x8_mad_cow_dc_l0t().
Definition at line 444 of file h264pred_template.c.
|
static |
Definition at line 1144 of file h264pred_template.c.
PRED8x8_X | ( | 127 | , |
(1<<(BIT_DEPTH-1))- | 1 | ||
) |
|
static |
Definition at line 818 of file h264pred_template.c.
|
static |
Definition at line 843 of file h264pred_template.c.
|
static |
Definition at line 890 of file h264pred_template.c.
|
static |
Definition at line 912 of file h264pred_template.c.
|
static |
Definition at line 854 of file h264pred_template.c.
|
static |
Definition at line 1112 of file h264pred_template.c.
|
static |
Definition at line 965 of file h264pred_template.c.
|
static |
Definition at line 1024 of file h264pred_template.c.
|
static |
Definition at line 825 of file h264pred_template.c.
|
static |
Definition at line 834 of file h264pred_template.c.
|
static |
Definition at line 867 of file h264pred_template.c.
|
static |
Definition at line 1091 of file h264pred_template.c.
|
static |
Definition at line 995 of file h264pred_template.c.
|
static |
Definition at line 935 of file h264pred_template.c.
<<(BIT_DEPTH-1))+0)PRED16x16_X(129,(1<<(BIT_DEPTH-1))+1)staticinlinevoidFUNCC(pred16x16_plane_compat)(uint8_t*_src,int_stride,constintsvq3,constintrv40){inti,j,k;inta;INIT_CLIPpixel*src=(pixel*)_src;intstride=_stride/sizeof(pixel);constpixel*constsrc0=src+7-stride;constpixel*src1=src+8*stride-1;constpixel*src2=src1-2*stride;intH=src0[1]-src0[-1];intV=src1[0]-src2[0];for(k=2;k<=8;++k){src1+=stride;src2-=stride;H+=k*(src0[k]-src0[-k]);V+=k*(src1[0]-src2[0]);}if(svq3){H=(5*(H/4))/16;V=(5*(V/4))/16;i=H;H=V;V=i;}elseif(rv40){H=(H+(H>>2))>> V = ( V + (V>>2) ) >> 4 |
Definition at line 419 of file h264pred_template.c.