draw: tweak the YCbCr to RGBA conversion formula again.
This is the golang.org/x equivalent of the golang.org/cl/36732 change to the standard library. Change-Id: I71c09a72e24c8e1c013769a6fed8f9a031724d9d Reviewed-on: https://go-review.googlesource.com/36733 Run-TryBot: Nigel Tao <nigeltao@golang.org> Reviewed-by: Rob Pike <r@golang.org>
|
@ -804,7 +804,7 @@ func cOffset(x, y, sratio string) string {
|
||||||
func ycbcrToRGB(lhs, tmp string) string {
|
func ycbcrToRGB(lhs, tmp string) string {
|
||||||
s := `
|
s := `
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
$yy1 := int(src.Y[$i]) * 0x10100
|
$yy1 := int(src.Y[$i]) * 0x10101
|
||||||
$cb1 := int(src.Cb[$j]) - 128
|
$cb1 := int(src.Cb[$j]) - 128
|
||||||
$cr1 := int(src.Cr[$j]) - 128
|
$cr1 := int(src.Cr[$j]) - 128
|
||||||
$r@ := ($yy1 + 91881*$cr1) >> 8
|
$r@ := ($yy1 + 91881*$cr1) >> 8
|
||||||
|
|
96
draw/impl.go
|
@ -343,7 +343,7 @@ func (nnInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Rec
|
||||||
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
|
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -386,7 +386,7 @@ func (nnInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Rec
|
||||||
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
|
pj := (sr.Min.Y+int(sy)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -429,7 +429,7 @@ func (nnInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Rec
|
||||||
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
|
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -472,7 +472,7 @@ func (nnInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Rec
|
||||||
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
|
pj := ((sr.Min.Y+int(sy))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -759,7 +759,7 @@ func (nnInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image
|
||||||
pj := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
pj := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -803,7 +803,7 @@ func (nnInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image
|
||||||
pj := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
pj := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -847,7 +847,7 @@ func (nnInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image
|
||||||
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -891,7 +891,7 @@ func (nnInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image
|
||||||
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
pj := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pr := (pyy1 + 91881*pcr1) >> 8
|
pr := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -1756,7 +1756,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -1785,7 +1785,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -1817,7 +1817,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -1846,7 +1846,7 @@ func (ablInterpolator) scale_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -1931,7 +1931,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
s00j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -1960,7 +1960,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
s10j := (sr.Min.Y+int(sy0)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -1992,7 +1992,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
s01j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -2021,7 +2021,7 @@ func (ablInterpolator) scale_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
s11j := (sr.Min.Y+int(sy1)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -2106,7 +2106,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -2135,7 +2135,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -2167,7 +2167,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx0))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -2196,7 +2196,7 @@ func (ablInterpolator) scale_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(sx1))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -2281,7 +2281,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
s00j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -2310,7 +2310,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
s10j := ((sr.Min.Y+int(sy0))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -2342,7 +2342,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
s01j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx0) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -2371,7 +2371,7 @@ func (ablInterpolator) scale_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Re
|
||||||
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
s11j := ((sr.Min.Y+int(sy1))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(sx1) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -3345,7 +3345,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
|
||||||
s00j := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
s00j := (sy0-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -3374,7 +3374,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
|
||||||
s10j := (sy0-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
|
s10j := (sy0-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -3406,7 +3406,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
|
||||||
s01j := (sy1-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
s01j := (sy1-src.Rect.Min.Y)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -3435,7 +3435,7 @@ func (ablInterpolator) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr imag
|
||||||
s11j := (sy1-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
|
s11j := (sy1-src.Rect.Min.Y)*src.CStride + (sx1 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -3521,7 +3521,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
|
||||||
s00j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
s00j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -3550,7 +3550,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
|
||||||
s10j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
s10j := (sy0-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -3582,7 +3582,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
|
||||||
s01j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
s01j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -3611,7 +3611,7 @@ func (ablInterpolator) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr imag
|
||||||
s11j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
s11j := (sy1-src.Rect.Min.Y)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -3697,7 +3697,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
|
||||||
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -3726,7 +3726,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
|
||||||
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -3758,7 +3758,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
|
||||||
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx0)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -3787,7 +3787,7 @@ func (ablInterpolator) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr imag
|
||||||
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + ((sx1)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -3873,7 +3873,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
|
||||||
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
s00j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s00yy1 := int(src.Y[s00i]) * 0x10100
|
s00yy1 := int(src.Y[s00i]) * 0x10101
|
||||||
s00cb1 := int(src.Cb[s00j]) - 128
|
s00cb1 := int(src.Cb[s00j]) - 128
|
||||||
s00cr1 := int(src.Cr[s00j]) - 128
|
s00cr1 := int(src.Cr[s00j]) - 128
|
||||||
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
s00ru := (s00yy1 + 91881*s00cr1) >> 8
|
||||||
|
@ -3902,7 +3902,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
|
||||||
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
|
s10j := ((sy0)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s10yy1 := int(src.Y[s10i]) * 0x10100
|
s10yy1 := int(src.Y[s10i]) * 0x10101
|
||||||
s10cb1 := int(src.Cb[s10j]) - 128
|
s10cb1 := int(src.Cb[s10j]) - 128
|
||||||
s10cr1 := int(src.Cr[s10j]) - 128
|
s10cr1 := int(src.Cr[s10j]) - 128
|
||||||
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
s10ru := (s10yy1 + 91881*s10cr1) >> 8
|
||||||
|
@ -3934,7 +3934,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
|
||||||
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
s01j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx0 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s01yy1 := int(src.Y[s01i]) * 0x10100
|
s01yy1 := int(src.Y[s01i]) * 0x10101
|
||||||
s01cb1 := int(src.Cb[s01j]) - 128
|
s01cb1 := int(src.Cb[s01j]) - 128
|
||||||
s01cr1 := int(src.Cr[s01j]) - 128
|
s01cr1 := int(src.Cr[s01j]) - 128
|
||||||
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
s01ru := (s01yy1 + 91881*s01cr1) >> 8
|
||||||
|
@ -3963,7 +3963,7 @@ func (ablInterpolator) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr imag
|
||||||
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
|
s11j := ((sy1)/2-src.Rect.Min.Y/2)*src.CStride + (sx1 - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
s11yy1 := int(src.Y[s11i]) * 0x10100
|
s11yy1 := int(src.Y[s11i]) * 0x10101
|
||||||
s11cb1 := int(src.Cb[s11j]) - 128
|
s11cb1 := int(src.Cb[s11j]) - 128
|
||||||
s11cr1 := int(src.Cr[s11j]) - 128
|
s11cr1 := int(src.Cr[s11j]) - 128
|
||||||
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
s11ru := (s11yy1 + 91881*s11cr1) >> 8
|
||||||
|
@ -4729,7 +4729,7 @@ func (z *kernelScaler) scaleX_YCbCr444(tmp [][4]float64, src *image.YCbCr, sr im
|
||||||
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
|
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -4776,7 +4776,7 @@ func (z *kernelScaler) scaleX_YCbCr422(tmp [][4]float64, src *image.YCbCr, sr im
|
||||||
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
|
pj := (sr.Min.Y+int(y)-src.Rect.Min.Y)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -4823,7 +4823,7 @@ func (z *kernelScaler) scaleX_YCbCr420(tmp [][4]float64, src *image.YCbCr, sr im
|
||||||
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
|
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + ((sr.Min.X+int(c.coord))/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -4870,7 +4870,7 @@ func (z *kernelScaler) scaleX_YCbCr440(tmp [][4]float64, src *image.YCbCr, sr im
|
||||||
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
|
pj := ((sr.Min.Y+int(y))/2-src.Rect.Min.Y/2)*src.CStride + (sr.Min.X + int(c.coord) - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -5759,7 +5759,7 @@ func (q *Kernel) transform_RGBA_YCbCr444_Src(dst *image.RGBA, dr, adr image.Rect
|
||||||
pj := (ky-src.Rect.Min.Y)*src.CStride + (kx - src.Rect.Min.X)
|
pj := (ky-src.Rect.Min.Y)*src.CStride + (kx - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -5883,7 +5883,7 @@ func (q *Kernel) transform_RGBA_YCbCr422_Src(dst *image.RGBA, dr, adr image.Rect
|
||||||
pj := (ky-src.Rect.Min.Y)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
|
pj := (ky-src.Rect.Min.Y)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -6007,7 +6007,7 @@ func (q *Kernel) transform_RGBA_YCbCr420_Src(dst *image.RGBA, dr, adr image.Rect
|
||||||
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
|
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + ((kx)/2 - src.Rect.Min.X/2)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
@ -6131,7 +6131,7 @@ func (q *Kernel) transform_RGBA_YCbCr440_Src(dst *image.RGBA, dr, adr image.Rect
|
||||||
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + (kx - src.Rect.Min.X)
|
pj := ((ky)/2-src.Rect.Min.Y/2)*src.CStride + (kx - src.Rect.Min.X)
|
||||||
|
|
||||||
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
// This is an inline version of image/color/ycbcr.go's YCbCr.RGBA method.
|
||||||
pyy1 := int(src.Y[pi]) * 0x10100
|
pyy1 := int(src.Y[pi]) * 0x10101
|
||||||
pcb1 := int(src.Cb[pj]) - 128
|
pcb1 := int(src.Cb[pj]) - 128
|
||||||
pcr1 := int(src.Cr[pj]) - 128
|
pcr1 := int(src.Cr[pj]) - 128
|
||||||
pru := (pyy1 + 91881*pcr1) >> 8
|
pru := (pyy1 + 91881*pcr1) >> 8
|
||||||
|
|
|
@ -2,14 +2,14 @@
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
// +build go1.5
|
// +build go1.9
|
||||||
|
|
||||||
package draw
|
package draw
|
||||||
|
|
||||||
// This file contains tests that depend on the exact behavior of the
|
// This file contains tests that depend on the exact behavior of the
|
||||||
// image/color package in the standard library. The color conversion formula
|
// image/color package in the standard library. The color conversion formula
|
||||||
// from YCbCr to RGBA changed between Go 1.4 and Go 1.5, so this file's tests
|
// from YCbCr to RGBA changed between Go 1.4 and Go 1.5, and between Go 1.8 and
|
||||||
// are only enabled for Go 1.5 and above.
|
// Go 1.9, so this file's tests are only enabled for Go 1.9 and above.
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
|
BIN
testdata/go-turns-two-down-ab.png
vendored
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
testdata/go-turns-two-down-bl.png
vendored
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
BIN
testdata/go-turns-two-down-cr.png
vendored
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
BIN
testdata/go-turns-two-down-nn.png
vendored
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
BIN
testdata/go-turns-two-rotate-ab.png
vendored
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.2 KiB |
BIN
testdata/go-turns-two-rotate-bl.png
vendored
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.2 KiB |
BIN
testdata/go-turns-two-rotate-cr.png
vendored
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.4 KiB |
BIN
testdata/go-turns-two-rotate-nn.png
vendored
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
testdata/go-turns-two-up-ab.png
vendored
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.2 KiB |
BIN
testdata/go-turns-two-up-bl.png
vendored
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.2 KiB |
BIN
testdata/go-turns-two-up-cr.png
vendored
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
BIN
testdata/go-turns-two-up-nn.png
vendored
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
testdata/tux-rotate-ab.png
vendored
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
testdata/tux-rotate-bl.png
vendored
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
testdata/tux-rotate-cr.png
vendored
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
testdata/tux-rotate-nn.png
vendored
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.1 KiB |