platform/upstream/libvpx.git
12 years agoRemove unused MACROBLOCK member vector_range
John Koleszar [Wed, 28 Dec 2011 22:58:38 +0000 (14:58 -0800)]
Remove unused MACROBLOCK member vector_range

Change-Id: Ie2dc0d72363ff38e0f71b59f6e2d1a2d70c5266b

12 years agoRemove unused BLOCK member force_empty
John Koleszar [Wed, 28 Dec 2011 21:57:51 +0000 (13:57 -0800)]
Remove unused BLOCK member force_empty

Change-Id: I72ed49ce14ca0124dd0d31bfcf4c7630a4681587

12 years agoMerge "Add missing includes for multi-res"
John Koleszar [Thu, 22 Dec 2011 21:01:19 +0000 (13:01 -0800)]
Merge "Add missing includes for multi-res"

12 years agoMerge "Remove unnecessary ternary constructs"
John Koleszar [Thu, 22 Dec 2011 21:01:05 +0000 (13:01 -0800)]
Merge "Remove unnecessary ternary constructs"

12 years agoMerge "Remove legacy integer types"
John Koleszar [Thu, 22 Dec 2011 21:00:23 +0000 (13:00 -0800)]
Merge "Remove legacy integer types"

12 years agoMerge "Use lookup tables for mode_check_freq"
John Koleszar [Thu, 22 Dec 2011 20:59:47 +0000 (12:59 -0800)]
Merge "Use lookup tables for mode_check_freq"

12 years agoMerge "Use lookup tables for thresh_mult"
John Koleszar [Thu, 22 Dec 2011 18:31:21 +0000 (10:31 -0800)]
Merge "Use lookup tables for thresh_mult"

12 years agoAdd missing includes for multi-res
John Koleszar [Thu, 22 Dec 2011 18:26:45 +0000 (10:26 -0800)]
Add missing includes for multi-res

Makes the distribution tree (built with 'make dist') buildable with
--enable-install-srcs --enable-multi-res-encoding

Change-Id: If2ea7632f7b26615196e9abcfaa34618cc50112a

12 years agoRemove unnecessary ternary constructs
John Koleszar [Thu, 22 Dec 2011 00:11:31 +0000 (16:11 -0800)]
Remove unnecessary ternary constructs

The code had a number of constructs like (condition)?1:0,
which is redundant with C's semantics. In the cases where a boolean
operator was used in the condition, simply remove the ternary part.
Otherwise adjust the surrounding expression to remove the condition
(eg, for rounding up. See pickinter.c and rdopt.c)

Change-Id: Icb2372defa3783cf31857d90b2630d06b2c7e1be

12 years agoRemove legacy integer types
John Koleszar [Wed, 21 Dec 2011 22:21:29 +0000 (14:21 -0800)]
Remove legacy integer types

Remove BOOL, INTn, UINTn, etc, in favor of C99-style fixed width
types.

Change-Id: I396636212fb5edd6b347d43cc940186d8cd1e7b5

12 years agoUse lookup tables for mode_check_freq
John Koleszar [Tue, 20 Dec 2011 19:17:42 +0000 (11:17 -0800)]
Use lookup tables for mode_check_freq

Mostly cosmetic. Trying for a more compact representation of speed
selection thresholds.

Change-Id: I339e7840049b91ad569aabbdc9c702a496110d3b

12 years agoUse lookup tables for thresh_mult
John Koleszar [Tue, 20 Dec 2011 19:17:42 +0000 (11:17 -0800)]
Use lookup tables for thresh_mult

Mostly cosmetic. Trying for a more compact representation of speed
selection thresholds.

Change-Id: Icaebea632c7bb71ca8e07b4def04a046d4515e27

12 years agoMerge "Remove opaque pointer VP8D_PTR"
John Koleszar [Thu, 22 Dec 2011 17:36:11 +0000 (09:36 -0800)]
Merge "Remove opaque pointer VP8D_PTR"

12 years agoRemove opaque pointer VP8D_PTR
John Koleszar [Wed, 21 Dec 2011 00:54:54 +0000 (16:54 -0800)]
Remove opaque pointer VP8D_PTR

Use an opaque struct rather than typecasting through VP8D_PTR, an int*.

Change-Id: Ia260b7d53d7e0950cfa1e00f4ecead1099bd3b87

12 years agosquash some signed/unsigned comparison warnings
James Zern [Wed, 21 Dec 2011 21:37:22 +0000 (13:37 -0800)]
squash some signed/unsigned comparison warnings

Change-Id: Ifc64cf990ae04d77934da3324d0afb3993f061e7

12 years agoRemove unreferenced includes
John Koleszar [Wed, 21 Dec 2011 19:00:47 +0000 (11:00 -0800)]
Remove unreferenced includes

These files are legacy and have no current references.

Change-Id: I38224961fafeb33bc3eb6150bb0c2249ccbb4f60

12 years agoMerge "Remove opaque pointer VP8_PTR"
John Koleszar [Wed, 21 Dec 2011 17:59:22 +0000 (09:59 -0800)]
Merge "Remove opaque pointer VP8_PTR"

12 years agoMerge "tokenizer: use correct block type context in stuff1st_order_b"
John Koleszar [Wed, 21 Dec 2011 17:20:21 +0000 (09:20 -0800)]
Merge "tokenizer: use correct block type context in stuff1st_order_b"

12 years agoRemove opaque pointer VP8_PTR
John Koleszar [Wed, 21 Dec 2011 00:54:54 +0000 (16:54 -0800)]
Remove opaque pointer VP8_PTR

Use an opaque struct rather than typecasting through VP8_PTR, an int*.

Change-Id: I5ed4d9238ba2e8d51bfa07a8da87a2eb4c8fa43a

12 years agoremove armv6 files from armv5 build
John Koleszar [Mon, 19 Dec 2011 21:51:11 +0000 (13:51 -0800)]
remove armv6 files from armv5 build

Make bilinearfilter_arm.c compiled only when HAVE_ARMV6, as its definitions
are v6 only. This is normally not a problem for static builds as the file
is elided at link time, but this was not being done properly for the
--enable-shared --enable-pic build.

Change-Id: Ic800a7cde751f74f22555c5b247f99f9df5e550d

12 years agoMerge "Avoid heap allocation of firstpass stats"
Johann [Mon, 19 Dec 2011 18:11:23 +0000 (10:11 -0800)]
Merge "Avoid heap allocation of firstpass stats"

12 years agoMerge "fix: make sure ss_err is large enough"
John Koleszar [Mon, 19 Dec 2011 17:50:12 +0000 (09:50 -0800)]
Merge "fix: make sure ss_err is large enough"

12 years agoMerge "Merge mr_pick_inter_mode and pick_inter_mode"
Yunqing Wang [Mon, 19 Dec 2011 16:42:20 +0000 (08:42 -0800)]
Merge "Merge mr_pick_inter_mode and pick_inter_mode"

12 years agoMerge mr_pick_inter_mode and pick_inter_mode
Yunqing Wang [Fri, 16 Dec 2011 21:50:29 +0000 (16:50 -0500)]
Merge mr_pick_inter_mode and pick_inter_mode

Merged multi-resolution motion estimation with regular motion
estimation function in order to remove duplicated part. This
caused slight changes in multi-resulotion encoder quality &
performance.

Change-Id: Ib4ecc7acfebfe5eea959b5b91febae6db7b95fd1

12 years agofix: make sure ss_err is large enough
James Berry [Fri, 16 Dec 2011 22:43:55 +0000 (17:43 -0500)]
fix: make sure ss_err is large enough

increase size of ss_err by one to make
sure there is room for 64 elements.

Change-Id: I355cb8c499aa7da3b9675f2326a8d25a74bb88d2

12 years agoAvoid heap allocation of firstpass stats
John Koleszar [Fri, 16 Dec 2011 19:26:53 +0000 (11:26 -0800)]
Avoid heap allocation of firstpass stats

The total_stats, this_frame_stats, and total_left_stats structures
were previously create by a heap allocation, despite being of fixed
size. These structures were allocated and deallocated during
{de,}allocate_compressor_data, which is reinvoked whenever the frame
size changes. Unfortunately, this clobbers the total_stats and
total_left_stats data.

Historically, these were variable size at one time, due to the first
pass motion map, which necessitated their being created by a unique
heap allocation. However, this bug with the total_stats being
clobbered has probably been present since that initial implementation.

These structures are instead moved to be stored within the struct
twopass_rc directly, rather than being heap allocated separately.

Change-Id: I7f9e519e25c58b92969071f0e99fa80307e0682b

12 years agoFixed mb_skip_coeff bug
Scott LaVarnway [Fri, 16 Dec 2011 18:48:01 +0000 (13:48 -0500)]
Fixed mb_skip_coeff bug

When mb_skip_coeff is set, the idct is not necessary.  Prior
to this patch, the code would call idcts based on leftover
eob information.  This patch will now skip the idct for
SPLIT_MV and clear out the eobs for B_PRED, forcing the idct
to be skipped.

Change-Id: If5b0d2ed3ebd07789d30ec5160df927485fcaa17

12 years agoMoved dequant idct into common
Scott LaVarnway [Thu, 15 Dec 2011 19:23:36 +0000 (14:23 -0500)]
Moved dequant idct into common

These functions are now used by the encoder.
This is WIP with the goal of creating a common idct/add for
the encoder and decoder.  A boost of 1.8% was seen for
the HD rt test clip used.

[Tero] Added needed changes to ARM side.

Change-Id: Ibbb8000be09034203d7adffc457d3c3f8b06a5bf

12 years agoMerge "Only call vp8_find_near_mvs() once for each macroblock"
Yunqing Wang [Thu, 15 Dec 2011 17:53:25 +0000 (09:53 -0800)]
Merge "Only call vp8_find_near_mvs() once for each macroblock"

12 years agoOnly call vp8_find_near_mvs() once for each macroblock
Yunqing Wang [Wed, 14 Dec 2011 20:35:04 +0000 (15:35 -0500)]
Only call vp8_find_near_mvs() once for each macroblock

While doing motion search on a macroblock, we usually call
vp8_find_near_mvs once per reference frame. Actually, for
different reference frames, the only difference in calculating
these near_mvs is they may have different sign_bias, which
causes a sign change in resulting near_mvs. In this change, we
only do find_near_mvs for the first reference frame. For other
reference frames, only need to adjust the near_mvs according to
that reference frame's sign_bias value.

Change-Id: I661394b49c6ad79fed7d0f2eb2be239b9c56f149

12 years agoMerge "Force realtime version 1 streams to only use simple loopfilter"
Yunqing Wang [Thu, 15 Dec 2011 13:38:57 +0000 (05:38 -0800)]
Merge "Force realtime version 1 streams to only use simple loopfilter"

12 years agoMerge "Avoid multiple test for same lvl in auto filter lvl pick"
John Koleszar [Thu, 15 Dec 2011 00:28:13 +0000 (16:28 -0800)]
Merge "Avoid multiple test for same lvl in auto filter lvl pick"

12 years agoMerge "add check to ensure that cq_level falls within min and max q"
John Koleszar [Wed, 14 Dec 2011 20:10:06 +0000 (12:10 -0800)]
Merge "add check to ensure that cq_level falls within min and max q"

12 years agoMerge "Use xcode 4.2"
Johann [Wed, 14 Dec 2011 19:54:22 +0000 (11:54 -0800)]
Merge "Use xcode 4.2"

12 years agoMerge "Fix iOS conversion script"
Johann [Wed, 14 Dec 2011 19:44:21 +0000 (11:44 -0800)]
Merge "Fix iOS conversion script"

12 years agoMerge "fix: active_worst_quality could be set above 127"
John Koleszar [Wed, 14 Dec 2011 19:22:00 +0000 (11:22 -0800)]
Merge "fix: active_worst_quality could be set above 127"

12 years agoUse xcode 4.2
Johann [Wed, 14 Dec 2011 19:11:03 +0000 (11:11 -0800)]
Use xcode 4.2

Allow targeting darwin11 / 10.7

Update arm paths for iPhoneOS 5.0

Change-Id: I057156349311ec66a163c4c1cea60dc5aeaaa492

12 years agoadd check to ensure that cq_level falls within min and max q
James Berry [Wed, 7 Dec 2011 20:48:00 +0000 (15:48 -0500)]
add check to ensure that cq_level falls within min and max q

Add the notion of deferred validation of parameters. We don't want to
validate the cq_level at initialization time, because it won't have
been set via set_param() yet.

Change-Id: Ia1308395e8c10e0b1dc4e9af3a09b2bd6744cc30

12 years agoAvoid multiple test for same lvl in auto filter lvl pick
Attila Nagy [Fri, 9 Dec 2011 12:54:41 +0000 (14:54 +0200)]
Avoid multiple test for same lvl in auto filter lvl pick

Sometimes same level is tested 2-3 times; store and reuse the
calculated error value.

Change-Id: Ia1c04a2568232edf9a5a62c4e2d8e8a50d85e00e

12 years agoForce realtime version 1 streams to only use simple loopfilter
Attila Nagy [Thu, 8 Dec 2011 08:54:39 +0000 (10:54 +0200)]
Force realtime version 1 streams to only use simple loopfilter

...regardless of the speed settings.

Change-Id: I4b91ac7a7208efd690dfc69e175f8eb769b6ce03

12 years agoMerge "vpx_integer.h: fix incorrect type emulation"
John Koleszar [Tue, 13 Dec 2011 20:55:46 +0000 (12:55 -0800)]
Merge "vpx_integer.h: fix incorrect type emulation"

12 years agofix: active_worst_quality could be set above 127
James Berry [Tue, 6 Dec 2011 18:08:44 +0000 (13:08 -0500)]
fix: active_worst_quality could be set above 127

add check to set active_worst_quality to 127 if it
is set above 127

Change-Id: I7db353d5c1b1c8516a116542b6ed21c0110bb512

12 years agotokenizer: use correct block type context in stuff1st_order_b
John Koleszar [Tue, 13 Dec 2011 01:08:03 +0000 (17:08 -0800)]
tokenizer: use correct block type context in stuff1st_order_b

The fast-path for skipped MBs was not correctly respecting the
block type during update of the coefficient counts. Extracted
this from part of change I365cfb6ac636f19c545f682e3aeac185253abaef

Change-Id: I53d8cf0a00a98034b97b0ed3414b703bae74a739

12 years agoMerge "Fix incorrect PROC/ENDP match"
Johann [Tue, 13 Dec 2011 18:42:02 +0000 (10:42 -0800)]
Merge "Fix incorrect PROC/ENDP match"

12 years agoFix incorrect PROC/ENDP match
Johann [Tue, 13 Dec 2011 01:17:07 +0000 (17:17 -0800)]
Fix incorrect PROC/ENDP match

The conversion script was incorrectly matching
CONFIG_POSTPROC[_VISUALIZER] and generating an
incorrect vpx_config.asm

Match both PROC and ENDP on word boundaries

Change-Id: Ic2788c3b522d4ee0afc5223b72e1b09fb52645be

12 years agoMerge "Align image buffer in multiple-resolution encoder"
Yunqing Wang [Tue, 13 Dec 2011 18:39:44 +0000 (10:39 -0800)]
Merge "Align image buffer in multiple-resolution encoder"

12 years agoAlign image buffer in multiple-resolution encoder
Yunqing Wang [Thu, 8 Dec 2011 17:31:01 +0000 (12:31 -0500)]
Align image buffer in multiple-resolution encoder

Aligned the image buffer and stride to 32 bytes. This enables
calling of optimized scaler function in libyuv, and improves
the performance.

Tested libyuv scaler(x86 optimization) on Linux and Windows,
including: Linux 32/64bit, visual studio 32/64bit, Cygwin, and
MinGW32.

Also, fixed a wrong pointer in vpx_codec_encode().

Change-Id: Ibe97d7a0a745f82c43852fa4ed719be5a4db6abc

12 years agoFix iOS conversion script
Johann [Tue, 13 Dec 2011 01:14:03 +0000 (17:14 -0800)]
Fix iOS conversion script

Mach-O prefixes function calls with _

Change-Id: I778c2ab91266887731a6a0316b42af7641826da4

12 years agoMerge "vp8e - entropy stats per frame type"
Jim Bankoski [Mon, 12 Dec 2011 17:08:34 +0000 (09:08 -0800)]
Merge "vp8e - entropy stats per frame type"

12 years agoMerge "Improved mmx/sse2 versions of iwalsh"
Scott LaVarnway [Mon, 12 Dec 2011 14:40:28 +0000 (06:40 -0800)]
Merge "Improved mmx/sse2 versions of iwalsh"

12 years agovp8e - entropy stats per frame type
Jim Bankoski [Sat, 10 Dec 2011 00:56:18 +0000 (16:56 -0800)]
vp8e - entropy stats per frame type

Change-Id: I4168eb6ea22ae541471738a7a3453e7d52059275

12 years agovpx_integer.h: fix incorrect type emulation
John Koleszar [Fri, 9 Dec 2011 19:54:36 +0000 (11:54 -0800)]
vpx_integer.h: fix incorrect type emulation

The previous definition of uintptr_t was incorrect on x64 with MSVC.
Also, the ARMV6 version of int_fast16_t was defined as unsigned for
some reason. Since the fast types are currently unused, just remove
them.

Change-Id: Idd73f77a989c77feedcb4a6802ae6bd37324ed40

12 years agoImproved mmx/sse2 versions of iwalsh
Scott LaVarnway [Thu, 8 Dec 2011 19:37:59 +0000 (14:37 -0500)]
Improved mmx/sse2 versions of iwalsh

Removed unnecessary transposes.

Change-Id: I029fbaf8afafee34d54a4f3333c22023c15003c3

12 years agoMerge "Reduce mem copies in encoder loopfilter level picking"
Johann [Wed, 7 Dec 2011 18:41:00 +0000 (10:41 -0800)]
Merge "Reduce mem copies in encoder loopfilter level picking"

12 years agoReduce mem copies in encoder loopfilter level picking
Attila Nagy [Tue, 29 Nov 2011 11:48:02 +0000 (13:48 +0200)]
Reduce mem copies in encoder loopfilter level picking

Do the test filtering in the existing backup frame buffer instead of
the original. Copy the original data into extra buffer before doing
the  filtering. This way there is no need to restore the original
unfiltered  frame at the end of level picking process.

This came up in some discussions with Johann. Thanks!

Change-Id: I495f4301d983854673276c34ec0ddf9a9d622122

12 years agoMerge "Allow aligning the raw image buffer"
Yunqing Wang [Tue, 6 Dec 2011 18:21:28 +0000 (10:21 -0800)]
Merge "Allow aligning the raw image buffer"

12 years agoAllow aligning the raw image buffer
Yunqing Wang [Mon, 5 Dec 2011 18:25:09 +0000 (13:25 -0500)]
Allow aligning the raw image buffer

Added code to allocate aligned image buffer in vpx_img_alloc(). The
alignment of the buffer and stride is determined by the parameter
align.

Change-Id: Idc866978484be3558551c56df39130ab7f74ddd4

12 years agoMultiple-resolution encoder
Yunqing Wang [Tue, 25 Oct 2011 19:14:16 +0000 (15:14 -0400)]
Multiple-resolution encoder

The example encoder down-samples the input video frames a number of
times with a down-sampling factor, and then encodes and outputs
bitstreams with different resolutions.

Support arbitrary down-sampling factor, and down-sampling factor
can be different for each encoding level.

For example, the encoder can be tested as follows.
1. Configure with multi-resolution encoding enabled:
../libvpx/configure --target=x86-linux-gcc --disable-codecs
--enable-vp8 --enable-runtime_cpu_detect --enable-debug
--disable-install-docs --enable-error-concealment
--enable-multi-res-encoding
2. Run make
3. Encode:
If input video is 1280x720, run:
./vp8_multi_resolution_encoder 1280 720 input.yuv 1.ivf 2.ivf 3.ivf 1
(output: 1.ivf(1280x720); 2.ivf(640x360); 3.ivf(320x180).
The last parameter is set to 1/0 to show/not show PSNR.)
4. Decode:
./simple_decoder 1.ivf 1.yuv
./simple_decoder 2.ivf 2.yuv
./simple_decoder 3.ivf 3.yuv
5. View video:
mplayer 1.yuv -demuxer rawvideo -rawvideo w=1280:h=720 -loop 0 -fps 30
mplayer 2.yuv -demuxer rawvideo -rawvideo w=640:h=360 -loop 0 -fps 30
mplayer 3.yuv -demuxer rawvideo -rawvideo w=320:h=180 -loop 0 -fps 30

The encoding parameters can be modified in vp8_multi_resolution_encoder.c,
for example, target bitrate, frame rate...

Modified API. John helped a lot with that. Thanks!

Change-Id: I03be9a51167eddf94399f92d269599fb3f3d54f5

12 years agoMerge "Speed selection support for disabled reference frames"
John Koleszar [Mon, 5 Dec 2011 22:36:54 +0000 (14:36 -0800)]
Merge "Speed selection support for disabled reference frames"

12 years agoMerge "bugfix: all vpxenc arguments were not parsed under all conditions"
John Koleszar [Tue, 29 Nov 2011 16:54:31 +0000 (08:54 -0800)]
Merge "bugfix: all vpxenc arguments were not parsed under all conditions"

12 years agobugfix: all vpxenc arguments were not parsed under all conditions
James Berry [Mon, 28 Nov 2011 19:09:35 +0000 (14:09 -0500)]
bugfix: all vpxenc arguments were not parsed under all conditions

dynamicly assign ARG_CTRL_CNT_MAX and
add check to make sure argument instance
doesnt already exist before creating a duplicate

Change-Id: I4f78a9c5346cda8e812cd89c077afe8996493508

12 years agoPopulate q_index in multi-thread encoding
Yunqing Wang [Mon, 28 Nov 2011 19:43:25 +0000 (14:43 -0500)]
Populate q_index in multi-thread encoding

This value needs to be copied to each thread's data structure.
This fixed artifact problem in multi-thread encoder.

Change-Id: Iab6d9745a1d44846aa503184705376f63a505597

12 years agoAdded vp8_dequant_idct_add_y_block_sse2 setup
Scott LaVarnway [Mon, 28 Nov 2011 18:06:13 +0000 (13:06 -0500)]
Added vp8_dequant_idct_add_y_block_sse2 setup

In Change I83202ffd, I deleted one too many lines.

Change-Id: If05d7c8988eb5c00898dc7c833ad7d99b5eb23e7

12 years agoMerge "Modified the inverse walsh to output directly"
Scott LaVarnway [Mon, 28 Nov 2011 15:26:06 +0000 (07:26 -0800)]
Merge "Modified the inverse walsh to output directly"

12 years agoModified the inverse walsh to output directly
Scott LaVarnway [Thu, 17 Nov 2011 17:54:42 +0000 (12:54 -0500)]
Modified the inverse walsh to output directly

to the dqcoeff or qcoeff buffer.  The encoder would
populate the dc coeffs of the y blocks as a separate
stage (recon_dcblock) and the decoder would use a special
version of the idct.  This change eliminates the extra copy
and reduces the code footprint.

[Tero] Added needed changes to armv6 and NEON assembly.

Change-Id: I83202ffdbaf83f6e5dd69f4ba2519fcf0b13b3ba

12 years agoMerge "Move shared data to shared location"
Johann [Wed, 23 Nov 2011 19:20:54 +0000 (11:20 -0800)]
Merge "Move shared data to shared location"

12 years agoMerge "Fix encoder partitioned output on ARM"
Johann [Wed, 23 Nov 2011 16:44:21 +0000 (08:44 -0800)]
Merge "Fix encoder partitioned output on ARM"

12 years agoFix encoder partitioned output on ARM
Attila Nagy [Thu, 10 Nov 2011 11:07:37 +0000 (13:07 +0200)]
Fix encoder partitioned output on ARM

API was not returning correct partition sizes on arm targets.
The armv5 token packing functions were not storing the information to the
partition size table.
As a fix, have one boolcoder instance allocated for each partition so
that partition sizes are internally available after all partitions
were encoded. This will also allow more flexibility in producing
several partitions in parallel.

Use buffer validation (overflow check) in all ARM bitpacking
functions.

Change-Id: I31c8a11d8a7613676f0ff50928cb2a2ab14fd169

12 years agoMerge "Decoder fixes to better support reference picture selection."
John Koleszar [Wed, 23 Nov 2011 01:12:06 +0000 (17:12 -0800)]
Merge "Decoder fixes to better support reference picture selection."

12 years agoMerge "Validate encoder buffer writes for single token partition"
Johann [Wed, 23 Nov 2011 00:21:47 +0000 (16:21 -0800)]
Merge "Validate encoder buffer writes for single token partition"

12 years agoDecoder fixes to better support reference picture selection.
Stefan Holmer [Fri, 18 Nov 2011 14:44:17 +0000 (15:44 +0100)]
Decoder fixes to better support reference picture selection.

Change-Id: Id3388985d754706b9fd1f079c47121e79a63efdf

12 years agoMove shared data to shared location
Johann [Fri, 18 Nov 2011 19:50:13 +0000 (11:50 -0800)]
Move shared data to shared location

Storing vp8_bilinear_filters_mmx in an mmx file and using it in an sse2
file is bad

Moving towards allowing --disable-mmx

Change-Id: I20493b35bdedcdcfc0915e6f05fdbe6c81a4a742

12 years agoSpeed selection support for disabled reference frames
John Koleszar [Fri, 18 Nov 2011 20:47:16 +0000 (12:47 -0800)]
Speed selection support for disabled reference frames

There was an implicit reference frame test order (typically LAST,
GOLD, ARF) in the mode selection logic, but this doesn't provide the
expected results when some reference frames are disabled. For
instance, in real-time mode, the speed selection logic often disables
the ARF modes. So if the user disables the LAST and GOLD frames, the
encoder was always choosing INTRA, when in reality searching the ARF
in this case has the same speed penalty as searching LAST would have
had.

Instead, introduce the notion of a reference frame search order. This
patch preserves the former priorities, so if a frame is disabled, the
other frames bump up a slot to take its place. This patch lays the
groundwork for doing something smarter in the frame test order, for
example considering temporal distance or looking at the frames used by
nearby blocks.

Change-Id: I1199149f8662a408537c653d2c021c7f1d29a700

12 years agoValidate encoder buffer writes for single token partition
Attila Nagy [Wed, 9 Nov 2011 12:44:31 +0000 (14:44 +0200)]
Validate encoder buffer writes for single token partition

Extend buffer write validation (overflow check) to single token
partition packing, both mb and row based functions.

Change-Id: I36e19b7d37fc43712d05c70e3ad223d3eb5b973d

12 years agoads2gas translates PRESERVE8, REQUIRE8 and ARM directives
Attila Nagy [Fri, 18 Nov 2011 10:28:43 +0000 (12:28 +0200)]
ads2gas translates PRESERVE8, REQUIRE8 and ARM directives

Change-Id: I22c547af80e0bce0c7b5f6054ad0aa61f37d717b

12 years agoMerge "Added predictor stride argument(s) to subtract functions"
Scott LaVarnway [Thu, 17 Nov 2011 18:17:53 +0000 (10:17 -0800)]
Merge "Added predictor stride argument(s) to subtract functions"

12 years agoMerge "avoid resetting framerate during vpx_codec_enc_config_set()"
Johann [Wed, 16 Nov 2011 23:32:44 +0000 (15:32 -0800)]
Merge "avoid resetting framerate during vpx_codec_enc_config_set()"

12 years agoAdded predictor stride argument(s) to subtract functions
Scott LaVarnway [Tue, 15 Nov 2011 17:53:01 +0000 (12:53 -0500)]
Added predictor stride argument(s) to subtract functions

Patch set 2: 64 bit build fix
Patch set 3: 64 bit crash fix

[Tero]
Patch set 4: Updated ARMv6 and NEON assembly.
             Added also minor NEON optimizations to subtract
             functions.

Patch set 5: x86 stride bug fix

Change-Id: I1fcca93e90c89b89ddc204e1c18f208682675c15

12 years agoAdd x86_64-win64-gcc to supported targets
Rafaël Carré [Sat, 12 Nov 2011 03:45:44 +0000 (22:45 -0500)]
Add x86_64-win64-gcc to supported targets

libvpx builds and runs correctly when built with x86_64-w64-mingw32-gcc
Version tested: 4.6.1

Change-Id: I9aa953d615551ca4834c9a5f8b68778d032a6cf5

12 years agoUpdate LICENSE to reflect WebM authors
John Koleszar [Fri, 4 Nov 2011 22:43:11 +0000 (15:43 -0700)]
Update LICENSE to reflect WebM authors

This code is Copyright The WebM Project Authors, not only Google.

Change-Id: Ib5a9dec4ba3177ccb2b06dcfe9605d2b3a3a3d8b

12 years agoavoid resetting framerate during vpx_codec_enc_config_set()
John Koleszar [Fri, 11 Nov 2011 18:47:20 +0000 (10:47 -0800)]
avoid resetting framerate during vpx_codec_enc_config_set()

The calculated frame_rate is a state variable in the codec, and
shouldn't be maintained in the configuration struct. Move it to the
main part of cpi so that it isn't clobbered when the configuration
struct is updated. The initial framerate estimate is moved from the
vp8_cx_iface.c wrapper into the body of init_config() in onyx_if.c, so
that it is only called once and not reset on every call to
vp8_change_config().

Change-Id: I8d9a3d1283330d1ee297d07e9d78d1f2875f2465

12 years agoMerge "vpxdec: avoid redefining fileno() on mingw"
Johann [Thu, 10 Nov 2011 17:43:12 +0000 (09:43 -0800)]
Merge "vpxdec: avoid redefining fileno() on mingw"

12 years agovpxdec: avoid redefining fileno() on mingw
James Zern [Thu, 10 Nov 2011 00:02:55 +0000 (16:02 -0800)]
vpxdec: avoid redefining fileno() on mingw

Correct ifdef check for Visual Studio's compiler, mingw builds can use
unistd.h.

Change-Id: I25c5ee46ef75ffbff03f560293dfb3d6bed55f70

12 years agovpxenc: use off64_t for mingw
James Zern [Tue, 6 Sep 2011 19:21:19 +0000 (12:21 -0700)]
vpxenc: use off64_t for mingw

fixes fseek errors on large files resulting in corrupt/truncated output
(issue #364).

Change-Id: If0e189a1591d0e95d7d237332e0bea1cf2ec5aa1

12 years agoMerge "Relocated idct/add calls for encoder"
Scott LaVarnway [Wed, 9 Nov 2011 18:17:43 +0000 (10:17 -0800)]
Merge "Relocated idct/add calls for encoder"

12 years agoMerge "ARMv6 optimized Intra4x4 prediction"
Johann [Wed, 9 Nov 2011 17:36:33 +0000 (09:36 -0800)]
Merge "ARMv6 optimized Intra4x4 prediction"

12 years agoMerge "Reset FPU state after calc_plane_error()"
John Koleszar [Wed, 9 Nov 2011 17:35:08 +0000 (09:35 -0800)]
Merge "Reset FPU state after calc_plane_error()"

12 years agoMerge "Compiler warning fix for const array."
John Koleszar [Wed, 9 Nov 2011 17:34:50 +0000 (09:34 -0800)]
Merge "Compiler warning fix for const array."

12 years agoMerge "Remove unused file recon.c"
John Koleszar [Wed, 9 Nov 2011 17:31:23 +0000 (09:31 -0800)]
Merge "Remove unused file recon.c"

12 years agoRelocated idct/add calls for encoder
Scott LaVarnway [Wed, 9 Nov 2011 15:41:05 +0000 (10:41 -0500)]
Relocated idct/add calls for encoder

Call the idct/add after the tokenize.  This is WIP with
the goal of creating a common idct/add for the encoder and
decoder. This move is necessary because the decoder's version
of the idct clobbers qcoeff, which is used by the tokenize.

Change-Id: I6b08d8e8397cd873647fa4fb9469884e3c876756

12 years agoARMv6 optimized Intra4x4 prediction
Tero Rintaluoma [Mon, 7 Nov 2011 11:40:01 +0000 (13:40 +0200)]
ARMv6 optimized Intra4x4 prediction

Added ARM optimized intra 4x4 prediction
 - 2x faster on Profiler compared to C-code compiled with -O3
 - Function interface changed a little to improve BLOCKD structure
   access

Change-Id: I9bc2b723155943fe0cf03dd9ca5f1760f7a81f54

12 years agothreading: avoid defining _WIN32_WINNT
James Zern [Wed, 9 Nov 2011 02:50:45 +0000 (18:50 -0800)]
threading: avoid defining _WIN32_WINNT

The referenced function (SignalObjectAndWait) isn't used. Reduces the
warnings with mingw32-w64 which defines this.

Change-Id: I4ce592879ec9372bf196dac640204c4d370bd210

12 years agoRemove unused file recon.c
John Koleszar [Tue, 8 Nov 2011 23:54:56 +0000 (15:54 -0800)]
Remove unused file recon.c

File not referenced from anywhere and no longer compiles.

Change-Id: I38b11bd60db615c2c2c9d7ad35caba3a1adf1750

12 years agoFix checks in MB quantizer initialization
Yunqing Wang [Tue, 8 Nov 2011 17:11:48 +0000 (12:11 -0500)]
Fix checks in MB quantizer initialization

vp8cx_mb_init_quantizer() needs to be called at least once to get
all values calculated. This change added one check to decide if
we could skip initialization or not.

Change-Id: I3f65eb548be57580a61444328336bc18c25c085b

12 years agoMerge "Third set of checks of buffer level against maximum buffer size"
Adrian Grange [Tue, 8 Nov 2011 16:00:31 +0000 (08:00 -0800)]
Merge "Third set of checks of buffer level against maximum buffer size"

12 years agoMerge "Additional clipping of buffer level to maximum buffer size"
Adrian Grange [Tue, 8 Nov 2011 16:00:12 +0000 (08:00 -0800)]
Merge "Additional clipping of buffer level to maximum buffer size"

12 years agoMerge "win64: use -f x64 in asflags instead of -f win64"
Johann [Tue, 8 Nov 2011 01:50:08 +0000 (17:50 -0800)]
Merge "win64: use -f x64 in asflags instead of -f win64"

12 years agoThird set of checks of buffer level against maximum buffer size
Adrian Grange [Tue, 8 Nov 2011 01:15:28 +0000 (17:15 -0800)]
Third set of checks of buffer level against maximum buffer size

Additional check of buffer level to ensure it doesn't exceed the
maximum buffer size.

Change-Id: I1ba4f8b09bbec89646885040ff47470196af521e

12 years agoAdditional clipping of buffer level to maximum buffer size
Adrian Grange [Tue, 8 Nov 2011 00:54:40 +0000 (16:54 -0800)]
Additional clipping of buffer level to maximum buffer size

Added additional check of buffer level against maximum
buffer size.

Change-Id: Iaf1fbaf008601161e402b43ce82c3dbc129bf740

12 years agowin64: use -f x64 in asflags instead of -f win64
Rafaël Carré [Tue, 8 Nov 2011 00:45:34 +0000 (19:45 -0500)]
win64: use -f x64 in asflags instead of -f win64

Change-Id: Id1be1a91c7f0fd286c403489ff447837029ba17f