Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix desync with aarch64 assembly for ipred_z2 #3299

Merged
merged 1 commit into from
Dec 6, 2023

Conversation

barrbrain
Copy link
Collaborator

Parameters max_w and max_h were inadvertently swapped.

Before this patch:

$ rav1e -o test.ivf -r rec.y4m --limit 1 tractor_1080p10_25.y4m -y
>  CPU Feature Level: NEON
>  Using y4m decoder: 1920x1080p @ 25/1 fps, 4:2:0, 10-bit
>  Encoding settings: keyint_min=12 keyint_max=240 quantizer=100 bitrate=0 min_quantizer=0 low_latency=false tune=Psychovisual rdo_lookahead_frames=20 multiref=true fast_deblock=false scene_detection_mode=Standard cdef=true lrf=true enable_timing_info=false min_block_size=8x8 max_block_size=64x64 encode_bottomup=false non_square_partition_max_threshold=8x8 reduced_tx_set=true tx_domain_distortion=false tx_domain_rate=false rdo_tx_decision=false prediction_modes=Complex-KFs fine_directional_intra=true include_near_mvs=false use_satd_subpel=true
>  Using 1 tile
>  encoded 1/1 frames, 0.045 fps, 38630.00 Kb/s, est: 0s, 0.18 MB, elapsed: 22s                 
>  ----------
>  Key frame:             1 | avg QP:  77.00 | avg size:  193150 B
>  Inter frame:           0 | avg QP:   0.00 | avg size:       0 B
>  Intra only frame:      0 | avg QP:   0.00 | avg size:       0 B
>  Switching frame:       0 | avg QP:   0.00 | avg size:       0 B
>  ----

$ dav1d -i test.ivf -o ref.y4m
dav1d 1.3.0 - by VideoLAN
Decoded 1/1 frames (100.0%) - 33.88 fps

$ cmp <(tail -n+2 ref.y4m) <(tail -n+2 rec.y4m)
/dev/fd/63 /dev/fd/62 differ: byte 4075905, line 7294

After this patch cmp returns 0, i.e. the frames match perfectly.

Input tractor_1080p10_25.y4m was created from tractor_1080p25.y4m at https://media.xiph.org/video/derf/ :

ffmpeg -i https://media.xiph.org/video/derf/y4m/tractor_1080p25.y4m \
  -vframes 1 -pix_fmt yuv420p10le -strict -2 tractor_1080p10_25.y4m

Parameters max_w and max_h were inadvertently swapped.
@barrbrain barrbrain requested a review from shssoichiro December 6, 2023 08:46
Copy link

codecov bot commented Dec 6, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (162a6de) 88.22% compared to head (0fb3e3f) 88.22%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3299   +/-   ##
=======================================
  Coverage   88.22%   88.22%           
=======================================
  Files          87       87           
  Lines       28221    28221           
=======================================
  Hits        24898    24898           
  Misses       3323     3323           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@barrbrain
Copy link
Collaborator Author

Credit to @vibhoothi for running the encoder on aarch64 with a diverse corpus.

@barrbrain barrbrain merged commit 8202c7d into xiph:master Dec 6, 2023
25 checks passed
@barrbrain barrbrain deleted the fix-arm64-ipred-z2 branch December 6, 2023 13:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants