diff options
author | Arun Kumar K <arun.kk@samsung.com> | 2012-10-03 21:19:06 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-10-05 21:42:17 -0400 |
commit | 2e81dde94316dfaa19f0b6f9d4131ef7eaf124a3 (patch) | |
tree | 729db0ebf3bdb55540b89c4410a35811f1bbdfc7 /Documentation | |
parent | 4d08f670e63200cc092724de8c95f81df606b1a5 (diff) |
[media] v4l: Add control definitions for new H264 encoder features
New controls are added for supporting H264 encoding features like:
- MVC frame packing,
- flexible macroblock ordering,
- arbitrary slice ordering,
- hierarchical coding.
Signed-off-by: Jeongtae Park <jtp.park@samsung.com>
Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Signed-off-by: Arun Kumar K <arun.kk@samsung.com>
Acked-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/media/v4l/controls.xml | 268 |
1 files changed, 267 insertions, 1 deletions
diff --git a/Documentation/DocBook/media/v4l/controls.xml b/Documentation/DocBook/media/v4l/controls.xml index a84a08ca51dc..7fe5be1d3bbb 100644 --- a/Documentation/DocBook/media/v4l/controls.xml +++ b/Documentation/DocBook/media/v4l/controls.xml | |||
@@ -1586,7 +1586,6 @@ frame counter of the frame that is currently displayed (decoded). This value is | |||
1586 | the decoder is started.</entry> | 1586 | the decoder is started.</entry> |
1587 | </row> | 1587 | </row> |
1588 | 1588 | ||
1589 | |||
1590 | <row><entry></entry></row> | 1589 | <row><entry></entry></row> |
1591 | <row> | 1590 | <row> |
1592 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE</constant> </entry> | 1591 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_DECODER_SLICE_INTERFACE</constant> </entry> |
@@ -2270,6 +2269,14 @@ Applicable to the MPEG1, MPEG2, MPEG4 encoders.</entry> | |||
2270 | </row> | 2269 | </row> |
2271 | 2270 | ||
2272 | <row><entry></entry></row> | 2271 | <row><entry></entry></row> |
2272 | <row id="v4l2-mpeg-video-vbv-delay"> | ||
2273 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_VBV_DELAY</constant> </entry> | ||
2274 | <entry>integer</entry> | ||
2275 | </row><row><entry spanname="descr">Sets the initial delay in milliseconds for | ||
2276 | VBV buffer control.</entry> | ||
2277 | </row> | ||
2278 | |||
2279 | <row><entry></entry></row> | ||
2273 | <row> | 2280 | <row> |
2274 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE</constant> </entry> | 2281 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_CPB_SIZE</constant> </entry> |
2275 | <entry>integer</entry> | 2282 | <entry>integer</entry> |
@@ -2334,6 +2341,265 @@ Applicable to the MPEG4 decoder.</entry> | |||
2334 | </row><row><entry spanname="descr">vop_time_increment value for MPEG4. Applicable to the MPEG4 encoder.</entry> | 2341 | </row><row><entry spanname="descr">vop_time_increment value for MPEG4. Applicable to the MPEG4 encoder.</entry> |
2335 | </row> | 2342 | </row> |
2336 | 2343 | ||
2344 | <row><entry></entry></row> | ||
2345 | <row> | ||
2346 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_SEI_FRAME_PACKING</constant> </entry> | ||
2347 | <entry>boolean</entry> | ||
2348 | </row> | ||
2349 | <row><entry spanname="descr">Enable generation of frame packing supplemental enhancement information in the encoded bitstream. | ||
2350 | The frame packing SEI message contains the arrangement of L and R planes for 3D viewing. Applicable to the H264 encoder.</entry> | ||
2351 | </row> | ||
2352 | |||
2353 | <row><entry></entry></row> | ||
2354 | <row> | ||
2355 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_SEI_FP_CURRENT_FRAME_0</constant> </entry> | ||
2356 | <entry>boolean</entry> | ||
2357 | </row> | ||
2358 | <row><entry spanname="descr">Sets current frame as frame0 in frame packing SEI. | ||
2359 | Applicable to the H264 encoder.</entry> | ||
2360 | </row> | ||
2361 | |||
2362 | <row><entry></entry></row> | ||
2363 | <row id="v4l2-mpeg-video-h264-sei-fp-arrangement-type"> | ||
2364 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE</constant> </entry> | ||
2365 | <entry>enum v4l2_mpeg_video_h264_sei_fp_arrangement_type</entry> | ||
2366 | </row> | ||
2367 | <row><entry spanname="descr">Frame packing arrangement type for H264 SEI. | ||
2368 | Applicable to the H264 encoder. | ||
2369 | Possible values are:</entry> | ||
2370 | </row> | ||
2371 | <row> | ||
2372 | <entrytbl spanname="descr" cols="2"> | ||
2373 | <tbody valign="top"> | ||
2374 | <row> | ||
2375 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_CHEKERBOARD</constant> </entry> | ||
2376 | <entry>Pixels are alternatively from L and R.</entry> | ||
2377 | </row> | ||
2378 | <row> | ||
2379 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_COLUMN</constant> </entry> | ||
2380 | <entry>L and R are interlaced by column.</entry> | ||
2381 | </row> | ||
2382 | <row> | ||
2383 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_ROW</constant> </entry> | ||
2384 | <entry>L and R are interlaced by row.</entry> | ||
2385 | </row> | ||
2386 | <row> | ||
2387 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_SIDE_BY_SIDE</constant> </entry> | ||
2388 | <entry>L is on the left, R on the right.</entry> | ||
2389 | </row> | ||
2390 | <row> | ||
2391 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TOP_BOTTOM</constant> </entry> | ||
2392 | <entry>L is on top, R on bottom.</entry> | ||
2393 | </row> | ||
2394 | <row> | ||
2395 | <entry><constant>V4L2_MPEG_VIDEO_H264_SEI_FP_ARRANGEMENT_TYPE_TEMPORAL</constant> </entry> | ||
2396 | <entry>One view per frame.</entry> | ||
2397 | </row> | ||
2398 | </tbody> | ||
2399 | </entrytbl> | ||
2400 | </row> | ||
2401 | |||
2402 | <row><entry></entry></row> | ||
2403 | <row> | ||
2404 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO</constant> </entry> | ||
2405 | <entry>boolean</entry> | ||
2406 | </row> | ||
2407 | <row><entry spanname="descr">Enables flexible macroblock ordering in the encoded bitstream. It is a technique | ||
2408 | used for restructuring the ordering of macroblocks in pictures. Applicable to the H264 encoder.</entry> | ||
2409 | </row> | ||
2410 | |||
2411 | <row><entry></entry></row> | ||
2412 | <row id="v4l2-mpeg-video-h264-fmo-map-type"> | ||
2413 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO_MAP_TYPE</constant> </entry> | ||
2414 | <entry>enum v4l2_mpeg_video_h264_fmo_map_type</entry> | ||
2415 | </row> | ||
2416 | <row><entry spanname="descr">When using FMO, the map type divides the image in different scan patterns of macroblocks. | ||
2417 | Applicable to the H264 encoder. | ||
2418 | Possible values are:</entry> | ||
2419 | </row> | ||
2420 | <row> | ||
2421 | <entrytbl spanname="descr" cols="2"> | ||
2422 | <tbody valign="top"> | ||
2423 | <row> | ||
2424 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_INTERLEAVED_SLICES</constant> </entry> | ||
2425 | <entry>Slices are interleaved one after other with macroblocks in run length order.</entry> | ||
2426 | </row> | ||
2427 | <row> | ||
2428 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_SCATTERED_SLICES</constant> </entry> | ||
2429 | <entry>Scatters the macroblocks based on a mathematical function known to both encoder and decoder.</entry> | ||
2430 | </row> | ||
2431 | <row> | ||
2432 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_FOREGROUND_WITH_LEFT_OVER</constant> </entry> | ||
2433 | <entry>Macroblocks arranged in rectangular areas or regions of interest.</entry> | ||
2434 | </row> | ||
2435 | <row> | ||
2436 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_BOX_OUT</constant> </entry> | ||
2437 | <entry>Slice groups grow in a cyclic way from centre to outwards.</entry> | ||
2438 | </row> | ||
2439 | <row> | ||
2440 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_RASTER_SCAN</constant> </entry> | ||
2441 | <entry>Slice groups grow in raster scan pattern from left to right.</entry> | ||
2442 | </row> | ||
2443 | <row> | ||
2444 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_WIPE_SCAN</constant> </entry> | ||
2445 | <entry>Slice groups grow in wipe scan pattern from top to bottom.</entry> | ||
2446 | </row> | ||
2447 | <row> | ||
2448 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_MAP_TYPE_EXPLICIT</constant> </entry> | ||
2449 | <entry>User defined map type.</entry> | ||
2450 | </row> | ||
2451 | </tbody> | ||
2452 | </entrytbl> | ||
2453 | </row> | ||
2454 | |||
2455 | <row><entry></entry></row> | ||
2456 | <row> | ||
2457 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO_SLICE_GROUP</constant> </entry> | ||
2458 | <entry>integer</entry> | ||
2459 | </row> | ||
2460 | <row><entry spanname="descr">Number of slice groups in FMO. | ||
2461 | Applicable to the H264 encoder.</entry> | ||
2462 | </row> | ||
2463 | |||
2464 | <row><entry></entry></row> | ||
2465 | <row id="v4l2-mpeg-video-h264-fmo-change-direction"> | ||
2466 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_DIRECTION</constant> </entry> | ||
2467 | <entry>enum v4l2_mpeg_video_h264_fmo_change_dir</entry> | ||
2468 | </row> | ||
2469 | <row><entry spanname="descr">Specifies a direction of the slice group change for raster and wipe maps. | ||
2470 | Applicable to the H264 encoder. | ||
2471 | Possible values are:</entry> | ||
2472 | </row> | ||
2473 | <row> | ||
2474 | <entrytbl spanname="descr" cols="2"> | ||
2475 | <tbody valign="top"> | ||
2476 | <row> | ||
2477 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_RIGHT</constant> </entry> | ||
2478 | <entry>Raster scan or wipe right.</entry> | ||
2479 | </row> | ||
2480 | <row> | ||
2481 | <entry><constant>V4L2_MPEG_VIDEO_H264_FMO_CHANGE_DIR_LEFT</constant> </entry> | ||
2482 | <entry>Reverse raster scan or wipe left.</entry> | ||
2483 | </row> | ||
2484 | </tbody> | ||
2485 | </entrytbl> | ||
2486 | </row> | ||
2487 | |||
2488 | <row><entry></entry></row> | ||
2489 | <row> | ||
2490 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO_CHANGE_RATE</constant> </entry> | ||
2491 | <entry>integer</entry> | ||
2492 | </row> | ||
2493 | <row><entry spanname="descr">Specifies the size of the first slice group for raster and wipe map. | ||
2494 | Applicable to the H264 encoder.</entry> | ||
2495 | </row> | ||
2496 | |||
2497 | <row><entry></entry></row> | ||
2498 | <row> | ||
2499 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_FMO_RUN_LENGTH</constant> </entry> | ||
2500 | <entry>integer</entry> | ||
2501 | </row> | ||
2502 | <row><entry spanname="descr">Specifies the number of consecutive macroblocks for the interleaved map. | ||
2503 | Applicable to the H264 encoder.</entry> | ||
2504 | </row> | ||
2505 | |||
2506 | <row><entry></entry></row> | ||
2507 | <row> | ||
2508 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_ASO</constant> </entry> | ||
2509 | <entry>boolean</entry> | ||
2510 | </row> | ||
2511 | <row><entry spanname="descr">Enables arbitrary slice ordering in encoded bitstream. | ||
2512 | Applicable to the H264 encoder.</entry> | ||
2513 | </row> | ||
2514 | |||
2515 | <row><entry></entry></row> | ||
2516 | <row> | ||
2517 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_ASO_SLICE_ORDER</constant> </entry> | ||
2518 | <entry>integer</entry> | ||
2519 | </row><row><entry spanname="descr">Specifies the slice order in ASO. Applicable to the H264 encoder. | ||
2520 | The supplied 32-bit integer is interpreted as follows (bit | ||
2521 | 0 = least significant bit):</entry> | ||
2522 | </row> | ||
2523 | <row> | ||
2524 | <entrytbl spanname="descr" cols="2"> | ||
2525 | <tbody valign="top"> | ||
2526 | <row> | ||
2527 | <entry>Bit 0:15</entry> | ||
2528 | <entry>Slice ID</entry> | ||
2529 | </row> | ||
2530 | <row> | ||
2531 | <entry>Bit 16:32</entry> | ||
2532 | <entry>Slice position or order</entry> | ||
2533 | </row> | ||
2534 | </tbody> | ||
2535 | </entrytbl> | ||
2536 | </row> | ||
2537 | |||
2538 | <row><entry></entry></row> | ||
2539 | <row> | ||
2540 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING</constant> </entry> | ||
2541 | <entry>boolean</entry> | ||
2542 | </row> | ||
2543 | <row><entry spanname="descr">Enables H264 hierarchical coding. | ||
2544 | Applicable to the H264 encoder.</entry> | ||
2545 | </row> | ||
2546 | |||
2547 | <row><entry></entry></row> | ||
2548 | <row id="v4l2-mpeg-video-h264-hierarchical-coding-type"> | ||
2549 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_TYPE</constant> </entry> | ||
2550 | <entry>enum v4l2_mpeg_video_h264_hierarchical_coding_type</entry> | ||
2551 | </row> | ||
2552 | <row><entry spanname="descr">Specifies the hierarchical coding type. | ||
2553 | Applicable to the H264 encoder. | ||
2554 | Possible values are:</entry> | ||
2555 | </row> | ||
2556 | <row> | ||
2557 | <entrytbl spanname="descr" cols="2"> | ||
2558 | <tbody valign="top"> | ||
2559 | <row> | ||
2560 | <entry><constant>V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_B</constant> </entry> | ||
2561 | <entry>Hierarchical B coding.</entry> | ||
2562 | </row> | ||
2563 | <row> | ||
2564 | <entry><constant>V4L2_MPEG_VIDEO_H264_HIERARCHICAL_CODING_P</constant> </entry> | ||
2565 | <entry>Hierarchical P coding.</entry> | ||
2566 | </row> | ||
2567 | </tbody> | ||
2568 | </entrytbl> | ||
2569 | </row> | ||
2570 | |||
2571 | <row><entry></entry></row> | ||
2572 | <row> | ||
2573 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER</constant> </entry> | ||
2574 | <entry>integer</entry> | ||
2575 | </row> | ||
2576 | <row><entry spanname="descr">Specifies the number of hierarchical coding layers. | ||
2577 | Applicable to the H264 encoder.</entry> | ||
2578 | </row> | ||
2579 | |||
2580 | <row><entry></entry></row> | ||
2581 | <row> | ||
2582 | <entry spanname="id"><constant>V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP</constant> </entry> | ||
2583 | <entry>integer</entry> | ||
2584 | </row><row><entry spanname="descr">Specifies a user defined QP for each layer. Applicable to the H264 encoder. | ||
2585 | The supplied 32-bit integer is interpreted as follows (bit | ||
2586 | 0 = least significant bit):</entry> | ||
2587 | </row> | ||
2588 | <row> | ||
2589 | <entrytbl spanname="descr" cols="2"> | ||
2590 | <tbody valign="top"> | ||
2591 | <row> | ||
2592 | <entry>Bit 0:15</entry> | ||
2593 | <entry>QP value</entry> | ||
2594 | </row> | ||
2595 | <row> | ||
2596 | <entry>Bit 16:32</entry> | ||
2597 | <entry>Layer number</entry> | ||
2598 | </row> | ||
2599 | </tbody> | ||
2600 | </entrytbl> | ||
2601 | </row> | ||
2602 | |||
2337 | </tbody> | 2603 | </tbody> |
2338 | </tgroup> | 2604 | </tgroup> |
2339 | </table> | 2605 | </table> |