Marko Viitanen
ded4c18bf6
Fixed merge candidate duplicate removal and implemented skip mode selection
2013-10-25 15:39:19 +03:00
Ari Koivula
e9819cbb5e
Fix coding of sao chroma type idx.
2013-10-25 10:51:11 +03:00
Ari Koivula
3244c98b29
Fix sao cabac contexts.
...
According to HM implementation, sao luma and chroma use the same contexts.
2013-10-25 10:51:10 +03:00
Ari Koivula
291be9507b
Start adding Sample Adaptive Offset capability.
2013-10-25 10:39:42 +03:00
Marko Viitanen
e1f0274b51
Merge mode working on blocks > 8x8
2013-10-23 15:14:26 +03:00
Marko Viitanen
8883fb27aa
Implemented skip/merge mode checking, disabled for now because it's not working
2013-10-22 17:40:55 +03:00
Marko Viitanen
bb9d8ee9dd
Fixed motion vector difference calculation
2013-10-22 16:53:18 +03:00
Marko Viitanen
b20b583d9b
Moved all residual/coeff functionality to encode_block_residual()
2013-10-22 16:27:50 +03:00
Marko Viitanen
0cce17453c
Simplified chroma-coeff-coded-flag derivation on transform split
2013-10-22 13:04:58 +03:00
Marko Viitanen
4cec2963ac
Fixed transform splitting to allow 64x64 inter blocks
2013-10-22 12:33:11 +03:00
Marko Viitanen
bcb900371f
Added top_coeff array to cu_info and implemented derivation logic
2013-10-22 12:09:18 +03:00
Marko Viitanen
2efcc12678
Fixed DC-filtering stride
2013-10-18 17:42:16 +03:00
Marko Viitanen
bc9ddb64e5
Fixed luma reconstruction overflow/underflow
2013-10-18 16:54:11 +03:00
Marko Viitanen
927155de2b
Set correct block residual bit -> fixes deblocking
2013-10-18 16:23:15 +03:00
Marko Viitanen
c44f0ff540
Refactoring: all int16_t pixel info in intra to pixel typedef
2013-10-18 16:19:17 +03:00
Marko Viitanen
dda53f48a7
Refactoring encoder transform/quant related functions, cu_info and picture
2013-10-18 11:41:52 +03:00
Marko Viitanen
db266e74ff
Added merge mode selection (NOT WORKING!) and a function to get candidates
2013-10-18 11:39:32 +03:00
Marko Viitanen
96a0f03298
Refactoring encoder.c in preparation for adding merge-mode
2013-10-18 11:39:31 +03:00
Ari Koivula
202aec69f2
Change more 8-bit pixels to pixel typedef.
2013-10-15 16:02:06 +03:00
Ari Koivula
b8dd664026
Move all 8-bit pixels into new pixel typedef.
2013-10-15 14:36:30 +03:00
Marko Viitanen
7a53bddead
Fixed inter deblocking by setting correct CU residual info on transform split
2013-10-10 17:47:08 +03:00
Marko Viitanen
1b2b3c19bb
Added option to enable residual coding skip when residual under threshold
2013-10-10 16:31:00 +03:00
Marko Viitanen
3d8e14f58b
Fixed dequantization of inter-blocks
2013-10-10 15:22:25 +03:00
Marko Viitanen
bc815e8cd2
Fixed scan_idx selection on quantization
2013-10-10 14:59:20 +03:00
Marko Viitanen
82eca02ec8
Fixed deblocking condition on residual and deblocking disabling
2013-10-09 17:39:26 +03:00
Marko Viitanen
c9cf75775b
Deblocking fix: store block residual status and use it in deblocking
2013-10-09 17:39:23 +03:00
Marko Viitanen
2b5159d8ab
Bugfix: residual coding almost working
2013-10-09 17:39:07 +03:00
Marko Viitanen
bcd29cba5c
Refactoring: residual related variable renaming and code styling
2013-10-09 11:01:16 +03:00
Marko Viitanen
ef0bea32e1
Merge branch 'master' into inter_residual
...
Conflicts:
src/encoder.c
2013-10-08 15:04:31 +03:00
Marko Viitanen
ac0db59408
Renamed variable to fix a typo
2013-10-08 14:49:02 +03:00
Marko Viitanen
2d38612e9a
Inter deblocking changes, not working!
2013-10-02 18:09:22 +03:00
Marko Viitanen
192b077dba
Modified residual coding to allow inter block data (BUGGY!)
2013-10-01 10:54:10 +03:00
Ari Koivula
9ad8bf2915
Refactor: encoder.c full cleanup.
2013-09-28 23:31:26 +03:00
Ari Koivula
aee54cdcfa
Refactor: encoder.c fix []
2013-09-28 23:29:26 +03:00
Ari Koivula
36119985b5
Refactor: encoder.c variable renaming.
2013-09-28 20:27:36 +03:00
Ari Koivula
7e6aa31c6f
Refactor: encoder.h renaming and cleanup.
2013-09-28 20:20:15 +03:00
Ari Koivula
04f1dde8a1
Fix overwriting of motion vectors during search.
...
- Makes everything besides search to only use the bottom most layer of the
picture.cu_array structure.
2013-09-25 16:21:51 +03:00
Marko Viitanen
91ff438238
Disabled deblocking filter and changed encoder to use P-slices after the first
2013-09-25 15:52:55 +03:00
Ari Koivula
e5cced6b4a
Move _CRT_SECURE_NO_WARNINGS to property sheet.
2013-09-24 21:31:48 +03:00
Ari Koivula
6dd049a238
Refactor: picture.h remaining renames.
2013-09-20 12:49:44 +03:00
Ari Koivula
8d5dd67f76
Refactor: Change name of CU_info.CU to cu_array.
2013-09-20 12:47:53 +03:00
Ari Koivula
d09e2bd214
Refactor: picture.c/.h full cleanup.
2013-09-20 11:15:18 +03:00
Ari Koivula
f750c24948
Refactor: nal.c/.h full cleanup.
...
- Move constant from the signature of calc_checksum into a macro.
2013-09-19 16:03:02 +03:00
Ari Koivula
adf619f9dd
Refactor: Update file comments.
2013-09-18 18:01:20 +03:00
Ari Koivula
de447ee18b
Refactoring: intra.h renaming.
2013-09-18 15:13:45 +03:00
Marko Viitanen
a018567854
Refactor: picture.h renaming.
2013-09-18 14:58:46 +03:00
Marko Viitanen
0bf4f65a55
Refactor: encoder.h renaming
2013-09-18 14:49:01 +03:00
Marko Viitanen
0a6c38a8e9
Refactor: context.h renaming
2013-09-18 14:33:47 +03:00
Ari Koivula
81cb6264ab
Refactor: cabac.h renaming.
2013-09-18 14:06:45 +03:00
Ari Koivula
44a5498e30
Reorder includes to avoid hidden dependencies.
...
- Includes of global.h have been moved to headers because most headers
require stdint.h.
- Includes required by the header have been moved from the .c to the header.
- Spaces have been added between includes to distinguish classes of includes.
2013-09-18 12:29:23 +03:00
Marko Viitanen
c87d3870ce
Fixed inter_get_mv_cand and added new define ENABLE_TEMPORAL_MVP
2013-09-18 10:15:05 +03:00
Marko Viitanen
3ff3318980
Fixed bug(s) in inter_recon()
2013-09-16 17:15:54 +03:00
Marko Viitanen
6a4011a90a
Added motion vector candidate selector
2013-09-16 16:51:13 +03:00
Marko Viitanen
8e776366dc
Added (basic) motion vector prediction
2013-09-16 16:37:24 +03:00
Marko Viitanen
182381a23c
Merge branch 'fador' of Z:/Work/HEVC_encoder
...
Conflicts:
src/encoder.c
2013-09-12 19:15:05 +03:00
Marko Viitanen
beef362624
Implemented inter reconstruction inter_recon()
2013-09-12 18:50:11 +03:00
Marko Viitanen
10485ab51a
One reference picture is now kept on encoder->ref list
2013-09-12 17:38:08 +03:00
Marko Viitanen
81f584742c
Added picture_init() and changed cur_pic to pointer in encoder_input struct
...
Also contains few inter coding changes
2013-09-12 16:28:40 +03:00
Marko Viitanen
8d44f29d89
Fixed temporal_id to be always zero
2013-09-12 15:45:42 +03:00
Marko Viitanen
b7c074f8c3
Fixed temporal_id to be always zero
2013-09-12 15:26:03 +03:00
Ari Koivula
7da00bc51a
Merge branch 'funny-sizes'
2013-09-11 20:10:28 +03:00
Ari Koivula
116d5b14be
Fix handling of non factor of 8 resolution.
...
- Reimplement bit filling routines to copy bits form the edge, instead of
using a constant.
- Add real_width and real_height to encoder_input and store the actual input
resolution in them instead of in encoder_input.width and height. This fixed
a crash. It's also clearer.
- Correctly scale conf_win offsets to be in terms of chroma.
2013-09-11 20:02:38 +03:00
Marko Viitanen
6ede4c60df
Merge branch 'master' of Z:/Work/HEVC_encoder into fador
...
Conflicts:
src/context.c
src/search.c
2013-09-11 14:38:23 +03:00
Ari Koivula
7cd57087da
Fix string constant.
2013-09-11 00:31:13 +03:00
Ari Koivula
850e8b2586
Add filling out the blanks for reading non multiple of 8 resolutions.
2013-09-09 22:19:16 +03:00
Ari Koivula
2426a4bc1f
Move file reading to encoder module.
2013-09-09 21:19:49 +03:00
Ari Koivula
2b9e2485db
Add handling of resolutions that are not multiples of the smallest block size.
...
- When resolution is not a multiple of 8, increase the size of the picture.
- Add conformance window information to the SPS NAL. Thested to work in all
dimensions with YUVplayer.
2013-09-09 20:43:14 +03:00
Marko Viitanen
d6e51374e3
Added new context for root cbf, fixed a bug in MVD coding
2013-09-09 17:37:49 +03:00
Ari Koivula
5acb280407
Change "ToDo" to "TODO".
...
Visual Studio recognized only TODO.
2013-09-09 14:22:53 +03:00
Marko Viitanen
dce892dce8
Merge branch 'master' of Z:/Work/HEVC_encoder into fador
...
Conflicts:
.gitignore
2013-09-09 12:11:09 +03:00
Ari Koivula
2b94b9db4c
Rename NAL type names to the ones used in the standard.
2013-09-09 11:04:09 +03:00
Ari Koivula
2b4f98e83d
Add checksum SEI packages to the bit-stream.
2013-09-06 16:36:28 +03:00
Marko Viitanen
0f4a720206
Changed parameter from cabac_ctx** to cabac_ctx* in cabac_writeUnaryMaxSymbol()
2013-09-05 15:04:16 +03:00
Marko Viitanen
0af55b8676
P-Slice testing, outputs P-slice as the second output slice
2013-09-04 17:47:54 +03:00
Marko Viitanen
cb2eecf002
Defined more NAL typed and added better checking for NAL type in slice_header
2013-09-03 17:55:36 +03:00
Marko Viitanen
764cf60971
Changed output slices to TRAIL_R (0x01) from TRAIL_N (0x00)
2013-09-03 17:22:54 +03:00
Marko Viitanen
e4a8aaa8eb
Added and fixed some functionality to support inter frames
2013-09-02 09:53:36 +03:00
Marko Viitanen
b3a724afb0
Added codes for inter coding
2013-08-02 16:35:30 +03:00
Marko Viitanen
06fd1d6fa9
Fix for sign bit hiding, not working yet
2013-06-12 15:41:57 +03:00
Marko Viitanen
d32f06b4e6
Fixed chroma QP scaling on filtering, this version produces bit-perfect output
2013-06-03 14:22:50 +03:00
Marko Viitanen
4c1e015c5f
Work on Deblocking filter
2013-05-22 17:27:15 +03:00
Marko Viitanen
fd2e25727c
Fixed transform split bug by moving intra prediction to the transform-quant loop
2013-05-21 15:57:22 +03:00
Marko Viitanen
2a70231c06
Fixed Chroma 4x4
2013-05-20 17:26:57 +03:00
Marko Viitanen
1b007efe43
Fixed bug with 8x8 split_flag coding. 4x4 chroma still produces wrong data.
2013-05-16 15:27:54 +03:00
Marko Viitanen
3942bbda51
Added short-term ref list parameters to allow HM10.0 to decode it properly
2013-05-07 10:36:04 +03:00
Marko Viitanen
8054b8ccb4
Bugfix for coeff scan order == 2 (with 8x8 CU's)
2013-04-25 16:29:44 +03:00
Marko Viitanen
9011478dba
New contexts and other inter code
2013-04-24 16:49:47 +03:00
Marko Viitanen
003093b1ef
Added inter.c/.h
2013-04-24 10:35:27 +03:00
Marko Viitanen
3f009e6421
Added skipflag and predflag coding when not in I-slice
2013-04-19 10:56:40 +03:00
Marko Viitanen
e8f04b32f1
Bug fixes, this version produces bit-perfect output
2013-04-18 14:37:56 +03:00
Marko Viitanen
58ba4b306c
Fixes for search-tree, almost working, some visible errors
2013-04-18 14:04:15 +03:00
Marko Viitanen
ae506ceaf5
Moved all the intra-search functionalities to search-tree, does not work completely.
2013-04-17 17:08:52 +03:00
Marko Viitanen
2aa465ab40
Added basic draft of the search functionality
2013-04-16 15:10:43 +03:00
Marko Viitanen
a737e8660c
New search.c/.h files and changed department name on all files
2013-04-16 11:23:03 +03:00
Marko Viitanen
01c7f267d7
Added CPUID fetch assembly functions (x86 and x64)
2013-04-10 16:55:31 +03:00
Marko Viitanen
560917a532
Fixed 8x8 luma encoding and some of 4x4 chroma by disabling modes using different scanning order and changing 4x4 DST to DCT in chroma
2013-04-09 15:59:12 +03:00
Marko Viitanen
f85db78fe2
Fixed PSNR calculation
2013-04-05 16:27:18 +03:00
Marko Viitanen
9888eaf9a4
Added and fixed x64 build
2013-04-05 14:55:58 +03:00
Marko Viitanen
d5ab9f0437
Fixed partsize context model initialization
2013-04-04 15:08:28 +03:00
Marko Viitanen
a059965855
Fixed DC-prediction (filtering)
2013-04-03 13:56:07 +03:00