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