~ubuntu-branches/ubuntu/trusty/golang/trusty

« back to all changes in this revision

Viewing changes to src/pkg/image/ycbcr.go

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2013-08-20 14:06:23 UTC
  • mfrom: (14.1.23 saucy-proposed)
  • Revision ID: package-import@ubuntu.com-20130820140623-b414jfxi3m0qkmrq
Tags: 2:1.1.2-2ubuntu1
* Merge from Debian unstable (LP: #1211749, #1202027). Remaining changes:
  - 016-armhf-elf-header.patch: Use correct ELF header for armhf binaries.
  - d/control,control.cross: Update Breaks/Replaces for Ubuntu
    versions to ensure smooth upgrades, regenerate control file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
15
15
        YCbCrSubsampleRatio444 YCbCrSubsampleRatio = iota
16
16
        YCbCrSubsampleRatio422
17
17
        YCbCrSubsampleRatio420
 
18
        YCbCrSubsampleRatio440
18
19
)
19
20
 
20
21
func (s YCbCrSubsampleRatio) String() string {
25
26
                return "YCbCrSubsampleRatio422"
26
27
        case YCbCrSubsampleRatio420:
27
28
                return "YCbCrSubsampleRatio420"
 
29
        case YCbCrSubsampleRatio440:
 
30
                return "YCbCrSubsampleRatio440"
28
31
        }
29
32
        return "YCbCrSubsampleRatioUnknown"
30
33
}
39
42
//      For 4:4:4, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/1.
40
43
//      For 4:2:2, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/2.
41
44
//      For 4:2:0, CStride == YStride/2 && len(Cb) == len(Cr) == len(Y)/4.
 
45
//      For 4:4:0, CStride == YStride/1 && len(Cb) == len(Cr) == len(Y)/2.
42
46
type YCbCr struct {
43
47
        Y, Cb, Cr      []uint8
44
48
        YStride        int
82
86
                return (y-p.Rect.Min.Y)*p.CStride + (x/2 - p.Rect.Min.X/2)
83
87
        case YCbCrSubsampleRatio420:
84
88
                return (y/2-p.Rect.Min.Y/2)*p.CStride + (x/2 - p.Rect.Min.X/2)
 
89
        case YCbCrSubsampleRatio440:
 
90
                return (y/2-p.Rect.Min.Y/2)*p.CStride + (x - p.Rect.Min.X)
85
91
        }
86
92
        // Default to 4:4:4 subsampling.
87
93
        return (y-p.Rect.Min.Y)*p.CStride + (x - p.Rect.Min.X)
126
132
        case YCbCrSubsampleRatio420:
127
133
                cw = (r.Max.X+1)/2 - r.Min.X/2
128
134
                ch = (r.Max.Y+1)/2 - r.Min.Y/2
 
135
        case YCbCrSubsampleRatio440:
 
136
                cw = w
 
137
                ch = (r.Max.Y+1)/2 - r.Min.Y/2
129
138
        default:
130
139
                // Default to 4:4:4 subsampling.
131
140
                cw = w