Commit Graph

877 Commits

Author SHA1 Message Date
lyao2
881667a533 fix pps caused death loop issue 2014-09-05 13:28:13 +08:00
ruil2
4fc144b698 Merge pull request #1333 from huili2/print_ver_master
modify version info in enc/dec
2014-09-05 13:23:49 +08:00
huili2
1b1ea2b9ef modify version info in enc/dec 2014-09-04 21:55:06 -07:00
ruil2
d63172db9b Merge pull request #1331 from sijchen/add_setoption
[Encoder] add setoption of 'isLosslessLink' for further strategy tuning
2014-09-05 12:49:25 +08:00
ruil2
2f041c7a4b modify delivery status interface 2014-09-05 10:57:51 +08:00
huili2
43dc6f01e1 Merge pull request #1322 from ruil2/MinCr_waring
add MinCr checking and output warings if the MinCr isn't met
2014-09-05 09:39:56 +08:00
sijchen
61926f208c add a setoption for further setting 2014-09-04 14:24:14 +08:00
lyao2
f2437f24b9 fix bug that iMaxSpatialBitrate is not correct assigned 2014-09-03 17:40:19 +08:00
ruil2
7e8cde055f add UT for LTR setopton and fix crash issue 2014-09-03 13:28:14 +08:00
ruil2
4ece8efaed add MinCr checking and output warings if the MinCr isn't met 2014-09-03 10:41:54 +08:00
ruil2
b5a01efa96 avoid LTR reference frames overflow 2014-09-02 10:23:03 +08:00
ruil2
d4eff959ed fix auto threadIdc issue 2014-08-29 13:57:08 +08:00
ruil2
3ff6bf8ac1 Merge pull request #1315 from dongzha/RemoveIntraPeriod
Fix following IntraPeriod set issue
2014-08-28 17:09:10 +08:00
dong zhang
0187c84f29 Fix following IntraPeriod set issue
1. In WelsInitSps function, if kuiIntraPeriod is huge, uiLog2MaxFrameNum might be bigger than 15, which may introduce illegal H264 bitstream.
2. if pSvcParm.uiIntraPeriod is not zero (e.g. 14) at the initial, it will init sps.iLog2MaxPocLsb. to 5.
 But if I changed pSvcParm.uiIntraPeriod to 40, sps.iLog2MaxPocLsb. is still 5, need to recalcuted this parameter.
 (Same with uiLog2MaxFrameNum.)
2014-08-28 16:35:23 +08:00
ruil2
cafb91a66a remove redundent lines 2014-08-28 11:24:28 +08:00
ruil2
cebf586c3a update trace output 2014-08-28 11:04:25 +08:00
dongzha
9b97138786 Merge pull request #1310 from ruil2/trace_update_1
add warning trace
2014-08-27 17:35:14 +08:00
ruil2
8935bfaa91 Merge pull request #1308 from dongzha/ModifyEncOutput
add crop output for encoder
2014-08-27 17:04:49 +08:00
ruil2
770400103f add warning trace 2014-08-27 17:01:23 +08:00
dong zhang
6d4a628331 add crop output for encoder 2014-08-27 15:44:49 +08:00
ruil2
40e952f981 remove "\n" which shoudl be added by the trace sink 2014-08-27 14:34:05 +08:00
ruil2
9b5902b94a update the number of reference when ltr changes 2014-08-27 12:19:59 +08:00
ruil2
ac7fac9644 get mv and mvd from level limitation 2014-08-26 16:30:57 +08:00
lyao2
0c32465aac fix pps assert issue when enable bEnableSpsPpsIdAddition 2014-08-26 13:31:14 +08:00
dongzha
863dc78c25 Merge pull request #1301 from ruil2/ltr_check_1
add more LTR parameters
2014-08-26 12:22:27 +08:00
ruil2
d6f0dee0c4 add more LTR parameters 2014-08-26 11:06:30 +08:00
Karina
ddbd41cbc5 remove unused variables 2014-08-26 09:13:20 +08:00
Karina
11c9f2037d format update 2014-08-25 15:31:36 +08:00
Karina
a19974d009 fix crash on mvd cost calculation 2014-08-25 13:30:45 +08:00
ruil2
441dc45e69 add mv range limitation and related ut 2014-08-25 09:53:49 +08:00
HaiboZhu
dddb825bbd Merge pull request #1288 from lyao2/threadIDC
fix Loop filter error under multithreads on encoder when #TEST_BED enabled
2014-08-22 11:00:07 +08:00
lyao2
6047ff930e fix deblockIDC and mutithread logic error 2014-08-22 09:19:14 +08:00
zhiliang wang
e6f838e331 Add arm UT for Sad,IntraSad,IntraPred. 2014-08-21 15:36:57 +08:00
lyao2
47f1ac7307 fix Loop filter error under multithreads on encoder when #TEST_BED enabled 2014-08-20 11:54:07 +08:00
dongzha
3596b6ced0 avoid encoder crash with random pixel input 2014-08-19 15:36:27 +08:00
Martin Storsjö
81ac3d2a9b Fix building svc_motion_estimation.S for android
The .align directive takes an argument in number of bits, i.e. the
actual alignment is 2^n. Previously building with binutils failed,
since 16 isn't a valid parameter to .align, the maximum is 15.

Thus, this makes the code try to align to 16 bytes, instead of aligning
to 65536 bytes.

This fixes building for android.

This also clears up the same mistake in the aarch64 code, even though
that one built just fine.
2014-08-15 09:53:42 +03:00
HFVideoMac
0f95fac4ca add arm32/64 code for InitHash 2014-08-15 13:47:59 +08:00
dongzha
87107c50a3 Merge pull request #1275 from zhilwang/x86_hash_scc
Add x86 32/64bit asm code and UT for SCC hash functions
2014-08-15 10:12:18 +08:00
zhiliang wang
ef88889404 refine format and add UT cases 2014-08-15 09:22:37 +08:00
zhilwang
711f5cabe7 Merge pull request #1273 from dongzha/RefineArmCodeForSumBlock
refine arm code for sum of frame
2014-08-15 09:02:15 +08:00
zhiliang wang
76863f977a Refine asm code format 2014-08-15 08:46:55 +08:00
zhiliang wang
b35f5797de Add x86 32/64bit asm code for Scc_hash 2014-08-14 18:41:52 +08:00
HFVideoMac
e14186b535 refine arm code for sum of frame 2014-08-14 14:41:07 +08:00
zhiliang wang
dc833e19f4 Add function define and init for SCC hash function 2014-08-14 14:20:07 +08:00
zhiliang wang
f2314151e8 Add x86 32/64bit asm code for SumOfBlocks. 2014-08-13 11:18:39 +08:00
ruil2
493d254a4a merge level table 2014-08-12 09:28:40 +08:00
ruil2
f7cd6e7aad use WelsEnc namespace instead of WelsSVCEnc 2014-08-11 16:08:49 +08:00
ruil2
febb3ebb9b fix an errors that for single slice mode, the number of slices should be 1 2014-08-11 13:58:33 +08:00
Martin Storsjö
2f6a986d7c Remove a needless, no-op change of the number of threads
If kiCpuCores < 2, then iCountThreadsNum (and iMultipleThreadIdc)
can't be >= 2, because they're initialized with
WELS_MIN (kiCpuCores, ...) just a few lines above.

If iMultipleThreadIdc is initially set to 0 by the caller, this
removed piece of code would change it to 1, if kiCpuCores < 2.

When iMultipleThreadIdc is changed from the originally set value,
a call to WelsEncoderParamAdjust with the original parameters
would reset the whole codec since iMultipleThreadIdc differs.

This fixes running EncoderInterfaceTest.TemporalLayerSettingTest
on machines where the detected number of cores is 1.
2014-08-08 22:26:59 +03:00
ruil2
af417b5ae4 re-allocate resource when threadIDC changes 2014-08-08 16:43:38 +08:00
HFVideoMac
84f33aa8e4 Disable failed UT and Fix Build Error onAndroid 2014-08-08 10:53:23 +08:00
HFVideoMac
cff49f5e45 add arm 32/64 code and UT for SVC SCC motion estimation 2014-08-06 17:24:36 +08:00
huili2
0dd0b06287 Merge pull request #1243 from ruil2/comment
add parameter verification
2014-08-05 14:58:01 +08:00
ruil2
5356249100 if dynamic slice mode, this limitation should be removed 2014-08-01 16:10:11 +08:00
ruil2
059e19074a add parameter verification 2014-08-01 12:39:29 +08:00
ruil2
f68b0811f0 update recontruct frame output 2014-07-31 15:10:12 +08:00
ruil2
eff4b3ae4d add a judgment 2014-07-29 09:37:14 +08:00
Martin Storsjö
ae62909aab Unify the indentation in the new aarch64 assembly files 2014-07-28 09:23:36 +03:00
ruil2
e58de20f3a add encoder interface ut 2014-07-25 16:40:14 +08:00
ruil2
1c42743999 fix crash bugs that too large size local varialbe will cause stack overflow 2014-07-25 09:55:41 +08:00
Martin Storsjö
d215a5f879 Actually use iMinQp in WelRcPictureInitBufferBasedQp
This fixes a warning in certain builds, about the variable iMinQp
being set but not used. This also probably is what was intended originally.
2014-07-25 00:46:35 +03:00
zhilwang
811e20f0d9 Merge pull request #1185 from mstorsjo/android-l-preview
Fix building for the Android L preview release, add support for new 64 bit Android ABIs
2014-07-18 16:56:22 +08:00
ruil2
63e3c6588a fix reference frame update issue which will casue crash 2014-07-17 12:45:17 +08:00
Martin Storsjö
6966679f33 Remove unused includes of sys/timeb.h
This header is included by crt_util_safe_x.h whenever necessary (it's
all hidden in the SWelsTime struct) - code which does not explicitly
use things from sys/timeb.h shouldn't include it.
2014-07-16 21:31:07 +03:00
huili2
e63dad0b6c Merge pull request #1172 from ruil2/pause_remove
remove pause frame interface which will be done in application level
2014-07-16 13:57:46 +08:00
ruil2
29bb1df645 Merge pull request #1177 from huili2/version_all
version-generate
2014-07-16 10:35:20 +08:00
huili2
333cf6aa97 version-generate 2014-07-14 23:39:31 -07:00
ruil2
010e423b2b Merge pull request #1169 from sijchen/interfaceUT12
[Encoder UT] Interface: EncoderEncodeParameterSets
2014-07-15 14:20:18 +08:00
ruil2
3632a0331c remove pause frame interface which will be done in application level 2014-07-15 11:05:05 +08:00
Martin Storsjö
110ce9ceca Remove an unused variable
This fixes build warnings with clang on OS X.
2014-07-14 15:44:26 +03:00
Sijia Chen
b669801e89 add interface UT for WelsEncoderEncodeParameterSets
and fix previous value
2014-07-14 18:36:35 +08:00
ruil2
36cfb3bd32 add buffer based rc 2014-07-14 13:57:03 +08:00
Sijia Chen
99dc18c0ba add BasicInitialize UT and some fix in create/destroy encoder in the existing interface test 2014-07-11 13:50:58 +08:00
ruil2
c72f82e7a7 Revert "turn off LTR for screen content. after checking LTR logic, will turn on"
This reverts commit 0fda3d9235.
2014-07-10 16:20:54 +08:00
dongzha
0cafc565be Merge pull request #1121 from ruil2/interface_update_1
interface update
2014-07-10 10:15:30 +08:00
ruil2
821483a4e9 fix bug when temporal layer changes 2014-07-09 16:43:58 +08:00
ruil2
45c2fff6b8 interface update 2014-07-09 15:41:04 +08:00
huili2
adb0fa498f astyle all cpp files 2014-07-08 20:01:42 -07:00
huili2
5f8822644f Merge pull request #1108 from mstorsjo/regenerate-makefiles
Regenerate the targets.mk files
I'm not able to see the changes in rbcommons (strange), so directly look at here.
2014-07-09 10:14:04 +08:00
huili2
c2dd7df0f2 Merge pull request #1110 from mstorsjo/neon-deblock-fix
Check left/top flag instead of uiNeighborAvail in neon deblocking
2014-07-09 10:10:53 +08:00
zhilwang
228ea1a668 Merge pull request #1101 from dongzha/AddArm64MBCopy
add arm64 MB COPY code and UT
2014-07-09 09:31:31 +08:00
zhilwang
ce740ee19e Merge pull request #1113 from mstorsjo/asm-indent
Fix indentation of macros in reconstruct_aarc64_neon.S
2014-07-09 09:04:22 +08:00
zhilwang
1ae709dde0 Merge pull request #1106 from mstorsjo/fix-aarch64-hadamard
Fix WelsHadamardQuant2x2*_AArch64_neon
2014-07-09 09:03:14 +08:00
Martin Storsjö
cc8a2bd07e Fix indentation of macros in reconstruct_aarc64_neon.S 2014-07-08 20:16:28 +03:00
zhilwang
6ff2b84736 Merge pull request #1107 from mstorsjo/fix-aarch64-gnu-build
Fix building for aarch64 with gnu binutils
2014-07-08 19:31:50 +08:00
Martin Storsjö
e5abbdcdab Check left/top flag instead of uiNeighborAvail in neon deblocking
When deblocking over slice edges (in single threaded sliced
encoding), uiNeighborAvail might say that a MB isn't available,
even though it is available for deblocking here.

This fixes the encoder test of dynamic slicing, with neon
optimizations enabled.
2014-07-08 13:53:28 +03:00
sijchen
ca61e286b4 Merge pull request #1104 from ruil2/rc_fix_1
turn off LTR for screen content. after checking LTR logic, will turn on
2014-07-08 16:48:19 +08:00
Martin Storsjö
7fc869cf0f Regenerate the targets.mk files
This makes the indentation of some new lines consistent with the rest.
2014-07-08 11:42:05 +03:00
Martin Storsjö
03d9f07671 Fix WelsHadamardQuant2x2*_AArch64_neon
In WelsHadamardQuant2x2SkipKernel_AArch64_neon, write the output
of cmhi into v0 - this is the register that is assumed to hold
the output.

In WelsHadamardQuant2x2_AArch64_neon, subtract the count of zero
elements from 4, not from 16.

This makes the encoding unit tests pass again.
2014-07-08 11:36:40 +03:00
Martin Storsjö
86b3a999d5 Use mov.16b instead of mov.8h
According to the arm architecture reference manual, the mov (vector)
instruction can only use the arrangement specifiers '8b' and '16b'.
The apple tools still accept the '8h' form, but it assembles into the
same as '16b'. (When copying a vector register to another, the element
size in the vectors don't matter.)

This fixes building with gnu binutils.
2014-07-08 11:34:44 +03:00
Martin Storsjö
3a1cc63649 Don't use the non-standard apple syntax in a gnu version of a macro 2014-07-08 11:34:44 +03:00
ruil2
0fda3d9235 turn off LTR for screen content. after checking LTR logic, will turn on
it
2014-07-08 16:15:51 +08:00
huili2
c228c51423 Merge pull request #1102 from ruil2/rc_fix_1
add skip frame processing for screen content
2014-07-08 16:14:01 +08:00
Sijia Chen
0a6819c0b7 remove unnecessary log output 2014-07-08 15:43:15 +08:00
ruil2
d98cefecec add skip frame processing for screen content 2014-07-08 14:41:34 +08:00
dongzhang
249b8a0aa6 add arm64 MB COPY code and UT 2014-07-08 14:22:14 +08:00
dongzhang
eace9b7b00 add MemoryZero Arm64 code and UT 2014-07-08 12:52:48 +08:00
huili2
9a68572240 Merge pull request #1092 from dongzha/AddRecARM64CodeAndUT
Add ARM64 Code and UnitTest for reconstruction
2014-07-08 10:31:22 +08:00
ruil2
b52aff7225 bEnableSceneChangeDetect should be true for screen content 2014-07-07 16:53:49 +08:00
dongzhang
d88b83df44 Add ARM64 Code and UnitTest for reconstruction 2014-07-07 15:31:46 +08:00
ruil2
9015bd4049 fix typo 2014-07-05 17:08:38 +08:00
ruil2
21e3e81536 add some protection on rc module 2014-07-05 17:04:14 +08:00
JuannyWang
24cd5afa33 disable delay skip if maxbr=0 which means no maxbr setting from upper layer 2014-07-04 18:25:55 +08:00
ruil2
0fa845ed27 Merge pull request #1081 from sijchen/scc_param_valid
avoid using AQ which is untuned for screen route
2014-07-04 16:35:02 +08:00
huili2
ef0c3e2b91 Merge pull request #1075 from HaiboZhu/Debug_InvHadamard_Chroma
Debug for chroma inv-hadamard dequant mismatch error
2014-07-04 13:49:36 +08:00
sijchen
10804f316e avoid using AQ which is untuned for screen route 2014-07-04 11:02:24 +08:00
ruil2
9506f71b43 Merge pull request #1060 from mstorsjo/loopfilter-multithreading
Only force iLoopFilterDisableIdc to 2 if multithreading has been enabled
2014-07-04 10:43:41 +08:00
lyao2
21deaddc48 refactor code to eliminate potential div by 0 2014-07-03 15:01:48 +08:00
Haibo Zhu
e0ba5cd9f3 Debug for Chroma InvHadamard Dequant error 2014-07-02 23:36:44 -07:00
Martin Storsjö
6e40991cc7 Only force iLoopFilterDisableIdc to 2 if multithreading has been enabled
Previously these lines were within an #ifdef MT_ENABLED block,
but now that threading is enabled by default, we should probably
only do it if threading has been requested.
2014-07-03 08:38:23 +03:00
ruil2
2c250179dc Merge pull request #1071 from ganyangbbl/typo_bug
fix a typo issue in ParamValidation
2014-07-03 11:23:33 +08:00
ganyang
01559a684e fix a typo issue in ParamValidation 2014-07-03 11:02:09 +08:00
Sijia Chen
49fb042f21 add bgd fix to camera route as well to avoid visible artifact when using fake content in video 2014-07-03 11:01:02 +08:00
Sijia Chen
0a3db78bb9 fix BGD under screen and remove a build warning in ME 2014-07-02 16:50:59 +08:00
ruil2
3ef97dc0c9 Merge pull request #1057 from sijchen/scc_md_merge11
[Encoder] Completing and bug-fixing the screen content MD/ME process
2014-07-02 14:02:51 +08:00
ruil2
bdf9f6b4ff Merge pull request #1043 from mstorsjo/avoid-globals
Get rid of global non-readonly variables within the library
2014-07-02 14:01:35 +08:00
Sijia Chen
a964ae8cfa completing and bug-fixing the screen content MD/ME process 2014-07-02 10:33:47 +08:00
huili2
05cd0e8ada fix when output enabled in encoder 2014-07-01 02:13:03 -07:00
Martin Storsjö
e5609bc0fe Remove global function pointers in the encoder MC code
This is similar to how this is done in the decoder part of MC.
2014-07-01 12:01:48 +03:00
Martin Storsjö
130c682c29 Avoid intermediate function pointers for some function pointers that are never overridden
These are only used in the leaf C versions of functions anyway.
2014-07-01 12:01:48 +03:00
Martin Storsjö
586d0ba3dc Reduce code duplication 2014-07-01 12:01:48 +03:00
Martin Storsjö
00f28cc185 Avoid using static arrays for keeping track of frame dumping state 2014-07-01 12:01:48 +03:00
Martin Storsjö
1888fba336 Move pfCavlcParamCal into the function pointer list
This avoids using a global variable for this function.
2014-07-01 12:01:48 +03:00
Martin Storsjö
d84d739ec8 Hardwire functions set up in WelsInitFillingPredFuncs
These are never overridden by any assembler optimized versions.
(The assembler optimized intra predictor functions may use such
optimized code internally anyway.)

This avoids global writable data.
2014-07-01 12:00:32 +03:00
Martin Storsjö
9ef09861cf Don't use and modify function pointers in global static tables
Make the tables const and keep a copy of the table in the
SWelsFuncPtrList struct instead, where any modifications to
the table only touch that individual instance of the codec.
2014-07-01 12:00:14 +03:00
huili2
5b004048ed Merge pull request #1051 from ruil2/overflow_check
check each WriteBlockResidualCavlc to avoid overflow
2014-07-01 15:25:59 +08:00
huili2
4486e328d4 Merge pull request #1050 from ruil2/update_param
fix error judgment on return value in pauseframe
2014-07-01 15:25:06 +08:00
ruil2
32ce337eb0 check each WriteBlockResidualCavlc to avoid overflow 2014-07-01 14:50:50 +08:00
ruil2
ffb38322d0 fix error judgment on return value in pauseframe 2014-07-01 14:36:46 +08:00
Martin Storsjö
4af37a7d21 Move common tables and definitions into the common library 2014-06-30 09:03:10 +03:00
zhilwang
2b038fa73b Merge pull request #1037 from mstorsjo/unify-align-macros
Unify macros for alignment
2014-06-30 10:09:05 +08:00
zhilwang
fd132aba0f Merge pull request #1033 from mstorsjo/aarch64-typofix
Fix a typo in arm64 assembly macros, ARCH64 -> AARCH64
2014-06-30 10:02:41 +08:00
zhilwang
0549fb99eb Merge pull request #1034 from mstorsjo/aarch64-combined-satd-sad
Prefer modes in the same order as the reference, in the aarch64 combined intra satd/sad
2014-06-30 10:01:09 +08:00
Martin Storsjö
f300476468 Use the ALIGNED_DECLARE macro instead of __align16 2014-06-29 00:36:02 +03:00
Martin Storsjö
12b6244129 Use the common syntax of using ALIGNED_DECLARE to declare arrays
This was the only place where ALIGNED_DECLARE_MATRIX was used.
2014-06-29 00:35:25 +03:00
huili2
d8e78fee09 Merge pull request #1032 from mstorsjo/typofix
Fix a typo, Chorma -> Chroma
2014-06-28 11:08:14 +08:00
huili2
c8b4ef2257 Merge pull request #1029 from ruil2/update_param
fix update parameters
2014-06-28 11:05:54 +08:00
Martin Storsjö
cf6ae23413 Prefer modes in the same order as the reference, in the aarch64 combined intra satd/sad
This fixes encoding tests on aarch64.
2014-06-27 23:54:03 +03:00
Martin Storsjö
b406f4471a Fix a typo in arm64 assembly macros, ARCH64 -> AARCH64 2014-06-27 23:52:20 +03:00
Martin Storsjö
a474e00d15 Fix a typo, Chorma -> Chroma 2014-06-27 23:50:14 +03:00
Martin Storsjö
e16487d416 Clear the executable bit from new assembly source files 2014-06-27 18:45:13 +03:00
ruil2
863ec74f0d fix update parameters 2014-06-27 18:09:40 +08:00
Martin Storsjö
40e74e43d6 Fix building intra_pred_sad_3_opt_aarch64_neon.S with gnu binutils
One macro argument was left in the apple syntax.
2014-06-27 12:54:25 +03:00
dongzha
300bbfb67b Merge pull request #1014 from zhilwang/arm64-intraSad
Add arm64 neon code for intraSad&Satd
2014-06-27 15:55:33 +08:00
zhiliang wang
e389cf4348 refine file name. 2014-06-27 14:11:04 +08:00
huili2
775b507941 Merge pull request #1024 from ruil2/trace_fix
change void* to explicit type definition
2014-06-27 13:14:41 +08:00
ruil2
1ffcd36c70 change void* to explicit type definition 2014-06-27 11:34:47 +08:00
ruil2
fa138e866a trace fix 2014-06-27 10:52:03 +08:00
ruil2
2626ed2181 only supports fixed LTR_NUM for screen and camera 2014-06-27 09:25:57 +08:00
ruil2
e138ee5297 Merge pull request #1020 from mstorsjo/simplify-64bit-suffix
Use the ULL prefix for 64 bit constants on MSVC as well
2014-06-27 09:04:39 +08:00