summaryrefslogtreecommitdiffstats
path: root/encoder
Commit message (Collapse)AuthorAgeFilesLines
* DO NOT MERGE - Merge ab/7272582Xin Li2021-06-179-75/+95
|\ | | | | | | | | | | Bug: 190855093 Merged-In: I598c50f727b4d62f19523cbb008482e27de5e3cc Change-Id: I90608242ee02771f107a9bb32c865f37bdf38c0f
| * encoder: Update chroma modules to avoid reading an extra byte am: 45fb34a5a5temp_ab_7272582Neelkamal Semwal2021-03-319-75/+95
| |\ | | | | | | | | | | | | | | | Original change: https://googleplex-android-review.googlesource.com/c/platform/external/libhevc/+/14008800 Change-Id: Id6ad19a50cd49948c2baee9e4ea9d00536fecdb5
| | * encoder: Update chroma modules to avoid reading an extra byteNeelkamal Semwal2021-03-279-75/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When processing V plane, an extra byte was being read in some of the neon modules. Modules are now updated to avoid that extra byte read. Bug: 177433559 Bug: 183012467 Test: poc in bug Test: atest CtsMediaTestCases:VideoEncoderTest Test: atest CtsMediaV2TestCases:CodecEncoderTest Test: atest VtsHalMediaC2V1_0TargetVideoEncTest Change-Id: I598c50f727b4d62f19523cbb008482e27de5e3cc
| | * libhevcenc: Add support for force idr pictureAkshata Jadhav2020-03-2411-230/+228
| | | | | | | | | | | | | | | | | | Test: hevcenc -c vid_enc_cfg.txt Bug: 135515629 Change-Id: I055dade512277a0bb605f253328cf5ac8af2a64f
* | | encoder: Fix entropy sync mode for height <= 64Aayush Soni2021-03-151-0/+7
|/ / | | | | | | | | | | | | | | | | Test: POC in bug descriptions Test: hevcenc -c vid_enc_cfg.txt --enable_entropy_sync 1 Bug: 177750322 Change-Id: I761e3e5e375d02e804f46b63ac308483f44bd976
* | encoder: Do not use memcmp for volatile dataHarish Mahendrakar2021-01-151-27/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memcmp was used in a loop to compare data that was being updated by other threads. memcmp doesn't support comparing volatile data. This is now replaced by a function which compares the volatile data to zero Bug: 168427831 Bug: 177354159 Bug: 177483127 Test: atest VtsHalMediaC2V1_0TargetVideoEncTest Test: atest CtsMediaV2TestCases Change-Id: I00c5a9ac3e5ae792337017dbbb89d3947687e1e9
* | encoder: Fix divide by zero in all intra encoding caseHarish Mahendrakar2020-11-201-3/+4
| | | | | | | | | | | | | | | | | | Bug: 173312145 Test: poc in bug Test: atest android.media.cts.HeifWriterTest Test: atest android.mediav2.cts Change-Id: I469c6864ffce5f0019f6be49ff4f3f0a58f04ec1
* | libhevcenc: fix bitrate overshoot when lookahead is disabledRam Mohan2020-09-182-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When rc lookahead is disabled, next frame encode context becomes NULL. This context is used to signal end of gop. As this is NULL rc does not know the end of gop causing over consumption of bits. Rely on intraframe interval to resolve this. Also, as there is no scene change detection, default all pics to single scene. Bug: 140313463 Bug: 168628473 Bug: 166085628 Test: atest android.media.cts.VideoCodecTest Change-Id: I6dcf9fb52d3aa18935e0b8d9ec9c193b15d30668
* | libhevcenc: Release async control command buffer am: 4a0581dafa am: 72305e8d1dAkshata Jadhav2020-06-053-1/+8
|\ \ | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/external/libhevc/+/1323871 Change-Id: Icc06c5ffe94a8a4bbe9c230545b7a1125293b428
| * \ libhevcenc: Release async control command buffer am: 4a0581dafaAkshata Jadhav2020-06-053-1/+8
| |\ \ | | | | | | | | | | | | | | | | | | | | Original change: https://android-review.googlesource.com/c/platform/external/libhevc/+/1323871 Change-Id: I1374dc16eda67f7e93a4d16cf7ab707c956a80aa
| | * | libhevcenc: Release async control command bufferAkshata Jadhav2020-06-043-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Async command control buffer is not being released after use. This is corrected. Also ensured dynamic bitrate doesn't go below min supported bitrate Test: hevcenc -c vid_enc_cfg.txt Bug: 147574800 Change-Id: I0e31092bb9c51ce5d22798aab6004d1654ff985e
| * | | Merge "libhevcenc: Add support for force idr picture" am: 3d654001c4 am: ↵Treehugger Robot2020-03-2411-230/+228
| |\| | | | | | | | | | | | | | | | | | | | | | 9aaf323625 Change-Id: Ieb0047dc8d7bb6ea3055a7c8f43c4a64f885dd63
| * | | Merge "libhevc: Fix asan issue in intra pred mode assembly function" into ↵TreeHugger Robot2020-03-201-6/+18
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | qt-qpr1-dev am: 06714eb8e9 Change-Id: Ib5fc2812400ca7f9cf835033ebdd09bf94c7c09c
* | \ \ \ Merge "libhevcenc: Add support for force idr picture" am: 3d654001c4 am: ↵Treehugger Robot2020-03-2411-230/+228
|\ \ \ \ \ | | |_|/ / | |/| | / | |_|_|/ |/| | | | | | | 9aaf323625 Change-Id: Iaa69281191172d8bea92010733c2f87a3b43e139
| * | | libhevcenc: Add support for force idr pictureAkshata Jadhav2020-03-1311-230/+228
| |/ / | | | | | | | | | | | | | | | Test: hevcenc -c vid_enc_cfg.txt Bug: 135515629 Change-Id: I055dade512277a0bb605f253328cf5ac8af2a64f
* | | Merge "libhevc: Fix asan issue in intra pred mode assembly function" into ↵TreeHugger Robot2020-03-201-6/+18
|\ \ \ | | |/ | |/| | | | | | | | | | qt-qpr1-dev am: 06714eb8e9 Change-Id: Ib5da48774a515af147c7dce1503338b5e4fe4cb5
| * | libhevc: Fix asan issue in intra pred mode assembly functionAkshata Jadhav2020-02-111-6/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chroma intra pred 3_to_9 mode av8 assembly loads 16 bytes ahead of base address of intermediate buffer but doesnt use it. Allocate this additional size and offset the same to avoid access violation Test: hevcenc -c vid_enc_cfg.txt --input selfie_1280_720.yuv --src_width 512 --src_height 512 Bug: 144595488 Change-Id: I1094cf4593ba379354f567876288e2d9b9fae83d
* | | Merge "libhevcenc: pre enc intra cleanup" am: 3fac63c9b7 am: eb0e8325aeRay Essick2019-12-0515-2829/+966
|\ \ \ | | |/ | |/| | | | | | | | | | am: 69dd91e2b1 Change-Id: Ia0d68453a15cd86d38938a2b50f024147f4b8850
| * | Merge "libhevcenc: pre enc intra cleanup"Ray Essick2019-12-0515-2829/+966
| |\ \
| | * | libhevcenc: pre enc intra cleanupRam Mohan2019-11-0815-2829/+966
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | code associated with pre enc intra processing is cleaned up. Unreachable code and debug code is removed. Structure members that are unused or used for debugging purpose are removed. Control code is simplified. This helps in memory footprint and object size foot print. Test: hevcenc -c vid_enc_cfg.txt Bug: 139400699 Change-Id: I7697b05ea1d470d93bdb9cb14304cb0bfefd8054
* | | | Merge "libhevcenc: Move deblk, sao and subpel plane generation into nctb ↵Akshata Jadhav2019-12-014-356/+368
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | loop" am: f74c2f62dd am: 7b50e40026 am: 5a302f5f2b Change-Id: Ibad38aaa7604683d6467c37bb2f19cc467ecd780
| * | | Merge "libhevcenc: Move deblk, sao and subpel plane generation into nctb loop"Treehugger Robot2019-12-014-356/+368
| |\ \ \
| | * | | libhevcenc: Move deblk, sao and subpel plane generation into nctb loopAkshata Jadhav2019-10-114-356/+368
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently deblocking, sao and subpel plane generation are happening for every CTB serially. This change enables deblocking to be finished for the entire row first. Then performs SAO for the entire row and finally performs subpel plane generation for the entire row. This change does not have any effect on the end bitstream but is expected to give performance gains on devices with low instruction cache. On arm platforms, it is noticed that for P5 preset, performance is improved by 15%. Test: hevcenc -c vid_enc_cfg.txt Bug: 135510351 Change-Id: I6d09e6cc1d36e967a9b3dd3e68f75bdd0b476a1c
* | | | | Merge "libhevcenc: default initialize enc ctxt at the start" am: e6689ed5b0 ↵Ram Mohan2019-11-134-226/+69
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: 53dfefdaf7 am: c789b735f0 Change-Id: I8414616e8e3d5df59472d7d645f9a9c003a4c71d
| * | | | Merge "libhevcenc: default initialize enc ctxt at the start"Treehugger Robot2019-11-144-226/+69
| |\ \ \ \
| | * | | | libhevcenc: default initialize enc ctxt at the startRam Mohan2019-10-104-226/+69
| | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When cu level rc is enabled, the lagrange param is left uninitialized at the start of row. This is causing the outputs to vary from run to run when multi-thread is enabled, for a given input and encoding options. This is now corrected. Test: hevcenc -c vid_enc_cfg.txt Bug: 139402085 Change-Id: Ic9693e9a547d9d5dc1c3b7ef4a46640850723829
* | | | | Merge "libhevcenc: reduce output buffer latency for B picture" am: ↵Ray Essick2019-11-131-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fc394ef8ce am: 130dae5eaa am: 3f6dc24f13 Change-Id: I6ccdc44eb9e672aa3338d7bee727f96dd457f7e9
| * | | | Merge "libhevcenc: reduce output buffer latency for B picture"Ray Essick2019-11-131-1/+1
| |\ \ \ \ | | |_|/ / | |/| | |
| | * | | libhevcenc: reduce output buffer latency for B pictureAkshata Jadhav2019-10-041-1/+1
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Output receive buffer was waiting for one extra picture, corrected latency. Bug:135986218 Test: hevcenc -c vid_enc_cfg.txt --max_temporal_layers 1 Change-Id: I2623e59e1b62d1fcbe432f0fe0bab6350ab23889
* | | | libhevcenc: reduce memory consumption am: 40ed9a784a am: 249cf251b5Ram Mohan2019-11-085-97/+50
|\| | | | | | | | | | | | | | | | | | | | | | | am: 289e13445d Change-Id: I8e0b7af880b7b2eff8955e7efc3ef1186f7c0b73
| * | | libhevcenc: reduce memory consumptionRam Mohan2019-11-085-97/+50
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Removed excess buffer contexts between core encoding and entropy 2. Allocate memory for lookahead feature on a need basis as opposed to allocation based on a pre-defined macro 3. Removed unused/debug structure members Test: hevcenc -c vid_enc_cfg.txt Bug: 139400088 Change-Id: Ibc7228181b51ec97f355b3657df87d70f207cdd9
* | | libhevcenc: deblk sao low res race condition am: 50408aad50 am: bf1e9088dc ↵Akshata Jadhav2019-10-071-9/+11
|\| | | | | | | | | | | | | | | | | | | | | | | am: d52ce65b76 am: 02273aa048 Change-Id: I50765a3ab78d597a5aca43a23939ec8612491fff
| * | libhevcenc: deblk sao low res race conditionndk-sysroot-r21Akshata Jadhav2019-10-041-9/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | While encoding inputs for size 64 x ht for ht > 64, there is a possible race condition. Before performing deblocking/sao for current CTB, its top right CTB is checked for its deblocking/sao completion. This can be skipped for last CTB of a row, provided you have atleast 2 CTB's per row. The skip is happening for rows with single CTB as well. This is corrected. Test: hevcenc -c vid_enc_cfg.txt --src_width 64 --src_height 512 \ --input night_64x512.yuv --num_cores 4 Bug: 135516662 Change-Id: Ifed1ae25e5e460cb59d84533e5ad87730ebb3395
* / libhevcenc: integer overflow in vuiRam Mohan2019-06-134-6/+14
|/ | | | | | | | | | | | Fixes integer overflow seen in low bitrate encoding or in constant qp encoding at lower levels. Test: hevcenc --rate_control_mode 3 --codec_level 63 --input football_qvga.yuv\ --src_width 320 --src_height 240 --output out.265 --tgt_bitrate 128000 \ --vui_enable 1 --num_frames_to_encode -1 Bug: 134139339 Change-Id: Ifa5b35fc680f09009f76105a0ee4778683b7fcad
* Merge "libhevcenc: Add support for dynamic change in bitrate" into qt-devWonsik Kim2019-05-286-0/+226
|\
| * libhevcenc: Add support for dynamic change in bitrateAkshata Jadhav2019-05-206-0/+226
| | | | | | | | | | | | | | Test: hevcenc -c vid_enc_cfg.txt Bug: 125938526 Change-Id: I3c45cf5ebf6348024a5632025f042b1a3c2544d9
* | Merge "libhevcenc: fix few isan and usan issues" into qt-devTreeHugger Robot2019-05-222-8/+11
|\ \
| * | libhevcenc: fix few isan and usan issuesRam Mohan2019-05-152-8/+11
| |/ | | | | | | | | | | | | | | | | | | | | | | | | 1. While encoding uniform content, it is possible to have perfect prediction, thus yielding zero distortion. Ratio of Log(cu distortion), Log(avg cu distortion) is used in cu level qp modulation. So avoid log(zero) calls. 2. Limit peak-br to twice of tgt-br. Test: hevcenc -c vid_enc_cfg.txt --input night_320x240_1.yuv --src_width 320 --src_height 240 Bug: 130019940 Change-Id: I9ec68e385b06af25f216c51bcb90910750a5b3bf (cherry picked from commit 79d3f2a354c85c0e5078dadb6758fb5c4d8e759c)
* / libhevcenc: clip frame qp to configured boundsRam Mohan2019-05-151-0/+1
|/ | | | | | | | | | | | In one of the returns paths from rc library, it is seen that frame qp is exceeding the max value configured. At extremely low bitrates, this is exceeding the max allowable qp and is causing access violation. Test: hevcenc -c vid_enc_cfg.txt --tgt_bitrate 64000 Bug: 130018957 Test: poc Change-Id: Iff64c73752d2fd795276678b0d681ab10b550750 (cherry picked from commit 79b1da48ebd54791471bced2adeb76243de298e2)
* Merge "encoder: Allow minimum frame rate of 1" into qt-devTreeHugger Robot2019-05-112-8/+11
|\
| * encoder: Allow minimum frame rate of 1Harish Mahendrakar2019-05-102-8/+11
| | | | | | | | | | | | | | | | | | | | Earlier min frame rate allowed was 7.5. Encoder now supports min frame rate of 1 which is needed for image encoding Bug: 132450110 Test: With HeifWriter demo application for 512x512 image Change-Id: I1c39ecef3f489d9acc3ae1e6ef8f7ad587b3f2e1
* | Merge "libhevcenc: reduce min resolution from 320x240 to 2x2" into qt-devTreeHugger Robot2019-05-1014-714/+534
|\ \
| * | libhevcenc: reduce min resolution from 320x240 to 2x2Ram Mohan2019-05-0314-714/+534
| |/ | | | | | | | | | | | | Test: hevcenc -c vid_enc_cfg.txt Bug: 129763447 Change-Id: If4dbaba1086694fd2030b05c232988d8c1807fea
* / libhevcenc: integrate missing neon function in preset P0Ram Mohan2019-05-032-22/+12
|/ | | | | | | | C/neon behaviour earlier differed (Neon was correct). This is corrected. Test: hevcenc -c vid_enc_cfg.txt Bug: 129762743 Change-Id: I0e59ee371a3d3b9902bcce1d1188856fb169fb8a
* libhevcenc: Initial commitRam Mohan2019-02-18227-0/+202899
Test: hevcenc -c vid_enc_cfg.txt Bug: 110456253 Test: CtsMediaTests/VideoEncoder Change-Id: I9df8143709c3fe5d2c8398974a16529a3f8b8ebc