Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
aom-rav1e
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xiph.Org
aom-rav1e
Commits
be6c031f
Commit
be6c031f
authored
Aug 12, 2015
by
Jingning Han
Committed by
Gerrit Code Review
Aug 12, 2015
Browse files
Options
Browse Files
Download
Plain Diff
Merge "Fork VP9 and VP10 codebase"
parents
70deaf00
3ee6db6c
Changes
200
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
200 changed files
with
67352 additions
and
38 deletions
+67352
-38
configure
configure
+5
-0
libs.mk
libs.mk
+34
-0
test/codec_factory.h
test/codec_factory.h
+94
-3
test/decode_api_test.cc
test/decode_api_test.cc
+3
-0
test/encode_test_driver.h
test/encode_test_driver.h
+2
-2
tools_common.c
tools_common.c
+10
-2
tools_common.h
tools_common.h
+1
-0
vp10/common/arm/neon/vp9_iht4x4_add_neon.c
vp10/common/arm/neon/vp9_iht4x4_add_neon.c
+248
-0
vp10/common/arm/neon/vp9_iht8x8_add_neon.c
vp10/common/arm/neon/vp9_iht8x8_add_neon.c
+624
-0
vp10/common/mips/dspr2/vp9_itrans16_dspr2.c
vp10/common/mips/dspr2/vp9_itrans16_dspr2.c
+108
-0
vp10/common/mips/dspr2/vp9_itrans4_dspr2.c
vp10/common/mips/dspr2/vp9_itrans4_dspr2.c
+97
-0
vp10/common/mips/dspr2/vp9_itrans8_dspr2.c
vp10/common/mips/dspr2/vp9_itrans8_dspr2.c
+93
-0
vp10/common/mips/msa/vp9_idct16x16_msa.c
vp10/common/mips/msa/vp9_idct16x16_msa.c
+81
-0
vp10/common/mips/msa/vp9_idct4x4_msa.c
vp10/common/mips/msa/vp9_idct4x4_msa.c
+62
-0
vp10/common/mips/msa/vp9_idct8x8_msa.c
vp10/common/mips/msa/vp9_idct8x8_msa.c
+80
-0
vp10/common/mips/msa/vp9_mfqe_msa.c
vp10/common/mips/msa/vp9_mfqe_msa.c
+137
-0
vp10/common/vp10_rtcd.c
vp10/common/vp10_rtcd.c
+19
-0
vp10/common/vp10_rtcd_defs.pl
vp10/common/vp10_rtcd_defs.pl
+362
-0
vp10/common/vp9_alloccommon.c
vp10/common/vp9_alloccommon.c
+165
-0
vp10/common/vp9_alloccommon.h
vp10/common/vp9_alloccommon.h
+44
-0
vp10/common/vp9_blockd.c
vp10/common/vp9_blockd.c
+136
-0
vp10/common/vp9_blockd.h
vp10/common/vp9_blockd.h
+318
-0
vp10/common/vp9_common.h
vp10/common/vp9_common.h
+75
-0
vp10/common/vp9_common_data.c
vp10/common/vp9_common_data.c
+13
-0
vp10/common/vp9_common_data.h
vp10/common/vp9_common_data.h
+174
-0
vp10/common/vp9_debugmodes.c
vp10/common/vp9_debugmodes.c
+91
-0
vp10/common/vp9_entropy.c
vp10/common/vp9_entropy.c
+817
-0
vp10/common/vp9_entropy.h
vp10/common/vp9_entropy.h
+215
-0
vp10/common/vp9_entropymode.c
vp10/common/vp9_entropymode.c
+469
-0
vp10/common/vp9_entropymode.h
vp10/common/vp9_entropymode.h
+107
-0
vp10/common/vp9_entropymv.c
vp10/common/vp9_entropymv.c
+218
-0
vp10/common/vp9_entropymv.h
vp10/common/vp9_entropymv.h
+133
-0
vp10/common/vp9_enums.h
vp10/common/vp9_enums.h
+147
-0
vp10/common/vp9_filter.c
vp10/common/vp9_filter.c
+104
-0
vp10/common/vp9_filter.h
vp10/common/vp9_filter.h
+42
-0
vp10/common/vp9_frame_buffers.c
vp10/common/vp9_frame_buffers.c
+86
-0
vp10/common/vp9_frame_buffers.h
vp10/common/vp9_frame_buffers.h
+53
-0
vp10/common/vp9_idct.c
vp10/common/vp9_idct.c
+403
-0
vp10/common/vp9_idct.h
vp10/common/vp9_idct.h
+81
-0
vp10/common/vp9_loopfilter.c
vp10/common/vp9_loopfilter.c
+1616
-0
vp10/common/vp9_loopfilter.h
vp10/common/vp9_loopfilter.h
+155
-0
vp10/common/vp9_mfqe.c
vp10/common/vp9_mfqe.c
+394
-0
vp10/common/vp9_mfqe.h
vp10/common/vp9_mfqe.h
+31
-0
vp10/common/vp9_mv.h
vp10/common/vp9_mv.h
+55
-0
vp10/common/vp9_mvref_common.c
vp10/common/vp9_mvref_common.c
+229
-0
vp10/common/vp9_mvref_common.h
vp10/common/vp9_mvref_common.h
+232
-0
vp10/common/vp9_onyxc_int.h
vp10/common/vp9_onyxc_int.h
+470
-0
vp10/common/vp9_postproc.c
vp10/common/vp9_postproc.c
+745
-0
vp10/common/vp9_postproc.h
vp10/common/vp9_postproc.h
+53
-0
vp10/common/vp9_ppflags.h
vp10/common/vp9_ppflags.h
+43
-0
vp10/common/vp9_pred_common.c
vp10/common/vp9_pred_common.c
+339
-0
vp10/common/vp9_pred_common.h
vp10/common/vp9_pred_common.h
+170
-0
vp10/common/vp9_quant_common.c
vp10/common/vp9_quant_common.c
+278
-0
vp10/common/vp9_quant_common.h
vp10/common/vp9_quant_common.h
+36
-0
vp10/common/vp9_reconinter.c
vp10/common/vp9_reconinter.c
+213
-0
vp10/common/vp9_reconinter.h
vp10/common/vp9_reconinter.h
+195
-0
vp10/common/vp9_reconintra.c
vp10/common/vp9_reconintra.c
+402
-0
vp10/common/vp9_reconintra.h
vp10/common/vp9_reconintra.h
+32
-0
vp10/common/vp9_scale.c
vp10/common/vp9_scale.c
+166
-0
vp10/common/vp9_scale.h
vp10/common/vp9_scale.h
+75
-0
vp10/common/vp9_scan.c
vp10/common/vp9_scan.c
+727
-0
vp10/common/vp9_scan.h
vp10/common/vp9_scan.h
+57
-0
vp10/common/vp9_seg_common.c
vp10/common/vp9_seg_common.c
+63
-0
vp10/common/vp9_seg_common.h
vp10/common/vp9_seg_common.h
+86
-0
vp10/common/vp9_systemdependent.h
vp10/common/vp9_systemdependent.h
+84
-0
vp10/common/vp9_textblit.c
vp10/common/vp9_textblit.c
+120
-0
vp10/common/vp9_textblit.h
vp10/common/vp9_textblit.h
+27
-0
vp10/common/vp9_thread_common.c
vp10/common/vp9_thread_common.c
+436
-0
vp10/common/vp9_thread_common.h
vp10/common/vp9_thread_common.h
+57
-0
vp10/common/vp9_tile_common.c
vp10/common/vp9_tile_common.c
+59
-0
vp10/common/vp9_tile_common.h
vp10/common/vp9_tile_common.h
+40
-0
vp10/common/x86/vp9_idct_intrin_sse2.c
vp10/common/x86/vp9_idct_intrin_sse2.c
+180
-0
vp10/common/x86/vp9_mfqe_sse2.asm
vp10/common/x86/vp9_mfqe_sse2.asm
+287
-0
vp10/common/x86/vp9_postproc_sse2.asm
vp10/common/x86/vp9_postproc_sse2.asm
+694
-0
vp10/decoder/vp9_decodeframe.c
vp10/decoder/vp9_decodeframe.c
+2247
-0
vp10/decoder/vp9_decodeframe.h
vp10/decoder/vp9_decodeframe.h
+35
-0
vp10/decoder/vp9_decodemv.c
vp10/decoder/vp9_decodemv.c
+631
-0
vp10/decoder/vp9_decodemv.h
vp10/decoder/vp9_decodemv.h
+30
-0
vp10/decoder/vp9_decoder.c
vp10/decoder/vp9_decoder.c
+509
-0
vp10/decoder/vp9_decoder.h
vp10/decoder/vp9_decoder.h
+141
-0
vp10/decoder/vp9_detokenize.c
vp10/decoder/vp9_detokenize.c
+269
-0
vp10/decoder/vp9_detokenize.h
vp10/decoder/vp9_detokenize.h
+33
-0
vp10/decoder/vp9_dsubexp.c
vp10/decoder/vp9_dsubexp.c
+76
-0
vp10/decoder/vp9_dsubexp.h
vp10/decoder/vp9_dsubexp.h
+27
-0
vp10/decoder/vp9_dthread.c
vp10/decoder/vp9_dthread.c
+189
-0
vp10/decoder/vp9_dthread.h
vp10/decoder/vp9_dthread.h
+66
-0
vp10/encoder/arm/neon/vp9_avg_neon.c
vp10/encoder/arm/neon/vp9_avg_neon.c
+160
-0
vp10/encoder/arm/neon/vp9_dct_neon.c
vp10/encoder/arm/neon/vp9_dct_neon.c
+36
-0
vp10/encoder/arm/neon/vp9_error_neon.c
vp10/encoder/arm/neon/vp9_error_neon.c
+41
-0
vp10/encoder/arm/neon/vp9_quantize_neon.c
vp10/encoder/arm/neon/vp9_quantize_neon.c
+118
-0
vp10/encoder/mips/msa/vp9_avg_msa.c
vp10/encoder/mips/msa/vp9_avg_msa.c
+56
-0
vp10/encoder/mips/msa/vp9_error_msa.c
vp10/encoder/mips/msa/vp9_error_msa.c
+114
-0
vp10/encoder/mips/msa/vp9_fdct16x16_msa.c
vp10/encoder/mips/msa/vp9_fdct16x16_msa.c
+507
-0
vp10/encoder/mips/msa/vp9_fdct4x4_msa.c
vp10/encoder/mips/msa/vp9_fdct4x4_msa.c
+99
-0
vp10/encoder/mips/msa/vp9_fdct8x8_msa.c
vp10/encoder/mips/msa/vp9_fdct8x8_msa.c
+66
-0
vp10/encoder/mips/msa/vp9_fdct_msa.h
vp10/encoder/mips/msa/vp9_fdct_msa.h
+117
-0
vp10/encoder/mips/msa/vp9_temporal_filter_msa.c
vp10/encoder/mips/msa/vp9_temporal_filter_msa.c
+289
-0
vp10/encoder/vp9_aq_complexity.c
vp10/encoder/vp9_aq_complexity.c
+163
-0
vp10/encoder/vp9_aq_complexity.h
vp10/encoder/vp9_aq_complexity.h
+37
-0
vp10/encoder/vp9_aq_cyclicrefresh.c
vp10/encoder/vp9_aq_cyclicrefresh.c
+569
-0
vp10/encoder/vp9_aq_cyclicrefresh.h
vp10/encoder/vp9_aq_cyclicrefresh.h
+98
-0
vp10/encoder/vp9_aq_variance.c
vp10/encoder/vp9_aq_variance.c
+207
-0
vp10/encoder/vp9_aq_variance.h
vp10/encoder/vp9_aq_variance.h
+31
-0
vp10/encoder/vp9_avg.c
vp10/encoder/vp9_avg.c
+230
-0
vp10/encoder/vp9_bitstream.c
vp10/encoder/vp9_bitstream.c
+1253
-0
vp10/encoder/vp9_bitstream.h
vp10/encoder/vp9_bitstream.h
+37
-0
vp10/encoder/vp9_block.h
vp10/encoder/vp9_block.h
+150
-0
vp10/encoder/vp9_blockiness.c
vp10/encoder/vp9_blockiness.c
+140
-0
vp10/encoder/vp9_context_tree.c
vp10/encoder/vp9_context_tree.c
+161
-0
vp10/encoder/vp9_context_tree.h
vp10/encoder/vp9_context_tree.h
+87
-0
vp10/encoder/vp9_cost.c
vp10/encoder/vp9_cost.c
+63
-0
vp10/encoder/vp9_cost.h
vp10/encoder/vp9_cost.h
+55
-0
vp10/encoder/vp9_dct.c
vp10/encoder/vp9_dct.c
+811
-0
vp10/encoder/vp9_denoiser.c
vp10/encoder/vp9_denoiser.c
+499
-0
vp10/encoder/vp9_denoiser.h
vp10/encoder/vp9_denoiser.h
+69
-0
vp10/encoder/vp9_encodeframe.c
vp10/encoder/vp9_encodeframe.c
+4212
-0
vp10/encoder/vp9_encodeframe.h
vp10/encoder/vp9_encodeframe.h
+49
-0
vp10/encoder/vp9_encodemb.c
vp10/encoder/vp9_encodemb.c
+976
-0
vp10/encoder/vp9_encodemb.h
vp10/encoder/vp9_encodemb.h
+46
-0
vp10/encoder/vp9_encodemv.c
vp10/encoder/vp9_encodemv.c
+268
-0
vp10/encoder/vp9_encodemv.h
vp10/encoder/vp9_encodemv.h
+38
-0
vp10/encoder/vp9_encoder.c
vp10/encoder/vp9_encoder.c
+4709
-0
vp10/encoder/vp9_encoder.h
vp10/encoder/vp9_encoder.h
+666
-0
vp10/encoder/vp9_ethread.c
vp10/encoder/vp9_ethread.c
+198
-0
vp10/encoder/vp9_ethread.h
vp10/encoder/vp9_ethread.h
+25
-0
vp10/encoder/vp9_extend.c
vp10/encoder/vp9_extend.c
+198
-0
vp10/encoder/vp9_extend.h
vp10/encoder/vp9_extend.h
+33
-0
vp10/encoder/vp9_fastssim.c
vp10/encoder/vp9_fastssim.c
+465
-0
vp10/encoder/vp9_firstpass.c
vp10/encoder/vp9_firstpass.c
+2857
-0
vp10/encoder/vp9_firstpass.h
vp10/encoder/vp9_firstpass.h
+166
-0
vp10/encoder/vp9_lookahead.c
vp10/encoder/vp9_lookahead.c
+245
-0
vp10/encoder/vp9_lookahead.h
vp10/encoder/vp9_lookahead.h
+124
-0
vp10/encoder/vp9_mbgraph.c
vp10/encoder/vp9_mbgraph.c
+416
-0
vp10/encoder/vp9_mbgraph.h
vp10/encoder/vp9_mbgraph.h
+40
-0
vp10/encoder/vp9_mcomp.c
vp10/encoder/vp9_mcomp.c
+2357
-0
vp10/encoder/vp9_mcomp.h
vp10/encoder/vp9_mcomp.h
+165
-0
vp10/encoder/vp9_picklpf.c
vp10/encoder/vp9_picklpf.c
+192
-0
vp10/encoder/vp9_picklpf.h
vp10/encoder/vp9_picklpf.h
+30
-0
vp10/encoder/vp9_pickmode.c
vp10/encoder/vp9_pickmode.c
+1888
-0
vp10/encoder/vp9_pickmode.h
vp10/encoder/vp9_pickmode.h
+38
-0
vp10/encoder/vp9_psnrhvs.c
vp10/encoder/vp9_psnrhvs.c
+224
-0
vp10/encoder/vp9_quantize.c
vp10/encoder/vp9_quantize.c
+389
-0
vp10/encoder/vp9_quantize.h
vp10/encoder/vp9_quantize.h
+62
-0
vp10/encoder/vp9_ratectrl.c
vp10/encoder/vp9_ratectrl.c
+1888
-0
vp10/encoder/vp9_ratectrl.h
vp10/encoder/vp9_ratectrl.h
+263
-0
vp10/encoder/vp9_rd.c
vp10/encoder/vp9_rd.c
+664
-0
vp10/encoder/vp9_rd.h
vp10/encoder/vp9_rd.h
+188
-0
vp10/encoder/vp9_rdopt.c
vp10/encoder/vp9_rdopt.c
+4292
-0
vp10/encoder/vp9_rdopt.h
vp10/encoder/vp9_rdopt.h
+74
-0
vp10/encoder/vp9_resize.c
vp10/encoder/vp9_resize.c
+928
-0
vp10/encoder/vp9_resize.h
vp10/encoder/vp9_resize.h
+124
-0
vp10/encoder/vp9_segmentation.c
vp10/encoder/vp9_segmentation.c
+281
-0
vp10/encoder/vp9_segmentation.h
vp10/encoder/vp9_segmentation.h
+53
-0
vp10/encoder/vp9_skin_detection.c
vp10/encoder/vp9_skin_detection.c
+104
-0
vp10/encoder/vp9_skin_detection.h
vp10/encoder/vp9_skin_detection.h
+35
-0
vp10/encoder/vp9_speed_features.c
vp10/encoder/vp9_speed_features.c
+552
-0
vp10/encoder/vp9_speed_features.h
vp10/encoder/vp9_speed_features.h
+432
-0
vp10/encoder/vp9_ssim.c
vp10/encoder/vp9_ssim.c
+500
-0
vp10/encoder/vp9_ssim.h
vp10/encoder/vp9_ssim.h
+96
-0
vp10/encoder/vp9_subexp.c
vp10/encoder/vp9_subexp.c
+213
-0
vp10/encoder/vp9_subexp.h
vp10/encoder/vp9_subexp.h
+44
-0
vp10/encoder/vp9_svc_layercontext.c
vp10/encoder/vp9_svc_layercontext.c
+645
-0
vp10/encoder/vp9_svc_layercontext.h
vp10/encoder/vp9_svc_layercontext.h
+122
-0
vp10/encoder/vp9_temporal_filter.c
vp10/encoder/vp9_temporal_filter.c
+750
-0
vp10/encoder/vp9_temporal_filter.h
vp10/encoder/vp9_temporal_filter.h
+25
-0
vp10/encoder/vp9_tokenize.c
vp10/encoder/vp9_tokenize.c
+636
-0
vp10/encoder/vp9_tokenize.h
vp10/encoder/vp9_tokenize.h
+112
-0
vp10/encoder/vp9_treewriter.c
vp10/encoder/vp9_treewriter.c
+58
-0
vp10/encoder/vp9_treewriter.h
vp10/encoder/vp9_treewriter.h
+51
-0
vp10/encoder/x86/vp9_avg_intrin_sse2.c
vp10/encoder/x86/vp9_avg_intrin_sse2.c
+424
-0
vp10/encoder/x86/vp9_dct_mmx.asm
vp10/encoder/x86/vp9_dct_mmx.asm
+104
-0
vp10/encoder/x86/vp9_dct_sse2.c
vp10/encoder/x86/vp9_dct_sse2.c
+2058
-0
vp10/encoder/x86/vp9_dct_ssse3.c
vp10/encoder/x86/vp9_dct_ssse3.c
+472
-0
vp10/encoder/x86/vp9_dct_ssse3_x86_64.asm
vp10/encoder/x86/vp9_dct_ssse3_x86_64.asm
+121
-0
vp10/encoder/x86/vp9_denoiser_sse2.c
vp10/encoder/x86/vp9_denoiser_sse2.c
+375
-0
vp10/encoder/x86/vp9_error_intrin_avx2.c
vp10/encoder/x86/vp9_error_intrin_avx2.c
+73
-0
vp10/encoder/x86/vp9_error_sse2.asm
vp10/encoder/x86/vp9_error_sse2.asm
+122
-0
vp10/encoder/x86/vp9_highbd_block_error_intrin_sse2.c
vp10/encoder/x86/vp9_highbd_block_error_intrin_sse2.c
+71
-0
vp10/encoder/x86/vp9_quantize_sse2.c
vp10/encoder/x86/vp9_quantize_sse2.c
+211
-0
vp10/encoder/x86/vp9_quantize_ssse3_x86_64.asm
vp10/encoder/x86/vp9_quantize_ssse3_x86_64.asm
+201
-0
vp10/encoder/x86/vp9_ssim_opt_x86_64.asm
vp10/encoder/x86/vp9_ssim_opt_x86_64.asm
+216
-0
vp10/encoder/x86/vp9_temporal_filter_apply_sse2.asm
vp10/encoder/x86/vp9_temporal_filter_apply_sse2.asm
+212
-0
vp10/exports_dec
vp10/exports_dec
+2
-0
vp10/exports_enc
vp10/exports_enc
+2
-0
vp10/vp10_common.mk
vp10/vp10_common.mk
+96
-0
vp10/vp10cx.mk
vp10/vp10cx.mk
+142
-0
vp10/vp10dx.mk
vp10/vp10dx.mk
+33
-0
vp10/vp9_cx_iface.c
vp10/vp9_cx_iface.c
+1583
-0
vp10/vp9_dx_iface.c
vp10/vp9_dx_iface.c
+1131
-0
vp10/vp9_iface_common.h
vp10/vp9_iface_common.h
+130
-0
vpx/vp8cx.h
vpx/vp8cx.h
+8
-0
vpx/vp8dx.h
vpx/vp8dx.h
+8
-0
vpx_dsp/variance.h
vpx_dsp/variance.h
+2
-2
vpx_dsp/vpx_dsp.mk
vpx_dsp/vpx_dsp.mk
+8
-8
vpx_dsp/vpx_dsp_rtcd_defs.pl
vpx_dsp/vpx_dsp_rtcd_defs.pl
+8
-8
vpx_scale/generic/yv12config.c
vpx_scale/generic/yv12config.c
+1
-1
vpx_scale/generic/yv12extend.c
vpx_scale/generic/yv12extend.c
+2
-2
vpx_scale/vpx_scale_rtcd.pl
vpx_scale/vpx_scale_rtcd.pl
+1
-1
vpxdec.c
vpxdec.c
+2
-2
vpxenc.c
vpxenc.c
+14
-7
No files found.
configure
View file @
be6c031f
...
...
@@ -37,6 +37,7 @@ Advanced options:
${
toggle_vp9_highbitdepth
}
use VP9 high bit depth (10/12) profiles
${
toggle_vp8
}
VP8 codec support
${
toggle_vp9
}
VP9 codec support
${
toggle_vp10
}
VP10 codec support
${
toggle_internal_stats
}
output of encoder internal stats for debug, if supported (encoders)
${
toggle_postproc
}
postprocessing
${
toggle_vp9_postproc
}
vp9 specific postprocessing
...
...
@@ -191,6 +192,7 @@ fi
# disable codecs when their source directory does not exist
[
-d
"
${
source_path
}
/vp8"
]
||
disable_feature vp8
[
-d
"
${
source_path
}
/vp9"
]
||
disable_feature vp9
[
-d
"
${
source_path
}
/vp10"
]
||
disable_feature vp10
# install everything except the sources, by default. sources will have
# to be enabled when doing dist builds, since that's no longer a common
...
...
@@ -212,10 +214,13 @@ CODECS="
vp8_decoder
vp9_encoder
vp9_decoder
vp10_encoder
vp10_decoder
"
CODEC_FAMILIES
=
"
vp8
vp9
vp10
"
ARCH_LIST
=
"
...
...
libs.mk
View file @
be6c031f
...
...
@@ -109,6 +109,40 @@ endif
VP9_PREFIX
=
vp9/
$(BUILD_PFX)$(VP9_PREFIX)%.c.o
:
CFLAGS += -Wextra
# VP10 make file
ifneq
($(CONFIG_VP10_ENCODER)$(CONFIG_VP10_DECODER),)
VP10_PREFIX
=
vp10/
include
$(SRC_PATH_BARE)/$(VP10_PREFIX)vp10_common.mk
endif
ifeq
($(CONFIG_VP10_ENCODER),yes)
VP10_PREFIX
=
vp10/
include
$(SRC_PATH_BARE)/$(VP10_PREFIX)vp10cx.mk
CODEC_SRCS-yes
+=
$(
addprefix
$(VP10_PREFIX)
,
$(
call
enabled,VP10_CX_SRCS
))
CODEC_EXPORTS-yes
+=
$(
addprefix
$(VP10_PREFIX)
,
$(VP10_CX_EXPORTS)
)
CODEC_SRCS-yes
+=
$(VP10_PREFIX)
vp10cx.mk vpx/vp8.h vpx/vp8cx.h
INSTALL-LIBS-yes
+=
include/vpx/vp8.h include/vpx/vp8cx.h
INSTALL-LIBS-$(CONFIG_SPATIAL_SVC)
+=
include/vpx/svc_context.h
INSTALL_MAPS
+=
include/vpx/%
$(SRC_PATH_BARE)
/
$(VP10_PREFIX)
/%
CODEC_DOC_SRCS
+=
vpx/vp8.h vpx/vp8cx.h
CODEC_DOC_SECTIONS
+=
vp9 vp9_encoder
endif
ifeq
($(CONFIG_VP10_DECODER),yes)
VP10_PREFIX
=
vp10/
include
$(SRC_PATH_BARE)/$(VP10_PREFIX)vp10dx.mk
CODEC_SRCS-yes
+=
$(
addprefix
$(VP10_PREFIX)
,
$(
call
enabled,VP10_DX_SRCS
))
CODEC_EXPORTS-yes
+=
$(
addprefix
$(VP10_PREFIX)
,
$(VP10_DX_EXPORTS)
)
CODEC_SRCS-yes
+=
$(VP10_PREFIX)
vp10dx.mk vpx/vp8.h vpx/vp8dx.h
INSTALL-LIBS-yes
+=
include/vpx/vp8.h include/vpx/vp8dx.h
INSTALL_MAPS
+=
include/vpx/%
$(SRC_PATH_BARE)
/
$(VP10_PREFIX)
/%
CODEC_DOC_SRCS
+=
vpx/vp8.h vpx/vp8dx.h
CODEC_DOC_SECTIONS
+=
vp9 vp9_decoder
endif
VP10_PREFIX
=
vp10/
$(BUILD_PFX)$(VP10_PREFIX)%.c.o
:
CFLAGS += -Wextra
ifeq
($(CONFIG_ENCODERS),yes)
CODEC_DOC_SECTIONS
+=
encoder
endif
...
...
test/codec_factory.h
View file @
be6c031f
...
...
@@ -13,10 +13,10 @@
#include "./vpx_config.h"
#include "vpx/vpx_decoder.h"
#include "vpx/vpx_encoder.h"
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
|| CONFIG_VP10_ENCODER
#include "vpx/vp8cx.h"
#endif
#if CONFIG_VP8_DECODER || CONFIG_VP9_DECODER
#if CONFIG_VP8_DECODER || CONFIG_VP9_DECODER
|| CONFIG_VP10_DECODER
#include "vpx/vp8dx.h"
#endif
...
...
@@ -233,6 +233,8 @@ class VP9CodecFactory : public CodecFactory {
int
usage
)
const
{
#if CONFIG_VP9_ENCODER
return
vpx_codec_enc_config_default
(
&
vpx_codec_vp9_cx_algo
,
cfg
,
usage
);
#elif CONFIG_VP10_ENCODER
return
vpx_codec_enc_config_default
(
&
vpx_codec_vp10_cx_algo
,
cfg
,
usage
);
#else
return
VPX_CODEC_INCAPABLE
;
#endif
...
...
@@ -251,7 +253,96 @@ const libvpx_test::VP9CodecFactory kVP9;
#define VP9_INSTANTIATE_TEST_CASE(test, ...)
#endif // CONFIG_VP9
/*
* VP10 Codec Definitions
*/
#if CONFIG_VP10
class
VP10Decoder
:
public
Decoder
{
public:
VP10Decoder
(
vpx_codec_dec_cfg_t
cfg
,
unsigned
long
deadline
)
:
Decoder
(
cfg
,
deadline
)
{}
}
// namespace libvpx_test
VP10Decoder
(
vpx_codec_dec_cfg_t
cfg
,
const
vpx_codec_flags_t
flag
,
unsigned
long
deadline
)
// NOLINT
:
Decoder
(
cfg
,
flag
,
deadline
)
{}
protected:
virtual
vpx_codec_iface_t
*
CodecInterface
()
const
{
#if CONFIG_VP10_DECODER
return
&
vpx_codec_vp10_dx_algo
;
#else
return
NULL
;
#endif
}
};
class
VP10Encoder
:
public
Encoder
{
public:
VP10Encoder
(
vpx_codec_enc_cfg_t
cfg
,
unsigned
long
deadline
,
const
unsigned
long
init_flags
,
TwopassStatsStore
*
stats
)
:
Encoder
(
cfg
,
deadline
,
init_flags
,
stats
)
{}
protected:
virtual
vpx_codec_iface_t
*
CodecInterface
()
const
{
#if CONFIG_VP10_ENCODER
return
&
vpx_codec_vp10_cx_algo
;
#else
return
NULL
;
#endif
}
};
class
VP10CodecFactory
:
public
CodecFactory
{
public:
VP10CodecFactory
()
:
CodecFactory
()
{}
virtual
Decoder
*
CreateDecoder
(
vpx_codec_dec_cfg_t
cfg
,
unsigned
long
deadline
)
const
{
return
CreateDecoder
(
cfg
,
0
,
deadline
);
}
virtual
Decoder
*
CreateDecoder
(
vpx_codec_dec_cfg_t
cfg
,
const
vpx_codec_flags_t
flags
,
unsigned
long
deadline
)
const
{
// NOLINT
#if CONFIG_VP10_DECODER
return
new
VP10Decoder
(
cfg
,
flags
,
deadline
);
#else
return
NULL
;
#endif
}
virtual
Encoder
*
CreateEncoder
(
vpx_codec_enc_cfg_t
cfg
,
unsigned
long
deadline
,
const
unsigned
long
init_flags
,
TwopassStatsStore
*
stats
)
const
{
#if CONFIG_VP10_ENCODER
return
new
VP10Encoder
(
cfg
,
deadline
,
init_flags
,
stats
);
#else
return
NULL
;
#endif
}
virtual
vpx_codec_err_t
DefaultEncoderConfig
(
vpx_codec_enc_cfg_t
*
cfg
,
int
usage
)
const
{
#if CONFIG_VP10_ENCODER
return
vpx_codec_enc_config_default
(
&
vpx_codec_vp10_cx_algo
,
cfg
,
usage
);
#else
return
VPX_CODEC_INCAPABLE
;
#endif
}
};
const
libvpx_test
::
VP10CodecFactory
kVP10
;
#define VP10_INSTANTIATE_TEST_CASE(test, ...)\
INSTANTIATE_TEST_CASE_P(VP10, test, \
::testing::Combine( \
::testing::Values(static_cast<const libvpx_test::CodecFactory*>( \
&libvpx_test::kVP10)), \
__VA_ARGS__))
#else
#define VP10_INSTANTIATE_TEST_CASE(test, ...)
#endif // CONFIG_VP10
}
// namespace libvpx_test
#endif // TEST_CODEC_FACTORY_H_
test/decode_api_test.cc
View file @
be6c031f
...
...
@@ -26,6 +26,9 @@ TEST(DecodeAPI, InvalidParams) {
#endif
#if CONFIG_VP9_DECODER
&
vpx_codec_vp9_dx_algo
,
#endif
#if CONFIG_VP10_DECODER
&
vpx_codec_vp10_dx_algo
,
#endif
};
uint8_t
buf
[
1
]
=
{
0
};
...
...
test/encode_test_driver.h
View file @
be6c031f
...
...
@@ -16,7 +16,7 @@
#include "third_party/googletest/src/include/gtest/gtest.h"
#include "./vpx_config.h"
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
|| CONFIG_VP10_ENCODER
#include "vpx/vp8cx.h"
#endif
#include "vpx/vpx_encoder.h"
...
...
@@ -138,7 +138,7 @@ class Encoder {
const
vpx_codec_err_t
res
=
vpx_codec_control_
(
&
encoder_
,
ctrl_id
,
arg
);
ASSERT_EQ
(
VPX_CODEC_OK
,
res
)
<<
EncoderError
();
}
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
|| CONFIG_VP10_ENCODER
void
Control
(
int
ctrl_id
,
vpx_active_map_t
*
arg
)
{
const
vpx_codec_err_t
res
=
vpx_codec_control_
(
&
encoder_
,
ctrl_id
,
arg
);
ASSERT_EQ
(
VPX_CODEC_OK
,
res
)
<<
EncoderError
();
...
...
tools_common.c
View file @
be6c031f
...
...
@@ -16,11 +16,11 @@
#include "./tools_common.h"
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
#if CONFIG_VP8_ENCODER || CONFIG_VP9_ENCODER
|| CONFIG_VP10_ENCODER
#include "vpx/vp8cx.h"
#endif
#if CONFIG_VP8_DECODER || CONFIG_VP9_DECODER
#if CONFIG_VP8_DECODER || CONFIG_VP9_DECODER
|| CONFIG_VP10_DECODER
#include "vpx/vp8dx.h"
#endif
...
...
@@ -140,6 +140,10 @@ static const VpxInterface vpx_encoders[] = {
#if CONFIG_VP9_ENCODER
{
"vp9"
,
VP9_FOURCC
,
&
vpx_codec_vp9_cx
},
#endif
#if CONFIG_VP10_ENCODER
{
"vp10"
,
VP10_FOURCC
,
&
vpx_codec_vp10_cx
},
#endif
};
int
get_vpx_encoder_count
(
void
)
{
...
...
@@ -174,6 +178,10 @@ static const VpxInterface vpx_decoders[] = {
#if CONFIG_VP9_DECODER
{
"vp9"
,
VP9_FOURCC
,
&
vpx_codec_vp9_dx
},
#endif
#if CONFIG_VP10_DECODER
{
"vp10"
,
VP10_FOURCC
,
&
vpx_codec_vp10_dx
},
#endif
};
int
get_vpx_decoder_count
(
void
)
{
...
...
tools_common.h
View file @
be6c031f
...
...
@@ -62,6 +62,7 @@
#define VP8_FOURCC 0x30385056
#define VP9_FOURCC 0x30395056
#define VP10_FOURCC 0x303a5056
enum
VideoFileType
{
FILE_TYPE_RAW
,
...
...
vp10/common/arm/neon/vp9_iht4x4_add_neon.c
0 → 100644
View file @
be6c031f
/*
* Copyright (c) 2014 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <arm_neon.h>
#include <assert.h>
#include "./vp10_rtcd.h"
#include "./vpx_config.h"
#include "vp10/common/vp9_common.h"
static
int16_t
sinpi_1_9
=
0x14a3
;
static
int16_t
sinpi_2_9
=
0x26c9
;
static
int16_t
sinpi_3_9
=
0x3441
;
static
int16_t
sinpi_4_9
=
0x3b6c
;
static
int16_t
cospi_8_64
=
0x3b21
;
static
int16_t
cospi_16_64
=
0x2d41
;
static
int16_t
cospi_24_64
=
0x187e
;
static
INLINE
void
TRANSPOSE4X4
(
int16x8_t
*
q8s16
,
int16x8_t
*
q9s16
)
{
int32x4_t
q8s32
,
q9s32
;
int16x4x2_t
d0x2s16
,
d1x2s16
;
int32x4x2_t
q0x2s32
;
d0x2s16
=
vtrn_s16
(
vget_low_s16
(
*
q8s16
),
vget_high_s16
(
*
q8s16
));
d1x2s16
=
vtrn_s16
(
vget_low_s16
(
*
q9s16
),
vget_high_s16
(
*
q9s16
));
q8s32
=
vreinterpretq_s32_s16
(
vcombine_s16
(
d0x2s16
.
val
[
0
],
d0x2s16
.
val
[
1
]));
q9s32
=
vreinterpretq_s32_s16
(
vcombine_s16
(
d1x2s16
.
val
[
0
],
d1x2s16
.
val
[
1
]));
q0x2s32
=
vtrnq_s32
(
q8s32
,
q9s32
);
*
q8s16
=
vreinterpretq_s16_s32
(
q0x2s32
.
val
[
0
]);
*
q9s16
=
vreinterpretq_s16_s32
(
q0x2s32
.
val
[
1
]);
return
;
}
static
INLINE
void
GENERATE_COSINE_CONSTANTS
(
int16x4_t
*
d0s16
,
int16x4_t
*
d1s16
,
int16x4_t
*
d2s16
)
{
*
d0s16
=
vdup_n_s16
(
cospi_8_64
);
*
d1s16
=
vdup_n_s16
(
cospi_16_64
);
*
d2s16
=
vdup_n_s16
(
cospi_24_64
);
return
;
}
static
INLINE
void
GENERATE_SINE_CONSTANTS
(
int16x4_t
*
d3s16
,
int16x4_t
*
d4s16
,
int16x4_t
*
d5s16
,
int16x8_t
*
q3s16
)
{
*
d3s16
=
vdup_n_s16
(
sinpi_1_9
);
*
d4s16
=
vdup_n_s16
(
sinpi_2_9
);
*
q3s16
=
vdupq_n_s16
(
sinpi_3_9
);
*
d5s16
=
vdup_n_s16
(
sinpi_4_9
);
return
;
}
static
INLINE
void
IDCT4x4_1D
(
int16x4_t
*
d0s16
,
int16x4_t
*
d1s16
,
int16x4_t
*
d2s16
,
int16x8_t
*
q8s16
,
int16x8_t
*
q9s16
)
{
int16x4_t
d16s16
,
d17s16
,
d18s16
,
d19s16
,
d23s16
,
d24s16
;
int16x4_t
d26s16
,
d27s16
,
d28s16
,
d29s16
;
int32x4_t
q10s32
,
q13s32
,
q14s32
,
q15s32
;
int16x8_t
q13s16
,
q14s16
;
d16s16
=
vget_low_s16
(
*
q8s16
);
d17s16
=
vget_high_s16
(
*
q8s16
);
d18s16
=
vget_low_s16
(
*
q9s16
);
d19s16
=
vget_high_s16
(
*
q9s16
);
d23s16
=
vadd_s16
(
d16s16
,
d18s16
);
d24s16
=
vsub_s16
(
d16s16
,
d18s16
);
q15s32
=
vmull_s16
(
d17s16
,
*
d2s16
);
q10s32
=
vmull_s16
(
d17s16
,
*
d0s16
);
q13s32
=
vmull_s16
(
d23s16
,
*
d1s16
);
q14s32
=
vmull_s16
(
d24s16
,
*
d1s16
);
q15s32
=
vmlsl_s16
(
q15s32
,
d19s16
,
*
d0s16
);
q10s32
=
vmlal_s16
(
q10s32
,
d19s16
,
*
d2s16
);
d26s16
=
vqrshrn_n_s32
(
q13s32
,
14
);
d27s16
=
vqrshrn_n_s32
(
q14s32
,
14
);
d29s16
=
vqrshrn_n_s32
(
q15s32
,
14
);
d28s16
=
vqrshrn_n_s32
(
q10s32
,
14
);
q13s16
=
vcombine_s16
(
d26s16
,
d27s16
);
q14s16
=
vcombine_s16
(
d28s16
,
d29s16
);
*
q8s16
=
vaddq_s16
(
q13s16
,
q14s16
);
*
q9s16
=
vsubq_s16
(
q13s16
,
q14s16
);
*
q9s16
=
vcombine_s16
(
vget_high_s16
(
*
q9s16
),
vget_low_s16
(
*
q9s16
));
// vswp
return
;
}
static
INLINE
void
IADST4x4_1D
(
int16x4_t
*
d3s16
,
int16x4_t
*
d4s16
,
int16x4_t
*
d5s16
,
int16x8_t
*
q3s16
,
int16x8_t
*
q8s16
,
int16x8_t
*
q9s16
)
{
int16x4_t
d6s16
,
d16s16
,
d17s16
,
d18s16
,
d19s16
;
int32x4_t
q8s32
,
q9s32
,
q10s32
,
q11s32
,
q12s32
,
q13s32
,
q14s32
,
q15s32
;
d6s16
=
vget_low_s16
(
*
q3s16
);
d16s16
=
vget_low_s16
(
*
q8s16
);
d17s16
=
vget_high_s16
(
*
q8s16
);
d18s16
=
vget_low_s16
(
*
q9s16
);
d19s16
=
vget_high_s16
(
*
q9s16
);
q10s32
=
vmull_s16
(
*
d3s16
,
d16s16
);
q11s32
=
vmull_s16
(
*
d4s16
,
d16s16
);
q12s32
=
vmull_s16
(
d6s16
,
d17s16
);
q13s32
=
vmull_s16
(
*
d5s16
,
d18s16
);
q14s32
=
vmull_s16
(
*
d3s16
,
d18s16
);
q15s32
=
vmovl_s16
(
d16s16
);
q15s32
=
vaddw_s16
(
q15s32
,
d19s16
);
q8s32
=
vmull_s16
(
*
d4s16
,
d19s16
);
q15s32
=
vsubw_s16
(
q15s32
,
d18s16
);
q9s32
=
vmull_s16
(
*
d5s16
,
d19s16
);
q10s32
=
vaddq_s32
(
q10s32
,
q13s32
);
q10s32
=
vaddq_s32
(
q10s32
,
q8s32
);
q11s32
=
vsubq_s32
(
q11s32
,
q14s32
);
q8s32
=
vdupq_n_s32
(
sinpi_3_9
);
q11s32
=
vsubq_s32
(
q11s32
,
q9s32
);
q15s32
=
vmulq_s32
(
q15s32
,
q8s32
);
q13s32
=
vaddq_s32
(
q10s32
,
q12s32
);
q10s32
=
vaddq_s32
(
q10s32
,
q11s32
);
q14s32
=
vaddq_s32
(
q11s32
,
q12s32
);
q10s32
=
vsubq_s32
(
q10s32
,
q12s32
);
d16s16
=
vqrshrn_n_s32
(
q13s32
,
14
);
d17s16
=
vqrshrn_n_s32
(
q14s32
,
14
);
d18s16
=
vqrshrn_n_s32
(
q15s32
,
14
);
d19s16
=
vqrshrn_n_s32
(
q10s32
,
14
);
*
q8s16
=
vcombine_s16
(
d16s16
,
d17s16
);
*
q9s16
=
vcombine_s16
(
d18s16
,
d19s16
);
return
;
}
void
vp10_iht4x4_16_add_neon
(
const
tran_low_t
*
input
,
uint8_t
*
dest
,
int
dest_stride
,
int
tx_type
)
{
uint8x8_t
d26u8
,
d27u8
;
int16x4_t
d0s16
,
d1s16
,
d2s16
,
d3s16
,
d4s16
,
d5s16
;
uint32x2_t
d26u32
,
d27u32
;
int16x8_t
q3s16
,
q8s16
,
q9s16
;
uint16x8_t
q8u16
,
q9u16
;
d26u32
=
d27u32
=
vdup_n_u32
(
0
);
q8s16
=
vld1q_s16
(
input
);
q9s16
=
vld1q_s16
(
input
+
8
);
TRANSPOSE4X4
(
&
q8s16
,
&
q9s16
);
switch
(
tx_type
)
{
case
0
:
// idct_idct is not supported. Fall back to C
vp10_iht4x4_16_add_c
(
input
,
dest
,
dest_stride
,
tx_type
);
return
;
break
;
case
1
:
// iadst_idct
// generate constants
GENERATE_COSINE_CONSTANTS
(
&
d0s16
,
&
d1s16
,
&
d2s16
);
GENERATE_SINE_CONSTANTS
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
);
// first transform rows
IDCT4x4_1D
(
&
d0s16
,
&
d1s16
,
&
d2s16
,
&
q8s16
,
&
q9s16
);
// transpose the matrix
TRANSPOSE4X4
(
&
q8s16
,
&
q9s16
);
// then transform columns
IADST4x4_1D
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
,
&
q8s16
,
&
q9s16
);
break
;
case
2
:
// idct_iadst
// generate constantsyy
GENERATE_COSINE_CONSTANTS
(
&
d0s16
,
&
d1s16
,
&
d2s16
);
GENERATE_SINE_CONSTANTS
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
);
// first transform rows
IADST4x4_1D
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
,
&
q8s16
,
&
q9s16
);
// transpose the matrix
TRANSPOSE4X4
(
&
q8s16
,
&
q9s16
);
// then transform columns
IDCT4x4_1D
(
&
d0s16
,
&
d1s16
,
&
d2s16
,
&
q8s16
,
&
q9s16
);
break
;
case
3
:
// iadst_iadst
// generate constants
GENERATE_SINE_CONSTANTS
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
);
// first transform rows
IADST4x4_1D
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
,
&
q8s16
,
&
q9s16
);
// transpose the matrix
TRANSPOSE4X4
(
&
q8s16
,
&
q9s16
);
// then transform columns
IADST4x4_1D
(
&
d3s16
,
&
d4s16
,
&
d5s16
,
&
q3s16
,
&
q8s16
,
&
q9s16
);
break
;
default:
// iadst_idct
assert
(
0
);
break
;
}
q8s16
=
vrshrq_n_s16
(
q8s16
,
4
);
q9s16
=
vrshrq_n_s16
(
q9s16
,
4
);
d26u32
=
vld1_lane_u32
((
const
uint32_t
*
)
dest
,
d26u32
,
0
);
dest
+=
dest_stride
;
d26u32
=
vld1_lane_u32
((
const
uint32_t
*
)
dest
,
d26u32
,
1
);
dest
+=
dest_stride
;
d27u32
=
vld1_lane_u32
((
const
uint32_t
*
)
dest
,
d27u32
,
0
);
dest
+=
dest_stride
;
d27u32
=
vld1_lane_u32
((
const
uint32_t
*
)
dest
,
d27u32
,
1
);
q8u16
=
vaddw_u8
(
vreinterpretq_u16_s16
(
q8s16
),
vreinterpret_u8_u32
(
d26u32
));
q9u16
=
vaddw_u8
(
vreinterpretq_u16_s16
(
q9s16
),
vreinterpret_u8_u32
(
d27u32
));
d26u8
=
vqmovun_s16
(
vreinterpretq_s16_u16
(
q8u16
));
d27u8
=
vqmovun_s16
(
vreinterpretq_s16_u16
(
q9u16
));
vst1_lane_u32
((
uint32_t
*
)
dest
,
vreinterpret_u32_u8
(
d27u8
),
1
);
dest
-=
dest_stride
;
vst1_lane_u32
((
uint32_t
*
)
dest
,
vreinterpret_u32_u8
(
d27u8
),
0
);
dest
-=
dest_stride
;
vst1_lane_u32
((
uint32_t
*
)
dest
,
vreinterpret_u32_u8
(
d26u8
),
1
);
dest
-=
dest_stride
;
vst1_lane_u32
((
uint32_t
*
)
dest
,
vreinterpret_u32_u8
(
d26u8
),
0
);
return
;
}
vp10/common/arm/neon/vp9_iht8x8_add_neon.c
0 → 100644
View file @
be6c031f
This diff is collapsed.
Click to expand it.
vp10/common/mips/dspr2/vp9_itrans16_dspr2.c
0 → 100644
View file @
be6c031f
/*
* Copyright (c) 2013 The WebM project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#include <assert.h>
#include <stdio.h>
#include "./vpx_config.h"
#include "./vp10_rtcd.h"
#include "vp10/common/vp9_common.h"
#include "vp10/common/vp9_blockd.h"
#include "vp10/common/vp9_idct.h"
#include "vpx_dsp/mips/inv_txfm_dspr2.h"
#include "vpx_dsp/txfm_common.h"
#include "vpx_ports/mem.h"
#if HAVE_DSPR2
void
vp10_iht16x16_256_add_dspr2
(
const
int16_t
*
input
,
uint8_t
*
dest
,
int
pitch
,
int
tx_type
)
{
int
i
,
j
;
DECLARE_ALIGNED
(
32
,
int16_t
,
out
[
16
*
16
]);
int16_t
*
outptr
=
out
;
int16_t
temp_out
[
16
];
uint32_t
pos
=
45
;
/* bit positon for extract from acc */
__asm__
__volatile__
(
"wrdsp %[pos], 1
\n\t
"
:
:
[
pos
]
"r"
(
pos
)
);
switch
(
tx_type
)
{
case
DCT_DCT
:
// DCT in both horizontal and vertical
idct16_rows_dspr2
(
input
,
outptr
,
16
);