diff options
Diffstat (limited to 'Documentation/video4linux/Zoran')
-rw-r--r-- | Documentation/video4linux/Zoran | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/Documentation/video4linux/Zoran b/Documentation/video4linux/Zoran index 52c94bd7dca1..be9f21b84555 100644 --- a/Documentation/video4linux/Zoran +++ b/Documentation/video4linux/Zoran | |||
@@ -28,7 +28,7 @@ Iomega Buz: | |||
28 | * Philips saa7111 TV decoder | 28 | * Philips saa7111 TV decoder |
29 | * Philips saa7185 TV encoder | 29 | * Philips saa7185 TV encoder |
30 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 30 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
31 | videocodec, saa7111, saa7185, zr36060, zr36067 | 31 | videocodec, saa7111, saa7185, zr36060, zr36067 |
32 | Inputs/outputs: Composite and S-video | 32 | Inputs/outputs: Composite and S-video |
33 | Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) | 33 | Norms: PAL, SECAM (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) |
34 | Card number: 7 | 34 | Card number: 7 |
@@ -39,7 +39,7 @@ Linux Media Labs LML33: | |||
39 | * Brooktree bt819 TV decoder | 39 | * Brooktree bt819 TV decoder |
40 | * Brooktree bt856 TV encoder | 40 | * Brooktree bt856 TV encoder |
41 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 41 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
42 | videocodec, bt819, bt856, zr36060, zr36067 | 42 | videocodec, bt819, bt856, zr36060, zr36067 |
43 | Inputs/outputs: Composite and S-video | 43 | Inputs/outputs: Composite and S-video |
44 | Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) | 44 | Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) |
45 | Card number: 5 | 45 | Card number: 5 |
@@ -50,7 +50,7 @@ Linux Media Labs LML33R10: | |||
50 | * Philips saa7114 TV decoder | 50 | * Philips saa7114 TV decoder |
51 | * Analog Devices adv7170 TV encoder | 51 | * Analog Devices adv7170 TV encoder |
52 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 52 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
53 | videocodec, saa7114, adv7170, zr36060, zr36067 | 53 | videocodec, saa7114, adv7170, zr36060, zr36067 |
54 | Inputs/outputs: Composite and S-video | 54 | Inputs/outputs: Composite and S-video |
55 | Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) | 55 | Norms: PAL (720x576 @ 25 fps), NTSC (720x480 @ 29.97 fps) |
56 | Card number: 6 | 56 | Card number: 6 |
@@ -61,7 +61,7 @@ Pinnacle/Miro DC10(new): | |||
61 | * Philips saa7110a TV decoder | 61 | * Philips saa7110a TV decoder |
62 | * Analog Devices adv7176 TV encoder | 62 | * Analog Devices adv7176 TV encoder |
63 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 63 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
64 | videocodec, saa7110, adv7175, zr36060, zr36067 | 64 | videocodec, saa7110, adv7175, zr36060, zr36067 |
65 | Inputs/outputs: Composite, S-video and Internal | 65 | Inputs/outputs: Composite, S-video and Internal |
66 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) | 66 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) |
67 | Card number: 1 | 67 | Card number: 1 |
@@ -84,7 +84,7 @@ Pinnacle/Miro DC10(old): * | |||
84 | * Micronas vpx3220a TV decoder | 84 | * Micronas vpx3220a TV decoder |
85 | * mse3000 TV encoder or Analog Devices adv7176 TV encoder * | 85 | * mse3000 TV encoder or Analog Devices adv7176 TV encoder * |
86 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 86 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
87 | videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067 | 87 | videocodec, vpx3220, mse3000/adv7175, zr36050, zr36016, zr36067 |
88 | Inputs/outputs: Composite, S-video and Internal | 88 | Inputs/outputs: Composite, S-video and Internal |
89 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) | 89 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) |
90 | Card number: 0 | 90 | Card number: 0 |
@@ -96,7 +96,7 @@ Pinnacle/Miro DC30: * | |||
96 | * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder | 96 | * Micronas vpx3225d/vpx3220a/vpx3216b TV decoder |
97 | * Analog Devices adv7176 TV encoder | 97 | * Analog Devices adv7176 TV encoder |
98 | Drivers to use: videodev, i2c-core, i2c-algo-bit, | 98 | Drivers to use: videodev, i2c-core, i2c-algo-bit, |
99 | videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067 | 99 | videocodec, vpx3220/vpx3224, adv7175, zr36050, zr36016, zr36067 |
100 | Inputs/outputs: Composite, S-video and Internal | 100 | Inputs/outputs: Composite, S-video and Internal |
101 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) | 101 | Norms: PAL, SECAM (768x576 @ 25 fps), NTSC (640x480 @ 29.97 fps) |
102 | Card number: 3 | 102 | Card number: 3 |
@@ -123,11 +123,11 @@ Note: use encoder=X or decoder=X for non-default i2c chips (see i2c-id.h) | |||
123 | 123 | ||
124 | The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that | 124 | The best know TV standards are NTSC/PAL/SECAM. but for decoding a frame that |
125 | information is not enough. There are several formats of the TV standards. | 125 | information is not enough. There are several formats of the TV standards. |
126 | And not every TV decoder is able to handle every format. Also the every | 126 | And not every TV decoder is able to handle every format. Also the every |
127 | combination is supported by the driver. There are currently 11 different | 127 | combination is supported by the driver. There are currently 11 different |
128 | tv broadcast formats all aver the world. | 128 | tv broadcast formats all aver the world. |
129 | 129 | ||
130 | The CCIR defines parameters needed for broadcasting the signal. | 130 | The CCIR defines parameters needed for broadcasting the signal. |
131 | The CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,... | 131 | The CCIR has defined different standards: A,B,D,E,F,G,D,H,I,K,K1,L,M,N,... |
132 | The CCIR says not much about about the colorsystem used !!! | 132 | The CCIR says not much about about the colorsystem used !!! |
133 | And talking about a colorsystem says not to much about how it is broadcast. | 133 | And talking about a colorsystem says not to much about how it is broadcast. |
@@ -136,18 +136,18 @@ The CCIR standards A,E,F are not used any more. | |||
136 | 136 | ||
137 | When you speak about NTSC, you usually mean the standard: CCIR - M using | 137 | When you speak about NTSC, you usually mean the standard: CCIR - M using |
138 | the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada | 138 | the NTSC colorsystem which is used in the USA, Japan, Mexico, Canada |
139 | and a few others. | 139 | and a few others. |
140 | 140 | ||
141 | When you talk about PAL, you usually mean: CCIR - B/G using the PAL | 141 | When you talk about PAL, you usually mean: CCIR - B/G using the PAL |
142 | colorsystem which is used in many Countries. | 142 | colorsystem which is used in many Countries. |
143 | 143 | ||
144 | When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem | 144 | When you talk about SECAM, you mean: CCIR - L using the SECAM Colorsystem |
145 | which is used in France, and a few others. | 145 | which is used in France, and a few others. |
146 | 146 | ||
147 | There the other version of SECAM, CCIR - D/K is used in Bulgaria, China, | 147 | There the other version of SECAM, CCIR - D/K is used in Bulgaria, China, |
148 | Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others. | 148 | Slovakai, Hungary, Korea (Rep.), Poland, Rumania and a others. |
149 | 149 | ||
150 | The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in | 150 | The CCIR - H uses the PAL colorsystem (sometimes SECAM) and is used in |
151 | Egypt, Libya, Sri Lanka, Syrain Arab. Rep. | 151 | Egypt, Libya, Sri Lanka, Syrain Arab. Rep. |
152 | 152 | ||
153 | The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong, | 153 | The CCIR - I uses the PAL colorsystem, and is used in Great Britain, Hong Kong, |
@@ -158,30 +158,30 @@ and is used in Argentinia, Uruguay, an a few others | |||
158 | 158 | ||
159 | We do not talk about how the audio is broadcast ! | 159 | We do not talk about how the audio is broadcast ! |
160 | 160 | ||
161 | A rather good sites about the TV standards are: | 161 | A rather good sites about the TV standards are: |
162 | http://www.sony.jp/ServiceArea/Voltage_map/ | 162 | http://www.sony.jp/ServiceArea/Voltage_map/ |
163 | http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/ | 163 | http://info.electronicwerkstatt.de/bereiche/fernsehtechnik/frequenzen_und_normen/Fernsehnormen/ |
164 | and http://www.cabl.com/restaurant/channel.html | 164 | and http://www.cabl.com/restaurant/channel.html |
165 | 165 | ||
166 | Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly | 166 | Other weird things around: NTSC 4.43 is a modificated NTSC, which is mainly |
167 | used in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same | 167 | used in PAL VCR's that are able to play back NTSC. PAL 60 seems to be the same |
168 | as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would | 168 | as NTSC 4.43 . The Datasheets also talk about NTSC 44, It seems as if it would |
169 | be the same as NTSC 4.43. | 169 | be the same as NTSC 4.43. |
170 | NTSC Combs seems to be a decoder mode where the decoder uses a comb filter | 170 | NTSC Combs seems to be a decoder mode where the decoder uses a comb filter |
171 | to split coma and luma instead of a Delay line. | 171 | to split coma and luma instead of a Delay line. |
172 | 172 | ||
173 | But I did not defiantly find out what NTSC Comb is. | 173 | But I did not defiantly find out what NTSC Comb is. |
174 | 174 | ||
175 | Philips saa7111 TV decoder | 175 | Philips saa7111 TV decoder |
176 | was introduced in 1997, is used in the BUZ and | 176 | was introduced in 1997, is used in the BUZ and |
177 | can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM | 177 | can handle: PAL B/G/H/I, PAL N, PAL M, NTSC M, NTSC N, NTSC 4.43 and SECAM |
178 | 178 | ||
179 | Philips saa7110a TV decoder | 179 | Philips saa7110a TV decoder |
180 | was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and | 180 | was introduced in 1995, is used in the Pinnacle/Miro DC10(new), DC10+ and |
181 | can handle: PAL B/G, NTSC M and SECAM | 181 | can handle: PAL B/G, NTSC M and SECAM |
182 | 182 | ||
183 | Philips saa7114 TV decoder | 183 | Philips saa7114 TV decoder |
184 | was introduced in 2000, is used in the LML33R10 and | 184 | was introduced in 2000, is used in the LML33R10 and |
185 | can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM | 185 | can handle: PAL B/G/D/H/I/N, PAL N, PAL M, NTSC M, NTSC 4.43 and SECAM |
186 | 186 | ||
187 | Brooktree bt819 TV decoder | 187 | Brooktree bt819 TV decoder |
@@ -206,7 +206,7 @@ was introduced in 1996, is used in the BUZ | |||
206 | can generate: PAL B/G, NTSC M | 206 | can generate: PAL B/G, NTSC M |
207 | 207 | ||
208 | Brooktree bt856 TV Encoder | 208 | Brooktree bt856 TV Encoder |
209 | was introduced in 1994, is used in the LML33 | 209 | was introduced in 1994, is used in the LML33 |
210 | can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina) | 210 | can generate: PAL B/D/G/H/I/N, PAL M, NTSC M, PAL-N (Argentina) |
211 | 211 | ||
212 | Analog Devices adv7170 TV Encoder | 212 | Analog Devices adv7170 TV Encoder |
@@ -221,9 +221,9 @@ ITT mse3000 TV encoder | |||
221 | was introduced in 1991, is used in the DC10 old | 221 | was introduced in 1991, is used in the DC10 old |
222 | can generate: PAL , NTSC , SECAM | 222 | can generate: PAL , NTSC , SECAM |
223 | 223 | ||
224 | The adv717x, should be able to produce PAL N. But you find nothing PAL N | 224 | The adv717x, should be able to produce PAL N. But you find nothing PAL N |
225 | specific in the registers. Seem that you have to reuse a other standard | 225 | specific in the registers. Seem that you have to reuse a other standard |
226 | to generate PAL N, maybe it would work if you use the PAL M settings. | 226 | to generate PAL N, maybe it would work if you use the PAL M settings. |
227 | 227 | ||
228 | ========================== | 228 | ========================== |
229 | 229 | ||
@@ -261,7 +261,7 @@ Here's my experience of using LML33 and Buz on various motherboards: | |||
261 | 261 | ||
262 | VIA MVP3 | 262 | VIA MVP3 |
263 | Forget it. Pointless. Doesn't work. | 263 | Forget it. Pointless. Doesn't work. |
264 | Intel 430FX (Pentium 200) | 264 | Intel 430FX (Pentium 200) |
265 | LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie) | 265 | LML33 perfect, Buz tolerable (3 or 4 frames dropped per movie) |
266 | Intel 440BX (early stepping) | 266 | Intel 440BX (early stepping) |
267 | LML33 tolerable. Buz starting to get annoying (6-10 frames/hour) | 267 | LML33 tolerable. Buz starting to get annoying (6-10 frames/hour) |
@@ -438,52 +438,52 @@ importance of buffer sizes: | |||
438 | > -q 25 -b 128 : 24.655.992 | 438 | > -q 25 -b 128 : 24.655.992 |
439 | > -q 25 -b 256 : 25.859.820 | 439 | > -q 25 -b 256 : 25.859.820 |
440 | 440 | ||
441 | I woke up, and can't go to sleep again. I'll kill some time explaining why | 441 | I woke up, and can't go to sleep again. I'll kill some time explaining why |
442 | this doesn't look strange to me. | 442 | this doesn't look strange to me. |
443 | 443 | ||
444 | Let's do some math using a width of 704 pixels. I'm not sure whether the Buz | 444 | Let's do some math using a width of 704 pixels. I'm not sure whether the Buz |
445 | actually use that number or not, but that's not too important right now. | 445 | actually use that number or not, but that's not too important right now. |
446 | 446 | ||
447 | 704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; | 447 | 704x288 pixels, one field, is 202752 pixels. Divided by 64 pixels per block; |
448 | 3168 blocks per field. Each pixel consist of two bytes; 128 bytes per block; | 448 | 3168 blocks per field. Each pixel consist of two bytes; 128 bytes per block; |
449 | 1024 bits per block. 100% in the new driver mean 1:2 compression; the maximum | 449 | 1024 bits per block. 100% in the new driver mean 1:2 compression; the maximum |
450 | output becomes 512 bits per block. Actually 510, but 512 is simpler to use | 450 | output becomes 512 bits per block. Actually 510, but 512 is simpler to use |
451 | for calculations. | 451 | for calculations. |
452 | 452 | ||
453 | Let's say that we specify d1q50. We thus want 256 bits per block; times 3168 | 453 | Let's say that we specify d1q50. We thus want 256 bits per block; times 3168 |
454 | becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes | 454 | becomes 811008 bits; 101376 bytes per field. We're talking raw bits and bytes |
455 | here, so we don't need to do any fancy corrections for bits-per-pixel or such | 455 | here, so we don't need to do any fancy corrections for bits-per-pixel or such |
456 | things. 101376 bytes per field. | 456 | things. 101376 bytes per field. |
457 | 457 | ||
458 | d1 video contains two fields per frame. Those sum up to 202752 bytes per | 458 | d1 video contains two fields per frame. Those sum up to 202752 bytes per |
459 | frame, and one of those frames goes into each buffer. | 459 | frame, and one of those frames goes into each buffer. |
460 | 460 | ||
461 | But wait a second! -b128 gives 128kB buffers! It's not possible to cram | 461 | But wait a second! -b128 gives 128kB buffers! It's not possible to cram |
462 | 202752 bytes of JPEG data into 128kB! | 462 | 202752 bytes of JPEG data into 128kB! |
463 | 463 | ||
464 | This is what the driver notice and automatically compensate for in your | 464 | This is what the driver notice and automatically compensate for in your |
465 | examples. Let's do some math using this information: | 465 | examples. Let's do some math using this information: |
466 | 466 | ||
467 | 128kB is 131072 bytes. In this buffer, we want to store two fields, which | 467 | 128kB is 131072 bytes. In this buffer, we want to store two fields, which |
468 | leaves 65536 bytes for each field. Using 3168 blocks per field, we get | 468 | leaves 65536 bytes for each field. Using 3168 blocks per field, we get |
469 | 20.68686868... available bytes per block; 165 bits. We can't allow the | 469 | 20.68686868... available bytes per block; 165 bits. We can't allow the |
470 | request for 256 bits per block when there's only 165 bits available! The -q50 | 470 | request for 256 bits per block when there's only 165 bits available! The -q50 |
471 | option is silently overridden, and the -b128 option takes precedence, leaving | 471 | option is silently overridden, and the -b128 option takes precedence, leaving |
472 | us with the equivalence of -q32. | 472 | us with the equivalence of -q32. |
473 | 473 | ||
474 | This gives us a data rate of 165 bits per block, which, times 3168, sums up | 474 | This gives us a data rate of 165 bits per block, which, times 3168, sums up |
475 | to 65340 bytes per field, out of the allowed 65536. The current driver has | 475 | to 65340 bytes per field, out of the allowed 65536. The current driver has |
476 | another level of rate limiting; it won't accept -q values that fill more than | 476 | another level of rate limiting; it won't accept -q values that fill more than |
477 | 6/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be | 477 | 6/8 of the specified buffers. (I'm not sure why. "Playing it safe" seem to be |
478 | a safe bet. Personally, I think I would have lowered requested-bits-per-block | 478 | a safe bet. Personally, I think I would have lowered requested-bits-per-block |
479 | by one, or something like that.) We can't use 165 bits per block, but have to | 479 | by one, or something like that.) We can't use 165 bits per block, but have to |
480 | lower it again, to 6/8 of the available buffer space: We end up with 124 bits | 480 | lower it again, to 6/8 of the available buffer space: We end up with 124 bits |
481 | per block, the equivalence of -q24. With 128kB buffers, you can't use greater | 481 | per block, the equivalence of -q24. With 128kB buffers, you can't use greater |
482 | than -q24 at -d1. (And PAL, and 704 pixels width...) | 482 | than -q24 at -d1. (And PAL, and 704 pixels width...) |
483 | 483 | ||
484 | The third example is limited to -q24 through the same process. The second | 484 | The third example is limited to -q24 through the same process. The second |
485 | example, using very similar calculations, is limited to -q48. The only | 485 | example, using very similar calculations, is limited to -q48. The only |
486 | example that actually grab at the specified -q value is the last one, which | 486 | example that actually grab at the specified -q value is the last one, which |
487 | is clearly visible, looking at the file size. | 487 | is clearly visible, looking at the file size. |
488 | -- | 488 | -- |
489 | 489 | ||