Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Side by Side Diff: docs/formats.md

Issue 2406123002: Remove I411 support, update doc and switch to side by side test (Closed)
Patch Set: bump version, disable a few lint warnings Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « README.chromium ('k') | include/libyuv/convert.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Introduction 1 # Introduction
2 2
3 Formats (FOURCC) supported by libyuv are detailed here. 3 Formats (FOURCC) supported by libyuv are detailed here.
4 4
5 # Core Formats 5 # Core Formats
6 6
7 There are 2 core formats supported by libyuv - I420 and ARGB. All YUV formats c an be converted to/from I420. All RGB formats can be converted to/from ARGB. 7 There are 2 core formats supported by libyuv - I420 and ARGB. All YUV formats c an be converted to/from I420. All RGB formats can be converted to/from ARGB.
8 8
9 Filtering functions such as scaling and planar functions work on I420 and/or ARG B. 9 Filtering functions such as scaling and planar functions work on I420 and/or ARG B.
10 10
(...skipping 19 matching lines...) Expand all
30 kCMPixelFormat_444YpCbCr10 = 'v410', Not supported. 30 kCMPixelFormat_444YpCbCr10 = 'v410', Not supported.
31 kCMPixelFormat_8IndexedGray_WhiteIsZero = 0x00000028, Not supported. 31 kCMPixelFormat_8IndexedGray_WhiteIsZero = 0x00000028, Not supported.
32 }; 32 };
33 33
34 34
35 # FOURCC (Four Charactacter Code) List 35 # FOURCC (Four Charactacter Code) List
36 36
37 The following is extracted from video_common.h as a complete list of formats sup ported by libyuv. 37 The following is extracted from video_common.h as a complete list of formats sup ported by libyuv.
38 38
39 enum FourCC { 39 enum FourCC {
40 // 9 Primary YUV formats: 5 planar, 2 biplanar, 2 packed. 40 // 8 Primary YUV formats: 5 planar, 2 biplanar, 2 packed.
41 FOURCC_I420 = FOURCC('I', '4', '2', '0'), 41 FOURCC_I420 = FOURCC('I', '4', '2', '0'),
42 FOURCC_I422 = FOURCC('I', '4', '2', '2'), 42 FOURCC_I422 = FOURCC('I', '4', '2', '2'),
43 FOURCC_I444 = FOURCC('I', '4', '4', '4'), 43 FOURCC_I444 = FOURCC('I', '4', '4', '4'),
44 FOURCC_I411 = FOURCC('I', '4', '1', '1'),
45 FOURCC_I400 = FOURCC('I', '4', '0', '0'), 44 FOURCC_I400 = FOURCC('I', '4', '0', '0'),
46 FOURCC_NV21 = FOURCC('N', 'V', '2', '1'), 45 FOURCC_NV21 = FOURCC('N', 'V', '2', '1'),
47 FOURCC_NV12 = FOURCC('N', 'V', '1', '2'), 46 FOURCC_NV12 = FOURCC('N', 'V', '1', '2'),
48 FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'), 47 FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'),
49 FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'), 48 FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'),
50 49
51 // 2 Secondary YUV formats: row biplanar. 50 // 1 Secondary YUV formats: row biplanar.
52 FOURCC_M420 = FOURCC('M', '4', '2', '0'), 51 FOURCC_M420 = FOURCC('M', '4', '2', '0'),
53 FOURCC_Q420 = FOURCC('Q', '4', '2', '0'),
54 52
55 // 9 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp. 53 // 9 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp.
56 FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'), 54 FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'),
57 FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'), 55 FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'),
58 FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'), 56 FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'),
59 FOURCC_24BG = FOURCC('2', '4', 'B', 'G'), 57 FOURCC_24BG = FOURCC('2', '4', 'B', 'G'),
60 FOURCC_RAW = FOURCC('r', 'a', 'w', ' '), 58 FOURCC_RAW = FOURCC('r', 'a', 'w', ' '),
61 FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'), 59 FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'),
62 FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE. 60 FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE.
63 FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE. 61 FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB 95 FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB
98 FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO. 96 FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO.
99 FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP. 97 FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP.
100 FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO. 98 FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO.
101 99
102 // 1 Auxiliary compressed YUV format set aside for capturer. 100 // 1 Auxiliary compressed YUV format set aside for capturer.
103 FOURCC_H264 = FOURCC('H', '2', '6', '4'), 101 FOURCC_H264 = FOURCC('H', '2', '6', '4'),
104 102
105 # Planar YUV 103 # Planar YUV
106 The following formats contains a full size Y plane followed by 1 or 2 104 The following formats contains a full size Y plane followed by 1 or 2
107 planes for UV: I420, I422, I444, I411, I400, NV21, NV12, I400 105 planes for UV: I420, I422, I444, I400, NV21, NV12, I400
108 The size (subsampling) of the UV varies. 106 The size (subsampling) of the UV varies.
109 I420, NV12 and NV21 are half width, half height 107 I420, NV12 and NV21 are half width, half height
110 I422, NV16 and NV61 are half width, full height 108 I422, NV16 and NV61 are half width, full height
111 I444, NV24 and NV42 are full width, full height 109 I444, NV24 and NV42 are full width, full height
112 I400 and J400 have no chroma channel. 110 I400 and J400 have no chroma channel.
113 111
114 # The ARGB FOURCC 112 # The ARGB FOURCC
115 113
116 There are 4 ARGB layouts - ARGB, BGRA, ABGR and RGBA. ARGB is most common by fa r, used for screen formats, and windows webcam drivers. 114 There are 4 ARGB layouts - ARGB, BGRA, ABGR and RGBA. ARGB is most common by fa r, used for screen formats, and windows webcam drivers.
117 115
(...skipping 15 matching lines...) Expand all
133 131
134 All formats can be converted to/from ARGB. 132 All formats can be converted to/from ARGB.
135 133
136 Most 'planar_functions' work on ARGB (e.g. ARGBBlend). 134 Most 'planar_functions' work on ARGB (e.g. ARGBBlend).
137 135
138 Some are channel order agnostic (e.g. ARGBScale). 136 Some are channel order agnostic (e.g. ARGBScale).
139 137
140 Some functions are symmetric (e.g. ARGBToBGRA is the same as BGRAToARGB, so its a macro). 138 Some functions are symmetric (e.g. ARGBToBGRA is the same as BGRAToARGB, so its a macro).
141 139
142 ARGBBlend expects preattenuated ARGB. The R,G,B are premultiplied by alpha. Oth er functions don't care. 140 ARGBBlend expects preattenuated ARGB. The R,G,B are premultiplied by alpha. Oth er functions don't care.
OLDNEW
« no previous file with comments | « README.chromium ('k') | include/libyuv/convert.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698