1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun.. _v4l2-pix-fmt-ipu3-sbggr10: 4*4882a593Smuzhiyun.. _v4l2-pix-fmt-ipu3-sgbrg10: 5*4882a593Smuzhiyun.. _v4l2-pix-fmt-ipu3-sgrbg10: 6*4882a593Smuzhiyun.. _v4l2-pix-fmt-ipu3-srggb10: 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun********************************************************************************************************************************************** 9*4882a593SmuzhiyunV4L2_PIX_FMT_IPU3_SBGGR10 ('ip3b'), V4L2_PIX_FMT_IPU3_SGBRG10 ('ip3g'), V4L2_PIX_FMT_IPU3_SGRBG10 ('ip3G'), V4L2_PIX_FMT_IPU3_SRGGB10 ('ip3r') 10*4882a593Smuzhiyun********************************************************************************************************************************************** 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun10-bit Bayer formats 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunDescription 15*4882a593Smuzhiyun=========== 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunThese four pixel formats are used by Intel IPU3 driver, they are raw 18*4882a593SmuzhiyunsRGB / Bayer formats with 10 bits per sample with every 25 pixels packed 19*4882a593Smuzhiyunto 32 bytes leaving 6 most significant bits padding in the last byte. 20*4882a593SmuzhiyunThe format is little endian. 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunIn other respects this format is similar to :ref:`V4L2-PIX-FMT-SRGGB10`. 23*4882a593SmuzhiyunBelow is an example of a small image in V4L2_PIX_FMT_IPU3_SBGGR10 format. 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun**Byte Order.** 26*4882a593SmuzhiyunEach cell is one byte. 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun.. tabularcolumns:: |p{0.8cm}|p{4.0cm}|p{4.0cm}|p{4.0cm}|p{4.0cm}| 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun.. flat-table:: 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun * - start + 0: 33*4882a593Smuzhiyun - B\ :sub:`0000low` 34*4882a593Smuzhiyun - G\ :sub:`0001low`\ (bits 7--2) 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun B\ :sub:`0000high`\ (bits 1--0) 37*4882a593Smuzhiyun - B\ :sub:`0002low`\ (bits 7--4) 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun G\ :sub:`0001high`\ (bits 3--0) 40*4882a593Smuzhiyun - G\ :sub:`0003low`\ (bits 7--6) 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun B\ :sub:`0002high`\ (bits 5--0) 43*4882a593Smuzhiyun * - start + 4: 44*4882a593Smuzhiyun - G\ :sub:`0003high` 45*4882a593Smuzhiyun - B\ :sub:`0004low` 46*4882a593Smuzhiyun - G\ :sub:`0005low`\ (bits 7--2) 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun B\ :sub:`0004high`\ (bits 1--0) 49*4882a593Smuzhiyun - B\ :sub:`0006low`\ (bits 7--4) 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun G\ :sub:`0005high`\ (bits 3--0) 52*4882a593Smuzhiyun * - start + 8: 53*4882a593Smuzhiyun - G\ :sub:`0007low`\ (bits 7--6) 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun B\ :sub:`0006high`\ (bits 5--0) 56*4882a593Smuzhiyun - G\ :sub:`0007high` 57*4882a593Smuzhiyun - B\ :sub:`0008low` 58*4882a593Smuzhiyun - G\ :sub:`0009low`\ (bits 7--2) 59*4882a593Smuzhiyun 60*4882a593Smuzhiyun B\ :sub:`0008high`\ (bits 1--0) 61*4882a593Smuzhiyun * - start + 12: 62*4882a593Smuzhiyun - B\ :sub:`0010low`\ (bits 7--4) 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun G\ :sub:`0009high`\ (bits 3--0) 65*4882a593Smuzhiyun - G\ :sub:`0011low`\ (bits 7--6) 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun B\ :sub:`0010high`\ (bits 5--0) 68*4882a593Smuzhiyun - G\ :sub:`0011high` 69*4882a593Smuzhiyun - B\ :sub:`0012low` 70*4882a593Smuzhiyun * - start + 16: 71*4882a593Smuzhiyun - G\ :sub:`0013low`\ (bits 7--2) 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun B\ :sub:`0012high`\ (bits 1--0) 74*4882a593Smuzhiyun - B\ :sub:`0014low`\ (bits 7--4) 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun G\ :sub:`0013high`\ (bits 3--0) 77*4882a593Smuzhiyun - G\ :sub:`0015low`\ (bits 7--6) 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun B\ :sub:`0014high`\ (bits 5--0) 80*4882a593Smuzhiyun - G\ :sub:`0015high` 81*4882a593Smuzhiyun * - start + 20 82*4882a593Smuzhiyun - B\ :sub:`0016low` 83*4882a593Smuzhiyun - G\ :sub:`0017low`\ (bits 7--2) 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun B\ :sub:`0016high`\ (bits 1--0) 86*4882a593Smuzhiyun - B\ :sub:`0018low`\ (bits 7--4) 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun G\ :sub:`0017high`\ (bits 3--0) 89*4882a593Smuzhiyun - G\ :sub:`0019low`\ (bits 7--6) 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun B\ :sub:`0018high`\ (bits 5--0) 92*4882a593Smuzhiyun * - start + 24: 93*4882a593Smuzhiyun - G\ :sub:`0019high` 94*4882a593Smuzhiyun - B\ :sub:`0020low` 95*4882a593Smuzhiyun - G\ :sub:`0021low`\ (bits 7--2) 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun B\ :sub:`0020high`\ (bits 1--0) 98*4882a593Smuzhiyun - B\ :sub:`0022low`\ (bits 7--4) 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun G\ :sub:`0021high`\ (bits 3--0) 101*4882a593Smuzhiyun * - start + 28: 102*4882a593Smuzhiyun - G\ :sub:`0023low`\ (bits 7--6) 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun B\ :sub:`0022high`\ (bits 5--0) 105*4882a593Smuzhiyun - G\ :sub:`0023high` 106*4882a593Smuzhiyun - B\ :sub:`0024low` 107*4882a593Smuzhiyun - B\ :sub:`0024high`\ (bits 1--0) 108*4882a593Smuzhiyun * - start + 32: 109*4882a593Smuzhiyun - G\ :sub:`0100low` 110*4882a593Smuzhiyun - R\ :sub:`0101low`\ (bits 7--2) 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun G\ :sub:`0100high`\ (bits 1--0) 113*4882a593Smuzhiyun - G\ :sub:`0102low`\ (bits 7--4) 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun R\ :sub:`0101high`\ (bits 3--0) 116*4882a593Smuzhiyun - R\ :sub:`0103low`\ (bits 7--6) 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun G\ :sub:`0102high`\ (bits 5--0) 119*4882a593Smuzhiyun * - start + 36: 120*4882a593Smuzhiyun - R\ :sub:`0103high` 121*4882a593Smuzhiyun - G\ :sub:`0104low` 122*4882a593Smuzhiyun - R\ :sub:`0105low`\ (bits 7--2) 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun G\ :sub:`0104high`\ (bits 1--0) 125*4882a593Smuzhiyun - G\ :sub:`0106low`\ (bits 7--4) 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun R\ :sub:`0105high`\ (bits 3--0) 128*4882a593Smuzhiyun * - start + 40: 129*4882a593Smuzhiyun - R\ :sub:`0107low`\ (bits 7--6) 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun G\ :sub:`0106high`\ (bits 5--0) 132*4882a593Smuzhiyun - R\ :sub:`0107high` 133*4882a593Smuzhiyun - G\ :sub:`0108low` 134*4882a593Smuzhiyun - R\ :sub:`0109low`\ (bits 7--2) 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun G\ :sub:`0108high`\ (bits 1--0) 137*4882a593Smuzhiyun * - start + 44: 138*4882a593Smuzhiyun - G\ :sub:`0110low`\ (bits 7--4) 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun R\ :sub:`0109high`\ (bits 3--0) 141*4882a593Smuzhiyun - R\ :sub:`0111low`\ (bits 7--6) 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun G\ :sub:`0110high`\ (bits 5--0) 144*4882a593Smuzhiyun - R\ :sub:`0111high` 145*4882a593Smuzhiyun - G\ :sub:`0112low` 146*4882a593Smuzhiyun * - start + 48: 147*4882a593Smuzhiyun - R\ :sub:`0113low`\ (bits 7--2) 148*4882a593Smuzhiyun 149*4882a593Smuzhiyun G\ :sub:`0112high`\ (bits 1--0) 150*4882a593Smuzhiyun - G\ :sub:`0114low`\ (bits 7--4) 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun R\ :sub:`0113high`\ (bits 3--0) 153*4882a593Smuzhiyun - R\ :sub:`0115low`\ (bits 7--6) 154*4882a593Smuzhiyun 155*4882a593Smuzhiyun G\ :sub:`0114high`\ (bits 5--0) 156*4882a593Smuzhiyun - R\ :sub:`0115high` 157*4882a593Smuzhiyun * - start + 52: 158*4882a593Smuzhiyun - G\ :sub:`0116low` 159*4882a593Smuzhiyun - R\ :sub:`0117low`\ (bits 7--2) 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun G\ :sub:`0116high`\ (bits 1--0) 162*4882a593Smuzhiyun - G\ :sub:`0118low`\ (bits 7--4) 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun R\ :sub:`0117high`\ (bits 3--0) 165*4882a593Smuzhiyun - R\ :sub:`0119low`\ (bits 7--6) 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun G\ :sub:`0118high`\ (bits 5--0) 168*4882a593Smuzhiyun * - start + 56: 169*4882a593Smuzhiyun - R\ :sub:`0119high` 170*4882a593Smuzhiyun - G\ :sub:`0120low` 171*4882a593Smuzhiyun - R\ :sub:`0121low`\ (bits 7--2) 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun G\ :sub:`0120high`\ (bits 1--0) 174*4882a593Smuzhiyun - G\ :sub:`0122low`\ (bits 7--4) 175*4882a593Smuzhiyun 176*4882a593Smuzhiyun R\ :sub:`0121high`\ (bits 3--0) 177*4882a593Smuzhiyun * - start + 60: 178*4882a593Smuzhiyun - R\ :sub:`0123low`\ (bits 7--6) 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun G\ :sub:`0122high`\ (bits 5--0) 181*4882a593Smuzhiyun - R\ :sub:`0123high` 182*4882a593Smuzhiyun - G\ :sub:`0124low` 183*4882a593Smuzhiyun - G\ :sub:`0124high`\ (bits 1--0) 184*4882a593Smuzhiyun * - start + 64: 185*4882a593Smuzhiyun - B\ :sub:`0200low` 186*4882a593Smuzhiyun - G\ :sub:`0201low`\ (bits 7--2) 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun B\ :sub:`0200high`\ (bits 1--0) 189*4882a593Smuzhiyun - B\ :sub:`0202low`\ (bits 7--4) 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun G\ :sub:`0201high`\ (bits 3--0) 192*4882a593Smuzhiyun - G\ :sub:`0203low`\ (bits 7--6) 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun B\ :sub:`0202high`\ (bits 5--0) 195*4882a593Smuzhiyun * - start + 68: 196*4882a593Smuzhiyun - G\ :sub:`0203high` 197*4882a593Smuzhiyun - B\ :sub:`0204low` 198*4882a593Smuzhiyun - G\ :sub:`0205low`\ (bits 7--2) 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun B\ :sub:`0204high`\ (bits 1--0) 201*4882a593Smuzhiyun - B\ :sub:`0206low`\ (bits 7--4) 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun G\ :sub:`0205high`\ (bits 3--0) 204*4882a593Smuzhiyun * - start + 72: 205*4882a593Smuzhiyun - G\ :sub:`0207low`\ (bits 7--6) 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun B\ :sub:`0206high`\ (bits 5--0) 208*4882a593Smuzhiyun - G\ :sub:`0207high` 209*4882a593Smuzhiyun - B\ :sub:`0208low` 210*4882a593Smuzhiyun - G\ :sub:`0209low`\ (bits 7--2) 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun B\ :sub:`0208high`\ (bits 1--0) 213*4882a593Smuzhiyun * - start + 76: 214*4882a593Smuzhiyun - B\ :sub:`0210low`\ (bits 7--4) 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun G\ :sub:`0209high`\ (bits 3--0) 217*4882a593Smuzhiyun - G\ :sub:`0211low`\ (bits 7--6) 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun B\ :sub:`0210high`\ (bits 5--0) 220*4882a593Smuzhiyun - G\ :sub:`0211high` 221*4882a593Smuzhiyun - B\ :sub:`0212low` 222*4882a593Smuzhiyun * - start + 80: 223*4882a593Smuzhiyun - G\ :sub:`0213low`\ (bits 7--2) 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun B\ :sub:`0212high`\ (bits 1--0) 226*4882a593Smuzhiyun - B\ :sub:`0214low`\ (bits 7--4) 227*4882a593Smuzhiyun 228*4882a593Smuzhiyun G\ :sub:`0213high`\ (bits 3--0) 229*4882a593Smuzhiyun - G\ :sub:`0215low`\ (bits 7--6) 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun B\ :sub:`0214high`\ (bits 5--0) 232*4882a593Smuzhiyun - G\ :sub:`0215high` 233*4882a593Smuzhiyun * - start + 84: 234*4882a593Smuzhiyun - B\ :sub:`0216low` 235*4882a593Smuzhiyun - G\ :sub:`0217low`\ (bits 7--2) 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun B\ :sub:`0216high`\ (bits 1--0) 238*4882a593Smuzhiyun - B\ :sub:`0218low`\ (bits 7--4) 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun G\ :sub:`0217high`\ (bits 3--0) 241*4882a593Smuzhiyun - G\ :sub:`0219low`\ (bits 7--6) 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun B\ :sub:`0218high`\ (bits 5--0) 244*4882a593Smuzhiyun * - start + 88: 245*4882a593Smuzhiyun - G\ :sub:`0219high` 246*4882a593Smuzhiyun - B\ :sub:`0220low` 247*4882a593Smuzhiyun - G\ :sub:`0221low`\ (bits 7--2) 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun B\ :sub:`0220high`\ (bits 1--0) 250*4882a593Smuzhiyun - B\ :sub:`0222low`\ (bits 7--4) 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun G\ :sub:`0221high`\ (bits 3--0) 253*4882a593Smuzhiyun * - start + 92: 254*4882a593Smuzhiyun - G\ :sub:`0223low`\ (bits 7--6) 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun B\ :sub:`0222high`\ (bits 5--0) 257*4882a593Smuzhiyun - G\ :sub:`0223high` 258*4882a593Smuzhiyun - B\ :sub:`0224low` 259*4882a593Smuzhiyun - B\ :sub:`0224high`\ (bits 1--0) 260*4882a593Smuzhiyun * - start + 96: 261*4882a593Smuzhiyun - G\ :sub:`0300low` 262*4882a593Smuzhiyun - R\ :sub:`0301low`\ (bits 7--2) 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun G\ :sub:`0300high`\ (bits 1--0) 265*4882a593Smuzhiyun - G\ :sub:`0302low`\ (bits 7--4) 266*4882a593Smuzhiyun 267*4882a593Smuzhiyun R\ :sub:`0301high`\ (bits 3--0) 268*4882a593Smuzhiyun - R\ :sub:`0303low`\ (bits 7--6) 269*4882a593Smuzhiyun 270*4882a593Smuzhiyun G\ :sub:`0302high`\ (bits 5--0) 271*4882a593Smuzhiyun * - start + 100: 272*4882a593Smuzhiyun - R\ :sub:`0303high` 273*4882a593Smuzhiyun - G\ :sub:`0304low` 274*4882a593Smuzhiyun - R\ :sub:`0305low`\ (bits 7--2) 275*4882a593Smuzhiyun 276*4882a593Smuzhiyun G\ :sub:`0304high`\ (bits 1--0) 277*4882a593Smuzhiyun - G\ :sub:`0306low`\ (bits 7--4) 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun R\ :sub:`0305high`\ (bits 3--0) 280*4882a593Smuzhiyun * - start + 104: 281*4882a593Smuzhiyun - R\ :sub:`0307low`\ (bits 7--6) 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun G\ :sub:`0306high`\ (bits 5--0) 284*4882a593Smuzhiyun - R\ :sub:`0307high` 285*4882a593Smuzhiyun - G\ :sub:`0308low` 286*4882a593Smuzhiyun - R\ :sub:`0309low`\ (bits 7--2) 287*4882a593Smuzhiyun 288*4882a593Smuzhiyun G\ :sub:`0308high`\ (bits 1--0) 289*4882a593Smuzhiyun * - start + 108: 290*4882a593Smuzhiyun - G\ :sub:`0310low`\ (bits 7--4) 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun R\ :sub:`0309high`\ (bits 3--0) 293*4882a593Smuzhiyun - R\ :sub:`0311low`\ (bits 7--6) 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun G\ :sub:`0310high`\ (bits 5--0) 296*4882a593Smuzhiyun - R\ :sub:`0311high` 297*4882a593Smuzhiyun - G\ :sub:`0312low` 298*4882a593Smuzhiyun * - start + 112: 299*4882a593Smuzhiyun - R\ :sub:`0313low`\ (bits 7--2) 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun G\ :sub:`0312high`\ (bits 1--0) 302*4882a593Smuzhiyun - G\ :sub:`0314low`\ (bits 7--4) 303*4882a593Smuzhiyun 304*4882a593Smuzhiyun R\ :sub:`0313high`\ (bits 3--0) 305*4882a593Smuzhiyun - R\ :sub:`0315low`\ (bits 7--6) 306*4882a593Smuzhiyun 307*4882a593Smuzhiyun G\ :sub:`0314high`\ (bits 5--0) 308*4882a593Smuzhiyun - R\ :sub:`0315high` 309*4882a593Smuzhiyun * - start + 116: 310*4882a593Smuzhiyun - G\ :sub:`0316low` 311*4882a593Smuzhiyun - R\ :sub:`0317low`\ (bits 7--2) 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun G\ :sub:`0316high`\ (bits 1--0) 314*4882a593Smuzhiyun - G\ :sub:`0318low`\ (bits 7--4) 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun R\ :sub:`0317high`\ (bits 3--0) 317*4882a593Smuzhiyun - R\ :sub:`0319low`\ (bits 7--6) 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun G\ :sub:`0318high`\ (bits 5--0) 320*4882a593Smuzhiyun * - start + 120: 321*4882a593Smuzhiyun - R\ :sub:`0319high` 322*4882a593Smuzhiyun - G\ :sub:`0320low` 323*4882a593Smuzhiyun - R\ :sub:`0321low`\ (bits 7--2) 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun G\ :sub:`0320high`\ (bits 1--0) 326*4882a593Smuzhiyun - G\ :sub:`0322low`\ (bits 7--4) 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun R\ :sub:`0321high`\ (bits 3--0) 329*4882a593Smuzhiyun * - start + 124: 330*4882a593Smuzhiyun - R\ :sub:`0323low`\ (bits 7--6) 331*4882a593Smuzhiyun 332*4882a593Smuzhiyun G\ :sub:`0322high`\ (bits 5--0) 333*4882a593Smuzhiyun - R\ :sub:`0323high` 334*4882a593Smuzhiyun - G\ :sub:`0324low` 335*4882a593Smuzhiyun - G\ :sub:`0324high`\ (bits 1--0) 336