                         
                         let color = source.pointee.color.normalized()
                         
-                        let _l2 = UInt16((color.component(0) * 65535).clamped(to: 0...65535).rounded())
-                        let _a2 = Int16((color.component(1) * 65535 - 32768).clamped(to: -32768...32767).rounded())
-                        let _b2 = Int16((color.component(2) * 65535 - 32768).clamped(to: -32768...32767).rounded())
+                        let _l2 = UInt16((color[0] * 65535).clamped(to: 0...65535).rounded())
+                        let _a2 = Int16((color[1] * 65535 - 32768).clamped(to: -32768...32767).rounded())
+                        let _b2 = Int16((color[2] * 65535 - 32768).clamped(to: -32768...32767).rounded())
                         
                         let _l3 = _l2 &- _l1
                         let _a3 = _a2 &- _a1

                                
                                let color = source.pointee.color.normalized()
                                for i in 0..<Pixel.Model.numberOfComponents {
                                    let c = UInt16((color.component(i) * 65535).clamped(to: 0...65535).rounded())
                                    let s = c &- lhs[i]
                                    data.encode(s.bigEndian)
                                    lhs[i] = c

            if isOpaque {
                for _ in 0..<count {
                    let color = source.pointee.color.normalized()
                    data.encode(UInt16((color[0] * 65535).clamped(to: 0...65535).rounded()).bigEndian)
                    data.encode(Int16((color[1] * 65535 - 32768).clamped(to: -32768...32767).rounded()).bigEndian)
                    data.encode(Int16((color[2] * 65535 - 32768).clamped(to: -32768...32767).rounded()).bigEndian)
                    source += 1
                }
            } else {
                for _ in 0..<count {
                    let pixel = source.pointee
                    let color = pixel.color.normalized()
                    data.encode(UInt16((color[0] * 65535).clamped(to: 0...65535).rounded()).bigEndian)
                    data.encode(Int16((color[1] * 65535 - 32768).clamped(to: -32768...32767).rounded()).bigEndian)
                    data.encode(Int16((color[2] * 65535 - 32768).clamped(to: -32768...32767).rounded()).bigEndian)
                    data.encode(UInt16((pixel.opacity * 65535).clamped(to: 0...65535).rounded()).bigEndian)
                    source += 1
                }
