diff options
-rw-r--r-- | Documentation/DocBook/media/v4l/pixfmt.xml | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml index 5e0352c50324..13540fad3b2f 100644 --- a/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/Documentation/DocBook/media/v4l/pixfmt.xml | |||
@@ -666,8 +666,7 @@ as the SMPTE C set, so this colorspace is sometimes called SMPTE C as well.</par | |||
666 | <variablelist> | 666 | <variablelist> |
667 | <varlistentry> | 667 | <varlistentry> |
668 | <term>The transfer function defined for SMPTE 170M is the same as the | 668 | <term>The transfer function defined for SMPTE 170M is the same as the |
669 | one defined in Rec. 709. Normally L is in the range [0…1], but for the extended | 669 | one defined in Rec. 709.</term> |
670 | gamut xvYCC encoding values outside that range are allowed.</term> | ||
671 | <listitem> | 670 | <listitem> |
672 | <para>L' = -1.099(-L)<superscript>0.45</superscript> + 0.099 for L ≤ -0.018</para> | 671 | <para>L' = -1.099(-L)<superscript>0.45</superscript> + 0.099 for L ≤ -0.018</para> |
673 | <para>L' = 4.5L for -0.018 < L < 0.018</para> | 672 | <para>L' = 4.5L for -0.018 < L < 0.018</para> |
@@ -702,25 +701,6 @@ defined in the <xref linkend="itu601" /> standard and this colorspace is sometim | |||
702 | though BT.601 does not mention any color primaries.</para> | 701 | though BT.601 does not mention any color primaries.</para> |
703 | <para>The default quantization is limited range, but full range is possible although | 702 | <para>The default quantization is limited range, but full range is possible although |
704 | rarely seen.</para> | 703 | rarely seen.</para> |
705 | <para>The <constant>V4L2_YCBCR_ENC_601</constant> encoding as described above is the | ||
706 | default for this colorspace, but it can be overridden with <constant>V4L2_YCBCR_ENC_709</constant>, | ||
707 | in which case the Rec. 709 Y'CbCr encoding is used.</para> | ||
708 | <variablelist> | ||
709 | <varlistentry> | ||
710 | <term>The xvYCC 601 encoding (<constant>V4L2_YCBCR_ENC_XV601</constant>, <xref linkend="xvycc" />) is similar | ||
711 | to the BT.601 encoding, but it allows for R', G' and B' values that are outside the range | ||
712 | [0…1]. The resulting Y', Cb and Cr values are scaled and offset:</term> | ||
713 | <listitem> | ||
714 | <para>Y' = (219 / 255) * (0.299R' + 0.587G' + 0.114B') + (16 / 255)</para> | ||
715 | <para>Cb = (224 / 255) * (-0.169R' - 0.331G' + 0.5B')</para> | ||
716 | <para>Cr = (224 / 255) * (0.5R' - 0.419G' - 0.081B')</para> | ||
717 | </listitem> | ||
718 | </varlistentry> | ||
719 | </variablelist> | ||
720 | <para>Y' is clamped to the range [0…1] and Cb and Cr are clamped | ||
721 | to the range [-0.5…0.5]. The non-standard xvYCC 709 encoding can also be used by selecting | ||
722 | <constant>V4L2_YCBCR_ENC_XV709</constant>. The xvYCC encodings always use full range | ||
723 | quantization.</para> | ||
724 | </section> | 704 | </section> |
725 | 705 | ||
726 | <section> | 706 | <section> |
@@ -803,6 +783,7 @@ rarely seen.</para> | |||
803 | <para>The <constant>V4L2_YCBCR_ENC_709</constant> encoding described above is the default | 783 | <para>The <constant>V4L2_YCBCR_ENC_709</constant> encoding described above is the default |
804 | for this colorspace, but it can be overridden with <constant>V4L2_YCBCR_ENC_601</constant>, in which | 784 | for this colorspace, but it can be overridden with <constant>V4L2_YCBCR_ENC_601</constant>, in which |
805 | case the BT.601 Y'CbCr encoding is used.</para> | 785 | case the BT.601 Y'CbCr encoding is used.</para> |
786 | <para>Two additional extended gamut Y'CbCr encodings are also possible with this colorspace:</para> | ||
806 | <variablelist> | 787 | <variablelist> |
807 | <varlistentry> | 788 | <varlistentry> |
808 | <term>The xvYCC 709 encoding (<constant>V4L2_YCBCR_ENC_XV709</constant>, <xref linkend="xvycc" />) | 789 | <term>The xvYCC 709 encoding (<constant>V4L2_YCBCR_ENC_XV709</constant>, <xref linkend="xvycc" />) |
@@ -815,10 +796,22 @@ is similar to the Rec. 709 encoding, but it allows for R', G' and B' values that | |||
815 | </listitem> | 796 | </listitem> |
816 | </varlistentry> | 797 | </varlistentry> |
817 | </variablelist> | 798 | </variablelist> |
799 | <variablelist> | ||
800 | <varlistentry> | ||
801 | <term>The xvYCC 601 encoding (<constant>V4L2_YCBCR_ENC_XV601</constant>, <xref linkend="xvycc" />) is similar | ||
802 | to the BT.601 encoding, but it allows for R', G' and B' values that are outside the range | ||
803 | [0…1]. The resulting Y', Cb and Cr values are scaled and offset:</term> | ||
804 | <listitem> | ||
805 | <para>Y' = (219 / 255) * (0.299R' + 0.587G' + 0.114B') + (16 / 255)</para> | ||
806 | <para>Cb = (224 / 255) * (-0.169R' - 0.331G' + 0.5B')</para> | ||
807 | <para>Cr = (224 / 255) * (0.5R' - 0.419G' - 0.081B')</para> | ||
808 | </listitem> | ||
809 | </varlistentry> | ||
810 | </variablelist> | ||
818 | <para>Y' is clamped to the range [0…1] and Cb and Cr are clamped | 811 | <para>Y' is clamped to the range [0…1] and Cb and Cr are clamped |
819 | to the range [-0.5…0.5]. The non-standard xvYCC 601 encoding can also be used by | 812 | to the range [-0.5…0.5]. The non-standard xvYCC 709 or xvYCC 601 encodings can be used by |
820 | selecting <constant>V4L2_YCBCR_ENC_XV601</constant>. The xvYCC encodings always use full | 813 | selecting <constant>V4L2_YCBCR_ENC_XV709</constant> or <constant>V4L2_YCBCR_ENC_XV601</constant>. |
821 | range quantization.</para> | 814 | The xvYCC encodings always use full range quantization.</para> |
822 | </section> | 815 | </section> |
823 | 816 | ||
824 | <section> | 817 | <section> |