So if this is going to be done for V4L2, maybe we could start on this
list. A good start for a parameter list would probably be the .par
files for mpegenc.
Below there is a list of parameters I wrote down a while ago, it was
intended to be a start for a V4L2 MPEG encoder API. But, I never
finished it.
Most of the parameters are based on my experiences with the SAA6752
MPEG-2 encoder, so most of these parameters could also be found back in
the datasheet of this IC
(http://www.semiconductors.philips.com/pip/SAA6752HS_V101.html). I also
added VCD related settings, although these are not supported by this
encoder.
It is also very likely that not all of these settings are supported by
other MPEG encoders or that other MPEG encoders have also other
parameters available.
In practice some parameters can also be fixed, depening on a type of
system stream or picture size.
Gert
system stream:
- type: elementary stream(ES), packatised elementary stream(s) (PES)
program stream(PS), transport stream(TS)
- system bitrate
- PS packet size (DVD: 2048 bytes, VCD: 2324 bytes)
- TS video PID
- TS audio PID
- TS PCR PID
- TS system information tables (PAT, PMT, CAT, NIT and SIT)
audio:
- type: MPEG, AC-3, LPCM
- bitrate
- sampling frequency (DVD: 48 Khz, VCD: 44.1 KHz)
video:
- picturesize (SIF, 1/2 D1, 2/3 D1, D1) and PAL/NTSC norm can be set
through excisting V4L2 controls
- GOP (Group Of Pictures) definition:
- N: number of frames per GOP
- M: distance between reference (I,P) frames
- open/closed GOP
- quantiser matrix: inter Q matrix (64 bytes) and intra Q matrix (64 bytes)
- quantiser scale: linear or logarithmic
- scanning: alternate or zigzag
- bitrate mode: CBR (constant bitrate) or VBR (variable bitrate).
- target video bitrate for CBR
- target video bitrate for VBR
- maximum video bitrate for VBR
- min. quantiser value for VBR
- max. quantiser value for VBR
- adaptive quantisation value
- return the number of bytes per GOP or bitrate for bitrate monitoring