[FFmpeg-cvslog] avcodec/vvc: Remove NOP condition check in alf_filter_luma

2024-07-17 Thread Zhao Zhili
ffmpeg | branch: master | Zhao Zhili  | Tue Jul 16 
10:49:56 2024 +0800| [8bac9d4a21ddbaaa8aec25fcc749309cc2b9ec96] | committer: 
Nuo Mi

avcodec/vvc: Remove NOP condition check in alf_filter_luma

If (y + i == vb_above) or (y + i == vb_below), the if body has no
operation.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8bac9d4a21ddbaaa8aec25fcc749309cc2b9ec96
---

 libavcodec/vvc/filter_template.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/vvc/filter_template.c b/libavcodec/vvc/filter_template.c
index 9b3a0e46f7..32777452b7 100644
--- a/libavcodec/vvc/filter_template.c
+++ b/libavcodec/vvc/filter_template.c
@@ -77,7 +77,7 @@ static void FUNC(alf_filter_luma)(uint8_t *_dst, ptrdiff_t 
dst_stride, const uin
 const int is_near_vb_below = (y + i >= vb_pos) && (y + i <= 
vb_pos);
 const int is_near_vb = is_near_vb_above || is_near_vb_below;
 
-if ((y + i < vb_pos) && ((y + i) >= vb_above)) {
+if ((y + i < vb_pos) && ((y + i) > vb_above)) {
 p1 = (y + i == vb_pos - 1) ? p0 : p1;
 p3 = (y + i >= vb_pos - 2) ? p1 : p3;
 p5 = (y + i >= vb_pos - 3) ? p3 : p5;
@@ -85,7 +85,7 @@ static void FUNC(alf_filter_luma)(uint8_t *_dst, ptrdiff_t 
dst_stride, const uin
 p2 = (y + i == vb_pos - 1) ? p0 : p2;
 p4 = (y + i >= vb_pos - 2) ? p2 : p4;
 p6 = (y + i >= vb_pos - 3) ? p4 : p6;
-} else if ((y + i >= vb_pos) && ((y + i) <= vb_below)) {
+} else if ((y + i >= vb_pos) && ((y + i) < vb_below)) {
 p2 = (y + i == vb_pos) ? p0 : p2;
 p4 = (y + i <= vb_pos + 1) ? p2 : p4;
 p6 = (y + i <= vb_pos + 2) ? p4 : p6;

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] avcodec/vvc: Remove write-only assignments in alf_filter_chroma

2024-07-17 Thread Zhao Zhili
ffmpeg | branch: master | Zhao Zhili  | Tue Jul 16 
10:49:57 2024 +0800| [b3aeef3bf94435f9ddf8c79ecfd90b00fef30be7] | committer: 
Nuo Mi

avcodec/vvc: Remove write-only assignments in alf_filter_chroma

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b3aeef3bf94435f9ddf8c79ecfd90b00fef30be7
---

 libavcodec/vvc/filter_template.c | 10 --
 1 file changed, 10 deletions(-)

diff --git a/libavcodec/vvc/filter_template.c b/libavcodec/vvc/filter_template.c
index 32777452b7..6dd7310089 100644
--- a/libavcodec/vvc/filter_template.c
+++ b/libavcodec/vvc/filter_template.c
@@ -153,8 +153,6 @@ static void FUNC(alf_filter_chroma)(uint8_t* _dst, 
ptrdiff_t dst_stride, const u
 const pixel *s2 = s0 - src_stride;
 const pixel *s3 = s1 + src_stride;
 const pixel *s4 = s2 - src_stride;
-const pixel *s5 = s3 + src_stride;
-const pixel *s6 = s4 - src_stride;
 
 for (int i = 0; i < ALF_BLOCK_SIZE; i++) {
 pixel *dst = (pixel *)_dst + (y + i) * dst_stride + x;
@@ -164,8 +162,6 @@ static void FUNC(alf_filter_chroma)(uint8_t* _dst, 
ptrdiff_t dst_stride, const u
 const pixel *p2 = s2 + i * src_stride;
 const pixel *p3 = s3 + i * src_stride;
 const pixel *p4 = s4 + i * src_stride;
-const pixel *p5 = s5 + i * src_stride;
-const pixel *p6 = s6 + i * src_stride;
 
 const int is_near_vb_above = (y + i <  vb_pos) && (y + i >= 
vb_pos - 1);
 const int is_near_vb_below = (y + i >= vb_pos) && (y + i <= 
vb_pos);
@@ -174,19 +170,15 @@ static void FUNC(alf_filter_chroma)(uint8_t* _dst, 
ptrdiff_t dst_stride, const u
 if ((y + i < vb_pos) && ((y + i) >= vb_above)) {
 p1 = (y + i == vb_pos - 1) ? p0 : p1;
 p3 = (y + i >= vb_pos - 2) ? p1 : p3;
-p5 = (y + i >= vb_pos - 3) ? p3 : p5;
 
 p2 = (y + i == vb_pos - 1) ? p0 : p2;
 p4 = (y + i >= vb_pos - 2) ? p2 : p4;
-p6 = (y + i >= vb_pos - 3) ? p4 : p6;
 } else if ((y + i >= vb_pos) && ((y + i) <= vb_below)) {
 p2 = (y + i == vb_pos) ? p0 : p2;
 p4 = (y + i <= vb_pos + 1) ? p2 : p4;
-p6 = (y + i <= vb_pos + 2) ? p4 : p6;
 
 p1 = (y + i == vb_pos) ? p0 : p1;
 p3 = (y + i <= vb_pos + 1) ? p1 : p3;
-p5 = (y + i <= vb_pos + 2) ? p3 : p5;
 }
 
 for (int j = 0; j < ALF_BLOCK_SIZE; j++) {
@@ -212,8 +204,6 @@ static void FUNC(alf_filter_chroma)(uint8_t* _dst, 
ptrdiff_t dst_stride, const u
 p2++;
 p3++;
 p4++;
-p5++;
-p6++;
 }
 }
 }

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] avcodec/riscv: add h264 dc idct rvv

2024-07-17 Thread J . Dekker
ffmpeg | branch: master | J. Dekker  | Mon Jun 10 12:43:44 
2024 +0200| [fa5a6055422a9e38905de9274e63f245cef96c57] | committer: J. Dekker

avcodec/riscv: add h264 dc idct rvv

checkasm: bench runs 131072 (1 << 17)
h264_idct4_add_dc_8bpp_c: 1.5
h264_idct4_add_dc_8bpp_rvv_i64: 0.7
h264_idct4_add_dc_9bpp_c: 1.5
h264_idct4_add_dc_9bpp_rvv_i64: 0.7
h264_idct4_add_dc_10bpp_c: 1.5
h264_idct4_add_dc_10bpp_rvv_i64: 0.7
h264_idct4_add_dc_12bpp_c: 1.2
h264_idct4_add_dc_12bpp_rvv_i64: 0.7
h264_idct4_add_dc_14bpp_c: 1.2
h264_idct4_add_dc_14bpp_rvv_i64: 0.7
h264_idct8_add_dc_8bpp_c: 5.2
h264_idct8_add_dc_8bpp_rvv_i64: 1.5
h264_idct8_add_dc_9bpp_c: 5.5
h264_idct8_add_dc_9bpp_rvv_i64: 1.2
h264_idct8_add_dc_10bpp_c: 5.5
h264_idct8_add_dc_10bpp_rvv_i64: 1.2
h264_idct8_add_dc_12bpp_c: 4.2
h264_idct8_add_dc_12bpp_rvv_i64: 1.2
h264_idct8_add_dc_14bpp_c: 4.2
h264_idct8_add_dc_14bpp_rvv_i64: 1.2

Signed-off-by: J. Dekker 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fa5a6055422a9e38905de9274e63f245cef96c57
---

 libavcodec/riscv/h264dsp_init.c |  54 +++--
 libavcodec/riscv/h264dsp_rvv.S  | 105 
 2 files changed, 145 insertions(+), 14 deletions(-)

diff --git a/libavcodec/riscv/h264dsp_init.c b/libavcodec/riscv/h264dsp_init.c
index 4fc695f158..5151e80c8b 100644
--- a/libavcodec/riscv/h264dsp_init.c
+++ b/libavcodec/riscv/h264dsp_init.c
@@ -1,4 +1,5 @@
 /*
+ * Copyright (c) 2024 J. Dekker 
  * Copyright © 2024 Rémi Denis-Courmont.
  *
  * This file is part of FFmpeg.
@@ -68,6 +69,16 @@ void ff_h264_add_pixels4_16_rvv(uint8_t *dst, int16_t 
*block, int stride);
 
 extern int ff_startcode_find_candidate_rvb(const uint8_t *, int);
 extern int ff_startcode_find_candidate_rvv(const uint8_t *, int);
+void ff_h264_idct4_dc_add_8_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct8_dc_add_8_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct4_dc_add_9_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct8_dc_add_9_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct4_dc_add_10_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct8_dc_add_10_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct4_dc_add_12_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct8_dc_add_12_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct4_dc_add_14_rvv(uint8_t *, int16_t *, int);
+void ff_h264_idct8_dc_add_14_rvv(uint8_t *, int16_t *, int);
 
 av_cold void ff_h264dsp_init_riscv(H264DSPContext *dsp, const int bit_depth,
const int chroma_format_idc)
@@ -94,36 +105,51 @@ av_cold void ff_h264dsp_init_riscv(H264DSPContext *dsp, 
const int bit_depth,
 dsp->h264_h_loop_filter_luma_mbaff =
 ff_h264_h_loop_filter_luma_mbaff_8_rvv;
 
-dsp->h264_idct_add = ff_h264_idct_add_8_rvv;
+dsp->h264_idct_add  = ff_h264_idct_add_8_rvv;
 dsp->h264_idct8_add = ff_h264_idct8_add_8_rvv;
 #  if __riscv_xlen == 64
-dsp->h264_idct_add16 = ff_h264_idct_add16_8_rvv;
+dsp->h264_idct_add16  = ff_h264_idct_add16_8_rvv;
 dsp->h264_idct_add16intra = ff_h264_idct_add16intra_8_rvv;
-dsp->h264_idct8_add4 = ff_h264_idct8_add4_8_rvv;
+dsp->h264_idct8_add4  = ff_h264_idct8_add4_8_rvv;
 #  endif
-if (flags & AV_CPU_FLAG_RVV_I64)
+if (flags & AV_CPU_FLAG_RVV_I32)
+dsp->h264_idct_dc_add = ff_h264_idct4_dc_add_8_rvv;
+if (flags & AV_CPU_FLAG_RVV_I64) {
 dsp->h264_add_pixels8_clear = ff_h264_add_pixels8_8_rvv;
+dsp->h264_idct8_dc_add  = ff_h264_idct8_dc_add_8_rvv;
+}
 dsp->h264_add_pixels4_clear = ff_h264_add_pixels4_8_rvv;
 }
-
 if (bit_depth == 9) {
-if (zvl128b)
-dsp->h264_idct_add = ff_h264_idct_add_9_rvv;
+if (zvl128b) {
+dsp->h264_idct_dc_add  = ff_h264_idct4_dc_add_9_rvv;
+dsp->h264_idct8_dc_add = ff_h264_idct8_dc_add_9_rvv;
+dsp->h264_idct_add = ff_h264_idct_add_9_rvv;
+}
 dsp->h264_idct8_add = ff_h264_idct8_add_9_rvv;
 }
 if (bit_depth == 10) {
-if (zvl128b)
-dsp->h264_idct_add = ff_h264_idct_add_10_rvv;
+if (zvl128b) {
+dsp->h264_idct_dc_add  = ff_h264_idct4_dc_add_10_rvv;
+dsp->h264_idct8_dc_add = ff_h264_idct8_dc_add_10_rvv;
+dsp->h264_idct_add = ff_h264_idct_add_10_rvv;
+   }
 dsp->h264_idct8_add = ff_h264_idct8_add_10_rvv;
 }
 if (bit_depth == 12) {
-if (zvl128b)
-dsp->h264_idct_add = ff_h264_idct_add_12_rvv;
-dsp->h264_idct8_add = ff_h264_idct8_add_12_rvv;
+if (zvl128b) {
+dsp->h264_idct_add = ff_h264_idct_add_12_rvv;
+dsp->h264_idct_dc_add  = ff_h264_idct4_dc_add_12_rvv;
+dsp->h264_idc