bond
24th April 2005, 21:03
as some people reported that some nero certified standalones play custom matrices encoded with nero, but not with xvid i played around with the latest nerodigital encoder a little bit and found a bug in nero:
normally when encoding with custom matrices it has to be signalled in the VOL (video object layer) that a custom matrix has been used and the used matrix itself
but when encoding with nero and a custom matrix this doesnt happen, eg the VOL looks like this:
Video Object Layer
random_accessible_vol - 0
video object type - 17
is_object_layer_identifier - 1
verid - 1
vol_priority - 1
aspect_ratio_info 1
vol_control_parameters - 1
chroma format - 1
low delay - 1
vbv_parameters - 1
bit rate 494
vbv buffer size 121
vbv occupancy 10222
video object layer shape - 0
vop_time_increment_resolution - 25000
fixed_vop_rate - 1
fixed_vop_time_increment - bits 15 1000
vol width - 640
vol height - 256
interlaced - 0
obmc_disable - 1
sprite - 0
not_8_bit - 0
quant_type - 1
load_intra_quant_mat - 0
load_nonintra_quant_mat - 0
complexity estimation - 1
resync_marker_disable - 1
data partitioned - 0
scalability - 0 when encoding in xvid with a custom matrix it looks like this:
Video Object Layer
random_accessible_vol - 0
video object type - 1
is_object_layer_identifier - 0
aspect_ratio_info 1
vol_control_parameters - 1
chroma format - 1
low delay - 1
vbv_parameters - 0
video object layer shape - 0
vop_time_increment_resolution - 25
fixed_vop_rate - 1
fixed_vop_time_increment - bits 5 1
vol width - 720
vol height - 288
interlaced - 0
obmc_disable - 1
sprite - 0
not_8_bit - 0
quant_type - 1
load_intra_quant_mat - 1
8 16 16 16 16 16 16 16 16 16 17 16 17 16 17 18
17 18 18 17 18 21 19 20 21 20 19 21 24 22 22 24
24 22 22 24 25 25 27 30 27 25 25 29 31 35 35 31
29 36 41 44 41 36 47 54 54 47 65 70 65 88 88 115
load_nonintra_quant_mat - 1
18 18 18 18 18 18 18 18 18 18 19 18 19 18 19 21
19 20 20 19 21 23 21 22 24 22 21 23 27 24 24 27
27 24 24 27 29 28 30 33 30 28 29 32 35 39 39 35
32 40 46 50 46 40 53 61 61 53 73 79 73 98 98 129
complexity estimation - 1
resync_marker_disable - 1
data partitioned - 0
scalability - 0now i see two possible explanations for this:
1) nero simply doesnt signal the used matrices in the VOL when encoding with custom matrices, which is borked
2) nero simply doesnt encode with a custom matrix, but with normal mpeg quantisation, even if a custom matrix is specified in the gui. this would propably be more likely as:
- the way nero writes the VOL is the standard way for signalling MPEG quantisation
- mpeg-4 decoders can decode the nero streams which should use a custom matrix, which i assume wouldnt be possible when the matrix is not signalled in the VOL
either way, its a bug in nero recode2...
normally when encoding with custom matrices it has to be signalled in the VOL (video object layer) that a custom matrix has been used and the used matrix itself
but when encoding with nero and a custom matrix this doesnt happen, eg the VOL looks like this:
Video Object Layer
random_accessible_vol - 0
video object type - 17
is_object_layer_identifier - 1
verid - 1
vol_priority - 1
aspect_ratio_info 1
vol_control_parameters - 1
chroma format - 1
low delay - 1
vbv_parameters - 1
bit rate 494
vbv buffer size 121
vbv occupancy 10222
video object layer shape - 0
vop_time_increment_resolution - 25000
fixed_vop_rate - 1
fixed_vop_time_increment - bits 15 1000
vol width - 640
vol height - 256
interlaced - 0
obmc_disable - 1
sprite - 0
not_8_bit - 0
quant_type - 1
load_intra_quant_mat - 0
load_nonintra_quant_mat - 0
complexity estimation - 1
resync_marker_disable - 1
data partitioned - 0
scalability - 0 when encoding in xvid with a custom matrix it looks like this:
Video Object Layer
random_accessible_vol - 0
video object type - 1
is_object_layer_identifier - 0
aspect_ratio_info 1
vol_control_parameters - 1
chroma format - 1
low delay - 1
vbv_parameters - 0
video object layer shape - 0
vop_time_increment_resolution - 25
fixed_vop_rate - 1
fixed_vop_time_increment - bits 5 1
vol width - 720
vol height - 288
interlaced - 0
obmc_disable - 1
sprite - 0
not_8_bit - 0
quant_type - 1
load_intra_quant_mat - 1
8 16 16 16 16 16 16 16 16 16 17 16 17 16 17 18
17 18 18 17 18 21 19 20 21 20 19 21 24 22 22 24
24 22 22 24 25 25 27 30 27 25 25 29 31 35 35 31
29 36 41 44 41 36 47 54 54 47 65 70 65 88 88 115
load_nonintra_quant_mat - 1
18 18 18 18 18 18 18 18 18 18 19 18 19 18 19 21
19 20 20 19 21 23 21 22 24 22 21 23 27 24 24 27
27 24 24 27 29 28 30 33 30 28 29 32 35 39 39 35
32 40 46 50 46 40 53 61 61 53 73 79 73 98 98 129
complexity estimation - 1
resync_marker_disable - 1
data partitioned - 0
scalability - 0now i see two possible explanations for this:
1) nero simply doesnt signal the used matrices in the VOL when encoding with custom matrices, which is borked
2) nero simply doesnt encode with a custom matrix, but with normal mpeg quantisation, even if a custom matrix is specified in the gui. this would propably be more likely as:
- the way nero writes the VOL is the standard way for signalling MPEG quantisation
- mpeg-4 decoders can decode the nero streams which should use a custom matrix, which i assume wouldnt be possible when the matrix is not signalled in the VOL
either way, its a bug in nero recode2...