Fail at configure time when required features are not
present. Currently requires only necessary x86 object
formats and the presence of the -Ox opt mode arg.
BUG=aomedia:76
Change-Id: Idc372e8ed121a600e87c46c0d29d5322cfceaec8
- Adds the template file to the target enabling easy
edit via IDE editor.
- Drop a generated file comment at the beginning of
the generated doxyfile in hopes of informing users it
should not be modified.
BUG=aomedia:76,aomedia:559
Change-Id: Id4e2762a5dae145927e7b7f1f6689744150ba090
* Make intermediate arrays in av1(_highbd)_warp_affine_c signed,
to avoid integer overflow when multiplying an 'unsigned int'
by a negative 'int' value.
* Pad out arrays in masked_variance_test.cc so that the array
stride is a multiple of 16 bytes.
This fixes some UBSan errors in masked_variance_intrin_ssse3.c
related to unaligned loads of 32-bit values.
BUG=aomedia:572
Change-Id: I0cf786c94870ff128c883bed8e900b0686afc3f7
Earlier, intra prediction for rectangular blocks was performed by
running two steps of prediction on square sub-blocks.
With this experiment, we do proper intra prediction for rectangular
blocks. This ensures that we make use of all available neighboring
pixels especially for directional modes. For this, all the intra
predictors were updated to work with rectangular transform block sizes.
Performance improvements are small but free of cost:
All Intra frames:
lowres: -0.126
midres: -0.154
Video Overall:
lowres: -0.043
midres: -0.100
[Could not get AWCY results due to a backlog.]
BUG=aomedia:551
Change-Id: I7936e91b171d5c246cb0a4ea470a981a013892e6
When frame_superres is on, loop-restoration should work
on the size of the upscaled frame and not on the internal
width and height in the common structure. This patch
makes the necessary changes on the encoder and decoder
side to enable that.
Change-Id: I1d1c024ac6f95944169d90647b4c5a61354a5cc6
Exclude the test targets from Visual Studio and Xcode generation
runs unless explicitly requested. The test run takes hours, and
default behavior in the IDEs is to build all targets.
BUG=aomedia:76
Change-Id: I37e9904bd8d373a399d7d5fa49fe02771011f9d2
Earlier, the condition was negating all non-directional modes to check
if a mode is directional. This was error-prone, e.g. when a new
non-directional mode is added.
By checking for directional modes directly, we avoid such errors.
Change-Id: Ia4a62e278cd73078c53ed5096db646eff77f054e
This terminates the computation for the warp error once
the frame error exceeds the best frame error found
so far to avoid unneccessary computation.
Change-Id: I094a0b3e13f8b91610e051cb91d20a815879dd80
Comparing to lv_map experiment using the old av1_optimize_b
function, This change gives 0.8% gain on lowres and midres
datasets
Comparing to the baseline with greedy optimize_b, the lv_map
experiment will have 1.2% on lowres and 1.49% on midres.
The gains are similar to the one that under the condition of
turning off av1_optimize_b for baseline and lv_map.
Change-Id: Ie17c4ecbd9ed8418ef657a526d8363e0746b5af5
This function will check if downgrading each coeff by one level
will reduce overall rd cost. If so, it will down grade the
coeff and update the effect and then move on to the next coeff.
In general, we found out that updating according to the
coding order will provide better coding performance.
The optimization order is as follows.
1) forward optimize coeffs == 1 or -1 only
2) backward optimize all coeffs
Change-Id: Ic0fd4d44d11878258e09d4fa87a8b48b397a10a8
Implemented a MV refining search after the warped motion parameters were
found. Only 4 or 8 positions were checked so there was almost no impact
on encoder speed.
Borg test result:
avg_psnr ovr_psnr ssim
cam_lowres: -0.543% -0.574% -0.670%
lowres : -0.222% -0.230% -0.285%
Change-Id: Ic2f6c1fe548b089d50e9c33bb365e6b128aabc93
This reverts commit 846d67dd67.
Writing the scale every frame was not the right decision. The correct
thing to do will be also writing the superres scale when the size is
set using a previous frame.
Change-Id: I0402e7f6d2b89ac7c386f81e8628198d22db5066
- Install only includes, libs, and aomdec/aomenc in the install rule.
- Install docs and examples in addition to the above in the dist rule.
BUG=aomedia:76,aomedia:375
Change-Id: If42832ebd21184e6f9bf95c3b43c6d4e05663bf2
this change makes parallel deblocking experiment works with
cb4x4. the inner loop process every 4x4 block.
Change-Id: I86adb3d7b6d67a91ccc12aab29da9bfb8c522cf1
Move the large stack allocation from stack initialization to
dedicated mem space. This resolves the extremely large stack issue
when ext-partition, motion-var, and high bit-depth are all turned
on.
BUG=aomedia:415
Change-Id: I85b77bbc6429093fcb0152176d9e237087d6bbd8
This function will be applied to the last non-zero coeff to
calculate the cost difference including eob change
Change-Id: I471aa74600c41fd371447ec121d113c79bd767b8
This function computes the overall (i.e. self and neighbors') cost
difference caused by downgrading a coefficient by one level at
a specific location
Change-Id: I1b7b6acfe06ed06b9a2ff48b5bb11527646d1aa8
try_self_level_down() computes the cost difference of the coeff
that is downgraded by one level
get_level_prob() computes the probability of level_map coding
at a specific position and level.
Change-Id: Iaa9d40477aaf798993c2d5d26341551db665902b
This function pre-generate counts/magnitudes of each level map
such that we don't have to re-calculate the counts/magnitudes
while doing the optimization.
Change-Id: Ifdfc89522cf2f2b9f3734d451324081f42b47cb0
cb4x4 itself should not require these sizes.
This simplifies compatibility with other experiments, since we can
first make them work with cb4x4 (which is now on by default), and
then worry about chroma_2x2 (which is not) in separate steps.
Encoder and decoder output should remain unchanged.
Change-Id: I4e9fcdae49f238b5099a3c74a398fe993c2545f8
Make sure initialization is done regardless of whether RD search
is skipped (skip_chroma_rd).
BUG=aomedia:568
Change-Id: Idb620b34be6930bb35ab6c912dfd4777f7614159