Ari Koivula
81b51f17d8
Reimplement intra_build_reference_border to support NxN.
...
New implementation uses precalculated tables to look up number of reference
pixels available in coded CUs. Otherwise it works just like the previous
version.
- NxN mostly works. Prediction appears to be almost correct but there is a
slight error in the exact values, probably related to filtering.
2014-01-29 14:22:30 +02:00
Ari Koivula
71a996f50f
Work on reconstruction and searching.
...
- Set part-size for Inter.
- Change to Intra Only mode for testing.
- Many small changes here and there. Should have been separate commits probably, but too late.
- Disable SAO and deblocking to be able to see problems with reconstruction better.
2014-01-29 14:18:01 +02:00
Ari Koivula
5e2f22f447
Try to fix intra prediction mode coding for NxN.
...
- Adjust predictor list to take modes from PUs in addition to 2Nx2N CUs.
- Change intra_get_dir_luma_predictor to take PU index instead of CU index.
- Comment prediction encoding now that I've had to look it up.
2014-01-29 13:52:17 +02:00
Marko Viitanen
bb98c709e8
Added more information to README.md
2014-01-29 10:51:44 +02:00
Ari Koivula
238cabaff9
Add a README.
2014-01-28 17:38:04 +02:00
Marko Viitanen
3a95d49484
Removed __cdecl from asm header files and corrected parameters printed by the program
2014-01-28 16:40:38 +02:00
Marko Viitanen
23427a72cf
Merge branch 'rdoq'
2014-01-28 12:29:21 +02:00
Marko Viitanen
7a21b9b769
Changed lambda calculation to fix RDOQ issues, RDOQ is now in use by default.
2014-01-28 12:14:43 +02:00
Marko Viitanen
5e759b8e1d
Fix for RDOQ, added missing cost function
2014-01-28 11:01:46 +02:00
Marko Viitanen
13927f777f
Fix for Makefile to allow 32bit compiling of assembly test
2014-01-27 15:34:02 +02:00
Marko Viitanen
cbd4d16f25
Added commandline configuration of QP
2014-01-27 15:02:07 +02:00
Marko Viitanen
0cdd9d032f
Added GPLv2 headers to rdo.c/.h
2014-01-27 14:39:56 +02:00
Marko Viitanen
83a1e9a555
Added rdo to Makefile
2014-01-27 14:36:10 +02:00
Marko Viitanen
80b3b4a6e0
Added missing lambda parameter to some RDOQ costs and moved go_rice arrays from header file
2014-01-27 14:34:58 +02:00
Marko Viitanen
144d5293b1
Implemented RDOQ function get_rate_last()
2014-01-27 14:34:58 +02:00
Marko Viitanen
f447b92755
Added error scaling list calculation from HM 12.0
2014-01-27 14:34:58 +02:00
Marko Viitanen
9f70bf74f0
Imported and converted RDOQ from HM 12.0, NOT WORKING YET
2014-01-27 14:34:58 +02:00
Marko Viitanen
de6faf623d
Imported entropy bits array from HM and added macro to access it
2014-01-27 14:34:57 +02:00
Marko Viitanen
f5c2292e06
Added simple Makefile and header files needed to compile on linux
2014-01-27 14:34:09 +02:00
Ari Koivula
343cc7f272
Move yasm visual studio files to build.
2014-01-24 15:51:41 +02:00
Ari Koivula
061c046477
Change yasm settings use vyasm.exe from PATH.
2014-01-24 15:39:47 +02:00
Ari Koivula
52c1a21b89
Add CREDITS file.
2014-01-24 12:58:04 +02:00
Ari Koivula
77339efa57
Add COPYING file and add boilerplate for copyright and GPLv2 to every file.
2014-01-24 12:48:48 +02:00
Ari Koivula
c889e20e4c
Fix debug to work for intra and show CU part_mode.
2014-01-15 18:15:42 +02:00
Ari Koivula
7a7110ff7a
Move chroma transformation and reconstruction to it's own functions.
...
Just a simple copy and paste with minimal changes.
2014-01-15 16:55:05 +02:00
Ari Koivula
35ba873abc
Move transform unit coding to its own function.
2014-01-14 18:47:02 +02:00
Ari Koivula
a38a5fd647
Improve transform tree coding.
...
- Clean up code and comment.
- Change terminology to match H.265 specification where possible.
- Move transform splitting for depth==0 out of the coding part. It's not
possible to do it here anyway because intra reconstruction is different
if the transform is split.
- Add checking for transform hierarchy depth when coding split flag.
- Fixes bug with cu_data.tr_depth being set. The CU struct was being reused
for inter coded CUs, which did not initialize the tr_depth.
2014-01-14 18:39:24 +02:00
Ari Koivula
d5745aa31a
Fix encode_transform_tree to handle 4x4 luma.
...
- Add room to cu_data.coeff_top_yuv arrays for the 4x4 PUs data. Will probably have to do the same to other coeff flags. The flags could also probably be combined as they are a bit redundant.
2014-01-13 18:37:47 +02:00
Ari Koivula
73fdc35c4f
Try to implement 4x4 luma transform coding.
...
- Doesn't work yet so it's disabled.
- Change encode_transform_coeff to accept PU (Prediction Unit) coordinates
instead of CU coordinates because CUs are 8x8.
2014-01-09 19:30:54 +02:00
Ari Koivula
c3f4a628af
Try to fix stuff related to NxN intra transform splitting.
2014-01-03 16:47:27 +02:00
Ari Koivula
b897562ef8
Enable NxN.
2014-01-03 16:46:02 +02:00
Ari Koivula
00ece94613
Change the default encoder reconstruction file name.
...
YUV Toolkit parses the file name for frame size.
2014-01-03 13:03:46 +02:00
Ari Koivula
1b7e44c4d4
Add NxN to intra reconstruction.
2014-01-03 13:01:54 +02:00
Ari Koivula
4c84a35391
Add part size to intra_set_block_mode.
2014-01-03 13:01:13 +02:00
Ari Koivula
d9cdab052b
Add NxN mode selection to search_intra.
2014-01-03 10:21:59 +02:00
Ari Koivula
5083e6db10
Change cu_info.intra into an array to support NxN split.
2014-01-02 15:13:20 +02:00
Ari Koivula
80cd172f75
Clean up SAO encoding.
...
- Fixes a bug when pic->slice_sao_chroma == false.
2014-01-02 15:10:07 +02:00
Ari Koivula
f1d8aae5b4
Clean up SAO encoding.
...
- Fixes a bug when pic->slice_sao_chroma == false.
2013-12-19 13:54:32 +02:00
Ari Koivula
8e2a7ef6ed
Start implementing NxN prediction coding.
2013-12-18 14:55:05 +02:00
Ari Koivula
553bcdc324
Rewrite intra prediction mode coding to be simpler.
...
Should work exactly the same, but with the prediction mode selection done
separately from the binarization it's easier to see that the implementation
is correct.
2013-12-18 14:16:04 +02:00
Ari Koivula
cf0d314d03
Clean up prediction mode coding.
...
This was done as preparation for adding NxN intra.
- Monochrome coding was removed as it's not part of the standard.
- No other functional changes.
2013-12-18 11:25:44 +02:00
Ari Koivula
8f610176d8
Add NxN part_mode coding.
2013-12-18 10:50:24 +02:00
Ari Koivula
ee92fc341c
Move intra and inter search into their own functions.
2013-12-17 11:32:28 +02:00
Ari Koivula
80064d3834
Streamline SAO to have less duplicated code.
2013-11-14 15:38:19 +02:00
Ari Koivula
21678930b1
Add an alternate way of accessing pixel buffers.
2013-11-14 15:38:10 +02:00
Marko Viitanen
06ab158c55
Enable using intra blocks in inter frame by default
2013-11-13 08:46:32 +02:00
Marko Viitanen
60cb42735e
Fixed issues on compiling the encoder on linux
2013-11-13 08:46:31 +02:00
Marko Viitanen
661ed343e6
Fixed deblocking filter when using intra blocks in inter slice
2013-11-13 08:46:31 +02:00
Ari Koivula
61232b466c
Move types to more appropriate places.
2013-11-12 12:44:58 +02:00
Ari Koivula
181a044b86
Merge branch 'sao'
2013-11-12 11:59:04 +02:00