Commit ae9753a0 authored by Daniel Glöckner's avatar Daniel Glöckner Committed by Mauro Carvalho Chehab
Browse files

media: v4l: Add 14-bit raw greyscale pixel format



The new format is called V4L2_PIX_FMT_Y14. Like V4L2_PIX_FMT_Y10 and
V4L2_PIX_FMT_Y12 it is stored in two bytes per pixel but has only two
unused bits at the top.

Signed-off-by: default avatarDaniel Glöckner <dg@emlix.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Acked-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent d12127ed
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
.. Permission is granted to copy, distribute and/or modify this
.. document under the terms of the GNU Free Documentation License,
.. Version 1.1 or any later version published by the Free Software
.. Foundation, with no Invariant Sections, no Front-Cover Texts
.. and no Back-Cover Texts. A copy of the license is included at
.. Documentation/media/uapi/fdl-appendix.rst.
..
.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections

.. _V4L2-PIX-FMT-Y14:

*************************
V4L2_PIX_FMT_Y14 ('Y14 ')
*************************


Grey-scale image


Description
===========

This is a grey-scale image with a depth of 14 bits per pixel. Pixels are
stored in 16-bit words with unused high bits padded with 0. The least
significant byte is stored at lower memory addresses (little-endian).

**Byte Order.**
Each cell is one byte.




.. flat-table::
    :header-rows:  0
    :stub-columns: 0

    * - start + 0:
      - Y'\ :sub:`00low`
      - Y'\ :sub:`00high`
      - Y'\ :sub:`01low`
      - Y'\ :sub:`01high`
      - Y'\ :sub:`02low`
      - Y'\ :sub:`02high`
      - Y'\ :sub:`03low`
      - Y'\ :sub:`03high`
    * - start + 8:
      - Y'\ :sub:`10low`
      - Y'\ :sub:`10high`
      - Y'\ :sub:`11low`
      - Y'\ :sub:`11high`
      - Y'\ :sub:`12low`
      - Y'\ :sub:`12high`
      - Y'\ :sub:`13low`
      - Y'\ :sub:`13high`
    * - start + 16:
      - Y'\ :sub:`20low`
      - Y'\ :sub:`20high`
      - Y'\ :sub:`21low`
      - Y'\ :sub:`21high`
      - Y'\ :sub:`22low`
      - Y'\ :sub:`22high`
      - Y'\ :sub:`23low`
      - Y'\ :sub:`23high`
    * - start + 24:
      - Y'\ :sub:`30low`
      - Y'\ :sub:`30high`
      - Y'\ :sub:`31low`
      - Y'\ :sub:`31high`
      - Y'\ :sub:`32low`
      - Y'\ :sub:`32high`
      - Y'\ :sub:`33low`
      - Y'\ :sub:`33high`
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ to brightness information.
    pixfmt-grey
    pixfmt-y10
    pixfmt-y12
    pixfmt-y14
    pixfmt-y10b
    pixfmt-y10p
    pixfmt-y16
+1 −0
Original line number Diff line number Diff line
@@ -1222,6 +1222,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
	case V4L2_PIX_FMT_Y6:		descr = "6-bit Greyscale"; break;
	case V4L2_PIX_FMT_Y10:		descr = "10-bit Greyscale"; break;
	case V4L2_PIX_FMT_Y12:		descr = "12-bit Greyscale"; break;
	case V4L2_PIX_FMT_Y14:		descr = "14-bit Greyscale"; break;
	case V4L2_PIX_FMT_Y16:		descr = "16-bit Greyscale"; break;
	case V4L2_PIX_FMT_Y16_BE:	descr = "16-bit Greyscale BE"; break;
	case V4L2_PIX_FMT_Y10BPACK:	descr = "10-bit Greyscale (Packed)"; break;
+1 −0
Original line number Diff line number Diff line
@@ -565,6 +565,7 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_Y6      v4l2_fourcc('Y', '0', '6', ' ') /*  6  Greyscale     */
#define V4L2_PIX_FMT_Y10     v4l2_fourcc('Y', '1', '0', ' ') /* 10  Greyscale     */
#define V4L2_PIX_FMT_Y12     v4l2_fourcc('Y', '1', '2', ' ') /* 12  Greyscale     */
#define V4L2_PIX_FMT_Y14     v4l2_fourcc('Y', '1', '4', ' ') /* 14  Greyscale     */
#define V4L2_PIX_FMT_Y16     v4l2_fourcc('Y', '1', '6', ' ') /* 16  Greyscale     */
#define V4L2_PIX_FMT_Y16_BE  v4l2_fourcc_be('Y', '1', '6', ' ') /* 16  Greyscale BE  */