Age | Commit message (Collapse) | Author |
|
add unit tests for vp8_short_idct4x4llm_c
Change-Id: I472b7c0baa365ba25dc99a3f6efccc816d27c941
|
|
When compiling with -ggdb3 the output includes an extraneous EQU from
vpx_ports/asm_offsets.h
https://trac.macports.org/ticket/33285
Change-Id: Iba93ddafec414c152b87001a7542e7a894781231
|
|
* changes:
vpxenc: factor out input open/close
vpxenc: add warning()/fatal() helpers
vpxenc: factor out global config options
|
|
|
|
|
|
In vp8_rd_pick_inter_mode(), if total of eobs is zero, rate needs
to be adjusted since there are no non-zero coefficients for
transmission. The uv intra eobs calculated in
rd_pick_intra_mbuv_mode() need to be saved before they are
overwritten by inter-mode eobs.
Change-Id: I41dd04fba912e8122ef95793d4d98a251bc60e58
|
|
Depending on implementation the optimized SAD functions may return early
when the calculated SAD exceeds max_sad.
Change-Id: I05ce5b2d34e6d45fb3ec2a450aa99c4f3343bf3a
|
|
Built in echo in 'sh' on OS X does not support -n (exclude trailing
newline). It's not necessary so just leave it off. Fixes issue 390.
Build include guard using 'symbol' so that it is more likely to be
unique.
Change-Id: I4bc6aa1fc5e02228f71c200214b5ee4a16d56b83
|
|
cpu-features.h is not in the common paths, add
to the cflags for Android.
Change-Id: Icbafc7600d72f6b59ffb030f6ab80ee6860332bb
|
|
Simplify some of the file I/O for later commits which will add multistream
support
Change-Id: Idf1a05f3a29c95331d0c4a6ea5960904e4897fd4
|
|
Cosmetic. Allows exiting with an error message without opening a new
scope.
Change-Id: If227b29b825f0241acea79dd38f19e524552ee18
|
|
On Android NDK, rand() is inlined function. But, on our SSE optimization,
we need symbol for rand()
Change-Id: I42ab00e3255208ba95d7f9b9a8a3605ff58da8e1
|
|
Change-Id: Ibcb35c32bf24c1d241090e24c5e2320e4d3ba901
|
|
|
|
Removed unnecessary variables, unrolled functions, eliminated
unnecessary mv bounds checks and branches.
Change-Id: I02d034c70cd97b65025d59dd67c695e1db529f0b
|
|
This is a first step towards specifying multiple output streams
with one command line.
Change-Id: Iac784d3911bf553694d024bbd0c3d547261e914b
|
|
Add a dependency so ndk-build will
generate the needed vpx_rtcd.h file.
Change-Id: I92c82e0996943dd0403c9956e1ba60e92e2837a9
|
|
|
|
Change-Id: I9fb510f9421fb3c317a8e32e3058cee977ddf9fa
|
|
|
|
As an optimization some architectures use the max_sad argument to break
out early from the SAD. Pass in INT_MAX instead of 0 to prevent this.
Change-Id: I653c476834b97771578d63f231233d445388629d
|
|
In the variance calculations the difference is summed and later squared.
When the sum exceeds sqrt(2^31) the value is treated as a negative when
it is shifted which gives incorrect results.
To fix this we cast the result of the multiplication as unsigned.
The alternative fix is to shift sum down by 4 before multiplying.
However that will reduce precision.
For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and
change).
PPC change is untested.
Change-Id: I1bad27ea0720067def6d71a6da5f789508cec265
|
|
|
|
Change-Id: I792d5236451905eb20a8ebe444ef5b2274e4f7a4
|
|
Allow the application to change the frame size during encoding. This
is only supported when not using lagged compress.
Change-Id: I89b585d703d5fd728a9e3dedf997f1b595d0db0f
|
|
MFQE postproc crashed with stream dimensions not a multiple of 16.
The buffer was memset unconditionally, so if the buffer allocation
fails we end up trying to write to NULL.
This patch traps an allocation failure with vpx_internal_error(),
and aligns the buffer dimensions to what vp8_yv12_alloc_frame_buffer()
expects.
Change-Id: I3915d597cd66886a24f4ef39752751ebe6425066
|
|
The 5-layer encode must have a keyframe every 16 frames.
The KF flag was being reset after the encode of the first
frame, which it should not do for the 5-layer case
(mode=6).
Change-Id: I207d6e689d347fe3fd1075b97a817e82f7ad53b9
|
|
|
|
|
|
Sometimes, a user doesn't have enough bandwidth to send high-resolution
(i.e. HD) video even though the camera catches HD video. This change
allowed users to skip highest-resolution encoding by setting that level's
target bit rate to 0.
To test it, modify the following line in vp8_multi_resolution_encoder.c.
unsigned int target_bitrate[NUM_ENCODERS]={1400, 500, 100};
To skip the highest-resolution level, change it to
unsigned int target_bitrate[NUM_ENCODERS]={0, 500, 100};
To skip the first and second highest resolution levels, change it to
unsigned int target_bitrate[NUM_ENCODERS]={0, 0, 100};
This change also fixed a small problem in mapping, which slightly helped
quality and performance.
Change-Id: I977bae9a9fbfba85c8be4bd5af01539f2b84bc81
|
|
Change-Id: I05788522e9cde4322cfb12032483bdbf184bdf0b
|
|
Change-Id: Ieb05270ac332a4cc38ec4b7b995fc0150e0fffdf
|
|
Change-Id: I10efa441d663fceb6bc97a3bfad518cd3d9a5128
|
|
|
|
Removed redundancies. All of the information can be
found in the MACROBLOCKD structure.
Change-Id: I7556392c6f67b43bef2a5e9932180a737466ef93
|
|
This function does not exist.
Change-Id: I84b72fb17d572d5cccee92220467b84c15842d4d
|
|
This is the final commit in the series converting to the new RTCD
system. It removes the encoder csystemdependent files and the remaining
global function pointers that didn't conform to the old RTCD system.
Change-Id: I9649706f1bb89f0cbf431ab0e3e7552d37be4d8e
|
|
This commit continues the process of converting to the new RTCD
system. It removes the last of the VP8_ENCODER_RTCD struct references.
Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: Ia5828b7ecc80db55b21916704aa3d54cbb98f625
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: Id8a287fdd4bd050ea4452e1582ad85520f3081be
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: Iba9df4c03a508e51c37201c621be43523fae87d9
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: I3f9c07db65eb206f6363d21bdb80e871570da767
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: Ie5c1aa480637e98dc3918fb562ff45c37a66c538
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: I6c519ab61e4f4e0ebcc796f2df061f945c48cefe
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: If54eb5cb5d1b0cac6c4c0633a9e99c93ca860ba2
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: I9bfcf9bef65c3d4ba0fb9a3e1532bad1463a10d6
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80
|
|
This commit continues the process of converting to the new RTCD
system.
Change-Id: Ic8a4047d72ff3a54ec98977dd90e70c13213db71
|
|
This is a proof of concept RTCD implementation to replace the current
system of nested includes, prototypes, INVOKE macros, etc. Currently
only the decoder specific functions are implemented in the new system.
Additional functions will be added in subsequent commits.
Overview:
RTCD "functions" are implemented as either a global function pointer
or a macro (when only one eligible specialization available).
Functions which have RTCD specializations are listed using a simple
DSL identifying the function's base name, its prototype, and the
architecture extensions that specializations are available for.
Advantages over the old system:
- No INVOKE macros. A call to an RTCD function looks like an ordinary
function call.
- No need to pass vtables around.
- If there is only one eligible function to call, the function is
called directly, rather than indirecting through a function pointer.
- Supports the notion of "required" extensions, so in combination with
the above, on x86_64 if the best function available is sse2 or lower
it will be called directly, since all x86_64 platforms implement
sse2.
- Elides all references to functions which will never be called, which
could reduce binary size. For example if sse2 is required and there
are both mmx and sse2 implementations of a certain function, the
code will have no link time references to the mmx code.
- Significantly easier to add a new function, just one file to edit.
Disadvantages:
- Requires global writable data (though this is not a new requirement)
- 1 new generated source file.
Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55
|
|
Change-Id: Ibf577972e8cd10488d44385ff74f136a07466c0c
|