YCoCg

نموذج اللون YCoCg هو الفضاء الملون المكون من تحويل بسيط لمساحة اللون RGB المصاحبة إلى قيمة luma (تدل على Y) واثنين من قيم Chroma تدعى اللون الأخضر (Cg) و chrominance orange (Co).وهو مدعوم في تصميمات ضغط الفيديو والصورة مثل H.264 / MPEG-4 AVC و HEVC و JPEG XR و Dirac ، حيث أنه من السهل حسابها ولها كسب ترميز تحويل جيد ، ويمكن تحويلها بدون ضياع من وإلى RGB مع عدد أقل من الأجزاء المطلوبة من النماذج الملونة الأخرى.

الخصائص
مزايا نموذج اللون YCoCg على نموذج اللون YCbCr هي حساب أبسط وأسرع ، وأفضل الربط بين الألوان لتحسين أداء الضغط ، وقابلية لا ضرر تماما.

التحويل مع نموذج ألوان RGB
يتم حساب القيم الثلاث لطراز اللون YCoCg على النحو التالي من قيم اللون الثلاثة لطراز ألوان RGB:


تتراوح قيم Y في المدى من 0 إلى 1 ، بينما يكون Cg و Co في نطاق −0.5 إلى 0.5 ، كما هو معتاد مع نماذج الألوان “YCC” مثل YCbCr. على سبيل المثال ، يتم التعبير عن اللون الأحمر النقي في نظام RGB (1 ، 0 ، 0) وفي نظام YCgCo ( 1/4 ، – 1/4 ، 1/2) .. ومع ذلك ، لأن معاملات مصفوفة التحويل هي كسور ثنائية بسيطة ، فمن الأسهل لحساب من التحولات الأخرى YCC. بالنسبة إلى إشارات RGB ذات عمق البت n ، يتم بعد ذلك تقريب الإشارات الناتجة إلى n بتة أو تكون عادةً n بتتين عند معالجة البيانات في هذا النموذج (على الرغم من أن البتات n + 1 ستكون كافية لـ Co).

تحول المصفوفة العكسية من نموذج اللون YCoCg إلى نموذج ألوان RGB:


لإجراء التحويل العكسي ، هناك إضافات اثنين وطرحين فقط ضروريين ، بدون معاملات ذات قيمة فعلية ، وذلك بتطبيقها على النحو التالي:

tmp = Y – Cg؛
R = tmp + Co؛
G = Y + Cg؛
B = تمة – كو

على أساس رفع YCoCg-R القائم على رفع
يمكن تنفيذ نسخة محسوبة من التحويل ، تسمى أحيانًا YCoCg-R (حيث يشير “-R” إلى إمكانية الرجوع) ، بفعالية مع عمق بتة منخفض. يستخدم الإصدار المقاس مخطط رفع لجعله قابل للانعكاس تمامًا مع تقليل عمق البت لمكونات الألوان الثلاثة. بالنسبة لإشارات RGB مع عمق البت n ، سيكون عمق البت للإشارة Y عند استخدام YCoCg-R هو n وسيكون عمق البت Co و Cg n + 1 ، على النقيض من YCoCg العادي الذي سيحتاج إلى n + 2 بت Y و Cg و n + 1 bits for Co.

هنا ، لا تزال القيم الممكنة لـ Y موجودة في [0 ، 1] ، بينما تكون القيم المحتملة لـ Co و Cg الآن في [-1 ، 1].

التحويل من RGB إلى YCoCg-R هو:

Co = R – B؛
tmp = B + Co / 2؛
Cg = G – tmp؛
Y = tmp + Cg / 2؛
التحويل من YCoCg-R إلى RGB هو:

tmp = Y – Cg / 2؛
G = Cg + tmp؛
B = تمة – Co / 2؛
R = B + Co؛