On Tue, Nov 11, 2014 at 02:15:49PM +0800, rongyan wrote: > Hi, > Thanks for your patience and review. > New patch please find in the attachment. This is the first of two. > The fate test result is here: > > Regards, > Rong Yan > > > ------------------------------------------------------------------------------------------- > Subject: [FFmpeg-devel] [patch 2/4] Fix bug for POWERLE: > libavcodec/ppc/me_cmp.c > ------------------------ > > From: rongyan <rongyan...@foxmail.com> > Date: 2014-11-07 17:37 GMT+08:00 > To: FFmpeg development discussions <ffmpeg-devel@ffmpeg.org> > > > Hi, > There are 4 patches presented to fix bugs for POWER8 little endian. I will > send 4 patches in 4 different email. This is the second. > > It fixed the function hadamard8_diff8x8_altivec(), > hadamard8_diff16x8_altivec(), sad16_x2_altivec(), sad16_y2_altivec(), > sad16_xy2_altivec(), sad16_altivec(), sad8_altivec(), sse16_altivec(), > sse8_altivec(). > > The fate test result on POWER BE and POWER LE after merge these 4 patches are > attached here to facilitate the review: > > The passed test cases change from 1679/2182 to 2010/2236. > > > > Rong Yan > > > ------------------ > The world has enough for everyone's need, but not enough for everyone's > greed. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > ---------- > From: Michael Niedermayer <michae...@gmx.at> > Date: 2014-11-07 19:44 GMT+08:00 > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > > > On Fri, Nov 07, 2014 at 05:37:43PM +0800, rongyan wrote: > [...] > > > @@ -88,11 +49,9 @@ static int sad16_x2_altivec(MpegEncContext *v, uint8_t > > *pix1, uint8_t *pix2, > > /* Read unaligned pixels into our vectors. The vectors are as > > follows: > > * pix1v: pix1[0] - pix1[15] > > * pix2v: pix2[0] - pix2[15] pix2iv: pix2[1] - pix2[16] */ > > - vector unsigned char pix1v = vec_ld(0, pix1); > > - vector unsigned char pix2l = vec_ld(0, pix2); > > - vector unsigned char pix2r = vec_ld(16, pix2); > > - vector unsigned char pix2v = vec_perm(pix2l, pix2r, perm1); > > - vector unsigned char pix2iv = vec_perm(pix2l, pix2r, perm2); > > + vector unsigned char pix1v = VEC_LD(0, pix1); > > + vector unsigned char pix2v = VEC_LD(0, pix2); > > + vector unsigned char pix2iv = VEC_LD(1, pix2); > > > > /* Calculate the average vector. */ > > vector unsigned char avgv = vec_avg(pix2v, pix2iv); > > this would add vec_perm vec_ld and vec_lvsl to > vector unsigned char pix1v = vec_ld(0, pix1); > for big endian, which would slow it down > > [...] > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Breaking DRM is a little like attempting to break through a door even > though the window is wide open and the only thing in the house is a bunch > of things you dont want and which you would get tomorrow for free anyway > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > ---------- > From: Michael Niedermayer <michae...@gmx.at> > Date: 2014-11-10 22:53 GMT+08:00 > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Cc: Tony Lin <linzhaolo...@gmail.com> > > > On Mon, Nov 10, 2014 at 05:01:56PM +0800, rongyan wrote: > > Hi, > > New patch please find in the attachment. There are two patches to > > re-submit, this is the first. > > The fate test result is here: > > > > Rong Yan > [...] > > > - vector unsigned char pix2l = vec_ld(0, pix2); > > - vector unsigned char pix2r = vec_ld(16, pix2); > > - vector unsigned char pix2v = vec_perm(pix2l, pix2r, perm1); > > - vector unsigned char pix2iv = vec_perm(pix2l, pix2r, perm2); > > + vector unsigned char pix2v = VEC_LD(0, pix2); > > + vector unsigned char pix2iv = VEC_LD(1, pix2); > > this doubles the number of vec_ld() on big endian > > > [...] > > @@ -356,11 +168,8 @@ static int sad16_xy2_altivec(MpegEncContext *v, > > uint8_t *pix1, uint8_t *pix2, > > * pix1v: pix1[0] - pix1[15] > > * pix3v: pix3[0] - pix3[15] pix3iv: pix3[1] - pix3[16] */ > > pix1v = vec_ld(0, pix1); > > - > > - pix2l = vec_ld(0, pix3); > > - pix2r = vec_ld(16, pix3); > > - pix3v = vec_perm(pix2l, pix2r, perm1); > > - pix3iv = vec_perm(pix2l, pix2r, perm2); > > + pix3v = VEC_LD(0, pix3); > > + pix3iv = VEC_LD(1, pix3); > > > > /* Note that AltiVec does have vec_avg, but this works on vector > > pairs > > * and rounds up. We could do avg(avg(a, b), avg(c, d)), but the > > this also doubles the number of vec_ld() on big endian > > [...] > > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Its not that you shouldnt use gotos but rather that you should write > readable code and code with gotos often but not always is less readable
> me_cmp.c | 464 > ++++++++++----------------------------------------------------- > 1 file changed, 76 insertions(+), 388 deletions(-) > dcb882fb5460cf669d104a2fa10101b983186182 > 0001-libavcodec-ppc-me_cmp.c-fix-hadamard8_diff8x8_altive.patch > From 3a69a69db28f36f7faf84076064d08de973318e2 Mon Sep 17 00:00:00 2001 > From: Rong Yan <rongyan...@gmail.com> > Date: Tue, 11 Nov 2014 06:03:01 +0000 > Subject: [PATCH 1/2] libavcodec/ppc/me_cmp.c : fix hadamard8_diff8x8_altivec() > hadamard8_diff16x8_altivec() sad16_x2_altivec() sad16_y2_altivec() > sad16_xy2_altivec() sad16_altivec() sad8_altivec() sse16_altivec() > sse8_altivec() add marcos GET_PERM() LOAD_PIX() for POWER LE applied thanks [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 1 "Used only once" - "Some unspecified defect prevented a second use" "In good condition" - "Can be repaird by experienced expert" "As is" - "You wouldnt want it even if you were payed for it, if you knew ..."
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel