History log of /external/libavc/encoder/ih264e_process.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
82fb2d30cdf3990e45611af4e9ccd4f460f9314c 27-Nov-2017 Ram Mohan <ram.mohan@ittiam.com> avcenc: Allow intra mode evaluation during fast skip

For static content, skip and intra modes often compete with each other
neck and neck during mode evaluation. Upon fast skip detection, instead of
skipping all further mode analysis, disable motion search and allow intra
analysis.

This change applies to all presets except FASTEST.

Average bdrate improves by 1%.

Test: Tested on clips of different resolutions.

Change-Id: Ia0aabca5c1dcad03359bebaf071b7be27898e735
/external/libavc/encoder/ih264e_process.c
fef5e9e203fd2686b395a226f1909c6a704375f3 29-Nov-2016 Ray Essick <essick@google.com> Merge "Encoder: Defined structures for accessing MB header data"
am: 8aa140b8a5

Change-Id: Ib3e9cad8eb8ddbd5c941ff4d4c96a12e0f309831
c7d9c91417bf69c783f390e48dbbe7aafb45bbda 23-Nov-2016 Harish Mahendrakar <harish.mahendrakar@ittiam.com> Encoder: Defined structures for accessing MB header data

Instead of using hard coded address offsets,
defined structures to access MB Header for each MB type
This improves readability of the code

Also helps in maintaining required alignment for MV
MV elements need to be aligned to 2 byte boundary
Unaligned accesses result in undefined behavior

Bug: 33073518
Test: Tested with -fsanitize=alignment enabled on avcenc
Change-Id: I51c009b7deded76315a4bf2880444d21ae7d517f
/external/libavc/encoder/ih264e_process.c
983e1aecd4739d2a558228e3fb6f9895333f25d4 30-Mar-2016 Doney Alex <doney.alex@ittiam.com> Encoder: Added support for configuring VUI parameters.

Bug: 27442922

Change-Id: I781195e78c480e7449f49467abb1df71902e568d
/external/libavc/encoder/ih264e_process.c
6581cbf841bf86f2f1221a5fab5134e07a95dc80 24-Feb-2016 Doney Alex <doney.alex@ittiam.com> DO NOT MERGE Encoder: Fixed adaptive intra refresh.

Earlier if an MB was coded as intra in the previous frame,
corresponding MB in the current frame will not be coded as intra
even though it was supposed to be intra according to adaptive intra refresh.
Now the MB will honour adaptive intra refresh irrespective of its type
in previous frame.

Change-Id: Icc84ddf962dad6f7d1f4d11e9cb2a37bcda567b8
/external/libavc/encoder/ih264e_process.c
4f067b6d46ac4575254ef47c36e925c0df829a4d 24-Feb-2016 Doney Alex <doney.alex@ittiam.com> Encoder: Fixed adaptive intra refresh.

Earlier if an MB was coded as intra in the previous frame,
corresponding MB in the current frame will not be coded as intra
even though it was supposed to be intra according to adaptive intra refresh.
Now the MB will honour adaptive intra refresh irrespective of its type
in previous frame.

Change-Id: Icc84ddf962dad6f7d1f4d11e9cb2a37bcda567b8
/external/libavc/encoder/ih264e_process.c
4202606c70de812a040fbd79c8721dcd5d3c764e 30-Jul-2015 Hamsalekha S <hamsalekha.s@ittiam.com> Encoder added support for VUI params

SPS will now include vui params
Removed a trailing space in ih264e_api.c

Change-Id: I67a57741689206e571e9a83f7e3360149f87e06a
/external/libavc/encoder/ih264e_process.c
8588303afa4064cdbd91a653d45e5716b377b767 19-Jun-2015 Harinarayanan K K <harinarayanan.kk@ittiam.com> Added code to handle cases with qp less than 10

When qp goes less than 10, all I16x16 mode evaluations
are disabled and I4x4 evaluations are enabled irrespective
of preset. This will ensure that the residual will not
exceed the supported range of entropy

Minimum Qp cannot be set less than 4 now. When QP goes lesser,
the residual may exceed the supported range even with I4x4 enabled.

Change-Id: I25b404fcd9c9e9dbdd77679280968635ee047eb3
/external/libavc/encoder/ih264e_process.c
6cb6772805d86c66848b15a54926e396daed06b1 19-Jun-2015 Harinarayanan K K <harinarayanan.kk@ittiam.com> Reduced memory requirements.

Buffer allocation is based on minimum level required for the
input resolution rather than the input max level.

Number of maximum context sets can be set to 1 to reduce
memory usage.

Added a macro ENC_MIN_PU_SIZE for minimum size of
inter prediction unit supported by encoder.

Changed the maximum constraint on number of MBs for NMB
processing to width in Mbs.

Change-Id: I5a9255e93935d90c13262681aafc772aedf8ae81
/external/libavc/encoder/ih264e_process.c
f7682979418da812e8c489a19f5a13afdd96b529 16-Jun-2015 Martin Storsjo <martin@martin.st> Always copy data to a local buffer if padding is needed

If horizontal padding is needed, copy the data to avoid having to try
to write into the input buffer.

If vertical padding is needed, we could get away with only copying
the last MB row (as previously was done), but then one extra row of
pixels are needed for intra pred. Thus always copy all of the picture,
for simplicity, if padding is needed.

Change-Id: I6b456a12956120d64e7c6b86d7b571e159f4566b
/external/libavc/encoder/ih264e_process.c
90a3904fd36161b18ae6ebf8148c36821d7f940a 09-Jun-2015 Martin Storsjo <martin@martin.st> Set the luma/chroma strides depending on source buffer

If the data is read directly from the input buffer, set the stride
values to those of the input buffer. If the data is copied, set the
stride to the value of the local buffer instead.

This fixes handling of cases where the input buffer stride is
(significantly) larger than the maxwidth of the video.

This also effectively makes the parameter
ive_ctl_set_dimensions_ip_t.u4_strd useless - nothing needs to
know the stride until you actually encode a frame, and at that point,
we can either use the stride of the input buffer, or of the local
pu1_y_csc_buf_base where the copied content is stored.

Change-Id: Icde400b4a0867d25855e621e143454e608748aa3
/external/libavc/encoder/ih264e_process.c
53c6878c155d3329e947659c0d0ba1b97488e246 09-Jun-2015 Martin Storsjo <martin@martin.st> Use a separate field for the chroma stride

When both luma and chroma are copied to the local buffer (either
due to yuv format conversion, or due to padding), they have got
the same stride, but if chroma is copied while luma is used directly
from the input buffer, they might have different strides.

Therefore add a separate field for chroma stride.

This commit only adds the field, while it still has got the same
value as before.

Change-Id: I0dce97ad4d91cd1d9aba4b4472c6a0de45a314bc
/external/libavc/encoder/ih264e_process.c
134291ea0b1b9794b4d7feee2c3ffdbd941c5237 18-Jun-2015 Harinarayanan K K <harinarayanan.kk@ittiam.com> Added support for Main Profile toolsets in encoder.

Added support for CABAC entropy coding.
Added support for B slices.
Fixed an issue in rate control constant QP mode.

Change-Id: Ib759d35e8e943f941aa9b8bbff0362d92c619994
/external/libavc/encoder/ih264e_process.c
5cdb888fea0dbc2027400f5f2c2459e6b26eec0c 09-Jun-2015 Harish Mahendrakar <harish.mahendrakar@ittiam.com> Fixed an overread in YUV420 Semi-planar input usecase

Handled non-multiple of 16 dimensions for 420 semiplanar input
Modified test code to remove alignment of width and height

Change-Id: I83ff8165364a863d577fcac81e711b07eec9c004
/external/libavc/encoder/ih264e_process.c
1bc6742182d8928dc20817326f9e10fd040d8cc9 25-May-2015 Martin Storsjo <martin@martin.st> Only initialize u4_deblk_prev_row if it will be used

This avoids reads out of bounds when encoding videos with a height
of one single macroblock.

Change-Id: Iec982cebb0995c8ecf160751eaa72df38604e8b0
/external/libavc/encoder/ih264e_process.c
cd9e51fc2b6091aa344363ee8a4f881e938ff80c 18-Apr-2015 Lajos Molnar <lajos@google.com> fix file permissions

Change-Id: Ia4f99d5b963acd8d8a1afc2fbdf06b122d898f63
/external/libavc/encoder/ih264e_process.c
c72323e7234ceda6c2c5be5bc2622d87cd4fbaf5 28-Apr-2015 Harish Mahendrakar <harish.mahendrakar@ittiam.com> Fixed few issues seen in CTS tests

Added support for encoding non-multiple of 16 dimensions
Added support for encoding dimensions smaller than 64x64
Aligned coeff data to 4 byte boundary

Change-Id: I111093950f94698296d8499a2845cfe2db6c557b
/external/libavc/encoder/ih264e_process.c
8d3d303c7942ced6a987a52db8977d768dc3605f 13-Mar-2015 Hamsalekha S <hamsalekha.s@ittiam.com> Initial version

Change-Id: I7efe9a589cd24edf86e8d086b40c27cbbf8b4017
/external/libavc/encoder/ih264e_process.c