PFNC.h 99 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178
  1. /**************************************************************************************************************
  2. * This file was automatically generated by tools designed and maintained by Leutron Vision, Matrox, Groget, MVTec Software.
  3. * Copyright (C) 2007-2018 Leutron Vision, Matrox, Groget, MVTec Software.
  4. * You can freely use and modify the file without restrictions.
  5. * The file is provided as is, without any warranty. Bug reports and other feedback is appreciated.
  6. **************************************************************************************************************
  7. *
  8. **************************************************************************************************************
  9. * Version and date information:
  10. * PFNC value list release date: 2019-02-19
  11. * Header generator version: 3.4
  12. * Header generation date: 2019-02-19
  13. **************************************************************************************************************/
  14. #ifndef PFNC_H
  15. #define PFNC_H
  16. #define PFNC_Mono1p 0x01010037 /* Monochrome 1-bit packed */
  17. #define PFNC_Mono2p 0x01020038 /* Monochrome 2-bit packed */
  18. #define PFNC_Mono4p 0x01040039 /* Monochrome 4-bit packed */
  19. #define PFNC_Mono8 0x01080001 /* Monochrome 8-bit */
  20. #define PFNC_Mono8s 0x01080002 /* Monochrome 8-bit signed */
  21. #define PFNC_Mono10 0x01100003 /* Monochrome 10-bit unpacked */
  22. #define PFNC_Mono10p 0x010A0046 /* Monochrome 10-bit packed */
  23. #define PFNC_Mono12 0x01100005 /* Monochrome 12-bit unpacked */
  24. #define PFNC_Mono12p 0x010C0047 /* Monochrome 12-bit packed */
  25. #define PFNC_Mono14 0x01100025 /* Monochrome 14-bit unpacked */
  26. #define PFNC_Mono14p 0x010E0104 /* Monochrome 14-bit packed */
  27. #define PFNC_Mono16 0x01100007 /* Monochrome 16-bit */
  28. #define PFNC_Mono32 0x01200111 /* Monochrome 32-bit */
  29. #define PFNC_BayerBG4p 0x01040110 /* Bayer Blue-Green 4-bit packed */
  30. #define PFNC_BayerBG8 0x0108000B /* Bayer Blue-Green 8-bit */
  31. #define PFNC_BayerBG10 0x0110000F /* Bayer Blue-Green 10-bit unpacked */
  32. #define PFNC_BayerBG10p 0x010A0052 /* Bayer Blue-Green 10-bit packed */
  33. #define PFNC_BayerBG12 0x01100013 /* Bayer Blue-Green 12-bit unpacked */
  34. #define PFNC_BayerBG12p 0x010C0053 /* Bayer Blue-Green 12-bit packed */
  35. #define PFNC_BayerBG14 0x0110010C /* Bayer Blue-Green 14-bit */
  36. #define PFNC_BayerBG14p 0x010E0108 /* Bayer Blue-Green 14-bit packed */
  37. #define PFNC_BayerBG16 0x01100031 /* Bayer Blue-Green 16-bit */
  38. #define PFNC_BayerGB4p 0x0104010F /* Bayer Green-Blue 4-bit packed */
  39. #define PFNC_BayerGB8 0x0108000A /* Bayer Green-Blue 8-bit */
  40. #define PFNC_BayerGB10 0x0110000E /* Bayer Green-Blue 10-bit unpacked */
  41. #define PFNC_BayerGB10p 0x010A0054 /* Bayer Green-Blue 10-bit packed */
  42. #define PFNC_BayerGB12 0x01100012 /* Bayer Green-Blue 12-bit unpacked */
  43. #define PFNC_BayerGB12p 0x010C0055 /* Bayer Green-Blue 12-bit packed */
  44. #define PFNC_BayerGB14 0x0110010B /* Bayer Green-Blue 14-bit */
  45. #define PFNC_BayerGB14p 0x010E0107 /* Bayer Green-Blue 14-bit packed */
  46. #define PFNC_BayerGB16 0x01100030 /* Bayer Green-Blue 16-bit */
  47. #define PFNC_BayerGR4p 0x0104010D /* Bayer Green-Red 4-bit packed */
  48. #define PFNC_BayerGR8 0x01080008 /* Bayer Green-Red 8-bit */
  49. #define PFNC_BayerGR10 0x0110000C /* Bayer Green-Red 10-bit unpacked */
  50. #define PFNC_BayerGR10p 0x010A0056 /* Bayer Green-Red 10-bit packed */
  51. #define PFNC_BayerGR12 0x01100010 /* Bayer Green-Red 12-bit unpacked */
  52. #define PFNC_BayerGR12p 0x010C0057 /* Bayer Green-Red 12-bit packed */
  53. #define PFNC_BayerGR14 0x01100109 /* Bayer Green-Red 14-bit */
  54. #define PFNC_BayerGR14p 0x010E0105 /* Bayer Green-Red 14-bit packed */
  55. #define PFNC_BayerGR16 0x0110002E /* Bayer Green-Red 16-bit */
  56. #define PFNC_BayerRG4p 0x0104010E /* Bayer Red-Green 4-bit packed */
  57. #define PFNC_BayerRG8 0x01080009 /* Bayer Red-Green 8-bit */
  58. #define PFNC_BayerRG10 0x0110000D /* Bayer Red-Green 10-bit unpacked */
  59. #define PFNC_BayerRG10p 0x010A0058 /* Bayer Red-Green 10-bit packed */
  60. #define PFNC_BayerRG12 0x01100011 /* Bayer Red-Green 12-bit unpacked */
  61. #define PFNC_BayerRG12p 0x010C0059 /* Bayer Red-Green 12-bit packed */
  62. #define PFNC_BayerRG14 0x0110010A /* Bayer Red-Green 14-bit */
  63. #define PFNC_BayerRG14p 0x010E0106 /* Bayer Red-Green 14-bit packed */
  64. #define PFNC_BayerRG16 0x0110002F /* Bayer Red-Green 16-bit */
  65. #define PFNC_RGBa8 0x02200016 /* Red-Green-Blue-alpha 8-bit */
  66. #define PFNC_RGBa10 0x0240005F /* Red-Green-Blue-alpha 10-bit unpacked */
  67. #define PFNC_RGBa10p 0x02280060 /* Red-Green-Blue-alpha 10-bit packed */
  68. #define PFNC_RGBa12 0x02400061 /* Red-Green-Blue-alpha 12-bit unpacked */
  69. #define PFNC_RGBa12p 0x02300062 /* Red-Green-Blue-alpha 12-bit packed */
  70. #define PFNC_RGBa14 0x02400063 /* Red-Green-Blue-alpha 14-bit unpacked */
  71. #define PFNC_RGBa16 0x02400064 /* Red-Green-Blue-alpha 16-bit */
  72. #define PFNC_RGB8 0x02180014 /* Red-Green-Blue 8-bit */
  73. #define PFNC_RGB8_Planar 0x02180021 /* Red-Green-Blue 8-bit planar */
  74. #define PFNC_RGB10 0x02300018 /* Red-Green-Blue 10-bit unpacked */
  75. #define PFNC_RGB10_Planar 0x02300022 /* Red-Green-Blue 10-bit unpacked planar */
  76. #define PFNC_RGB10p 0x021E005C /* Red-Green-Blue 10-bit packed */
  77. #define PFNC_RGB10p32 0x0220001D /* Red-Green-Blue 10-bit packed into 32-bit */
  78. #define PFNC_RGB12 0x0230001A /* Red-Green-Blue 12-bit unpacked */
  79. #define PFNC_RGB12_Planar 0x02300023 /* Red-Green-Blue 12-bit unpacked planar */
  80. #define PFNC_RGB12p 0x0224005D /* Red-Green-Blue 12-bit packed */
  81. #define PFNC_RGB14 0x0230005E /* Red-Green-Blue 14-bit unpacked */
  82. #define PFNC_RGB16 0x02300033 /* Red-Green-Blue 16-bit */
  83. #define PFNC_RGB16_Planar 0x02300024 /* Red-Green-Blue 16-bit planar */
  84. #define PFNC_RGB565p 0x02100035 /* Red-Green-Blue 5/6/5-bit packed */
  85. #define PFNC_BGRa8 0x02200017 /* Blue-Green-Red-alpha 8-bit */
  86. #define PFNC_BGRa10 0x0240004C /* Blue-Green-Red-alpha 10-bit unpacked */
  87. #define PFNC_BGRa10p 0x0228004D /* Blue-Green-Red-alpha 10-bit packed */
  88. #define PFNC_BGRa12 0x0240004E /* Blue-Green-Red-alpha 12-bit unpacked */
  89. #define PFNC_BGRa12p 0x0230004F /* Blue-Green-Red-alpha 12-bit packed */
  90. #define PFNC_BGRa14 0x02400050 /* Blue-Green-Red-alpha 14-bit unpacked */
  91. #define PFNC_BGRa16 0x02400051 /* Blue-Green-Red-alpha 16-bit */
  92. #define PFNC_BGR8 0x02180015 /* Blue-Green-Red 8-bit */
  93. #define PFNC_BGR10 0x02300019 /* Blue-Green-Red 10-bit unpacked */
  94. #define PFNC_BGR10p 0x021E0048 /* Blue-Green-Red 10-bit packed */
  95. #define PFNC_BGR12 0x0230001B /* Blue-Green-Red 12-bit unpacked */
  96. #define PFNC_BGR12p 0x02240049 /* Blue-Green-Red 12-bit packed */
  97. #define PFNC_BGR14 0x0230004A /* Blue-Green-Red 14-bit unpacked */
  98. #define PFNC_BGR16 0x0230004B /* Blue-Green-Red 16-bit */
  99. #define PFNC_BGR565p 0x02100036 /* Blue-Green-Red 5/6/5-bit packed */
  100. #define PFNC_R8 0x010800C9 /* Red 8-bit */
  101. #define PFNC_R10 0x010A00CA /* Red 10-bit */
  102. #define PFNC_R12 0x010C00CB /* Red 12-bit */
  103. #define PFNC_R16 0x011000CC /* Red 16-bit */
  104. #define PFNC_G8 0x010800CD /* Green 8-bit */
  105. #define PFNC_G10 0x010A00CE /* Green 10-bit */
  106. #define PFNC_G12 0x010C00CF /* Green 12-bit */
  107. #define PFNC_G16 0x011000D0 /* Green 16-bit */
  108. #define PFNC_B8 0x010800D1 /* Blue 8-bit */
  109. #define PFNC_B10 0x010A00D2 /* Blue 10-bit */
  110. #define PFNC_B12 0x010C00D3 /* Blue 12-bit */
  111. #define PFNC_B16 0x011000D4 /* Blue 16-bit */
  112. #define PFNC_Coord3D_ABC8 0x021800B2 /* 3D coordinate A-B-C 8-bit */
  113. #define PFNC_Coord3D_ABC8_Planar 0x021800B3 /* 3D coordinate A-B-C 8-bit planar */
  114. #define PFNC_Coord3D_ABC10p 0x021E00DB /* 3D coordinate A-B-C 10-bit packed */
  115. #define PFNC_Coord3D_ABC10p_Planar 0x021E00DC /* 3D coordinate A-B-C 10-bit packed planar */
  116. #define PFNC_Coord3D_ABC12p 0x022400DE /* 3D coordinate A-B-C 12-bit packed */
  117. #define PFNC_Coord3D_ABC12p_Planar 0x022400DF /* 3D coordinate A-B-C 12-bit packed planar */
  118. #define PFNC_Coord3D_ABC16 0x023000B9 /* 3D coordinate A-B-C 16-bit */
  119. #define PFNC_Coord3D_ABC16_Planar 0x023000BA /* 3D coordinate A-B-C 16-bit planar */
  120. #define PFNC_Coord3D_ABC32f 0x026000C0 /* 3D coordinate A-B-C 32-bit floating point */
  121. #define PFNC_Coord3D_ABC32f_Planar 0x026000C1 /* 3D coordinate A-B-C 32-bit floating point planar */
  122. #define PFNC_Coord3D_AC8 0x021000B4 /* 3D coordinate A-C 8-bit */
  123. #define PFNC_Coord3D_AC8_Planar 0x021000B5 /* 3D coordinate A-C 8-bit planar */
  124. #define PFNC_Coord3D_AC10p 0x021400F0 /* 3D coordinate A-C 10-bit packed */
  125. #define PFNC_Coord3D_AC10p_Planar 0x021400F1 /* 3D coordinate A-C 10-bit packed planar */
  126. #define PFNC_Coord3D_AC12p 0x021800F2 /* 3D coordinate A-C 12-bit packed */
  127. #define PFNC_Coord3D_AC12p_Planar 0x021800F3 /* 3D coordinate A-C 12-bit packed planar */
  128. #define PFNC_Coord3D_AC16 0x022000BB /* 3D coordinate A-C 16-bit */
  129. #define PFNC_Coord3D_AC16_Planar 0x022000BC /* 3D coordinate A-C 16-bit planar */
  130. #define PFNC_Coord3D_AC32f 0x024000C2 /* 3D coordinate A-C 32-bit floating point */
  131. #define PFNC_Coord3D_AC32f_Planar 0x024000C3 /* 3D coordinate A-C 32-bit floating point planar */
  132. #define PFNC_Coord3D_A8 0x010800AF /* 3D coordinate A 8-bit */
  133. #define PFNC_Coord3D_A10p 0x010A00D5 /* 3D coordinate A 10-bit packed */
  134. #define PFNC_Coord3D_A12p 0x010C00D8 /* 3D coordinate A 12-bit packed */
  135. #define PFNC_Coord3D_A16 0x011000B6 /* 3D coordinate A 16-bit */
  136. #define PFNC_Coord3D_A32f 0x012000BD /* 3D coordinate A 32-bit floating point */
  137. #define PFNC_Coord3D_B8 0x010800B0 /* 3D coordinate B 8-bit */
  138. #define PFNC_Coord3D_B10p 0x010A00D6 /* 3D coordinate B 10-bit packed */
  139. #define PFNC_Coord3D_B12p 0x010C00D9 /* 3D coordinate B 12-bit packed */
  140. #define PFNC_Coord3D_B16 0x011000B7 /* 3D coordinate B 16-bit */
  141. #define PFNC_Coord3D_B32f 0x012000BE /* 3D coordinate B 32-bit floating point */
  142. #define PFNC_Coord3D_C8 0x010800B1 /* 3D coordinate C 8-bit */
  143. #define PFNC_Coord3D_C10p 0x010A00D7 /* 3D coordinate C 10-bit packed */
  144. #define PFNC_Coord3D_C12p 0x010C00DA /* 3D coordinate C 12-bit packed */
  145. #define PFNC_Coord3D_C16 0x011000B8 /* 3D coordinate C 16-bit */
  146. #define PFNC_Coord3D_C32f 0x012000BF /* 3D coordinate C 32-bit floating point */
  147. #define PFNC_Confidence1 0x010800C4 /* Confidence 1-bit unpacked */
  148. #define PFNC_Confidence1p 0x010100C5 /* Confidence 1-bit packed */
  149. #define PFNC_Confidence8 0x010800C6 /* Confidence 8-bit */
  150. #define PFNC_Confidence16 0x011000C7 /* Confidence 16-bit */
  151. #define PFNC_Confidence32f 0x012000C8 /* Confidence 32-bit floating point */
  152. #define PFNC_BiColorBGRG8 0x021000A6 /* Bi-color Blue/Green - Red/Green 8-bit */
  153. #define PFNC_BiColorBGRG10 0x022000A9 /* Bi-color Blue/Green - Red/Green 10-bit unpacked */
  154. #define PFNC_BiColorBGRG10p 0x021400AA /* Bi-color Blue/Green - Red/Green 10-bit packed */
  155. #define PFNC_BiColorBGRG12 0x022000AD /* Bi-color Blue/Green - Red/Green 12-bit unpacked */
  156. #define PFNC_BiColorBGRG12p 0x021800AE /* Bi-color Blue/Green - Red/Green 12-bit packed */
  157. #define PFNC_BiColorRGBG8 0x021000A5 /* Bi-color Red/Green - Blue/Green 8-bit */
  158. #define PFNC_BiColorRGBG10 0x022000A7 /* Bi-color Red/Green - Blue/Green 10-bit unpacked */
  159. #define PFNC_BiColorRGBG10p 0x021400A8 /* Bi-color Red/Green - Blue/Green 10-bit packed */
  160. #define PFNC_BiColorRGBG12 0x022000AB /* Bi-color Red/Green - Blue/Green 12-bit unpacked */
  161. #define PFNC_BiColorRGBG12p 0x021800AC /* Bi-color Red/Green - Blue/Green 12-bit packed */
  162. #define PFNC_Data8 0x01080116 /* Data 8-bit */
  163. #define PFNC_Data8s 0x01080117 /* Data 8-bit signed */
  164. #define PFNC_Data16 0x01100118 /* Data 16-bit */
  165. #define PFNC_Data16s 0x01100119 /* Data 16-bit signed */
  166. #define PFNC_Data32 0x0120011A /* Data 32-bit */
  167. #define PFNC_Data32f 0x0120011C /* Data 32-bit floating point */
  168. #define PFNC_Data32s 0x0120011B /* Data 32-bit signed */
  169. #define PFNC_Data64 0x0140011D /* Data 64-bit */
  170. #define PFNC_Data64f 0x0140011F /* Data 64-bit floating point */
  171. #define PFNC_Data64s 0x0140011E /* Data 64-bit signed */
  172. #define PFNC_SCF1WBWG8 0x01080067 /* Sparse Color Filter #1 White-Blue-White-Green 8-bit */
  173. #define PFNC_SCF1WBWG10 0x01100068 /* Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked */
  174. #define PFNC_SCF1WBWG10p 0x010A0069 /* Sparse Color Filter #1 White-Blue-White-Green 10-bit packed */
  175. #define PFNC_SCF1WBWG12 0x0110006A /* Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked */
  176. #define PFNC_SCF1WBWG12p 0x010C006B /* Sparse Color Filter #1 White-Blue-White-Green 12-bit packed */
  177. #define PFNC_SCF1WBWG14 0x0110006C /* Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked */
  178. #define PFNC_SCF1WBWG16 0x0110006D /* Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked */
  179. #define PFNC_SCF1WGWB8 0x0108006E /* Sparse Color Filter #1 White-Green-White-Blue 8-bit */
  180. #define PFNC_SCF1WGWB10 0x0110006F /* Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked */
  181. #define PFNC_SCF1WGWB10p 0x010A0070 /* Sparse Color Filter #1 White-Green-White-Blue 10-bit packed */
  182. #define PFNC_SCF1WGWB12 0x01100071 /* Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked */
  183. #define PFNC_SCF1WGWB12p 0x010C0072 /* Sparse Color Filter #1 White-Green-White-Blue 12-bit packed */
  184. #define PFNC_SCF1WGWB14 0x01100073 /* Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked */
  185. #define PFNC_SCF1WGWB16 0x01100074 /* Sparse Color Filter #1 White-Green-White-Blue 16-bit */
  186. #define PFNC_SCF1WGWR8 0x01080075 /* Sparse Color Filter #1 White-Green-White-Red 8-bit */
  187. #define PFNC_SCF1WGWR10 0x01100076 /* Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked */
  188. #define PFNC_SCF1WGWR10p 0x010A0077 /* Sparse Color Filter #1 White-Green-White-Red 10-bit packed */
  189. #define PFNC_SCF1WGWR12 0x01100078 /* Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked */
  190. #define PFNC_SCF1WGWR12p 0x010C0079 /* Sparse Color Filter #1 White-Green-White-Red 12-bit packed */
  191. #define PFNC_SCF1WGWR14 0x0110007A /* Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked */
  192. #define PFNC_SCF1WGWR16 0x0110007B /* Sparse Color Filter #1 White-Green-White-Red 16-bit */
  193. #define PFNC_SCF1WRWG8 0x0108007C /* Sparse Color Filter #1 White-Red-White-Green 8-bit */
  194. #define PFNC_SCF1WRWG10 0x0110007D /* Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked */
  195. #define PFNC_SCF1WRWG10p 0x010A007E /* Sparse Color Filter #1 White-Red-White-Green 10-bit packed */
  196. #define PFNC_SCF1WRWG12 0x0110007F /* Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked */
  197. #define PFNC_SCF1WRWG12p 0x010C0080 /* Sparse Color Filter #1 White-Red-White-Green 12-bit packed */
  198. #define PFNC_SCF1WRWG14 0x01100081 /* Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked */
  199. #define PFNC_SCF1WRWG16 0x01100082 /* Sparse Color Filter #1 White-Red-White-Green 16-bit */
  200. #define PFNC_YCbCr8 0x0218005B /* YCbCr 4:4:4 8-bit */
  201. #define PFNC_YCbCr8_CbYCr 0x0218003A /* YCbCr 4:4:4 8-bit */
  202. #define PFNC_YCbCr10_CbYCr 0x02300083 /* YCbCr 4:4:4 10-bit unpacked */
  203. #define PFNC_YCbCr10p_CbYCr 0x021E0084 /* YCbCr 4:4:4 10-bit packed */
  204. #define PFNC_YCbCr12_CbYCr 0x02300085 /* YCbCr 4:4:4 12-bit unpacked */
  205. #define PFNC_YCbCr12p_CbYCr 0x02240086 /* YCbCr 4:4:4 12-bit packed */
  206. #define PFNC_YCbCr411_8 0x020C005A /* YCbCr 4:1:1 8-bit */
  207. #define PFNC_YCbCr411_8_CbYYCrYY 0x020C003C /* YCbCr 4:1:1 8-bit */
  208. #define PFNC_YCbCr420_8_YY_CbCr_Semiplanar 0x020C0112 /* YCbCr 4:2:0 8-bit YY/CbCr Semiplanar */
  209. #define PFNC_YCbCr420_8_YY_CrCb_Semiplanar 0x020C0114 /* YCbCr 4:2:0 8-bit YY/CrCb Semiplanar */
  210. #define PFNC_YCbCr422_8 0x0210003B /* YCbCr 4:2:2 8-bit */
  211. #define PFNC_YCbCr422_8_CbYCrY 0x02100043 /* YCbCr 4:2:2 8-bit */
  212. #define PFNC_YCbCr422_8_YY_CbCr_Semiplanar 0x02100113 /* YCbCr 4:2:2 8-bit YY/CbCr Semiplanar */
  213. #define PFNC_YCbCr422_8_YY_CrCb_Semiplanar 0x02100115 /* YCbCr 4:2:2 8-bit YY/CrCb Semiplanar */
  214. #define PFNC_YCbCr422_10 0x02200065 /* YCbCr 4:2:2 10-bit unpacked */
  215. #define PFNC_YCbCr422_10_CbYCrY 0x02200099 /* YCbCr 4:2:2 10-bit unpacked */
  216. #define PFNC_YCbCr422_10p 0x02140087 /* YCbCr 4:2:2 10-bit packed */
  217. #define PFNC_YCbCr422_10p_CbYCrY 0x0214009A /* YCbCr 4:2:2 10-bit packed */
  218. #define PFNC_YCbCr422_12 0x02200066 /* YCbCr 4:2:2 12-bit unpacked */
  219. #define PFNC_YCbCr422_12_CbYCrY 0x0220009B /* YCbCr 4:2:2 12-bit unpacked */
  220. #define PFNC_YCbCr422_12p 0x02180088 /* YCbCr 4:2:2 12-bit packed */
  221. #define PFNC_YCbCr422_12p_CbYCrY 0x0218009C /* YCbCr 4:2:2 12-bit packed */
  222. #define PFNC_YCbCr601_8_CbYCr 0x0218003D /* YCbCr 4:4:4 8-bit BT.601 */
  223. #define PFNC_YCbCr601_10_CbYCr 0x02300089 /* YCbCr 4:4:4 10-bit unpacked BT.601 */
  224. #define PFNC_YCbCr601_10p_CbYCr 0x021E008A /* YCbCr 4:4:4 10-bit packed BT.601 */
  225. #define PFNC_YCbCr601_12_CbYCr 0x0230008B /* YCbCr 4:4:4 12-bit unpacked BT.601 */
  226. #define PFNC_YCbCr601_12p_CbYCr 0x0224008C /* YCbCr 4:4:4 12-bit packed BT.601 */
  227. #define PFNC_YCbCr601_411_8_CbYYCrYY 0x020C003F /* YCbCr 4:1:1 8-bit BT.601 */
  228. #define PFNC_YCbCr601_422_8 0x0210003E /* YCbCr 4:2:2 8-bit BT.601 */
  229. #define PFNC_YCbCr601_422_8_CbYCrY 0x02100044 /* YCbCr 4:2:2 8-bit BT.601 */
  230. #define PFNC_YCbCr601_422_10 0x0220008D /* YCbCr 4:2:2 10-bit unpacked BT.601 */
  231. #define PFNC_YCbCr601_422_10_CbYCrY 0x0220009D /* YCbCr 4:2:2 10-bit unpacked BT.601 */
  232. #define PFNC_YCbCr601_422_10p 0x0214008E /* YCbCr 4:2:2 10-bit packed BT.601 */
  233. #define PFNC_YCbCr601_422_10p_CbYCrY 0x0214009E /* YCbCr 4:2:2 10-bit packed BT.601 */
  234. #define PFNC_YCbCr601_422_12 0x0220008F /* YCbCr 4:2:2 12-bit unpacked BT.601 */
  235. #define PFNC_YCbCr601_422_12_CbYCrY 0x0220009F /* YCbCr 4:2:2 12-bit unpacked BT.601 */
  236. #define PFNC_YCbCr601_422_12p 0x02180090 /* YCbCr 4:2:2 12-bit packed BT.601 */
  237. #define PFNC_YCbCr601_422_12p_CbYCrY 0x021800A0 /* YCbCr 4:2:2 12-bit packed BT.601 */
  238. #define PFNC_YCbCr709_8_CbYCr 0x02180040 /* YCbCr 4:4:4 8-bit BT.709 */
  239. #define PFNC_YCbCr709_10_CbYCr 0x02300091 /* YCbCr 4:4:4 10-bit unpacked BT.709 */
  240. #define PFNC_YCbCr709_10p_CbYCr 0x021E0092 /* YCbCr 4:4:4 10-bit packed BT.709 */
  241. #define PFNC_YCbCr709_12_CbYCr 0x02300093 /* YCbCr 4:4:4 12-bit unpacked BT.709 */
  242. #define PFNC_YCbCr709_12p_CbYCr 0x02240094 /* YCbCr 4:4:4 12-bit packed BT.709 */
  243. #define PFNC_YCbCr709_411_8_CbYYCrYY 0x020C0042 /* YCbCr 4:1:1 8-bit BT.709 */
  244. #define PFNC_YCbCr709_422_8 0x02100041 /* YCbCr 4:2:2 8-bit BT.709 */
  245. #define PFNC_YCbCr709_422_8_CbYCrY 0x02100045 /* YCbCr 4:2:2 8-bit BT.709 */
  246. #define PFNC_YCbCr709_422_10 0x02200095 /* YCbCr 4:2:2 10-bit unpacked BT.709 */
  247. #define PFNC_YCbCr709_422_10_CbYCrY 0x022000A1 /* YCbCr 4:2:2 10-bit unpacked BT.709 */
  248. #define PFNC_YCbCr709_422_10p 0x02140096 /* YCbCr 4:2:2 10-bit packed BT.709 */
  249. #define PFNC_YCbCr709_422_10p_CbYCrY 0x021400A2 /* YCbCr 4:2:2 10-bit packed BT.709 */
  250. #define PFNC_YCbCr709_422_12 0x02200097 /* YCbCr 4:2:2 12-bit unpacked BT.709 */
  251. #define PFNC_YCbCr709_422_12_CbYCrY 0x022000A3 /* YCbCr 4:2:2 12-bit unpacked BT.709 */
  252. #define PFNC_YCbCr709_422_12p 0x02180098 /* YCbCr 4:2:2 12-bit packed BT.709 */
  253. #define PFNC_YCbCr709_422_12p_CbYCrY 0x021800A4 /* YCbCr 4:2:2 12-bit packed BT.709 */
  254. #define PFNC_YCbCr2020_8_CbYCr 0x021800F4 /* YCbCr 4:4:4 8-bit BT.2020 */
  255. #define PFNC_YCbCr2020_10_CbYCr 0x023000F5 /* YCbCr 4:4:4 10-bit unpacked BT.2020 */
  256. #define PFNC_YCbCr2020_10p_CbYCr 0x021E00F6 /* YCbCr 4:4:4 10-bit packed BT.2020 */
  257. #define PFNC_YCbCr2020_12_CbYCr 0x023000F7 /* YCbCr 4:4:4 12-bit unpacked BT.2020 */
  258. #define PFNC_YCbCr2020_12p_CbYCr 0x022400F8 /* YCbCr 4:4:4 12-bit packed BT.2020 */
  259. #define PFNC_YCbCr2020_411_8_CbYYCrYY 0x020C00F9 /* YCbCr 4:1:1 8-bit BT.2020 */
  260. #define PFNC_YCbCr2020_422_8 0x021000FA /* YCbCr 4:2:2 8-bit BT.2020 */
  261. #define PFNC_YCbCr2020_422_8_CbYCrY 0x021000FB /* YCbCr 4:2:2 8-bit BT.2020 */
  262. #define PFNC_YCbCr2020_422_10 0x022000FC /* YCbCr 4:2:2 10-bit unpacked BT.2020 */
  263. #define PFNC_YCbCr2020_422_10_CbYCrY 0x022000FD /* YCbCr 4:2:2 10-bit unpacked BT.2020 */
  264. #define PFNC_YCbCr2020_422_10p 0x021400FE /* YCbCr 4:2:2 10-bit packed BT.2020 */
  265. #define PFNC_YCbCr2020_422_10p_CbYCrY 0x021400FF /* YCbCr 4:2:2 10-bit packed BT.2020 */
  266. #define PFNC_YCbCr2020_422_12 0x02200100 /* YCbCr 4:2:2 12-bit unpacked BT.2020 */
  267. #define PFNC_YCbCr2020_422_12_CbYCrY 0x02200101 /* YCbCr 4:2:2 12-bit unpacked BT.2020 */
  268. #define PFNC_YCbCr2020_422_12p 0x02180102 /* YCbCr 4:2:2 12-bit packed BT.2020 */
  269. #define PFNC_YCbCr2020_422_12p_CbYCrY 0x02180103 /* YCbCr 4:2:2 12-bit packed BT.2020 */
  270. #define PFNC_YUV8_UYV 0x02180020 /* YUV 4:4:4 8-bit */
  271. #define PFNC_YUV411_8_UYYVYY 0x020C001E /* YUV 4:1:1 8-bit */
  272. #define PFNC_YUV422_8 0x02100032 /* YUV 4:2:2 8-bit */
  273. #define PFNC_YUV422_8_UYVY 0x0210001F /* YUV 4:2:2 8-bit */
  274. /* Following formats are not PFNC compliant, but are still kept in the list for legacy purposes. */
  275. #define GVSP_Mono10Packed 0x010C0004 /* GigE Vision specific format, Monochrome 10-bit packed */
  276. #define GVSP_Mono12Packed 0x010C0006 /* GigE Vision specific format, Monochrome 12-bit packed */
  277. #define GVSP_BayerBG10Packed 0x010C0029 /* GigE Vision specific format, Bayer Blue-Green 10-bit packed */
  278. #define GVSP_BayerBG12Packed 0x010C002D /* GigE Vision specific format, Bayer Blue-Green 12-bit packed */
  279. #define GVSP_BayerGB10Packed 0x010C0028 /* GigE Vision specific format, Bayer Green-Blue 10-bit packed */
  280. #define GVSP_BayerGB12Packed 0x010C002C /* GigE Vision specific format, Bayer Green-Blue 12-bit packed */
  281. #define GVSP_BayerGR10Packed 0x010C0026 /* GigE Vision specific format, Bayer Green-Red 10-bit packed */
  282. #define GVSP_BayerGR12Packed 0x010C002A /* GigE Vision specific format, Bayer Green-Red 12-bit packed */
  283. #define GVSP_BayerRG10Packed 0x010C0027 /* GigE Vision specific format, Bayer Red-Green 10-bit packed */
  284. #define GVSP_BayerRG12Packed 0x010C002B /* GigE Vision specific format, Bayer Red-Green 12-bit packed */
  285. #define GVSP_RGB10V1Packed 0x0220001C /* GigE Vision specific format, Red-Green-Blue 10-bit packed - variant 1 */
  286. #define GVSP_RGB12V1Packed 0x02240034 /* GigE Vision specific format, Red-Green-Blue 12-bit packed - variant 1 */
  287. /* Identical set of formats in the form of an enum */
  288. typedef enum PfncFormat_
  289. {
  290. Mono1p = 0x01010037, /* Monochrome 1-bit packed */
  291. Mono2p = 0x01020038, /* Monochrome 2-bit packed */
  292. Mono4p = 0x01040039, /* Monochrome 4-bit packed */
  293. Mono8 = 0x01080001, /* Monochrome 8-bit */
  294. Mono8s = 0x01080002, /* Monochrome 8-bit signed */
  295. Mono10 = 0x01100003, /* Monochrome 10-bit unpacked */
  296. Mono10p = 0x010A0046, /* Monochrome 10-bit packed */
  297. Mono12 = 0x01100005, /* Monochrome 12-bit unpacked */
  298. Mono12p = 0x010C0047, /* Monochrome 12-bit packed */
  299. Mono14 = 0x01100025, /* Monochrome 14-bit unpacked */
  300. Mono14p = 0x010E0104, /* Monochrome 14-bit packed */
  301. Mono16 = 0x01100007, /* Monochrome 16-bit */
  302. Mono32 = 0x01200111, /* Monochrome 32-bit */
  303. BayerBG4p = 0x01040110, /* Bayer Blue-Green 4-bit packed */
  304. BayerBG8 = 0x0108000B, /* Bayer Blue-Green 8-bit */
  305. BayerBG10 = 0x0110000F, /* Bayer Blue-Green 10-bit unpacked */
  306. BayerBG10p = 0x010A0052, /* Bayer Blue-Green 10-bit packed */
  307. BayerBG12 = 0x01100013, /* Bayer Blue-Green 12-bit unpacked */
  308. BayerBG12p = 0x010C0053, /* Bayer Blue-Green 12-bit packed */
  309. BayerBG14 = 0x0110010C, /* Bayer Blue-Green 14-bit */
  310. BayerBG14p = 0x010E0108, /* Bayer Blue-Green 14-bit packed */
  311. BayerBG16 = 0x01100031, /* Bayer Blue-Green 16-bit */
  312. BayerGB4p = 0x0104010F, /* Bayer Green-Blue 4-bit packed */
  313. BayerGB8 = 0x0108000A, /* Bayer Green-Blue 8-bit */
  314. BayerGB10 = 0x0110000E, /* Bayer Green-Blue 10-bit unpacked */
  315. BayerGB10p = 0x010A0054, /* Bayer Green-Blue 10-bit packed */
  316. BayerGB12 = 0x01100012, /* Bayer Green-Blue 12-bit unpacked */
  317. BayerGB12p = 0x010C0055, /* Bayer Green-Blue 12-bit packed */
  318. BayerGB14 = 0x0110010B, /* Bayer Green-Blue 14-bit */
  319. BayerGB14p = 0x010E0107, /* Bayer Green-Blue 14-bit packed */
  320. BayerGB16 = 0x01100030, /* Bayer Green-Blue 16-bit */
  321. BayerGR4p = 0x0104010D, /* Bayer Green-Red 4-bit packed */
  322. BayerGR8 = 0x01080008, /* Bayer Green-Red 8-bit */
  323. BayerGR10 = 0x0110000C, /* Bayer Green-Red 10-bit unpacked */
  324. BayerGR10p = 0x010A0056, /* Bayer Green-Red 10-bit packed */
  325. BayerGR12 = 0x01100010, /* Bayer Green-Red 12-bit unpacked */
  326. BayerGR12p = 0x010C0057, /* Bayer Green-Red 12-bit packed */
  327. BayerGR14 = 0x01100109, /* Bayer Green-Red 14-bit */
  328. BayerGR14p = 0x010E0105, /* Bayer Green-Red 14-bit packed */
  329. BayerGR16 = 0x0110002E, /* Bayer Green-Red 16-bit */
  330. BayerRG4p = 0x0104010E, /* Bayer Red-Green 4-bit packed */
  331. BayerRG8 = 0x01080009, /* Bayer Red-Green 8-bit */
  332. BayerRG10 = 0x0110000D, /* Bayer Red-Green 10-bit unpacked */
  333. BayerRG10p = 0x010A0058, /* Bayer Red-Green 10-bit packed */
  334. BayerRG12 = 0x01100011, /* Bayer Red-Green 12-bit unpacked */
  335. BayerRG12p = 0x010C0059, /* Bayer Red-Green 12-bit packed */
  336. BayerRG14 = 0x0110010A, /* Bayer Red-Green 14-bit */
  337. BayerRG14p = 0x010E0106, /* Bayer Red-Green 14-bit packed */
  338. BayerRG16 = 0x0110002F, /* Bayer Red-Green 16-bit */
  339. RGBa8 = 0x02200016, /* Red-Green-Blue-alpha 8-bit */
  340. RGBa10 = 0x0240005F, /* Red-Green-Blue-alpha 10-bit unpacked */
  341. RGBa10p = 0x02280060, /* Red-Green-Blue-alpha 10-bit packed */
  342. RGBa12 = 0x02400061, /* Red-Green-Blue-alpha 12-bit unpacked */
  343. RGBa12p = 0x02300062, /* Red-Green-Blue-alpha 12-bit packed */
  344. RGBa14 = 0x02400063, /* Red-Green-Blue-alpha 14-bit unpacked */
  345. RGBa16 = 0x02400064, /* Red-Green-Blue-alpha 16-bit */
  346. RGB8 = 0x02180014, /* Red-Green-Blue 8-bit */
  347. RGB8_Planar = 0x02180021, /* Red-Green-Blue 8-bit planar */
  348. RGB10 = 0x02300018, /* Red-Green-Blue 10-bit unpacked */
  349. RGB10_Planar = 0x02300022, /* Red-Green-Blue 10-bit unpacked planar */
  350. RGB10p = 0x021E005C, /* Red-Green-Blue 10-bit packed */
  351. RGB10p32 = 0x0220001D, /* Red-Green-Blue 10-bit packed into 32-bit */
  352. RGB12 = 0x0230001A, /* Red-Green-Blue 12-bit unpacked */
  353. RGB12_Planar = 0x02300023, /* Red-Green-Blue 12-bit unpacked planar */
  354. RGB12p = 0x0224005D, /* Red-Green-Blue 12-bit packed */
  355. RGB14 = 0x0230005E, /* Red-Green-Blue 14-bit unpacked */
  356. RGB16 = 0x02300033, /* Red-Green-Blue 16-bit */
  357. RGB16_Planar = 0x02300024, /* Red-Green-Blue 16-bit planar */
  358. RGB565p = 0x02100035, /* Red-Green-Blue 5/6/5-bit packed */
  359. BGRa8 = 0x02200017, /* Blue-Green-Red-alpha 8-bit */
  360. BGRa10 = 0x0240004C, /* Blue-Green-Red-alpha 10-bit unpacked */
  361. BGRa10p = 0x0228004D, /* Blue-Green-Red-alpha 10-bit packed */
  362. BGRa12 = 0x0240004E, /* Blue-Green-Red-alpha 12-bit unpacked */
  363. BGRa12p = 0x0230004F, /* Blue-Green-Red-alpha 12-bit packed */
  364. BGRa14 = 0x02400050, /* Blue-Green-Red-alpha 14-bit unpacked */
  365. BGRa16 = 0x02400051, /* Blue-Green-Red-alpha 16-bit */
  366. BGR8 = 0x02180015, /* Blue-Green-Red 8-bit */
  367. BGR10 = 0x02300019, /* Blue-Green-Red 10-bit unpacked */
  368. BGR10p = 0x021E0048, /* Blue-Green-Red 10-bit packed */
  369. BGR12 = 0x0230001B, /* Blue-Green-Red 12-bit unpacked */
  370. BGR12p = 0x02240049, /* Blue-Green-Red 12-bit packed */
  371. BGR14 = 0x0230004A, /* Blue-Green-Red 14-bit unpacked */
  372. BGR16 = 0x0230004B, /* Blue-Green-Red 16-bit */
  373. BGR565p = 0x02100036, /* Blue-Green-Red 5/6/5-bit packed */
  374. R8 = 0x010800C9, /* Red 8-bit */
  375. R10 = 0x010A00CA, /* Red 10-bit */
  376. R12 = 0x010C00CB, /* Red 12-bit */
  377. R16 = 0x011000CC, /* Red 16-bit */
  378. G8 = 0x010800CD, /* Green 8-bit */
  379. G10 = 0x010A00CE, /* Green 10-bit */
  380. G12 = 0x010C00CF, /* Green 12-bit */
  381. G16 = 0x011000D0, /* Green 16-bit */
  382. B8 = 0x010800D1, /* Blue 8-bit */
  383. B10 = 0x010A00D2, /* Blue 10-bit */
  384. B12 = 0x010C00D3, /* Blue 12-bit */
  385. B16 = 0x011000D4, /* Blue 16-bit */
  386. Coord3D_ABC8 = 0x021800B2, /* 3D coordinate A-B-C 8-bit */
  387. Coord3D_ABC8_Planar = 0x021800B3, /* 3D coordinate A-B-C 8-bit planar */
  388. Coord3D_ABC10p = 0x021E00DB, /* 3D coordinate A-B-C 10-bit packed */
  389. Coord3D_ABC10p_Planar = 0x021E00DC, /* 3D coordinate A-B-C 10-bit packed planar */
  390. Coord3D_ABC12p = 0x022400DE, /* 3D coordinate A-B-C 12-bit packed */
  391. Coord3D_ABC12p_Planar = 0x022400DF, /* 3D coordinate A-B-C 12-bit packed planar */
  392. Coord3D_ABC16 = 0x023000B9, /* 3D coordinate A-B-C 16-bit */
  393. Coord3D_ABC16_Planar = 0x023000BA, /* 3D coordinate A-B-C 16-bit planar */
  394. Coord3D_ABC32f = 0x026000C0, /* 3D coordinate A-B-C 32-bit floating point */
  395. Coord3D_ABC32f_Planar = 0x026000C1, /* 3D coordinate A-B-C 32-bit floating point planar */
  396. Coord3D_AC8 = 0x021000B4, /* 3D coordinate A-C 8-bit */
  397. Coord3D_AC8_Planar = 0x021000B5, /* 3D coordinate A-C 8-bit planar */
  398. Coord3D_AC10p = 0x021400F0, /* 3D coordinate A-C 10-bit packed */
  399. Coord3D_AC10p_Planar = 0x021400F1, /* 3D coordinate A-C 10-bit packed planar */
  400. Coord3D_AC12p = 0x021800F2, /* 3D coordinate A-C 12-bit packed */
  401. Coord3D_AC12p_Planar = 0x021800F3, /* 3D coordinate A-C 12-bit packed planar */
  402. Coord3D_AC16 = 0x022000BB, /* 3D coordinate A-C 16-bit */
  403. Coord3D_AC16_Planar = 0x022000BC, /* 3D coordinate A-C 16-bit planar */
  404. Coord3D_AC32f = 0x024000C2, /* 3D coordinate A-C 32-bit floating point */
  405. Coord3D_AC32f_Planar = 0x024000C3, /* 3D coordinate A-C 32-bit floating point planar */
  406. Coord3D_A8 = 0x010800AF, /* 3D coordinate A 8-bit */
  407. Coord3D_A10p = 0x010A00D5, /* 3D coordinate A 10-bit packed */
  408. Coord3D_A12p = 0x010C00D8, /* 3D coordinate A 12-bit packed */
  409. Coord3D_A16 = 0x011000B6, /* 3D coordinate A 16-bit */
  410. Coord3D_A32f = 0x012000BD, /* 3D coordinate A 32-bit floating point */
  411. Coord3D_B8 = 0x010800B0, /* 3D coordinate B 8-bit */
  412. Coord3D_B10p = 0x010A00D6, /* 3D coordinate B 10-bit packed */
  413. Coord3D_B12p = 0x010C00D9, /* 3D coordinate B 12-bit packed */
  414. Coord3D_B16 = 0x011000B7, /* 3D coordinate B 16-bit */
  415. Coord3D_B32f = 0x012000BE, /* 3D coordinate B 32-bit floating point */
  416. Coord3D_C8 = 0x010800B1, /* 3D coordinate C 8-bit */
  417. Coord3D_C10p = 0x010A00D7, /* 3D coordinate C 10-bit packed */
  418. Coord3D_C12p = 0x010C00DA, /* 3D coordinate C 12-bit packed */
  419. Coord3D_C16 = 0x011000B8, /* 3D coordinate C 16-bit */
  420. Coord3D_C32f = 0x012000BF, /* 3D coordinate C 32-bit floating point */
  421. Confidence1 = 0x010800C4, /* Confidence 1-bit unpacked */
  422. Confidence1p = 0x010100C5, /* Confidence 1-bit packed */
  423. Confidence8 = 0x010800C6, /* Confidence 8-bit */
  424. Confidence16 = 0x011000C7, /* Confidence 16-bit */
  425. Confidence32f = 0x012000C8, /* Confidence 32-bit floating point */
  426. BiColorBGRG8 = 0x021000A6, /* Bi-color Blue/Green - Red/Green 8-bit */
  427. BiColorBGRG10 = 0x022000A9, /* Bi-color Blue/Green - Red/Green 10-bit unpacked */
  428. BiColorBGRG10p = 0x021400AA, /* Bi-color Blue/Green - Red/Green 10-bit packed */
  429. BiColorBGRG12 = 0x022000AD, /* Bi-color Blue/Green - Red/Green 12-bit unpacked */
  430. BiColorBGRG12p = 0x021800AE, /* Bi-color Blue/Green - Red/Green 12-bit packed */
  431. BiColorRGBG8 = 0x021000A5, /* Bi-color Red/Green - Blue/Green 8-bit */
  432. BiColorRGBG10 = 0x022000A7, /* Bi-color Red/Green - Blue/Green 10-bit unpacked */
  433. BiColorRGBG10p = 0x021400A8, /* Bi-color Red/Green - Blue/Green 10-bit packed */
  434. BiColorRGBG12 = 0x022000AB, /* Bi-color Red/Green - Blue/Green 12-bit unpacked */
  435. BiColorRGBG12p = 0x021800AC, /* Bi-color Red/Green - Blue/Green 12-bit packed */
  436. Data8 = 0x01080116, /* Data 8-bit */
  437. Data8s = 0x01080117, /* Data 8-bit signed */
  438. Data16 = 0x01100118, /* Data 16-bit */
  439. Data16s = 0x01100119, /* Data 16-bit signed */
  440. Data32 = 0x0120011A, /* Data 32-bit */
  441. Data32f = 0x0120011C, /* Data 32-bit floating point */
  442. Data32s = 0x0120011B, /* Data 32-bit signed */
  443. Data64 = 0x0140011D, /* Data 64-bit */
  444. Data64f = 0x0140011F, /* Data 64-bit floating point */
  445. Data64s = 0x0140011E, /* Data 64-bit signed */
  446. SCF1WBWG8 = 0x01080067, /* Sparse Color Filter #1 White-Blue-White-Green 8-bit */
  447. SCF1WBWG10 = 0x01100068, /* Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked */
  448. SCF1WBWG10p = 0x010A0069, /* Sparse Color Filter #1 White-Blue-White-Green 10-bit packed */
  449. SCF1WBWG12 = 0x0110006A, /* Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked */
  450. SCF1WBWG12p = 0x010C006B, /* Sparse Color Filter #1 White-Blue-White-Green 12-bit packed */
  451. SCF1WBWG14 = 0x0110006C, /* Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked */
  452. SCF1WBWG16 = 0x0110006D, /* Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked */
  453. SCF1WGWB8 = 0x0108006E, /* Sparse Color Filter #1 White-Green-White-Blue 8-bit */
  454. SCF1WGWB10 = 0x0110006F, /* Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked */
  455. SCF1WGWB10p = 0x010A0070, /* Sparse Color Filter #1 White-Green-White-Blue 10-bit packed */
  456. SCF1WGWB12 = 0x01100071, /* Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked */
  457. SCF1WGWB12p = 0x010C0072, /* Sparse Color Filter #1 White-Green-White-Blue 12-bit packed */
  458. SCF1WGWB14 = 0x01100073, /* Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked */
  459. SCF1WGWB16 = 0x01100074, /* Sparse Color Filter #1 White-Green-White-Blue 16-bit */
  460. SCF1WGWR8 = 0x01080075, /* Sparse Color Filter #1 White-Green-White-Red 8-bit */
  461. SCF1WGWR10 = 0x01100076, /* Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked */
  462. SCF1WGWR10p = 0x010A0077, /* Sparse Color Filter #1 White-Green-White-Red 10-bit packed */
  463. SCF1WGWR12 = 0x01100078, /* Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked */
  464. SCF1WGWR12p = 0x010C0079, /* Sparse Color Filter #1 White-Green-White-Red 12-bit packed */
  465. SCF1WGWR14 = 0x0110007A, /* Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked */
  466. SCF1WGWR16 = 0x0110007B, /* Sparse Color Filter #1 White-Green-White-Red 16-bit */
  467. SCF1WRWG8 = 0x0108007C, /* Sparse Color Filter #1 White-Red-White-Green 8-bit */
  468. SCF1WRWG10 = 0x0110007D, /* Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked */
  469. SCF1WRWG10p = 0x010A007E, /* Sparse Color Filter #1 White-Red-White-Green 10-bit packed */
  470. SCF1WRWG12 = 0x0110007F, /* Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked */
  471. SCF1WRWG12p = 0x010C0080, /* Sparse Color Filter #1 White-Red-White-Green 12-bit packed */
  472. SCF1WRWG14 = 0x01100081, /* Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked */
  473. SCF1WRWG16 = 0x01100082, /* Sparse Color Filter #1 White-Red-White-Green 16-bit */
  474. YCbCr8 = 0x0218005B, /* YCbCr 4:4:4 8-bit */
  475. YCbCr8_CbYCr = 0x0218003A, /* YCbCr 4:4:4 8-bit */
  476. YCbCr10_CbYCr = 0x02300083, /* YCbCr 4:4:4 10-bit unpacked */
  477. YCbCr10p_CbYCr = 0x021E0084, /* YCbCr 4:4:4 10-bit packed */
  478. YCbCr12_CbYCr = 0x02300085, /* YCbCr 4:4:4 12-bit unpacked */
  479. YCbCr12p_CbYCr = 0x02240086, /* YCbCr 4:4:4 12-bit packed */
  480. YCbCr411_8 = 0x020C005A, /* YCbCr 4:1:1 8-bit */
  481. YCbCr411_8_CbYYCrYY = 0x020C003C, /* YCbCr 4:1:1 8-bit */
  482. YCbCr420_8_YY_CbCr_Semiplanar = 0x020C0112, /* YCbCr 4:2:0 8-bit YY/CbCr Semiplanar */
  483. YCbCr420_8_YY_CrCb_Semiplanar = 0x020C0114, /* YCbCr 4:2:0 8-bit YY/CrCb Semiplanar */
  484. YCbCr422_8 = 0x0210003B, /* YCbCr 4:2:2 8-bit */
  485. YCbCr422_8_CbYCrY = 0x02100043, /* YCbCr 4:2:2 8-bit */
  486. YCbCr422_8_YY_CbCr_Semiplanar = 0x02100113, /* YCbCr 4:2:2 8-bit YY/CbCr Semiplanar */
  487. YCbCr422_8_YY_CrCb_Semiplanar = 0x02100115, /* YCbCr 4:2:2 8-bit YY/CrCb Semiplanar */
  488. YCbCr422_10 = 0x02200065, /* YCbCr 4:2:2 10-bit unpacked */
  489. YCbCr422_10_CbYCrY = 0x02200099, /* YCbCr 4:2:2 10-bit unpacked */
  490. YCbCr422_10p = 0x02140087, /* YCbCr 4:2:2 10-bit packed */
  491. YCbCr422_10p_CbYCrY = 0x0214009A, /* YCbCr 4:2:2 10-bit packed */
  492. YCbCr422_12 = 0x02200066, /* YCbCr 4:2:2 12-bit unpacked */
  493. YCbCr422_12_CbYCrY = 0x0220009B, /* YCbCr 4:2:2 12-bit unpacked */
  494. YCbCr422_12p = 0x02180088, /* YCbCr 4:2:2 12-bit packed */
  495. YCbCr422_12p_CbYCrY = 0x0218009C, /* YCbCr 4:2:2 12-bit packed */
  496. YCbCr601_8_CbYCr = 0x0218003D, /* YCbCr 4:4:4 8-bit BT.601 */
  497. YCbCr601_10_CbYCr = 0x02300089, /* YCbCr 4:4:4 10-bit unpacked BT.601 */
  498. YCbCr601_10p_CbYCr = 0x021E008A, /* YCbCr 4:4:4 10-bit packed BT.601 */
  499. YCbCr601_12_CbYCr = 0x0230008B, /* YCbCr 4:4:4 12-bit unpacked BT.601 */
  500. YCbCr601_12p_CbYCr = 0x0224008C, /* YCbCr 4:4:4 12-bit packed BT.601 */
  501. YCbCr601_411_8_CbYYCrYY = 0x020C003F, /* YCbCr 4:1:1 8-bit BT.601 */
  502. YCbCr601_422_8 = 0x0210003E, /* YCbCr 4:2:2 8-bit BT.601 */
  503. YCbCr601_422_8_CbYCrY = 0x02100044, /* YCbCr 4:2:2 8-bit BT.601 */
  504. YCbCr601_422_10 = 0x0220008D, /* YCbCr 4:2:2 10-bit unpacked BT.601 */
  505. YCbCr601_422_10_CbYCrY = 0x0220009D, /* YCbCr 4:2:2 10-bit unpacked BT.601 */
  506. YCbCr601_422_10p = 0x0214008E, /* YCbCr 4:2:2 10-bit packed BT.601 */
  507. YCbCr601_422_10p_CbYCrY = 0x0214009E, /* YCbCr 4:2:2 10-bit packed BT.601 */
  508. YCbCr601_422_12 = 0x0220008F, /* YCbCr 4:2:2 12-bit unpacked BT.601 */
  509. YCbCr601_422_12_CbYCrY = 0x0220009F, /* YCbCr 4:2:2 12-bit unpacked BT.601 */
  510. YCbCr601_422_12p = 0x02180090, /* YCbCr 4:2:2 12-bit packed BT.601 */
  511. YCbCr601_422_12p_CbYCrY = 0x021800A0, /* YCbCr 4:2:2 12-bit packed BT.601 */
  512. YCbCr709_8_CbYCr = 0x02180040, /* YCbCr 4:4:4 8-bit BT.709 */
  513. YCbCr709_10_CbYCr = 0x02300091, /* YCbCr 4:4:4 10-bit unpacked BT.709 */
  514. YCbCr709_10p_CbYCr = 0x021E0092, /* YCbCr 4:4:4 10-bit packed BT.709 */
  515. YCbCr709_12_CbYCr = 0x02300093, /* YCbCr 4:4:4 12-bit unpacked BT.709 */
  516. YCbCr709_12p_CbYCr = 0x02240094, /* YCbCr 4:4:4 12-bit packed BT.709 */
  517. YCbCr709_411_8_CbYYCrYY = 0x020C0042, /* YCbCr 4:1:1 8-bit BT.709 */
  518. YCbCr709_422_8 = 0x02100041, /* YCbCr 4:2:2 8-bit BT.709 */
  519. YCbCr709_422_8_CbYCrY = 0x02100045, /* YCbCr 4:2:2 8-bit BT.709 */
  520. YCbCr709_422_10 = 0x02200095, /* YCbCr 4:2:2 10-bit unpacked BT.709 */
  521. YCbCr709_422_10_CbYCrY = 0x022000A1, /* YCbCr 4:2:2 10-bit unpacked BT.709 */
  522. YCbCr709_422_10p = 0x02140096, /* YCbCr 4:2:2 10-bit packed BT.709 */
  523. YCbCr709_422_10p_CbYCrY = 0x021400A2, /* YCbCr 4:2:2 10-bit packed BT.709 */
  524. YCbCr709_422_12 = 0x02200097, /* YCbCr 4:2:2 12-bit unpacked BT.709 */
  525. YCbCr709_422_12_CbYCrY = 0x022000A3, /* YCbCr 4:2:2 12-bit unpacked BT.709 */
  526. YCbCr709_422_12p = 0x02180098, /* YCbCr 4:2:2 12-bit packed BT.709 */
  527. YCbCr709_422_12p_CbYCrY = 0x021800A4, /* YCbCr 4:2:2 12-bit packed BT.709 */
  528. YCbCr2020_8_CbYCr = 0x021800F4, /* YCbCr 4:4:4 8-bit BT.2020 */
  529. YCbCr2020_10_CbYCr = 0x023000F5, /* YCbCr 4:4:4 10-bit unpacked BT.2020 */
  530. YCbCr2020_10p_CbYCr = 0x021E00F6, /* YCbCr 4:4:4 10-bit packed BT.2020 */
  531. YCbCr2020_12_CbYCr = 0x023000F7, /* YCbCr 4:4:4 12-bit unpacked BT.2020 */
  532. YCbCr2020_12p_CbYCr = 0x022400F8, /* YCbCr 4:4:4 12-bit packed BT.2020 */
  533. YCbCr2020_411_8_CbYYCrYY = 0x020C00F9, /* YCbCr 4:1:1 8-bit BT.2020 */
  534. YCbCr2020_422_8 = 0x021000FA, /* YCbCr 4:2:2 8-bit BT.2020 */
  535. YCbCr2020_422_8_CbYCrY = 0x021000FB, /* YCbCr 4:2:2 8-bit BT.2020 */
  536. YCbCr2020_422_10 = 0x022000FC, /* YCbCr 4:2:2 10-bit unpacked BT.2020 */
  537. YCbCr2020_422_10_CbYCrY = 0x022000FD, /* YCbCr 4:2:2 10-bit unpacked BT.2020 */
  538. YCbCr2020_422_10p = 0x021400FE, /* YCbCr 4:2:2 10-bit packed BT.2020 */
  539. YCbCr2020_422_10p_CbYCrY = 0x021400FF, /* YCbCr 4:2:2 10-bit packed BT.2020 */
  540. YCbCr2020_422_12 = 0x02200100, /* YCbCr 4:2:2 12-bit unpacked BT.2020 */
  541. YCbCr2020_422_12_CbYCrY = 0x02200101, /* YCbCr 4:2:2 12-bit unpacked BT.2020 */
  542. YCbCr2020_422_12p = 0x02180102, /* YCbCr 4:2:2 12-bit packed BT.2020 */
  543. YCbCr2020_422_12p_CbYCrY = 0x02180103, /* YCbCr 4:2:2 12-bit packed BT.2020 */
  544. YUV8_UYV = 0x02180020, /* YUV 4:4:4 8-bit */
  545. YUV411_8_UYYVYY = 0x020C001E, /* YUV 4:1:1 8-bit */
  546. YUV422_8 = 0x02100032, /* YUV 4:2:2 8-bit */
  547. YUV422_8_UYVY = 0x0210001F, /* YUV 4:2:2 8-bit */
  548. Mono10Packed = 0x010C0004, /* GigE Vision specific format, Monochrome 10-bit packed */
  549. Mono12Packed = 0x010C0006, /* GigE Vision specific format, Monochrome 12-bit packed */
  550. BayerBG10Packed = 0x010C0029, /* GigE Vision specific format, Bayer Blue-Green 10-bit packed */
  551. BayerBG12Packed = 0x010C002D, /* GigE Vision specific format, Bayer Blue-Green 12-bit packed */
  552. BayerGB10Packed = 0x010C0028, /* GigE Vision specific format, Bayer Green-Blue 10-bit packed */
  553. BayerGB12Packed = 0x010C002C, /* GigE Vision specific format, Bayer Green-Blue 12-bit packed */
  554. BayerGR10Packed = 0x010C0026, /* GigE Vision specific format, Bayer Green-Red 10-bit packed */
  555. BayerGR12Packed = 0x010C002A, /* GigE Vision specific format, Bayer Green-Red 12-bit packed */
  556. BayerRG10Packed = 0x010C0027, /* GigE Vision specific format, Bayer Red-Green 10-bit packed */
  557. BayerRG12Packed = 0x010C002B, /* GigE Vision specific format, Bayer Red-Green 12-bit packed */
  558. RGB10V1Packed = 0x0220001C, /* GigE Vision specific format, Red-Green-Blue 10-bit packed - variant 1 */
  559. RGB12V1Packed = 0x02240034, /* GigE Vision specific format, Red-Green-Blue 12-bit packed - variant 1 */
  560. InvalidPixelFormat = 0
  561. } PfncFormat;
  562. /* 32-bit value layout */
  563. /* |31 24|23 16|15 08|07 00| */
  564. /* | C| Comp. Layout| Effective Size | Pixel ID | */
  565. /* Custom flag */
  566. #define PFNC_CUSTOM 0x80000000
  567. /* Component layout */
  568. #define PFNC_SINGLE_COMPONENT 0x01000000
  569. #define PFNC_MULTIPLE_COMPONENT 0x02000000
  570. #define PFNC_COMPONENT_MASK 0x7F000000
  571. /* Effective size */
  572. #define PFNC_OCCUPY1BIT 0x00010000
  573. #define PFNC_OCCUPY2BIT 0x00020000
  574. #define PFNC_OCCUPY4BIT 0x00040000
  575. #define PFNC_OCCUPY8BIT 0x00080000
  576. #define PFNC_OCCUPY10BIT 0x000A0000
  577. #define PFNC_OCCUPY12BIT 0x000C0000
  578. #define PFNC_OCCUPY16BIT 0x00100000
  579. #define PFNC_OCCUPY24BIT 0x00180000
  580. #define PFNC_OCCUPY30BIT 0x001E0000
  581. #define PFNC_OCCUPY32BIT 0x00200000
  582. #define PFNC_OCCUPY36BIT 0x00240000
  583. #define PFNC_OCCUPY40BIT 0x00280000
  584. #define PFNC_OCCUPY48BIT 0x00300000
  585. #define PFNC_OCCUPY64BIT 0x00400000
  586. #define PFNC_PIXEL_SIZE_MASK 0x00FF0000
  587. #define PFNC_PIXEL_SIZE_SHIFT 16
  588. /* Pixel ID */
  589. #define PFNC_PIXEL_ID_MASK 0x0000FFFF
  590. /* Pixel format value dissection helpers */
  591. #define PFNC_PIXEL_SIZE(X) ((X & PFNC_PIXEL_SIZE_MASK) >> PFNC_PIXEL_SIZE_SHIFT)
  592. #define PFNC_IS_PIXEL_SINGLE_COMPONENT(X) ((X & PFNC_COMPONENT_MASK) == PFNC_SINGLE_COMPONENT)
  593. #define PFNC_IS_PIXEL_MULTIPLE_COMPONENT(X) ((X & PFNC_COMPONENT_MASK) == PFNC_MULTIPLE_COMPONENT)
  594. #define PFNC_IS_PIXEL_CUSTOM(X) ((X & PFNC_CUSTOM) == PFNC_CUSTOM)
  595. #define PFNC_PIXEL_ID(X) (X & PFNC_PIXEL_ID_MASK)
  596. /* Additional helpers */
  597. #ifdef PFNC_INCLUDE_HELPERS
  598. #ifdef _MSC_VER
  599. # define PFNC_INLINE __inline
  600. #else
  601. # define PFNC_INLINE inline
  602. #endif
  603. static PFNC_INLINE const char* GetPixelFormatName (PfncFormat format)
  604. {
  605. switch (format)
  606. {
  607. case Mono1p: return "Mono1p";
  608. case Mono2p: return "Mono2p";
  609. case Mono4p: return "Mono4p";
  610. case Mono8: return "Mono8";
  611. case Mono8s: return "Mono8s";
  612. case Mono10: return "Mono10";
  613. case Mono10p: return "Mono10p";
  614. case Mono12: return "Mono12";
  615. case Mono12p: return "Mono12p";
  616. case Mono14: return "Mono14";
  617. case Mono14p: return "Mono14p";
  618. case Mono16: return "Mono16";
  619. case Mono32: return "Mono32";
  620. case BayerBG4p: return "BayerBG4p";
  621. case BayerBG8: return "BayerBG8";
  622. case BayerBG10: return "BayerBG10";
  623. case BayerBG10p: return "BayerBG10p";
  624. case BayerBG12: return "BayerBG12";
  625. case BayerBG12p: return "BayerBG12p";
  626. case BayerBG14: return "BayerBG14";
  627. case BayerBG14p: return "BayerBG14p";
  628. case BayerBG16: return "BayerBG16";
  629. case BayerGB4p: return "BayerGB4p";
  630. case BayerGB8: return "BayerGB8";
  631. case BayerGB10: return "BayerGB10";
  632. case BayerGB10p: return "BayerGB10p";
  633. case BayerGB12: return "BayerGB12";
  634. case BayerGB12p: return "BayerGB12p";
  635. case BayerGB14: return "BayerGB14";
  636. case BayerGB14p: return "BayerGB14p";
  637. case BayerGB16: return "BayerGB16";
  638. case BayerGR4p: return "BayerGR4p";
  639. case BayerGR8: return "BayerGR8";
  640. case BayerGR10: return "BayerGR10";
  641. case BayerGR10p: return "BayerGR10p";
  642. case BayerGR12: return "BayerGR12";
  643. case BayerGR12p: return "BayerGR12p";
  644. case BayerGR14: return "BayerGR14";
  645. case BayerGR14p: return "BayerGR14p";
  646. case BayerGR16: return "BayerGR16";
  647. case BayerRG4p: return "BayerRG4p";
  648. case BayerRG8: return "BayerRG8";
  649. case BayerRG10: return "BayerRG10";
  650. case BayerRG10p: return "BayerRG10p";
  651. case BayerRG12: return "BayerRG12";
  652. case BayerRG12p: return "BayerRG12p";
  653. case BayerRG14: return "BayerRG14";
  654. case BayerRG14p: return "BayerRG14p";
  655. case BayerRG16: return "BayerRG16";
  656. case RGBa8: return "RGBa8";
  657. case RGBa10: return "RGBa10";
  658. case RGBa10p: return "RGBa10p";
  659. case RGBa12: return "RGBa12";
  660. case RGBa12p: return "RGBa12p";
  661. case RGBa14: return "RGBa14";
  662. case RGBa16: return "RGBa16";
  663. case RGB8: return "RGB8";
  664. case RGB8_Planar: return "RGB8_Planar";
  665. case RGB10: return "RGB10";
  666. case RGB10_Planar: return "RGB10_Planar";
  667. case RGB10p: return "RGB10p";
  668. case RGB10p32: return "RGB10p32";
  669. case RGB12: return "RGB12";
  670. case RGB12_Planar: return "RGB12_Planar";
  671. case RGB12p: return "RGB12p";
  672. case RGB14: return "RGB14";
  673. case RGB16: return "RGB16";
  674. case RGB16_Planar: return "RGB16_Planar";
  675. case RGB565p: return "RGB565p";
  676. case BGRa8: return "BGRa8";
  677. case BGRa10: return "BGRa10";
  678. case BGRa10p: return "BGRa10p";
  679. case BGRa12: return "BGRa12";
  680. case BGRa12p: return "BGRa12p";
  681. case BGRa14: return "BGRa14";
  682. case BGRa16: return "BGRa16";
  683. case BGR8: return "BGR8";
  684. case BGR10: return "BGR10";
  685. case BGR10p: return "BGR10p";
  686. case BGR12: return "BGR12";
  687. case BGR12p: return "BGR12p";
  688. case BGR14: return "BGR14";
  689. case BGR16: return "BGR16";
  690. case BGR565p: return "BGR565p";
  691. case R8: return "R8";
  692. case R10: return "R10";
  693. case R12: return "R12";
  694. case R16: return "R16";
  695. case G8: return "G8";
  696. case G10: return "G10";
  697. case G12: return "G12";
  698. case G16: return "G16";
  699. case B8: return "B8";
  700. case B10: return "B10";
  701. case B12: return "B12";
  702. case B16: return "B16";
  703. case Coord3D_ABC8: return "Coord3D_ABC8";
  704. case Coord3D_ABC8_Planar: return "Coord3D_ABC8_Planar";
  705. case Coord3D_ABC10p: return "Coord3D_ABC10p";
  706. case Coord3D_ABC10p_Planar: return "Coord3D_ABC10p_Planar";
  707. case Coord3D_ABC12p: return "Coord3D_ABC12p";
  708. case Coord3D_ABC12p_Planar: return "Coord3D_ABC12p_Planar";
  709. case Coord3D_ABC16: return "Coord3D_ABC16";
  710. case Coord3D_ABC16_Planar: return "Coord3D_ABC16_Planar";
  711. case Coord3D_ABC32f: return "Coord3D_ABC32f";
  712. case Coord3D_ABC32f_Planar: return "Coord3D_ABC32f_Planar";
  713. case Coord3D_AC8: return "Coord3D_AC8";
  714. case Coord3D_AC8_Planar: return "Coord3D_AC8_Planar";
  715. case Coord3D_AC10p: return "Coord3D_AC10p";
  716. case Coord3D_AC10p_Planar: return "Coord3D_AC10p_Planar";
  717. case Coord3D_AC12p: return "Coord3D_AC12p";
  718. case Coord3D_AC12p_Planar: return "Coord3D_AC12p_Planar";
  719. case Coord3D_AC16: return "Coord3D_AC16";
  720. case Coord3D_AC16_Planar: return "Coord3D_AC16_Planar";
  721. case Coord3D_AC32f: return "Coord3D_AC32f";
  722. case Coord3D_AC32f_Planar: return "Coord3D_AC32f_Planar";
  723. case Coord3D_A8: return "Coord3D_A8";
  724. case Coord3D_A10p: return "Coord3D_A10p";
  725. case Coord3D_A12p: return "Coord3D_A12p";
  726. case Coord3D_A16: return "Coord3D_A16";
  727. case Coord3D_A32f: return "Coord3D_A32f";
  728. case Coord3D_B8: return "Coord3D_B8";
  729. case Coord3D_B10p: return "Coord3D_B10p";
  730. case Coord3D_B12p: return "Coord3D_B12p";
  731. case Coord3D_B16: return "Coord3D_B16";
  732. case Coord3D_B32f: return "Coord3D_B32f";
  733. case Coord3D_C8: return "Coord3D_C8";
  734. case Coord3D_C10p: return "Coord3D_C10p";
  735. case Coord3D_C12p: return "Coord3D_C12p";
  736. case Coord3D_C16: return "Coord3D_C16";
  737. case Coord3D_C32f: return "Coord3D_C32f";
  738. case Confidence1: return "Confidence1";
  739. case Confidence1p: return "Confidence1p";
  740. case Confidence8: return "Confidence8";
  741. case Confidence16: return "Confidence16";
  742. case Confidence32f: return "Confidence32f";
  743. case BiColorBGRG8: return "BiColorBGRG8";
  744. case BiColorBGRG10: return "BiColorBGRG10";
  745. case BiColorBGRG10p: return "BiColorBGRG10p";
  746. case BiColorBGRG12: return "BiColorBGRG12";
  747. case BiColorBGRG12p: return "BiColorBGRG12p";
  748. case BiColorRGBG8: return "BiColorRGBG8";
  749. case BiColorRGBG10: return "BiColorRGBG10";
  750. case BiColorRGBG10p: return "BiColorRGBG10p";
  751. case BiColorRGBG12: return "BiColorRGBG12";
  752. case BiColorRGBG12p: return "BiColorRGBG12p";
  753. case Data8: return "Data8";
  754. case Data8s: return "Data8s";
  755. case Data16: return "Data16";
  756. case Data16s: return "Data16s";
  757. case Data32: return "Data32";
  758. case Data32f: return "Data32f";
  759. case Data32s: return "Data32s";
  760. case Data64: return "Data64";
  761. case Data64f: return "Data64f";
  762. case Data64s: return "Data64s";
  763. case SCF1WBWG8: return "SCF1WBWG8";
  764. case SCF1WBWG10: return "SCF1WBWG10";
  765. case SCF1WBWG10p: return "SCF1WBWG10p";
  766. case SCF1WBWG12: return "SCF1WBWG12";
  767. case SCF1WBWG12p: return "SCF1WBWG12p";
  768. case SCF1WBWG14: return "SCF1WBWG14";
  769. case SCF1WBWG16: return "SCF1WBWG16";
  770. case SCF1WGWB8: return "SCF1WGWB8";
  771. case SCF1WGWB10: return "SCF1WGWB10";
  772. case SCF1WGWB10p: return "SCF1WGWB10p";
  773. case SCF1WGWB12: return "SCF1WGWB12";
  774. case SCF1WGWB12p: return "SCF1WGWB12p";
  775. case SCF1WGWB14: return "SCF1WGWB14";
  776. case SCF1WGWB16: return "SCF1WGWB16";
  777. case SCF1WGWR8: return "SCF1WGWR8";
  778. case SCF1WGWR10: return "SCF1WGWR10";
  779. case SCF1WGWR10p: return "SCF1WGWR10p";
  780. case SCF1WGWR12: return "SCF1WGWR12";
  781. case SCF1WGWR12p: return "SCF1WGWR12p";
  782. case SCF1WGWR14: return "SCF1WGWR14";
  783. case SCF1WGWR16: return "SCF1WGWR16";
  784. case SCF1WRWG8: return "SCF1WRWG8";
  785. case SCF1WRWG10: return "SCF1WRWG10";
  786. case SCF1WRWG10p: return "SCF1WRWG10p";
  787. case SCF1WRWG12: return "SCF1WRWG12";
  788. case SCF1WRWG12p: return "SCF1WRWG12p";
  789. case SCF1WRWG14: return "SCF1WRWG14";
  790. case SCF1WRWG16: return "SCF1WRWG16";
  791. case YCbCr8: return "YCbCr8";
  792. case YCbCr8_CbYCr: return "YCbCr8_CbYCr";
  793. case YCbCr10_CbYCr: return "YCbCr10_CbYCr";
  794. case YCbCr10p_CbYCr: return "YCbCr10p_CbYCr";
  795. case YCbCr12_CbYCr: return "YCbCr12_CbYCr";
  796. case YCbCr12p_CbYCr: return "YCbCr12p_CbYCr";
  797. case YCbCr411_8: return "YCbCr411_8";
  798. case YCbCr411_8_CbYYCrYY: return "YCbCr411_8_CbYYCrYY";
  799. case YCbCr420_8_YY_CbCr_Semiplanar: return "YCbCr420_8_YY_CbCr_Semiplanar";
  800. case YCbCr420_8_YY_CrCb_Semiplanar: return "YCbCr420_8_YY_CrCb_Semiplanar";
  801. case YCbCr422_8: return "YCbCr422_8";
  802. case YCbCr422_8_CbYCrY: return "YCbCr422_8_CbYCrY";
  803. case YCbCr422_8_YY_CbCr_Semiplanar: return "YCbCr422_8_YY_CbCr_Semiplanar";
  804. case YCbCr422_8_YY_CrCb_Semiplanar: return "YCbCr422_8_YY_CrCb_Semiplanar";
  805. case YCbCr422_10: return "YCbCr422_10";
  806. case YCbCr422_10_CbYCrY: return "YCbCr422_10_CbYCrY";
  807. case YCbCr422_10p: return "YCbCr422_10p";
  808. case YCbCr422_10p_CbYCrY: return "YCbCr422_10p_CbYCrY";
  809. case YCbCr422_12: return "YCbCr422_12";
  810. case YCbCr422_12_CbYCrY: return "YCbCr422_12_CbYCrY";
  811. case YCbCr422_12p: return "YCbCr422_12p";
  812. case YCbCr422_12p_CbYCrY: return "YCbCr422_12p_CbYCrY";
  813. case YCbCr601_8_CbYCr: return "YCbCr601_8_CbYCr";
  814. case YCbCr601_10_CbYCr: return "YCbCr601_10_CbYCr";
  815. case YCbCr601_10p_CbYCr: return "YCbCr601_10p_CbYCr";
  816. case YCbCr601_12_CbYCr: return "YCbCr601_12_CbYCr";
  817. case YCbCr601_12p_CbYCr: return "YCbCr601_12p_CbYCr";
  818. case YCbCr601_411_8_CbYYCrYY: return "YCbCr601_411_8_CbYYCrYY";
  819. case YCbCr601_422_8: return "YCbCr601_422_8";
  820. case YCbCr601_422_8_CbYCrY: return "YCbCr601_422_8_CbYCrY";
  821. case YCbCr601_422_10: return "YCbCr601_422_10";
  822. case YCbCr601_422_10_CbYCrY: return "YCbCr601_422_10_CbYCrY";
  823. case YCbCr601_422_10p: return "YCbCr601_422_10p";
  824. case YCbCr601_422_10p_CbYCrY: return "YCbCr601_422_10p_CbYCrY";
  825. case YCbCr601_422_12: return "YCbCr601_422_12";
  826. case YCbCr601_422_12_CbYCrY: return "YCbCr601_422_12_CbYCrY";
  827. case YCbCr601_422_12p: return "YCbCr601_422_12p";
  828. case YCbCr601_422_12p_CbYCrY: return "YCbCr601_422_12p_CbYCrY";
  829. case YCbCr709_8_CbYCr: return "YCbCr709_8_CbYCr";
  830. case YCbCr709_10_CbYCr: return "YCbCr709_10_CbYCr";
  831. case YCbCr709_10p_CbYCr: return "YCbCr709_10p_CbYCr";
  832. case YCbCr709_12_CbYCr: return "YCbCr709_12_CbYCr";
  833. case YCbCr709_12p_CbYCr: return "YCbCr709_12p_CbYCr";
  834. case YCbCr709_411_8_CbYYCrYY: return "YCbCr709_411_8_CbYYCrYY";
  835. case YCbCr709_422_8: return "YCbCr709_422_8";
  836. case YCbCr709_422_8_CbYCrY: return "YCbCr709_422_8_CbYCrY";
  837. case YCbCr709_422_10: return "YCbCr709_422_10";
  838. case YCbCr709_422_10_CbYCrY: return "YCbCr709_422_10_CbYCrY";
  839. case YCbCr709_422_10p: return "YCbCr709_422_10p";
  840. case YCbCr709_422_10p_CbYCrY: return "YCbCr709_422_10p_CbYCrY";
  841. case YCbCr709_422_12: return "YCbCr709_422_12";
  842. case YCbCr709_422_12_CbYCrY: return "YCbCr709_422_12_CbYCrY";
  843. case YCbCr709_422_12p: return "YCbCr709_422_12p";
  844. case YCbCr709_422_12p_CbYCrY: return "YCbCr709_422_12p_CbYCrY";
  845. case YCbCr2020_8_CbYCr: return "YCbCr2020_8_CbYCr";
  846. case YCbCr2020_10_CbYCr: return "YCbCr2020_10_CbYCr";
  847. case YCbCr2020_10p_CbYCr: return "YCbCr2020_10p_CbYCr";
  848. case YCbCr2020_12_CbYCr: return "YCbCr2020_12_CbYCr";
  849. case YCbCr2020_12p_CbYCr: return "YCbCr2020_12p_CbYCr";
  850. case YCbCr2020_411_8_CbYYCrYY: return "YCbCr2020_411_8_CbYYCrYY";
  851. case YCbCr2020_422_8: return "YCbCr2020_422_8";
  852. case YCbCr2020_422_8_CbYCrY: return "YCbCr2020_422_8_CbYCrY";
  853. case YCbCr2020_422_10: return "YCbCr2020_422_10";
  854. case YCbCr2020_422_10_CbYCrY: return "YCbCr2020_422_10_CbYCrY";
  855. case YCbCr2020_422_10p: return "YCbCr2020_422_10p";
  856. case YCbCr2020_422_10p_CbYCrY: return "YCbCr2020_422_10p_CbYCrY";
  857. case YCbCr2020_422_12: return "YCbCr2020_422_12";
  858. case YCbCr2020_422_12_CbYCrY: return "YCbCr2020_422_12_CbYCrY";
  859. case YCbCr2020_422_12p: return "YCbCr2020_422_12p";
  860. case YCbCr2020_422_12p_CbYCrY: return "YCbCr2020_422_12p_CbYCrY";
  861. case YUV8_UYV: return "YUV8_UYV";
  862. case YUV411_8_UYYVYY: return "YUV411_8_UYYVYY";
  863. case YUV422_8: return "YUV422_8";
  864. case YUV422_8_UYVY: return "YUV422_8_UYVY";
  865. case Mono10Packed: return "Mono10Packed";
  866. case Mono12Packed: return "Mono12Packed";
  867. case BayerBG10Packed: return "BayerBG10Packed";
  868. case BayerBG12Packed: return "BayerBG12Packed";
  869. case BayerGB10Packed: return "BayerGB10Packed";
  870. case BayerGB12Packed: return "BayerGB12Packed";
  871. case BayerGR10Packed: return "BayerGR10Packed";
  872. case BayerGR12Packed: return "BayerGR12Packed";
  873. case BayerRG10Packed: return "BayerRG10Packed";
  874. case BayerRG12Packed: return "BayerRG12Packed";
  875. case RGB10V1Packed: return "RGB10V1Packed";
  876. case RGB12V1Packed: return "RGB12V1Packed";
  877. case InvalidPixelFormat: return "InvalidPixelFormat";
  878. default: return "UnknownPixelFormat";
  879. }
  880. }
  881. static PFNC_INLINE const char* GetPixelFormatDescription (PfncFormat format)
  882. {
  883. switch (format)
  884. {
  885. case Mono1p: return "Monochrome 1-bit packed";
  886. case Mono2p: return "Monochrome 2-bit packed";
  887. case Mono4p: return "Monochrome 4-bit packed";
  888. case Mono8: return "Monochrome 8-bit";
  889. case Mono8s: return "Monochrome 8-bit signed";
  890. case Mono10: return "Monochrome 10-bit unpacked";
  891. case Mono10p: return "Monochrome 10-bit packed";
  892. case Mono12: return "Monochrome 12-bit unpacked";
  893. case Mono12p: return "Monochrome 12-bit packed";
  894. case Mono14: return "Monochrome 14-bit unpacked";
  895. case Mono14p: return "Monochrome 14-bit packed";
  896. case Mono16: return "Monochrome 16-bit";
  897. case Mono32: return "Monochrome 32-bit";
  898. case BayerBG4p: return "Bayer Blue-Green 4-bit packed";
  899. case BayerBG8: return "Bayer Blue-Green 8-bit";
  900. case BayerBG10: return "Bayer Blue-Green 10-bit unpacked";
  901. case BayerBG10p: return "Bayer Blue-Green 10-bit packed";
  902. case BayerBG12: return "Bayer Blue-Green 12-bit unpacked";
  903. case BayerBG12p: return "Bayer Blue-Green 12-bit packed";
  904. case BayerBG14: return "Bayer Blue-Green 14-bit";
  905. case BayerBG14p: return "Bayer Blue-Green 14-bit packed";
  906. case BayerBG16: return "Bayer Blue-Green 16-bit";
  907. case BayerGB4p: return "Bayer Green-Blue 4-bit packed";
  908. case BayerGB8: return "Bayer Green-Blue 8-bit";
  909. case BayerGB10: return "Bayer Green-Blue 10-bit unpacked";
  910. case BayerGB10p: return "Bayer Green-Blue 10-bit packed";
  911. case BayerGB12: return "Bayer Green-Blue 12-bit unpacked";
  912. case BayerGB12p: return "Bayer Green-Blue 12-bit packed";
  913. case BayerGB14: return "Bayer Green-Blue 14-bit";
  914. case BayerGB14p: return "Bayer Green-Blue 14-bit packed";
  915. case BayerGB16: return "Bayer Green-Blue 16-bit";
  916. case BayerGR4p: return "Bayer Green-Red 4-bit packed";
  917. case BayerGR8: return "Bayer Green-Red 8-bit";
  918. case BayerGR10: return "Bayer Green-Red 10-bit unpacked";
  919. case BayerGR10p: return "Bayer Green-Red 10-bit packed";
  920. case BayerGR12: return "Bayer Green-Red 12-bit unpacked";
  921. case BayerGR12p: return "Bayer Green-Red 12-bit packed";
  922. case BayerGR14: return "Bayer Green-Red 14-bit";
  923. case BayerGR14p: return "Bayer Green-Red 14-bit packed";
  924. case BayerGR16: return "Bayer Green-Red 16-bit";
  925. case BayerRG4p: return "Bayer Red-Green 4-bit packed";
  926. case BayerRG8: return "Bayer Red-Green 8-bit";
  927. case BayerRG10: return "Bayer Red-Green 10-bit unpacked";
  928. case BayerRG10p: return "Bayer Red-Green 10-bit packed";
  929. case BayerRG12: return "Bayer Red-Green 12-bit unpacked";
  930. case BayerRG12p: return "Bayer Red-Green 12-bit packed";
  931. case BayerRG14: return "Bayer Red-Green 14-bit";
  932. case BayerRG14p: return "Bayer Red-Green 14-bit packed";
  933. case BayerRG16: return "Bayer Red-Green 16-bit";
  934. case RGBa8: return "Red-Green-Blue-alpha 8-bit";
  935. case RGBa10: return "Red-Green-Blue-alpha 10-bit unpacked";
  936. case RGBa10p: return "Red-Green-Blue-alpha 10-bit packed";
  937. case RGBa12: return "Red-Green-Blue-alpha 12-bit unpacked";
  938. case RGBa12p: return "Red-Green-Blue-alpha 12-bit packed";
  939. case RGBa14: return "Red-Green-Blue-alpha 14-bit unpacked";
  940. case RGBa16: return "Red-Green-Blue-alpha 16-bit";
  941. case RGB8: return "Red-Green-Blue 8-bit";
  942. case RGB8_Planar: return "Red-Green-Blue 8-bit planar";
  943. case RGB10: return "Red-Green-Blue 10-bit unpacked";
  944. case RGB10_Planar: return "Red-Green-Blue 10-bit unpacked planar";
  945. case RGB10p: return "Red-Green-Blue 10-bit packed";
  946. case RGB10p32: return "Red-Green-Blue 10-bit packed into 32-bit";
  947. case RGB12: return "Red-Green-Blue 12-bit unpacked";
  948. case RGB12_Planar: return "Red-Green-Blue 12-bit unpacked planar";
  949. case RGB12p: return "Red-Green-Blue 12-bit packed";
  950. case RGB14: return "Red-Green-Blue 14-bit unpacked";
  951. case RGB16: return "Red-Green-Blue 16-bit";
  952. case RGB16_Planar: return "Red-Green-Blue 16-bit planar";
  953. case RGB565p: return "Red-Green-Blue 5/6/5-bit packed";
  954. case BGRa8: return "Blue-Green-Red-alpha 8-bit";
  955. case BGRa10: return "Blue-Green-Red-alpha 10-bit unpacked";
  956. case BGRa10p: return "Blue-Green-Red-alpha 10-bit packed";
  957. case BGRa12: return "Blue-Green-Red-alpha 12-bit unpacked";
  958. case BGRa12p: return "Blue-Green-Red-alpha 12-bit packed";
  959. case BGRa14: return "Blue-Green-Red-alpha 14-bit unpacked";
  960. case BGRa16: return "Blue-Green-Red-alpha 16-bit";
  961. case BGR8: return "Blue-Green-Red 8-bit";
  962. case BGR10: return "Blue-Green-Red 10-bit unpacked";
  963. case BGR10p: return "Blue-Green-Red 10-bit packed";
  964. case BGR12: return "Blue-Green-Red 12-bit unpacked";
  965. case BGR12p: return "Blue-Green-Red 12-bit packed";
  966. case BGR14: return "Blue-Green-Red 14-bit unpacked";
  967. case BGR16: return "Blue-Green-Red 16-bit";
  968. case BGR565p: return "Blue-Green-Red 5/6/5-bit packed";
  969. case R8: return "Red 8-bit";
  970. case R10: return "Red 10-bit";
  971. case R12: return "Red 12-bit";
  972. case R16: return "Red 16-bit";
  973. case G8: return "Green 8-bit";
  974. case G10: return "Green 10-bit";
  975. case G12: return "Green 12-bit";
  976. case G16: return "Green 16-bit";
  977. case B8: return "Blue 8-bit";
  978. case B10: return "Blue 10-bit";
  979. case B12: return "Blue 12-bit";
  980. case B16: return "Blue 16-bit";
  981. case Coord3D_ABC8: return "3D coordinate A-B-C 8-bit";
  982. case Coord3D_ABC8_Planar: return "3D coordinate A-B-C 8-bit planar";
  983. case Coord3D_ABC10p: return "3D coordinate A-B-C 10-bit packed";
  984. case Coord3D_ABC10p_Planar: return "3D coordinate A-B-C 10-bit packed planar";
  985. case Coord3D_ABC12p: return "3D coordinate A-B-C 12-bit packed";
  986. case Coord3D_ABC12p_Planar: return "3D coordinate A-B-C 12-bit packed planar";
  987. case Coord3D_ABC16: return "3D coordinate A-B-C 16-bit";
  988. case Coord3D_ABC16_Planar: return "3D coordinate A-B-C 16-bit planar";
  989. case Coord3D_ABC32f: return "3D coordinate A-B-C 32-bit floating point";
  990. case Coord3D_ABC32f_Planar: return "3D coordinate A-B-C 32-bit floating point planar";
  991. case Coord3D_AC8: return "3D coordinate A-C 8-bit";
  992. case Coord3D_AC8_Planar: return "3D coordinate A-C 8-bit planar";
  993. case Coord3D_AC10p: return "3D coordinate A-C 10-bit packed";
  994. case Coord3D_AC10p_Planar: return "3D coordinate A-C 10-bit packed planar";
  995. case Coord3D_AC12p: return "3D coordinate A-C 12-bit packed";
  996. case Coord3D_AC12p_Planar: return "3D coordinate A-C 12-bit packed planar";
  997. case Coord3D_AC16: return "3D coordinate A-C 16-bit";
  998. case Coord3D_AC16_Planar: return "3D coordinate A-C 16-bit planar";
  999. case Coord3D_AC32f: return "3D coordinate A-C 32-bit floating point";
  1000. case Coord3D_AC32f_Planar: return "3D coordinate A-C 32-bit floating point planar";
  1001. case Coord3D_A8: return "3D coordinate A 8-bit";
  1002. case Coord3D_A10p: return "3D coordinate A 10-bit packed";
  1003. case Coord3D_A12p: return "3D coordinate A 12-bit packed";
  1004. case Coord3D_A16: return "3D coordinate A 16-bit";
  1005. case Coord3D_A32f: return "3D coordinate A 32-bit floating point";
  1006. case Coord3D_B8: return "3D coordinate B 8-bit";
  1007. case Coord3D_B10p: return "3D coordinate B 10-bit packed";
  1008. case Coord3D_B12p: return "3D coordinate B 12-bit packed";
  1009. case Coord3D_B16: return "3D coordinate B 16-bit";
  1010. case Coord3D_B32f: return "3D coordinate B 32-bit floating point";
  1011. case Coord3D_C8: return "3D coordinate C 8-bit";
  1012. case Coord3D_C10p: return "3D coordinate C 10-bit packed";
  1013. case Coord3D_C12p: return "3D coordinate C 12-bit packed";
  1014. case Coord3D_C16: return "3D coordinate C 16-bit";
  1015. case Coord3D_C32f: return "3D coordinate C 32-bit floating point";
  1016. case Confidence1: return "Confidence 1-bit unpacked";
  1017. case Confidence1p: return "Confidence 1-bit packed";
  1018. case Confidence8: return "Confidence 8-bit";
  1019. case Confidence16: return "Confidence 16-bit";
  1020. case Confidence32f: return "Confidence 32-bit floating point";
  1021. case BiColorBGRG8: return "Bi-color Blue/Green - Red/Green 8-bit";
  1022. case BiColorBGRG10: return "Bi-color Blue/Green - Red/Green 10-bit unpacked";
  1023. case BiColorBGRG10p: return "Bi-color Blue/Green - Red/Green 10-bit packed";
  1024. case BiColorBGRG12: return "Bi-color Blue/Green - Red/Green 12-bit unpacked";
  1025. case BiColorBGRG12p: return "Bi-color Blue/Green - Red/Green 12-bit packed";
  1026. case BiColorRGBG8: return "Bi-color Red/Green - Blue/Green 8-bit";
  1027. case BiColorRGBG10: return "Bi-color Red/Green - Blue/Green 10-bit unpacked";
  1028. case BiColorRGBG10p: return "Bi-color Red/Green - Blue/Green 10-bit packed";
  1029. case BiColorRGBG12: return "Bi-color Red/Green - Blue/Green 12-bit unpacked";
  1030. case BiColorRGBG12p: return "Bi-color Red/Green - Blue/Green 12-bit packed";
  1031. case Data8: return "Data 8-bit";
  1032. case Data8s: return "Data 8-bit signed";
  1033. case Data16: return "Data 16-bit";
  1034. case Data16s: return "Data 16-bit signed";
  1035. case Data32: return "Data 32-bit";
  1036. case Data32f: return "Data 32-bit floating point";
  1037. case Data32s: return "Data 32-bit signed";
  1038. case Data64: return "Data 64-bit";
  1039. case Data64f: return "Data 64-bit floating point";
  1040. case Data64s: return "Data 64-bit signed";
  1041. case SCF1WBWG8: return "Sparse Color Filter #1 White-Blue-White-Green 8-bit";
  1042. case SCF1WBWG10: return "Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked";
  1043. case SCF1WBWG10p: return "Sparse Color Filter #1 White-Blue-White-Green 10-bit packed";
  1044. case SCF1WBWG12: return "Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked";
  1045. case SCF1WBWG12p: return "Sparse Color Filter #1 White-Blue-White-Green 12-bit packed";
  1046. case SCF1WBWG14: return "Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked";
  1047. case SCF1WBWG16: return "Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked";
  1048. case SCF1WGWB8: return "Sparse Color Filter #1 White-Green-White-Blue 8-bit";
  1049. case SCF1WGWB10: return "Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked";
  1050. case SCF1WGWB10p: return "Sparse Color Filter #1 White-Green-White-Blue 10-bit packed";
  1051. case SCF1WGWB12: return "Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked";
  1052. case SCF1WGWB12p: return "Sparse Color Filter #1 White-Green-White-Blue 12-bit packed";
  1053. case SCF1WGWB14: return "Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked";
  1054. case SCF1WGWB16: return "Sparse Color Filter #1 White-Green-White-Blue 16-bit";
  1055. case SCF1WGWR8: return "Sparse Color Filter #1 White-Green-White-Red 8-bit";
  1056. case SCF1WGWR10: return "Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked";
  1057. case SCF1WGWR10p: return "Sparse Color Filter #1 White-Green-White-Red 10-bit packed";
  1058. case SCF1WGWR12: return "Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked";
  1059. case SCF1WGWR12p: return "Sparse Color Filter #1 White-Green-White-Red 12-bit packed";
  1060. case SCF1WGWR14: return "Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked";
  1061. case SCF1WGWR16: return "Sparse Color Filter #1 White-Green-White-Red 16-bit";
  1062. case SCF1WRWG8: return "Sparse Color Filter #1 White-Red-White-Green 8-bit";
  1063. case SCF1WRWG10: return "Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked";
  1064. case SCF1WRWG10p: return "Sparse Color Filter #1 White-Red-White-Green 10-bit packed";
  1065. case SCF1WRWG12: return "Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked";
  1066. case SCF1WRWG12p: return "Sparse Color Filter #1 White-Red-White-Green 12-bit packed";
  1067. case SCF1WRWG14: return "Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked";
  1068. case SCF1WRWG16: return "Sparse Color Filter #1 White-Red-White-Green 16-bit";
  1069. case YCbCr8: return "YCbCr 4:4:4 8-bit";
  1070. case YCbCr8_CbYCr: return "YCbCr 4:4:4 8-bit";
  1071. case YCbCr10_CbYCr: return "YCbCr 4:4:4 10-bit unpacked";
  1072. case YCbCr10p_CbYCr: return "YCbCr 4:4:4 10-bit packed";
  1073. case YCbCr12_CbYCr: return "YCbCr 4:4:4 12-bit unpacked";
  1074. case YCbCr12p_CbYCr: return "YCbCr 4:4:4 12-bit packed";
  1075. case YCbCr411_8: return "YCbCr 4:1:1 8-bit";
  1076. case YCbCr411_8_CbYYCrYY: return "YCbCr 4:1:1 8-bit";
  1077. case YCbCr420_8_YY_CbCr_Semiplanar: return "YCbCr 4:2:0 8-bit YY/CbCr Semiplanar";
  1078. case YCbCr420_8_YY_CrCb_Semiplanar: return "YCbCr 4:2:0 8-bit YY/CrCb Semiplanar";
  1079. case YCbCr422_8: return "YCbCr 4:2:2 8-bit";
  1080. case YCbCr422_8_CbYCrY: return "YCbCr 4:2:2 8-bit";
  1081. case YCbCr422_8_YY_CbCr_Semiplanar: return "YCbCr 4:2:2 8-bit YY/CbCr Semiplanar";
  1082. case YCbCr422_8_YY_CrCb_Semiplanar: return "YCbCr 4:2:2 8-bit YY/CrCb Semiplanar";
  1083. case YCbCr422_10: return "YCbCr 4:2:2 10-bit unpacked";
  1084. case YCbCr422_10_CbYCrY: return "YCbCr 4:2:2 10-bit unpacked";
  1085. case YCbCr422_10p: return "YCbCr 4:2:2 10-bit packed";
  1086. case YCbCr422_10p_CbYCrY: return "YCbCr 4:2:2 10-bit packed";
  1087. case YCbCr422_12: return "YCbCr 4:2:2 12-bit unpacked";
  1088. case YCbCr422_12_CbYCrY: return "YCbCr 4:2:2 12-bit unpacked";
  1089. case YCbCr422_12p: return "YCbCr 4:2:2 12-bit packed";
  1090. case YCbCr422_12p_CbYCrY: return "YCbCr 4:2:2 12-bit packed";
  1091. case YCbCr601_8_CbYCr: return "YCbCr 4:4:4 8-bit BT.601";
  1092. case YCbCr601_10_CbYCr: return "YCbCr 4:4:4 10-bit unpacked BT.601";
  1093. case YCbCr601_10p_CbYCr: return "YCbCr 4:4:4 10-bit packed BT.601";
  1094. case YCbCr601_12_CbYCr: return "YCbCr 4:4:4 12-bit unpacked BT.601";
  1095. case YCbCr601_12p_CbYCr: return "YCbCr 4:4:4 12-bit packed BT.601";
  1096. case YCbCr601_411_8_CbYYCrYY: return "YCbCr 4:1:1 8-bit BT.601";
  1097. case YCbCr601_422_8: return "YCbCr 4:2:2 8-bit BT.601";
  1098. case YCbCr601_422_8_CbYCrY: return "YCbCr 4:2:2 8-bit BT.601";
  1099. case YCbCr601_422_10: return "YCbCr 4:2:2 10-bit unpacked BT.601";
  1100. case YCbCr601_422_10_CbYCrY: return "YCbCr 4:2:2 10-bit unpacked BT.601";
  1101. case YCbCr601_422_10p: return "YCbCr 4:2:2 10-bit packed BT.601";
  1102. case YCbCr601_422_10p_CbYCrY: return "YCbCr 4:2:2 10-bit packed BT.601";
  1103. case YCbCr601_422_12: return "YCbCr 4:2:2 12-bit unpacked BT.601";
  1104. case YCbCr601_422_12_CbYCrY: return "YCbCr 4:2:2 12-bit unpacked BT.601";
  1105. case YCbCr601_422_12p: return "YCbCr 4:2:2 12-bit packed BT.601";
  1106. case YCbCr601_422_12p_CbYCrY: return "YCbCr 4:2:2 12-bit packed BT.601";
  1107. case YCbCr709_8_CbYCr: return "YCbCr 4:4:4 8-bit BT.709";
  1108. case YCbCr709_10_CbYCr: return "YCbCr 4:4:4 10-bit unpacked BT.709";
  1109. case YCbCr709_10p_CbYCr: return "YCbCr 4:4:4 10-bit packed BT.709";
  1110. case YCbCr709_12_CbYCr: return "YCbCr 4:4:4 12-bit unpacked BT.709";
  1111. case YCbCr709_12p_CbYCr: return "YCbCr 4:4:4 12-bit packed BT.709";
  1112. case YCbCr709_411_8_CbYYCrYY: return "YCbCr 4:1:1 8-bit BT.709";
  1113. case YCbCr709_422_8: return "YCbCr 4:2:2 8-bit BT.709";
  1114. case YCbCr709_422_8_CbYCrY: return "YCbCr 4:2:2 8-bit BT.709";
  1115. case YCbCr709_422_10: return "YCbCr 4:2:2 10-bit unpacked BT.709";
  1116. case YCbCr709_422_10_CbYCrY: return "YCbCr 4:2:2 10-bit unpacked BT.709";
  1117. case YCbCr709_422_10p: return "YCbCr 4:2:2 10-bit packed BT.709";
  1118. case YCbCr709_422_10p_CbYCrY: return "YCbCr 4:2:2 10-bit packed BT.709";
  1119. case YCbCr709_422_12: return "YCbCr 4:2:2 12-bit unpacked BT.709";
  1120. case YCbCr709_422_12_CbYCrY: return "YCbCr 4:2:2 12-bit unpacked BT.709";
  1121. case YCbCr709_422_12p: return "YCbCr 4:2:2 12-bit packed BT.709";
  1122. case YCbCr709_422_12p_CbYCrY: return "YCbCr 4:2:2 12-bit packed BT.709";
  1123. case YCbCr2020_8_CbYCr: return "YCbCr 4:4:4 8-bit BT.2020";
  1124. case YCbCr2020_10_CbYCr: return "YCbCr 4:4:4 10-bit unpacked BT.2020";
  1125. case YCbCr2020_10p_CbYCr: return "YCbCr 4:4:4 10-bit packed BT.2020";
  1126. case YCbCr2020_12_CbYCr: return "YCbCr 4:4:4 12-bit unpacked BT.2020";
  1127. case YCbCr2020_12p_CbYCr: return "YCbCr 4:4:4 12-bit packed BT.2020";
  1128. case YCbCr2020_411_8_CbYYCrYY: return "YCbCr 4:1:1 8-bit BT.2020";
  1129. case YCbCr2020_422_8: return "YCbCr 4:2:2 8-bit BT.2020";
  1130. case YCbCr2020_422_8_CbYCrY: return "YCbCr 4:2:2 8-bit BT.2020";
  1131. case YCbCr2020_422_10: return "YCbCr 4:2:2 10-bit unpacked BT.2020";
  1132. case YCbCr2020_422_10_CbYCrY: return "YCbCr 4:2:2 10-bit unpacked BT.2020";
  1133. case YCbCr2020_422_10p: return "YCbCr 4:2:2 10-bit packed BT.2020";
  1134. case YCbCr2020_422_10p_CbYCrY: return "YCbCr 4:2:2 10-bit packed BT.2020";
  1135. case YCbCr2020_422_12: return "YCbCr 4:2:2 12-bit unpacked BT.2020";
  1136. case YCbCr2020_422_12_CbYCrY: return "YCbCr 4:2:2 12-bit unpacked BT.2020";
  1137. case YCbCr2020_422_12p: return "YCbCr 4:2:2 12-bit packed BT.2020";
  1138. case YCbCr2020_422_12p_CbYCrY: return "YCbCr 4:2:2 12-bit packed BT.2020";
  1139. case YUV8_UYV: return "YUV 4:4:4 8-bit";
  1140. case YUV411_8_UYYVYY: return "YUV 4:1:1 8-bit";
  1141. case YUV422_8: return "YUV 4:2:2 8-bit";
  1142. case YUV422_8_UYVY: return "YUV 4:2:2 8-bit";
  1143. case Mono10Packed: return "Monochrome 10-bit packed";
  1144. case Mono12Packed: return "Monochrome 12-bit packed";
  1145. case BayerBG10Packed: return "Bayer Blue-Green 10-bit packed";
  1146. case BayerBG12Packed: return "Bayer Blue-Green 12-bit packed";
  1147. case BayerGB10Packed: return "Bayer Green-Blue 10-bit packed";
  1148. case BayerGB12Packed: return "Bayer Green-Blue 12-bit packed";
  1149. case BayerGR10Packed: return "Bayer Green-Red 10-bit packed";
  1150. case BayerGR12Packed: return "Bayer Green-Red 12-bit packed";
  1151. case BayerRG10Packed: return "Bayer Red-Green 10-bit packed";
  1152. case BayerRG12Packed: return "Bayer Red-Green 12-bit packed";
  1153. case RGB10V1Packed: return "Red-Green-Blue 10-bit packed - variant 1";
  1154. case RGB12V1Packed: return "Red-Green-Blue 12-bit packed - variant 1";
  1155. case InvalidPixelFormat: return "Invalid pixel format value";
  1156. default: return "Unknown pixel format value";
  1157. }
  1158. }
  1159. #endif /* PFNC_INCLUDE_HELPERS */
  1160. #endif /* PFNC_H */