This commit was manufactured by cvs2svn to create tag 'branch-release-1-0'.
disabled GMC debug printf
make BFRAMES default behaviour
Basic support for translation-only GMC support (compatible to Divx5) use general flag XVID_GMC to switch it on, the rest is done automatically. !!! Combination with B-frames is completely untested !!!
qpel.h
chroma rounding again
qpel chroma rounding fixed
merge of Radek's bframe and my qpel changes...
Michael Niedermayer's user data patch
minor updates - mostly speed but also b-frame's quality
some qpel bugfixes, fixed MV hints (but works only without qpel)
qpel interpolation update
removed compiler warning (missing newline at EOF)
Fixed bug in GET_REFERENCE macro [X and Y instead of (X) and (Y)]
qpel bugfixes
fprintf removed
oops, commited wrong code, now fixed...
b-frame decoding fix
qpel update
fix of access violation bug
yv12_to_XXX colorspace cleanup: dst_stride redefined, plain-c bgra and rgba modes support added
qpel MC
qpel ME
qpel support code
some qpel mmx code
correct bitstream stuffing and divx5-bframes compatibility
iFcode evaluation from hinted ME data
improved divx5 packed-avi compatibility
lumimasking related bug fixed - but still doesn't work with hinted ME
bugfix for timecodes in encoder_encode() [max_bframes=-1]
bugfix for timecode of first frame
A version of xvid_stat with bframes support. Very ugly early code. PSNR might not work in some cases, because of the N-VOPs
Disabled debug output
BVOP-ME bugfix (sign error)
Patch from sysKin
Fixed timecode (including support for max_b > fps) Thanks to suxen_drol for showing me the obvious way to fix it (using pRef)
sysKin's updated P/B/I decision code
field-dct decision bias (thanks to Michael Niedermayer for the idea!)
alternate-vertical-scan encoding/decoding support
re-enabled interlacing mmx
SysKin's latest ME changes
interlacing mmx
interlacing mmx, set mode to Release, BFRAMES def'ed by default
sad16v_mmx
Added BFRAMES as default (needed for sysKin ME)
sysKin Motion Estimation and minor changes to support it. I hope it doesn't break too much...
bugfix - custom matrix mode previously forced vol header for every frame
gom's adapt quant free() fix
block-based encoder interpolation/compensation for normal & bframes.
Adding installing of xvid.h to /usr/local/include (just to test branching)
This commit was manufactured by cvs2svn to create branch 'dev-api-3'.
Reentrancy problem fixed in adaptive code
interlacing bug fix - to comply with spec, no field blocks at boundary
interlacing bugfix (edging behaviour)
interlacing bugfix (inter cbp behaviour)
Support for timestamps even without #define BFRAMES
Added low_delay=1 for non-Bframes mode.
x_pos, y_pos are not needed in MBTransQuantInterBVOP()
shatty's beos patch
initial commit. raw test application for XviD native API, including support for B-Frames.
updated coeff thresholding to Radek's decision criteria
Ooops, first bugfix was an outdated version and the CVS got stuck...
Bugfix chroma motion compensation in BFRAMES mode. Block based has to be used, even if BFRAMES is active, because we cannot rely on XVID_HALFPEL (XVID_HALFPEL is not needed if max_bframes<=0)
adapt to the new calling interface of hafpel8
fixing a bug in make test
very small bugfix for interpolated ME (thanks to Radek)
Use MBTransQuantInterBVOP (skips work) for small B-frame speedup
Added several MB-functions which do the same as MBTransQuantInter/Intra now, but split into several routines. MBTransQuantInter2/Intra2 do the same as -Inter/Intra but using the split up routines, MBTransQuantBVOP skips unneeded decoding operations for B-VOPs.
sse2 dequant funcs revamped
New variable pEnc->last_sync for (more) correct time-codes in B-frames mode. Not a 100% clean solution. NOTE: Whole Timecode management must be rewritten!
windows b-frames fix
Fix missing symbol error when compiled without bframes support (thx monrad on IRC-opn)
"first frame p-frame" bugfix
switched back to old lumi masking code
fix the first frame is green wrong
Oops, a 'k' had run away.
First support for XVID_GREYSCALE: chroma DC is zeroed, AC is not saved. No speed improvement, but working feature.
new global flag XVID_GR[EA]YSCALE to ignore chroma components when encoding
Fixed wrong sad8bi for b-frames direct mode (thanks to Radek!)
Modified to only drop if blockcount is _less_ than ratio instead of _less or equa_, otherwise drops were still possible, even for drop=0 (-> bframe crash)
Fixed timecode problem for direct mode with max_bframes>1
halfpel search for MODE_INTERPOLATE and MODE_DIRECT
Modified SKIP mb behaviour for Pframes when Bframes are active: Check if intermediate B-block can be skipped, too. Check for SKIP is now done in encode_pframe(), not in MBCoding().
Interpolated and DirectMode motion estimation (DiamondSearch) for B-Frames. Slow, but working, this might have been the final step to a complete implemenation of b-frame encoding. Btw... it's 5.a.m so don't trust this CVS entry!
Finally Cut&Paste and Search&Replaced Square8_MainSearch, so PMV_USESQUARES8 is now functional. Also, some minor fixes.
Fixed embarrassing bug in Dimaond16/8_MainSearch (iDirection was overwritten)
Enable B-frame + INTER4V (not bugfree yet)
Fix B-frame: Direct Mode with INTER4V
Minor Cleanup
New fields deltamv, directmv[4] in Macroblock for more logical B-frame ME
Disable SKIP handling for _DISABLE_SKIP defined
Change name of static lib to libxvidcore.a
Added #ifdef _DISABLE_SKIP in MBCoding(). If this is defined, there will be __no skipped macroblocks__ in P-frames! This is of course bad (bigger files), but it's needed for clean B-frame encoding until we have a workaround for the SKIP-flaw in the standard. :-(
Added motion/x86_asm/sad_3dn.asm because it was missing (good reason!)
qpel decoding support
Thread safe version.
Little mistake with the stack pointer.
Thread safe version.
sad[16,8]_mmx, sad[16,8]_3dn, sad8_xmm
Some %define to make the code easier to read.
Range check for B-frame quantizer
bframe encoding bugfixes, ME unification
Small fix to make sure negative values => defaults settings
frame_drop_ratio
output_slice() msvc compiler fix
Add missing #ifdef around some bframe code
slower implementation, without rounding errors
slower implementation, without rounding errors
futher improved sad8 and sad16
removed debug code
Bugfix for B-frame encoding (new parameters time_bp, time_pp to BVOP-ME)
Minor fix for time-hack
Add 'per slice' rendering aka DR method 2
Added debugging and profiling options - could be useful
Fixed for Bframes encoding and maybe decoding, too.
B-frames encoding "ME" for direct mode (and minor other things)
sse/sse2 os support detection
added sse2 os triggers
removed static data; added sse2 os triggers
cglobal fix
cbp_sse2.asm & sad_sse2.asm added
advise for how to fix my b-frame decode code
extended documentation and comments
some comments
fixes some bug with claiming the wrong fp registers
further aggerssive optimizations
fix for a bug in the ia64 idct, that prevents compilation with intel ecc
Global assembler optimization of halfpel8_refine, via inlinig of sad for ia64
Global assembler optimization of halfpel8_refine, via inlinig of sad for ia64
Global assembler optimization of halfpel8_refine, via inlinig of sad
fix my some wrong with b-frame deocde at direct mode
Fix a little bug 'mb->quant = 8' in decode_bframe()
XVID_ENC_PARAM->num_threads
support the decode examples in ex1
add the decode examples
move to test_enc.bat
removing rounding bug, that yields pink color drift in P-frames
fix a little bug and added the BFRAMES_DEC_DEBUG support
Preparations for block-based-interpolation ME: PMVfastIntSearch16 (pre-version)
Minor change: Switch from get_pmv to get_pmv2
Minor bugfix.
Step towards blocks based interpolation ME: get_ipmv/get_ipmvdata
Minor change: Switch to get_pmv(data)2 instead of get_pmv(data)
Minor change: Switch to get_pmv2 instead of get_pmvdata in HintedME
Inserted preliminary support for intel's ecc in portab.h
generated with itanium idct generator
itanium idct generator
bswap with ia64-asm
fixing for ia64, again
preparations for block based ME
Added pentium/pentiumpro switches. Slightly faster for 2.95 than i686
sync to support latest CVS source code
undo my wrong
reupload
fix my wrong moment ago
help upload for roaming
Function prototypes for dequant_inter_xmm, dequant_intra_xmm
Skal's tweaked dequant functions
near jumps
long long replaced by int64_t
Added switch for _SMP (default disabled)
Remove "short jump out of range" by using JZ/JMP instead of JNZ
Include XMM and 3DN routines (which are seperate files now)
replaced read_tsc() by read_counter() from portab.h
split mmx,xmm,3dnow,sse2 code into different files, SMP fix, Skal's tweaked asm code
BugFix for EPZSSearch16
Added motion/smp_motion_est.c for multithreaded ME support
Minor modifications for supporting multithreaded ME. Without _SMP symbol there should be no changes in behaviour.
Routines for mulithreaded ME. XviD has to be compiled with -D_SMP option for these files to be treated at all.
compatible with ia64, now
Optimized assemby
Added font.c for BFRAME mode
get_pmv2/get_pmvdata2
killed warnings, ecc compatible
resync patch
optimizied, but not fully operatial on ecc, genidct.py needs some fixing, not all files needed are committed. stay tuned.
imporoved verions of sad8 and 16
re-fixing check_cpu_features compiling / linking issue, hopefully it is sufficent for all platfroms, now
resync support, check_cpu_features() fixed
- added inter4v description - added details about each ME flag (thx christoph)
define internale labels, locally for debugging, with .L
fixing a problem with check_cpu_features, that prevents compiling of the codec on platforms other than x86.
fixing dos linefeed
some assembler optimizations done, all warnings can be ignored.
some assembler optimizations done
fixed_vop_rate
minor dx50bvop fix
- Updated to 2.1 API version - Still work to do (indicated by ToDos :-)
added font.c, sgi-irix64 makefile, dx50bvop working
- transfer_8to16sub2_mmx activation - Compile fixes (a missing image/font.h ???) - Linux Makefile update to take care of last changes in feature constants
XVID_GLOBAL_*, XVID_CPU_CHKONLY, timestamp fix, font.c
minor fixes: bframe N_VOP support, custom quant bug, BFRAME inc_frame_num()
bframes patch
fix a little bug
dev16 is optimized, now.
bframe patch
*** empty log message ***
optimizations, correct transfer_8to16sub2_xmm
Skal's test and benchmarking tool
ProfDrMorph's new (unoptimized) Luma Masking code: luminance masking now works with relative values instead of absolute ones the new code raises/lowers oberall quant for especially bright/dark frames ( Weber-Fechner law: humans see less differences in bright scenes ) every pixel with a very low lumi value is set to 0 for better compressability ( again the Weber-Fechner law; below a certain intesity humans won't see anything )
fix a little bug in use custom quant matrix
add #ifdef BFRAMES
- added legal header - added function descriptions
- Added legal header - The x86 specific function 'check_cpu_features' is only declared when ARCH_X86 is defined
- Commented (really needed ?) - Added legal header
- Added transfer_8to16sub2_xmm (B frames compensation)
- Removed an unuseful piece of code
- Removed an opcode (used during my tests)
- Added a transfer_8to16sub2_xmm function (Needs testing)
This file is not useful
- Added legal header - Cosmetic
- Added comments - Changed the FSF address
correcting windows path name in include
ia64 changes
ia64 changes
some small fixes
updated Makefile.djgpp, added DECLARE_ALIGNED_MATRIX to portab.h for unknown/other platform
msvc asm{} codingstyle fix
IA64 assembler files, initial version, only partly optimized
- Added legal header - Added comments about the functions
- Cosmetic - Added legal header
- Mainly Cosmetic. - 'bool' type is now 'int', natural cpu size variable. (Dev Mail-List suggestion from Christoph Lampert)
Cosmetic
Added comments, documented all returned values
Cosmetic and ANSI C comment style (just this header as it may be included in an ANSI C project.
EMMS macro replaced by the emms() function.
Added the $Id$ RCS keyword
Added to the project so every one can (try) to conform to this
Cosmetic - CodingStyle Applied - Legal Headers will be added later
Another bunch of 80 column cut, ANSI C comments - There's still work to do there :\
Small memory leak fixed
80 Column cutting. I've put all the encoder_create cleaning code in goto statements, this is a clean way to do that job but some people don't like goto statements
Added lot of new gcc features for 3.1 and added comments. We can set environment variables to preset CC and CFLAGS now
Small change, avoid calling free with a random address
Last bits of "Rate control per instance" patch
Rate control structure per encoder
to compress xvid source code package size
todo cleanup
fix some bug
Returned to old style MotionEstimation (one loop for INTER and INTER4V)
fix a little bug
example for use xvidcore to compress iamge
Added AdvDiamond_MainSearch by sysKIn which seems to be faster and better than normal Diamond_MainSearch, at least for plain fullpel search. It can be activated by PMV_ADVANCEDDIAMOND16/8 flag.
added PMV_ADVANCEDDIAMOND to activate new Diamond MainSearch by sysKIn
#define BFRAMES
no message
mean reduced SAD, C-version
Small bugfix in MotionEstimation (wrong prediction for INTER4V)
Use INTER4V only if neighbours move different than current block. Save quality, some speedup.
Optimization options for AMD K6
general cleanup, first modifications for new INTER4V heuristics
SAD values in MACROBLOCK have to be signed integer
Fix for gcc
Tests to not double check vectors in PMVfast16/8 (only in prediction, not during diamonds phase). Minor speedup.
add low_delay decode support
MotionEst(): set sad8[] also for INTER mode to correct values (for get_pmdata)
Another minor fix for get_pmvdata()
correted get_pmvdata returning wrong SAD for left boundary blocks with MV (0,0)
low_delay
bitstream finc/fbase bug fix
no message
fix some my B-frame decode error
Added "per encoder" quality setting
Removed the "not ANSI compliant" BFRAMES after the #endif
quant range checking
add B-frame decode support
no message
sse2 idct/fdct
removed coeff clamping
#define BFRAMES
Adapted to new API
fix a little compile bug(in DEBUG mode)
Cosmetic, gpl header
sad values can be negative (Cristoph post scriptum to a mail in the dev maillist)
Sad values can be negative (Christoph Lampert Post scriptum in a mail to the dev mail list)
Cosmetic, added the RCS Id field
Cosmetic, added GPL header and RCS id field
Added the RCS $
- Added quiet_encore symbol so transcode can use XviD with its divx4 API - Added comments - Added possible ToDos and pointed out 2 major problems : + Reentrance + the quality setting for the encoder part
added divx4_general_preset to compelety determine quality levels.
Fixed some minor issues in ME, changed calc_delta16/8 to non-linear function of quant (from a paper on H.26L). Now inter4v finally gives some improvement.
Adapted PMVFast16/8 for using prevMB instead of pMB, seems to work.
Re-Added get_pmv() for returning median predictor only without all the other stuff like neighbours and SAD values.
#ifdef'd OutputDebugString because it's _DEBUG an Windows only
FRAMEINFO
sse2 quant_intra/dequant_intra/dev16/(faster)sad16
add some B-frame support
remove some compile warning
knhor - 020420 - add install
knhor - 020420 - add freebsd support
fixed bug when using lumi masking with hinted ME
beginnings of sse2 support (disabled)
rewrite log2bin() use asm386(only in VC)
updated to reflect cbr changes
foxer's updated cbr code
support for foxer's updated cbr code
Text file how to use xvid_stat with explenation of parameters
advanced example how to use XviD including statistical analysis of encoding and decoding speed and quality
bframe "support" code
segfault fix
AC vlc coding bugfix, thanks to Vivien Chappelier
PPC update
decoder speedup
PSNR calculations
PSNR calc
interlacing bugfix
debug output for cbr
moved HintedMEGet() on intra, to FrameCodeI()
hinted motion estimation support (raw or compressed)
reworked vlc tables
Added -mvec comment
source C files for sad Altivec
splat -> vxor optimizations
Added EPZS and EPZS^2. Unfortunately slower and not really better than PMVfast
optimization
CFLAGS fix
PPC trivial fixes
cygwin Makfile, thanks milan
PPC update
SAD in Altivec
Little fix
fixed crash when using lumi masking in cbr mode (i'm such an idiot)
fixed crash when using lumi masking in cbr mode (last time..)
fixed crash when using lumi masking in cbr mode (removed development code)
fixed crash when using lumi masking in cbr mode
merged image/pMBs create and destroy stuff into single if()
interlacing speedup - transfer strides used instead of manual field-to-frame conversion
interlacing fix and speedup - compensated data wasn't being used in block reconstruction
win32 fix - #define can't immediately follow #define ;-)
Sorry, the previous patch was buggy. This one shoud fix the problem
Big patch, use it with care (tests done with GNU/Linux) : - Trivial warnings in encoder.c line 282 ret1 = ret 2 = 0; - Lot of "New line at end of file missing" warnings fixed (gcc3) - All 2d arrays have been turned into 1d arrays To force alignment of matrices on stack, use DECLARE_ALIGNED_MATRIX (read portab.h) Win32 users should give feedback.
DIRS_PPC update
dct altivec
ASM update
fixed some warnings
LINUX: proper alignement on the stack
aligned memory for better performance
first bits of Altivec support
PPC Altivec version
interlacing support - slow (MBDecideFieldDCT()), buggy (p-frames), incomplete (field motion prediction)
added *.h to msvc project, removed __declspec(align(..)) for _MSC_VER <= 1200
Changed rc_buffersize to 16 as decided in the forum
s/16/CACHE_LINE/
Fixed a bug when malloc aligns the data itself - Added comments
foxer's cbr mode (hijacks the rc_buffersize variable and uses it as reaction delay - easier than changing xvid.h)
read words in memory instead of hw
no message
cosmetica
loop2 now uses CTR
some label cleanups
use simplified mmemonics
CR0 use
use 386 cpu 'bts' in 'cbp |= 1 << (edx-1)
Added first PPC asm port
no message
adopted to new API
cbp_calc for PPC
Added GNU CC alignment
removed intel asm parts
Fixed bug pointed by canard (out of bounds reading and a big mistake in j upper limit)
BSWAP,EMMS macro for LinuxPPC
LinuxPPC Makefile
I prefer this traditional way of alignment
alignment stuff
xvid_malloc/xvid_free
added 3dnow hv interpolation
added interpolate8x8_halfpel_hv_xmm
Disabled DEBUG-messages in Linux, if _DEBUG not set
removed init_timer
removed debug output
disable win32 debug output in release builds (encodes 0.7% faster)
change release compilation inlining mode to "any suitable" - runs faster (just)
prevented RateControlUpdate() being called in non-cbr encodes (bitrate isn't 0 anymore - it's set to 900000 in encoder_create())
INTRA_Q/INTER_Q mcbpc bugfix
readme
no message
no message
qmatrix bugfix
Fixed warning about csp_tmp unitialized
Fixed gcc warnings
Fixed implicit declaration of malloc - #include <stdlib.h>
Fixed brackets for coeff_tab3, coeff_tab7, coeff_tab10 and coorect indentation of all code
Fixed gcc warning about '/*' into comments
Fixed lot of gcc warnings about '/*' into comments
Small cleanup for gcc warnings and code indentation (thx emacs indent-region :-)
In some circumstances acpred_flag was used unitialized - now it's set to zero
New tree structure
bugfix
now compatible with new XviD API
custom qmatrix support
moved sources