YCbCr

مساحة اللون Y′CbCr
مستوى CbCr عند إضاءة ثابتة Y′=0.5 (يتم عرض الألوان خارج نطاق RGB أيضًا، بطريقة تقريبية.)
صورة ملونة ومكوناتها Y′ و C B و C R. الصورة Y′ هي في الأساس نسخة رمادية من الصورة الأصلية.

YCbCr ، أو Y′CbCr، أو YC B C R أو Y′C B C R، هي عائلة من فضاءات الألوان تُستخدم كجزء من مسار معالجة الصور الملونة في أنظمة الفيديو والتصوير الرقمي . ومثل YP B P R ، فهي تعتمد على الألوان الأساسية RGB ؛ وهما متكافئان عمومًا ، لكن YC B C R مُصممة للفيديو الرقمي ، بينما YP B P R مُصممة للاستخدام في الأنظمة التناظرية . [ 1 ]

يمثل Y′ مكون الإضاءة ، بينما يمثل C<sub> B</sub> و C<sub> R </sub> مكوني اللون الأزرق والأحمر على التوالي. ويُفرّق بين الإضاءة Y′ (مع علامة الفتحة ) والسطوع Y، مما يعني أن شدة الضوء مُشفّرة بشكل غير خطي بناءً على الألوان الأساسية RGB المصححة غاما .

تُعرَّف فضاءات ألوان Y′CbCr بتحويل إحداثيات رياضي من ألوان RGB الأساسية ونقطة اللون الأبيض المرتبطة بها . إذا كان فضاء ألوان RGB الأساسي مطلقًا، فإن فضاء ألوان Y′CbCr يكون مطلقًا أيضًا؛ وعلى العكس، إذا كان فضاء ألوان RGB غير مُعرَّف، فإن Y′CbCr يكون كذلك. يُعرَّف هذا التحويل في المعادلتين 32 و33 في التوصية ITU-T H.273. [ 2 ]

الأساس المنطقي

كان التلفزيون الأبيض والأسود شائع الاستخدام قبل التلفزيون الملون. ونظرًا لكثرة أجهزة التلفزيون والكاميرات الموجودة آنذاك، برزت الحاجة إلى شكل من أشكال التوافق مع الإصدارات السابقة للبث الملون الجديد. في عام ١٩٣٨، طوّر المهندس الفرنسي جورج فالنسي نظامًا لنقل ألوان RGB كإشارات إضاءة (لوما) ولون (كروما)، وحصل على براءة اختراع له. يسمح هذا النظام لأجهزة التلفزيون الأبيض والأسود بمعالجة معلومات الإضاءة فقط وتجاهل الكروما، ما يعني فعليًا دمج فيديو أبيض وأسود ضمن فيديو ملون. وبسبب هذا التوافق مع الإصدارات السابقة، سُمّي النظام القائم على فكرة فالنسي " اللون المتوافق" . وبالمثل، يمكن استقبال البث الأبيض والأسود بواسطة التلفزيون الملون دون الحاجة إلى أي دوائر معالجة إضافية. وللحفاظ على تخصيصات ترددات البث الحالية، خُصص نطاق ترددي أقل لمعلومات الكروما الجديدة مقارنةً بمعلومات الإضاءة. وهذا ممكن لأن البشر أكثر حساسية لمعلومات الأبيض والأسود (انظر مثال الصورة على اليمين). يُطلق على هذه العملية اسم " أخذ عينات فرعية من الكروما" .

يُعدّ كلٌّ من YCbCr و Y′CbCr تقريبًا عمليًا لمعالجة الألوان وتحقيق التجانس الإدراكي، حيث تُعالَج الألوان الأساسية، التي تُقابل تقريبًا الأحمر والأخضر والأزرق، لتُحوَّل إلى معلومات ذات دلالة إدراكية. وبذلك، يُمكن لعمليات معالجة الصور/الفيديو اللاحقة، ونقلها وتخزينها، إجراء عمليات وإدخال أخطاء بطرق ذات دلالة إدراكية. يُستخدم Y′CbCr لفصل إشارة الإضاءة (Y′)، التي يُمكن تخزينها بدقة عالية أو نقلها بنطاق ترددي عالٍ، ومكوّني اللون (CB و CR ) ، اللذين يُمكن تقليل نطاقهما الترددي، أو أخذ عينات فرعية منهما، أو ضغطهما، أو معالجتهما بشكل منفصل لتحسين كفاءة النظام.

التحويلات

يُختصر YCbCr أحيانًا إلى YCC . عادةً ما تُستخدم المصطلحات Y′CbCr وYCbCr و YPbPr و Y′UV بشكلٍ متبادل، مما يُسبب بعض الالتباس. الفرق الرئيسي هو أن YPbPr يُستخدم مع الصور التناظرية وYCbCr مع الصور الرقمية، مما يؤدي إلى قيم قياس مختلفة لـ U max وV max (في YCbCr كلاهما يساوي 1).12{\displaystyle {\tfrac {1}{2}}}) عند التحويل من/إلى YUV. يختلف Y′CbCr و YCbCr بسبب تصحيح القيم بواسطة جاما أو عدم تصحيحها.

تُعطي المعادلات أدناه صورة أفضل للمبادئ المشتركة والاختلافات العامة بين هذه الصيغ.

تحويل RGB

R'G'B' to Y′PbPr

تحويل RGB إلى YCbCr

تُسمى إشارات Y′CbCr (قبل تغيير المقياس والإزاحات لوضع الإشارات في شكل رقمي) YPbPr ويتم إنشاؤها من مصدر RGB (الأحمر والأخضر والأزرق) المعدل غاما المقابل باستخدام ثلاثة ثوابت محددة K R و K ​​G و K B على النحو التالي:

Y=كRR+كجيجي+كببPب=12ب-Y1-كبPR=12R-Y1-كR{\displaystyle {\begin{aligned}Y'&=K_{R}\cdot R'+K_{G}\cdot G'+K_{B}\cdot B'\\P_{B}&={\frac {1}{2}}\cdot {\frac {B'-Y'}{1-K_{B}}}\\P_{R}&={\frac {1}{2}}\cdot {\frac {R'-Y'}{1-K_{R}}}\end{aligned}}}

حيث يتم اشتقاق K R و K ​​G و K B عادةً من تعريف فضاء RGB المقابل، ويجب أن تحقق الشروط التاليةكR+كجي+كب=1{\displaystyle K_{R}+K_{G}+K_{B}=1}.

غالباً ما يُشار إلى عملية معالجة المصفوفة المكافئة باسم "مصفوفة الألوان":

[YPبPR]=[كRكجيكب-12كR1-كب-12كجي1-كب1212-12كجي1-كR-12كب1-كR][Rجيب]{\displaystyle {\begin{bmatrix}Y'\\P_{B}\\P_{R}\end{bmatrix}}={\begin{bmatrix}K_{R}&K_{G}&K_{B}\\-{\frac {1}{2}}\cdot {\frac {K_{R}}{1-K_{B}}}&-{\frac {1}{2}}\cdot {\frac {K_{G}}{1-K_{R}}}&-{\frac {1}{2}}\cdot {\frac {\frac {K_{B}}{1-K_{R}}}\end{bmatrix}}{\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}}

هنا، تشير علامة الفتحة (′) إلى استخدام تصحيح غاما ؛ وبالتالي، تتراوح قيم R′ وG′ وB′ اسميًا من 0 إلى 1، حيث يمثل 0 الحد الأدنى من الشدة (مثلاً، لعرض اللون الأسود ) و1 الحد الأقصى (مثلاً، لعرض اللون الأبيض ). وبالتالي، ستكون قيمة الإضاءة (Y) الناتجة ضمن نطاق اسمي من 0 إلى 1، وستكون قيم التشبع اللوني (P<sub> B</sub> وP<sub> R</sub> ) ضمن نطاق اسمي من -0.5 إلى +0.5.

يمكن اشتقاق عملية التحويل العكسي عن طريق عكس المعادلات المذكورة أعلاه.

[Rجيب]=[102-2كR1-كبكجي(2-2كب)-كRكجي(2-2كR)12-2كب0][YPبPR]{\displaystyle {\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}={\begin{bmatrix}1&0&2-2\cdot K_{R}\\1&-{\frac {K_{B}}{K_{G}}}\cdot (2-2\cdot K_{B})&-{\frac {K_{R}}{K_{G}}}\cdot (2-2\cdot K_{R})\\1&2-2\cdot K_{B}&0\end{bmatrix}}{\begin{bmatrix}Y'\\P_{B}\\P_{R}\end{bmatrix}}}

Y′PbPr إلى Y′CbCr

عند تمثيل الإشارات رقميًا، تُقاس النتائج وتُقرّب، وتُضاف إليها عادةً إزاحات. على سبيل المثال، ينتج عن القياس والإزاحة المطبقين على مُكوّن Y′ وفقًا للمواصفة (مثل MPEG-2 [ 3 ] ) قيمة 16 للأسود وقيمة 235 للأبيض عند استخدام تمثيل 8 بت. يحتوي المعيار على نسخ رقمية 8 بت من C B و C R مُقاسة ضمن نطاق مختلف من 16 إلى 240. ونتيجةً لذلك، قد يلزم أحيانًا إعادة القياس بالكسر (235-16)/(240-16) = 219/224 عند إجراء مصفوفة الألوان أو المعالجة في فضاء YCbCr، مما يؤدي إلى تشوهات تكميمية عند عدم إجراء المعالجة اللاحقة باستخدام أعماق بت أعلى.

يُتيح التحجيم الذي ينتج عنه استخدام نطاق أصغر من القيم الرقمية، مقارنةً بما قد يبدو مرغوبًا لتمثيل النطاق الاسمي لبيانات الإدخال، بعض "التجاوز" و"النقص" أثناء المعالجة دون الحاجة إلى قص غير مرغوب فيه . ويمكن أيضًا استخدام هذا " الهامش " و"المساحة" [ 4 ] لتوسيع نطاق الألوان الاسمي كما هو محدد في xvYCC .

تسمح القيمة 235 بتجاوز أقصى قدره (255 - 235) / (235 - 16) = 9.1%، وهو أكبر قليلاً من التجاوز الأقصى النظري ( ظاهرة جيبس ) الذي يبلغ حوالي 8.9% من أقصى خطوة (من الأسود إلى الأبيض). أما هامش الخطأ فهو أقل، حيث يسمح بتجاوز قدره 16 / 219 = 7.3% فقط - هنا في الاتجاه المعاكس - وهو أقل من التجاوز الأقصى النظري البالغ 8.9%. بالإضافة إلى ذلك، ولأن القيمتين 0 و255 محجوزتان في HDMI، فإن هامش الخطأ في الواقع أقل قليلاً.

Y′CbCr إلى xvYCC

بما أن المعادلات التي تُعرّف Y′CbCr تُصاغ بطريقة تُدير مكعب ألوان RGB الاسمي بالكامل وتُكبّر حجمه ليناسب مكعب ألوان YCbCr (الأكبر)، فإن بعض النقاط داخل مكعب ألوان Y′CbCr لا يُمكن تمثيلها في نطاق RGB المُقابل (على الأقل ليس ضمن نطاق RGB الاسمي). يُسبب هذا بعض الصعوبة في تحديد كيفية تفسير وعرض بعض إشارات Y′CbCr بشكل صحيح. يستخدم xvYCC قيم Y′CbCr هذه الخارجة عن النطاق لترميز الألوان خارج نطاق BT.709.

تحويل ITU-R BT.601

يتم اشتقاق شكل Y′CbCr الذي تم تحديده للاستخدام في التلفزيون ذي الدقة القياسية في معيار ITU-R BT.601 (المعروف سابقًا باسم CCIR 601 ) للاستخدام مع الفيديو الرقمي المكون من مساحة RGB المقابلة (الألوان الأساسية لنظام ITU-R BT.470-6 M) على النحو التالي:

كR=0.299كجي=0.587كب=0.114{\displaystyle {\begin{aligned}K_{R}&=0.299\\K_{G}&=0.587\\K_{B}&=0.114\end{aligned}}}

انطلاقاً من الثوابت والصيغ المذكورة أعلاه، يمكن استنتاج ما يلي بالنسبة لـ ITU-R BT.601.

يتم اشتقاق YPbPr التناظري من R'G'B' التناظري على النحو التالي:

Y=0.299R+0.587جي+0.114بPب=-0.168736R-0.331264جي+0.5بPR=0.5R-0.418688جي-0.081312ب{\displaystyle {\begin{aligned}Y'&=&0.299\cdot R'&+&0.587\cdot G'&+&0.114\cdot B'\\P_{B}&=-&0.168736\cdot R'&-&0.331264\cdot G'&+&0.5\cdot B'\\P_{R}&=&0.5\cdot R'&-&0.418688\cdot G'&-&0.081312\cdot B'\end{aligned}}}

يتم اشتقاق الإشارة الرقمية Y′CbCr (8 بت لكل عينة) من الإشارة التناظرية R'G'B' على النحو التالي:

Y=16+(65.481R+128.553جي+24.966ب)جب=128+(-37.797R-74.203جي+112.0ب)جR=128+(112.0R-93.786جي-18.214ب){\displaystyle {\begin{aligned}Y'&=&16&+&(65.481\cdot R'&+&128.553\cdot G'&+&24.966\cdot B')\\C_{B}&=&128&+&(-37.797\cdot R'&-&74.203\cdot G'&+&112.0\cdot B')\\C_{R}&=&128&+&(112.0\cdot R'&-&93.786\cdot G'&-&18.214\cdot B')\end{aligned}}}

أو ببساطة حسب المكونات

(Y،جب،جR)=(16،128،128)+(219Y،224Pب،224PR){\displaystyle {\begin{aligned}(Y',C_{B},C_{R})&=&(16,128,128)+(219\cdot Y,224\cdot P_{B},224\cdot P_{R})\\\end{aligned}}}

تتراوح قيم Y′ (السطوع) للإشارات الناتجة بين 16 و235، بينما تتراوح قيم Cb وCr (اللونية) بين 16 و240. تُسمى القيم من 0 إلى 15 بنطاق الترددات المنخفضة ، والقيم من 236 إلى 255 بنطاق الترددات العالية . تنطبق نطاقات التكميم نفسها، مع اختلاف قيم Y وCb وCr، على معياري BT.2020 وBT.709.

بدلاً من ذلك، يمكن اشتقاق Y′CbCr الرقمي من R'dG'dB'd الرقمي (8 بتات لكل عينة، كل منها يستخدم النطاق الكامل مع الصفر الذي يمثل اللون الأسود و255 الذي يمثل اللون الأبيض) وفقًا للمعادلات التالية:

Y=16+65.481Rد255+128.553جيد255+24.966بد255جب=128-37.797Rد255-74.203جيد255+112.0بد255جR=128+112.0Rد255-93.786جيد255-18.214بد255{\displaystyle {\begin{aligned}Y'&=&16&+&{\frac {65.481\cdot R'_{D}}{255}}&+&{\frac {128.553\cdot G'_{D}}{255}}&+&{\frac {24.966\cdot B'_{D}}{255}}\\C_{B}&=&128&-&{\frac {37.797\cdot R'_{D}}{255}}&-&{\frac {74.203\cdot G'_{D}}{255}}&+&{\frac {112.0\cdot B'_{D}}{255}}\\C_{R}&=&128&+&{\frac {112.0\cdot R'_{D}}{255}}&-&{\frac {93.786\cdot G'_{D}}{255}}&-&{\frac {18.214\cdot B'_{D}}{255}}\end{aligned}}}

في الصيغة أدناه، يتم ضرب عوامل القياس بـ256255{\displaystyle {\frac {256}{255}}}وهذا يسمح بالقيمة 256 في المقام، والتي يمكن حسابها عن طريق إزاحة بت واحدة .

Y=16+65.738Rد256+129.057جيد256+25.064بد256جب=128-37.945Rد256-74.494جيد256+112.439بد256جR=128+112.439Rد256-94.154جيد256-18.285بد256{\displaystyle {\begin{aligned}Y'&=&16&+&{\frac {65.738\cdot R'_{D}}{256}}&+&{\frac {129.057\cdot G'_{D}}{256}}&+&{\frac {25.064\cdot B'_{D}}{256}}\\C_{B}&=&128&-&{\frac {37.945\cdot R'_{D}}{256}}&-&{\frac {74.494\cdot G'_{D}}{256}}&+&{\frac {112.439\cdot B'_{D}}{256}}\\C_{R}&=&128&+&{\frac {112.439\cdot R'_{D}}{256}}&-&{\frac {94.154\cdot G'_{D}}{256}}&-&{\frac {18.285\cdot B'_{D}}{256}}\end{aligned}}}

إذا كان المصدر الرقمي R'd G'd B'd يتضمن نطاقًا سفليًا ونطاقًا علويًا، فيجب أولاً طرح إزاحة النطاق السفلي 16 من كل إشارة، ومعامل قياس قدره255219{\displaystyle {\frac {255}{219}}}يجب تضمينها في المعادلات.

التحويل العكسي هو:

Rد=298.082Y256+408.583جR256-222.921جيد=298.082Y256-100.291جب256-208.120جR256+135.576بد=298.082Y256+516.412جب256-276.836{\displaystyle {\begin{aligned}R'_{D}&=&{\frac {298.082\cdot Y'}{256}}&&&+&{\frac {408.583\cdot C_{R}}{256}}&-&222.921\\G'_{D}&=&{\frac {298.082\cdot Y'}{256}}&-&{\frac {100.291\cdot C_{B}}{256}}&-&{\frac {208.120\cdot C_{R}}{256}}&+&135.576\\B'_{D}&=&{\frac {298.082\cdot Y'}{256}}&+&{\frac {516.412\cdot C_{B}}{256}}&&&-&276.836\end{aligned}}}

التحويل العكسي بدون أي تقريب (باستخدام القيم الواردة مباشرة من توصية ITU-R BT.601) هو:

Rد=255219(Y-16)+2552241.402(جR-128)جيد=255219(Y-16)-2552241.7720.1140.587(جب-128)-2552241.4020.2990.587(جR-128)بد=255219(Y-16)+2552241.772(جب-128){\displaystyle {\begin{aligned}R'_{D}={\frac {255}{219}}\cdot (Y'-16)&&&&&&&+{\frac {255}{224}}\cdot 1.402\cdot (C_{R}-128)\\G'_{D}={\frac {255}{219}}\cdot (Y'-16)&-&{\frac {255}{224}}\cdot 1.772&&\cdot {\frac {0.114}{0.587}}&&\cdot (C_{B}-128)&-{\frac {255}{224}}\cdot 1.402\cdot {\frac {0.299}{0.587}}\cdot (C_{R}-128)\\B'_{D}={\frac {255}{219}}\cdot (Y'-16)&+&{\frac {255}{224}}\cdot 1.772&&&&\cdot (C_{B}-128)\end{aligned}}}

يستخدم هذا الشكل من Y′CbCr بشكل أساسي لأنظمة التلفزيون القديمة ذات الدقة القياسية ، لأنه يستخدم نموذج RGB يتناسب مع خصائص انبعاث الفوسفور لشاشات CRT القديمة.

تحويل ITU-R BT.709

التوصية رقم 709 مقارنة بالتوصية رقم 2020

يُحدد معيار ITU-R BT.709 شكلاً مختلفاً من Y′CbCr ، يُستخدم بشكل أساسي في تطبيقات التلفزيون عالي الوضوح (HDTV ). ويُستخدم الشكل الأحدث أيضاً في بعض تطبيقات شاشات الحاسوب، تحت مسمى sRGB (مع أن المصفوفة المستخدمة لشكل sRGB من YCbCr، أي sYCC ، لا تزال BT.601). في هذه الحالة، تختلف قيم Kb وKr، لكن صيغ استخدامها تبقى نفسها. أما بالنسبة لمعيار ITU-R BT.709، فالثوابت هي:

كب=0.0722كR=0.2126(كجي=1-كب-كR=0.7152){\displaystyle {\begin{aligned}K_{B}&=0.0722\\K_{R}&=0.2126\\(K_{G}&=1-K_{B}-K_{R}=0.7152)\end{aligned}}}

يعتمد هذا الشكل من Y′CbCr على نموذج RGB يتوافق بشكل أدق مع خصائص انبعاث الفوسفور في شاشات CRT الحديثة وغيرها من أجهزة العرض المتطورة. مصفوفات التحويل لـ BT.709 هي كالتالي:

[YجبجR]=[0.21260.71520.0722-0.1146-0.38540.50.5-0.4542-0.0458][Rجيب][Rجيب]=[101.57481-0.1873-0.468111.85560][YجبجR]{\displaystyle {\begin{aligned}{\begin{bmatrix}Y'\\C_{B}\\C_{R}\end{bmatrix}}&={\begin{bmatrix}0.2126&0.7152&0.0722\\-0.1146&-0.3854&0.5\\0.5&-0.4542&-0.0458\end{bmatrix}}{\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}\\{\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}&={\begin{bmatrix}1&0&1.5748\\1&-0.1873&-0.4681\\1&1.8556&0\end{bmatrix}}{\begin{bmatrix}Y'\\C_{B}\\C_{R}\end{bmatrix}}\end{aligned}}}

تختلف تعريفات إشارات R' و G' و B' بين معيارَي BT.709 و BT.601، وتختلف داخل معيار BT.601 نفسه تبعًا لنوع نظام التلفزيون المستخدم (625 خطًا كما في PAL و SECAM أو 525 خطًا كما في NTSC )، وتختلف أيضًا في مواصفات أخرى. في التصميمات المختلفة، توجد اختلافات في تعريفات إحداثيات اللونية R و G و B، ونقطة اللون الأبيض المرجعية، ونطاق الألوان المدعوم، ووظائف التعويض المسبق لغاما الدقيقة لاشتقاق R' و G' و B' من R و G و B، وفي عمليات التحجيم والإزاحات التي تُطبَّق أثناء التحويل من R'G'B' إلى Y′CbCr. لذا، فإن التحويل الصحيح لـ Y′CbCr من شكل إلى آخر ليس مجرد مسألة عكس مصفوفة وتطبيق الأخرى. في الواقع، عندما يتم تصميم Y′CbCr بشكل مثالي، تُستمد قيم K B و K R من التحديد الدقيق لإشارات الألوان الأساسية RGB، بحيث تتوافق إشارة الإضاءة (Y′) بأقرب ما يمكن مع قياس الإضاءة المعدل غاما (والذي يعتمد عادةً على قياسات CIE 1931 لاستجابة الجهاز البصري البشري للمحفزات اللونية). [ 5 ]

تحويل ITU-R BT.2020

يستخدم معيار ITU -R BT.2020 نفس وظيفة جاما مثل BT.709. ويحدد: [ 6 ]

  • إضاءة غير ثابتة Y′CbCr، على غرار المدخلات السابقة، باستثناء اختلاف K B و K R.
  • الإضاءة الثابتة Y′cCbcCrc، وهي صيغة يكون فيها Y′ هو نسخة ترميز جاما من الإضاءة الحقيقية . [ 6 ]

بالنسبة لكليهما، فإن المعاملات المشتقة من المتغيرات الأولية هي:

كب=0.0593كR=0.2627(كجي=1-كب-كR=0.6780){\displaystyle {\begin{aligned}K_{B}&=0.0593\\K_{R}&=0.2627\\(K_{G}&=1-K_{B}-K_{R}=0.6780)\end{aligned}}}

بالنسبة لـ NCL، فإن التعريف كلاسيكي:Y=0.2627R+0.6780جي+0.0593ب{\displaystyle Y'=0.2627R'+0.6780G'+0.0593B'}؛جب=(ب-Y)/1.8814{\displaystyle Cb=(B'-Y')/1.8814}؛جر=(R-Y)/1.4746{\displaystyle Cr=(R'-Y')/1.4746}يمكن كتابة عملية تحويل التشفير، كالمعتاد، على شكل مصفوفة. [ 6 ] مصفوفة فك التشفير لـ BT.2020-NCL هي هذه مع 14 خانة عشرية:

[Rجيب]=[101.47461-0.16455312684366-0.5713531268436611.88140][YجبجR]{\displaystyle {\begin{aligned}{\begin{bmatrix}R\\G\\B\end{bmatrix}}&={\begin{bmatrix}1&0&1.4746\\1&-0.16455312684366&-0.57135312684366\\1&1.8814&0\end{bmatrix}}{\begin{bmatrix}Y'\\C_{B}\\C_{R}\end{bmatrix}}\end{aligned}}}

القيم الأصغر في المصفوفة ليست مُقرَّبة؛ بل هي قيم دقيقة. بالنسبة للأنظمة ذات الدقة المحدودة (8 أو 10 بت، على سبيل المثال)، يمكن استخدام دقة أقل للمصفوفة المذكورة أعلاه، على سبيل المثال، بالاحتفاظ بستة أرقام فقط بعد الفاصلة العشرية. [ 7 ]

إصدار CL، YcCbcCrc، الرموز: [ 6 ]

  • Yج=(0.2627R+0.6780جي+0.0593ب){\displaystyle Y'c=(0.2627R+0.6780G+0.0593B)'}هذه هي دالة جاما المطبقة على الإضاءة الحقيقية المحسوبة من RGB الخطي.
  • جبج=(ب-Yج)/(-2شمالب){\displaystyle Cbc=(B'-Y'c)/(-2Nb)}لوب<Yج{\displaystyle B'<Y'c}خلاف ذلك(ب-Yج)/(2Pب){\displaystyle (B'-Y'c)/(2Pb)}.شمالب{\displaystyle Nb}وPب{\displaystyle Pb}يمثل الحد الأدنى والحد الأقصى النظريين لـ(ب-Yج){\displaystyle (B'-Y'c)}بما يتوافق مع نطاق الألوان. القيم "العملية" المقربة هيPب=0.7910{\displaystyle Pb=0.7910}،شمالب=-0.9702{\displaystyle Nb=-0.9702}يمكن الاطلاع على الاشتقاق الكامل في التوصية. [ 6 ]
  • جرج=(R-Yج)/(-2شمالر){\displaystyle Crc=(R'-Y'c)/(-2Nr)}لوR<Yج{\displaystyle R'<Y'c}خلاف ذلك(R-Yج)/(2Pر){\displaystyle (R'-Y'c)/(2Pr)}. مرة أخرى،Pر{\displaystyle Pr}وشمالر{\displaystyle Nr}هي حدود نظرية. القيم المقربة هيPر=0.4969{\displaystyle Pr=0.4969}،شمالر=-0.8591{\displaystyle Nr=-0.8591}.

يمكن استخدام وظيفة CL عندما يكون الحفاظ على الإضاءة ذا أهمية قصوى (انظر: أخذ عينات فرعية للون §  خطأ إضاءة جاما )، أو عندما "يُتوقع تحسين كفاءة الترميز للتسليم". تشير المواصفات إلى تقرير ITU-R BT.2246 في هذا الشأن. [ 6 ] ينص BT.2246 على أن CL قد حسّنت كفاءة الضغط والحفاظ على الإضاءة، ولكن NCL سيكون أكثر ألفةً للموظفين الذين سبق لهم التعامل مع مزج الألوان وممارسات الإنتاج الأخرى في HDTV YCbCr. [ 8 ]

لا يُعرّف معيار BT.2020 مفهوم PQ ، وبالتالي مفهوم HDR؛ بل يُعرّف بشكلٍ أدق في معياري SMPTE ST 2084 و BT.2100 . سيُدخل معيار BT.2100 استخدام IC T C P ، وهو فضاء لوني شبه إدراكي مُشتق من RGB الخطي، ويتميز بخطية جيدة في تدرج الألوان. وهو يتميز بـ "إضاءة شبه ثابتة". [ 9 ]

تحويل JPEG

يدعم استخدام JFIF في JPEG معيار Rec. 601 Y′CbCr المعدل، حيث يمتلك كل من Y′ وCB و CR نطاق 8 بت كامل من [0...255]. [ 10 ] فيما يلي معادلات التحويل معبرًا عنها بستة أرقام عشرية. (للحصول على المعادلات المثالية، انظر ITU-T T.871. [ 11 ] ) لاحظ أنه بالنسبة للصيغة التالية، فإن نطاق كل مدخل (R، G، B) هو أيضًا نطاق 8 بت كامل من [0...255].

Y=0+(0.299Rد)+(0.587جيد)+(0.114بد)جب=128-(0.168736Rد)-(0.331264جيد)+(0.5بد)جR=128+(0.5Rد)-(0.418688جيد)-(0.081312بد){\displaystyle {\begin{aligned}Y'&=&0&+(0.299&\cdot R'_{D})&+(0.587&\cdot G'_{D})&+(0.114&\cdot B'_{D})\\C_{B}&=&128&-(0.168736&\cdot R'_{D})&-(0.331264&\cdot G'_{D})&+(0.5&\cdot B'_{D})\\C_{R}&=&128&+(0.5&\cdot R'_{D})&-(0.418688&\cdot G'_{D})&-(0.081312&\cdot B'_{D})\end{aligned}}}

والعودة:

Rد=Y+1.402(جR-128)جيد=Y-0.344136(جب-128)-0.714136(جR-128)بد=Y+1.772(جب-128){\displaystyle {\begin{aligned}R'_{D}&=&Y'&&&+1.402&\cdot (C_{R}-128)\\G'_{D}&=&Y'&-0.344136&\cdot (C_{B}-128)&-0.714136&\cdot (C_{R}-128)\\B'_{D}&=&Y'&+1.772&\cdot (C_{B}-128)&\end{aligned}}}

التحويل المذكور أعلاه مطابق لـ sYCC عندما يتم إدخال البيانات كـ sRGB، باستثناء أن IEC 61966-2-1:1999/Amd1:2003 يعطي أربعة أرقام عشرية فقط.

يُعرّف تنسيق JPEG أيضًا تنسيق "YCCK" من Adobe لإدخال CMYK . في هذا التنسيق، تُمرّر قيمة "K" كما هي، بينما تُستخدم CMY لاشتقاق YCbCr باستخدام المصفوفة المذكورة أعلاه بافتراضR=1-ج{\displaystyle R=1-C}،جي=1-م{\displaystyle G=1-M}، وب=1-Y{\displaystyle B=1-Y}ونتيجة لذلك، يمكن استخدام مجموعة مماثلة من تقنيات أخذ العينات الفرعية. [ 12 ]

أنظمة الإضاءة المشتقة من اللونية

يصف معيار H.273 أيضًا أنظمة الإضاءة الثابتة وغير الثابتة، المشتقة حصريًا من الألوان الأساسية ونقطة اللون الأبيض، بحيث لا تحدث حالات مثل استخدام الألوان الأساسية الافتراضية sRGB/BT.709 في صور JPEG التي تستخدم مصفوفة BT.601 (المشتقة من نظام BT.470-6 System M الذي يستخدم نقطة لون أبيض مختلفة عن D65) (حيث أن معظم الصور تستخدم الألوان الأساسية BT.709 ). مثال آخر هو استخدام Netflix للألوان الأساسية P3-D65 في الإنتاج مع مصفوفة BT.2020-NCL، مما يعني أن المصفوفة لم تكن مشتقة من الألوان الأساسية، مع أن Netflix تسمح حاليًا باستخدام الألوان الأساسية BT.2020 (بعد عام 2021). [ 13 ] مع ذلك، لم يحصل مستخدمو Netflix العاديون على هذا التنسيق الوسيط.

التقريبات العددية

قبل تطوير معالجات الفاصلة العائمة SIMD السريعة ، كانت معظم التطبيقات الرقمية لتحويل RGB إلى Y′UV تعتمد على العمليات الحسابية الصحيحة، وتحديدًا تقريبات الفاصلة الثابتة . يعني التقريب أن دقة الأرقام المستخدمة (بيانات الإدخال، وبيانات الإخراج، والقيم الثابتة) محدودة، وبالتالي فإن فقدان الدقة، الذي يبلغ عادةً حوالي آخر رقم ثنائي، مقبولٌ لمن يستخدم هذا الخيار، وذلك عادةً كحل وسط لتحسين سرعة الحساب.

تُزاح قيم Y′ وتُقاس عادةً ضمن النطاق [16، 235] (المعروف باسم نطاق الاستوديو أو "مستويات التلفزيون") بدلاً من استخدام النطاق الكامل [0، 255] (المعروف باسم النطاق الكامل أو "مستويات الكمبيوتر"). وقد تم توحيد هذه الممارسة في معيار SMPTE-125M لمعالجة تجاوزات الإشارة ("الرنين") الناتجة عن الترشيح. [ 14 ] تُجمع قيم U وV، التي قد تكون موجبة أو سالبة، مع 128 لجعلها موجبة دائمًا، مما يُعطي نطاقًا للاستوديو يتراوح بين 16 و240 لـ U وV. (تُعد هذه النطاقات مهمة في تحرير الفيديو وإنتاجه، لأن استخدام النطاق الخاطئ سيؤدي إما إلى صورة ذات درجات سوداء وبيضاء "مُشوَّهة" أو صورة منخفضة التباين).

مصفوفات تقريبية من 8 بت لـ BT.601

تقوم هذه المصفوفات بتقريب جميع العوامل إلى أقرب جزء من 256. ونتيجة لذلك، يتم تكوين قيمة وسيطة واحدة فقط مكونة من 16 بت لكل عنصر، (x + 128) >> 8ويمكن إجراء عملية القسمة ببساطة عن طريق الإزاحة إلى اليمين مع التقريب. [ 14 ]

لموسيقى السوينغ في الاستوديو:

[YجبجR]=1256[6612925-38-74112112-94-18][Rجيب]+[16128128]{\displaystyle {\begin{bmatrix}Y'\\C_{B}\\C_{R}\end{bmatrix}}={\frac {1}{256}}{\begin{bmatrix}66&129&25\\-38&-74&112\\112&-94&-18\end{bmatrix}}{\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}+{\begin{bmatrix}16\\128\\128\end{bmatrix}}}

للتأرجح الكامل:

[YجبجR]=1256[7715029-43-84127127-106-21][Rجيب]+[0128128]{\displaystyle {\begin{bmatrix}Y'\\C_{B}\\C_{R}\end{bmatrix}}={\frac {1}{256}}{\begin{bmatrix}77&150&29\\-43&-84&127\\127&-106&-21\end{bmatrix}}{\begin{bmatrix}R'\\G'\\B'\end{bmatrix}}+{\begin{bmatrix}0\\128\\128\end{bmatrix}}}

كانت خوارزمية Skia من جوجل تستخدم مصفوفة 8 بت كاملة النطاق المذكورة أعلاه، مما أدى إلى ظهور مسحة خضراء طفيفة على صور JPEG المشفرة بواسطة أجهزة أندرويد، والتي كانت أكثر وضوحًا عند الحفظ المتكرر. تم إصلاح هذه المشكلة في عام 2016، عندما تم استخدام الإصدار الأكثر دقة بدلاً من ذلك. وبفضل تحسينات SIMD في مكتبة libjpeg-turbo ، فإن الإصدار الأكثر دقة أسرع بالفعل. [ 15 ]

تنسيقات البكسل المضغوطة والتحويل

تُشفّر بيانات RGB عادةً بـ 8 أو 12 أو 16 أو 24 بت لكل بكسل. في الأمثلة أدناه، يُفترض استخدام RGB بـ 24 بت؛ ويُشار إلى هذا التنسيق عادةً بـ RGB888 . تُخزّن البيانات بترتيب البايتات القياسي .r0, g0, b0, r1, g1, b1, ...

غالبًا ما يُشار إلى تنسيقات البكسل المضغوطة YCbCr باسم " Y′UV ". يمكن ترميز هذه الملفات بـ 12 أو 16 أو 24 بت لكل بكسل. اعتمادًا على أخذ العينات الفرعية، يمكن وصف التنسيقات بشكل عام بأنها 4:2:0p و4:2:2 و4:4:4. غالبًا ما تُحذف الفاصلة العليا بعد Y، وكذلك الحرف "p" (اختصارًا لـ planar) بعد YUV420p. من حيث تنسيقات الملفات الفعلية، يُعد 4:2:0 الأكثر شيوعًا، نظرًا لانخفاض حجم البيانات، وعادةً ما يكون امتداد الملف .YUV. تُحدد العلاقة بين معدل البيانات وأخذ العينات (A:B:C) بنسبة Y إلى U وV. [ 16 ] [ 17 ] إنّ ترميز "YUV" متبوعًا بثلاثة أرقام غامض: فقد تشير هذه الأرقام الثلاثة إلى أخذ العينات الفرعية (كما هو الحال في "YUV420")، أو قد تشير إلى عمق البت في كل قناة (كما هو الحال في "YUV565"). والطريقة الواضحة للإشارة إلى هذه التنسيقات هي عبر رمز FourCC . [ 18 ]

لتحويل البيانات من RGB إلى YUV أو العكس، يُفضل استخدام RGB888 و4:4:4. أما بالنسبة لـ 4:1:1 و4:2:2 و4:2:0، فيجب تحويل البايتات إلى 4:4:4 أولاً.

4:4:4

يُعدّ تنسيق YUV444 بسيطًا، حيث يتكون من 3 بايتات لكل بكسل (12 بايت لكل 4 بكسلات)، دون تجميع البكسلات. يكمن الاختلاف فقط في عدد البتات المخصصة لكل قناة وترتيبها. YUV3يرتب المخطط الأساسي البكسلات على النحو التالي y0, u0, v0, y1, u1, v1(باستخدام "u" للقناة Cb و"v" للقناة Cr؛ وينطبق الأمر نفسه على المحتوى أدناه). [ 18 ] في الحواسيب، من الشائع رؤية AYUVتنسيق آخر، يُضاف إليه قناة ألفا a0, y0, u0, v0, a1, y1, u1, v1، لأن مجموعات 32 بت أسهل في التعامل. [ 16 ]

4:2:2

تنسيق YUY2

يُجمّع تنسيق YUV422 بكسلين معًا أفقيًا في كل "حاوية" افتراضية، باستخدام 4 بايتات لكل بكسلين (8 بايتات لكل 4 بكسلات). يوجد ترتيبان رئيسيان: [ 17 ]

  • YUY2: يُطلق عليه أيضًا YUYV، ويعمل بالصيغة التالية y0, u, y1, v:
  • UYVY: النسخة العكسية من YUY2 بعد تبديل البايتات، وتعمل بالصيغة التالية u, y0, v, y1:

4:1:1

نادراً ما يُستخدم تنسيق YUV411، وهو يضع وحدات البكسل في مجموعات أفقية من 4 (6 بايت لكل 4 بكسل). [ 17 ]

4:2:0

يُستخدم تنسيق YUV420 (أو Y′UV420p ) على نطاق واسع. وتشمل تنسيقاته الرئيسية IMC2 وIMC4 وYV12 وNV12. [ 17 ] هذه التنسيقات الأربعة "مستوية"، أي أن قيم Y وU وV مُجمّعة معًا بدلًا من أن تكون مُتفرقة. ويشغل كل منها 12 بت لكل بكسل (6 بايت لكل 4 بكسلات)، بافتراض قناة 8 بت.

  • يقوم IMC2 أولاً بوضع الصور الكاملة في Y. ثم يقوم بترتيب كل سطر من chroma بالترتيب V 0 ... V n ، U 0 ... U n ، حيث n هو عدد عينات chroma لكل سطر ، وهو يساوي نصف عرض Y.
  • IMC4 مشابه لـ IMC2، باستثناء أنه يعمل في U 0 ... U n ، V 0 ... V n .
  • يُعدّ تصميم I420 أبسط وأكثر شيوعًا. تُكتب الصورة كاملةً في الموضع Y، ثم الصورة في الموضع U، ثم الصورة كاملةً في الموضع V.
    تخطيط الطريق السريع I420
  • يتبع YV12 نفس التصميم العام لـ I420، ولكن يتم عكس ترتيب الصورتين U و V. [ 19 ]
  • يُعدّ تنسيق NV12 على الأرجح التنسيق الأكثر شيوعًا للصور ذات 8 بت 4:2:0. وهو التنسيق الافتراضي لمعاينة الكاميرا في نظام أندرويد . [ 20 ] تُكتب الصورة كاملةً في الموضع Y، متبوعةً بخطوط متداخلة تبدأ بـ U0 ، ثم V0 ، ثم U1 ، ثم V1 ، وهكذا.

توجد أيضًا أنواع "مُبلّطة" من التنسيقات المستوية. [ 21 ]

مراجع

  1. "مساحات الألوان YUV و YCbCr و YPbPr" . DiscoveryBiz.Net . 2024. تم الاطلاع عليه بتاريخ 16 أبريل 2021 .
  2. "H.273: نقاط ترميز مستقلة عن الترميز لتحديد نوع إشارة الفيديو" . www.itu.int . تم الاطلاع عليه بتاريخ 2025-01-06 .
  3. على سبيل المثال، مواصفات MPEG-2 ، ITU-T H.262 2000 E صفحة 44
  4. "MFNominalRange (mfobjects.h) - تطبيقات Win32" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 10 نوفمبر 2020 .
  5. تشارلز بوينتون، الفيديو الرقمي والتلفزيون عالي الوضوح ، الفصل 24، الصفحات 291-292، مورغان كوفمان ، 2003.
  6. 1 2 3 4 5 6 "BT.2020 : قيم المعلمات لأنظمة التلفزيون فائقة الوضوح للإنتاج وتبادل البرامج الدولي" . الاتحاد الدولي للاتصالات . يونيو 2014. تم الاطلاع عليه بتاريخ 8 سبتمبر 2014 . 
  7. "ITU-T H Suppl. 18" . أكتوبر 2017. hdl : 11.1002/1000/13441 .
  8. ^ "BT.2246-8 (03/2023) الوضع الحالي للتلفزيون فائق الوضوح" . الاتحاد الدولي للاتصالات .
  9. "أخذ العينات الفرعية في ICtCp مقابل YCbCr" (ملف PDF) . مختبرات دولبي، Inc. مؤرشف من الأصل (ملف PDF) في 13 أكتوبر 2018.
  10. تنسيق تبادل ملفات JPEG الإصدار 1.02
  11. T.871: تكنولوجيا المعلومات - الضغط الرقمي وتشفير الصور الثابتة ذات التدرج اللوني المستمر: تنسيق تبادل ملفات JPEG (JFIF) . الاتحاد الدولي للاتصالات - تقييس الاتصالات . 11 سبتمبر 2012. تاريخ الاسترجاع: 25 يوليو 2016 .
  12. راجع توثيق libjpeg-turbo للاطلاع على: CS_YCCK. "YCCK (المعروف أيضًا باسم "YCbCrK") ليس فضاءً لونيًا مطلقًا، بل هو تحويل رياضي لـ CMYK مصمم خصيصًا للتخزين والإرسال"، cmyk_ycck_convert()
  13. "مواصفات التسليم الكاملة غير المُعلَّمة، الإصدار 9.2" . نتفليكس | مركز مساعدة الشركاء . تم الاطلاع عليه بتاريخ 24-09-2022 .
  14. 1 2 جاك، كيث (1993). تبسيط الفيديو . منشورات هاي تكست. ص 30. ISBN  1-878707-09-4.
  15. "استخدم libjpeg-turbo لتحويل YUV->RGB في مُشفّر jpeg · google/skia@c7d01d3" . GitHub .
  16. 1 2 msdn.microsoft.com، أنواع فرعية لفيديو YUV
  17. 1 2 3 4 msdn.microsoft.com، تنسيقات YUV ذات 8 بت الموصى بها لعرض الفيديو
  18. 1 2 "2.7.1.1. تنسيقات YUV المعبأة — وثائق نواة لينكس" . docs.kernel.org .
  19. "ويكي فيديولان: YUV" . wiki.videolan.org .
  20. fourcc.com أشكال البكسل YUV
  21. "2.7.1.2. تنسيقات YUV المستوية — وثائق نواة لينكس" . docs.kernel.org .

موارد برمجية للبكسلات المضغوطة: