Fe2_vp6_cxmode – Google Flix Engine Linux Reference Manual User Manual

Page 53

Advertising
background image

5.14 VP6

47

Usage Considerations:

The current implementation parallelizes the video encode on keyframe boundaries. To achieve this,
each instance (1 per core/processor) must buffer both the raw input frames as well as those encoded.
As a result, the memory requirement for each session increases dramatically.
The number of raw (YV12) input frames required per processor is

FE2_VP6_KFFREQ

or 60 (the

current allowed maximum), whichever is smaller. The size of each raw frame can be calculated as
follows:

f ramesiz_bytes = imagew × imageh ×

3

2

Making the input buffer requirements for each processor:

raw_buf req = f ramesiz_bytes × min{F E2_V P 6_KF F REQ, 60}

The encoded buffer requirement is the same, as this would be the worst (though unlikely) case, making
the per-processor memory increase:

memreq_increase/processor = 2 × raw_buf req

The current maximum number of cores/processors utilized is 8 with the load evenly distributed across
those available.
Because of this some thought should be given to queueing encodes to avoid possible failures due to
exhaustion of available memory.
Using the above, with

FE2_VP6_KFFREQ

=60, the per-processor memory increase for some common

resolutions are:

Resolution

|

framesiz_bytes

| memreq_increase/processor |

memreq_increase/2

|

memreq_increase/4

|

memreq_increase/8

=========================================================================================================================================

320x240

(QVGA) | 115200

(.11MiB)

| 13824000

(13.18MiB)

| 27648000

(26.37MiB)

| 55296000

(52.73MiB)

| 110592000

(105.47MiB)

640x480

(VGA)

| 460800

(.44MiB)

| 55296000

(52.73MiB)

| 110592000 (105.47MiB) | 221184000 (210.94MiB) | 442368000

(421.88MiB)

720x480

(NTSC) | 518400

(.49MiB)

| 62208000

(59.33MiB)

| 124416000 (118.65MiB) | 248832000 (237.30MiB) | 497664000

(474.61MiB)

720x576

(PAL)

| 622080

(.59MiB)

| 74649600

(71.19MiB)

| 149299200 (142.38MiB) | 298598400 (284.77MiB) | 597196800

(569.53MiB)

1280x720 (720p) | 1382400 (1.32MiB) | 165888000 (158.2MiB)

| 331776000 (316.41MiB) | 663552000 (632.81MiB) | 1327104000 (1265.63MiB)

Note:

Default: 0 (disabled)

Attention:

Currently to enable this parameter:

FE2_VP6_KFINTTYPE

MUST be set to

FIXED_KEYFRAMES

.

FE2_VP6_RC_MODE

MUST be set to

VBR_1PASSControl

or

CBR_1PASSControl

.

Enabling this parameter on a processor that is solely Hyper-Threaded (e.g., early Pentium 4 models)
MAY see a decrease in performance, especially under Linux.

See also:

FE2_VP6_CONCURRENCY Performance

- Graphs comparing encode times with and without this

parameter enabled.

Definition at line 228 of file vp6.h.

5.14.4.6

#define FE2_VP6_CXMODE

VP6 compress mode.

Valid values are defined by

FE2_CompressMode

Generated on Tue Jul 20 17:39:03 2010 for Flix Engine Linux by Doxygen

Advertising