Document BT.709 v210 conversion
This commit is contained in:
+5
-1
@@ -95,6 +95,8 @@ inline void decodeV210Line(
|
|||||||
default: y10 = y0; cb10 = cb0; cr10 = cr0; break;
|
default: y10 = y0; cb10 = cb0; cr10 = cr0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BT.709 limited-range YCbCr to RGB. v210 stores 10-bit video-range
|
||||||
|
// samples: Y [64, 940], Cb/Cr centered at 512.
|
||||||
int32_t yp = (static_cast<int32_t>(y10) - 64) >> 2;
|
int32_t yp = (static_cast<int32_t>(y10) - 64) >> 2;
|
||||||
int32_t cbp = (static_cast<int32_t>(cb10) - 512) >> 2;
|
int32_t cbp = (static_cast<int32_t>(cb10) - 512) >> 2;
|
||||||
int32_t crp = (static_cast<int32_t>(cr10) - 512) >> 2;
|
int32_t crp = (static_cast<int32_t>(cr10) - 512) >> 2;
|
||||||
@@ -175,6 +177,8 @@ inline void convertV210ToRgba(
|
|||||||
default: y10 = y0; cb10 = cb0; cr10 = cr0; break;
|
default: y10 = y0; cb10 = cb0; cr10 = cr0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BT.709 limited-range YCbCr to RGB. v210 stores 10-bit video-range
|
||||||
|
// samples: Y [64, 940], Cb/Cr centered at 512.
|
||||||
int32_t yp = (static_cast<int32_t>(y10) - 64) >> 2;
|
int32_t yp = (static_cast<int32_t>(y10) - 64) >> 2;
|
||||||
int32_t cbp = (static_cast<int32_t>(cb10) - 512) >> 2;
|
int32_t cbp = (static_cast<int32_t>(cb10) - 512) >> 2;
|
||||||
int32_t crp = (static_cast<int32_t>(cr10) - 512) >> 2;
|
int32_t crp = (static_cast<int32_t>(cr10) - 512) >> 2;
|
||||||
@@ -187,4 +191,4 @@ inline void convertV210ToRgba(
|
|||||||
{clampUint8(r), clampUint8(g), clampUint8(b)});
|
{clampUint8(r), clampUint8(g), clampUint8(b)});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,6 +62,8 @@ void main()
|
|||||||
default: y10 = y5; cb10 = cb4; cr10 = cr4; break;
|
default: y10 = y5; cb10 = cb4; cr10 = cr4; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BT.709 limited-range YCbCr to RGB. v210 stores 10-bit video-range
|
||||||
|
// samples: Y [64, 940], Cb/Cr centered at 512.
|
||||||
int yp = int(y10) - 64;
|
int yp = int(y10) - 64;
|
||||||
int cbp = int(cb10) - 512;
|
int cbp = int(cb10) - 512;
|
||||||
int crp = int(cr10) - 512;
|
int crp = int(cr10) - 512;
|
||||||
@@ -79,4 +81,4 @@ void main()
|
|||||||
b = clamp(b, 0, 255);
|
b = clamp(b, 0, 255);
|
||||||
|
|
||||||
imageStore(dstImage, dstPos, vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0));
|
imageStore(dstImage, dstPos, vec4(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, 1.0));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user