Fe2_vp6_cxmode – Google Flix Engine Linux Reference Manual User Manual
Page 53

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
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
=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:
•
MUST be set to
•
MUST be set to
or
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
Generated on Tue Jul 20 17:39:03 2010 for Flix Engine Linux by Doxygen