I don't understand below explanation.
In Vorbis 1 specification, 3.2.1. codebook decode
===================================
If the [ordered] flag is unset, the codeword list is not length ordered and the decoder needs to read each codeword length one-by-one.
The decoder first reads one additional bit flag, the [sparse] flag. This flag determines whether or not the codebook contains unused entries that are not to be included in the codeword decode tree:
byte 8: [ X 1 ] [sparse] flag (1 bit)
The decoder now performs for each of the [codebook_entries] codebook entries:
1) if([sparse] is set){
2) [flag] = read one bit;
3) if([flag] is set){
4) [length] = read a five bit unsigned integer;
5) codeword length for this entry is [length]+1;
} else {
6) this entry is unused. mark it as such.
}
} else the sparse flag is not set {
7) [length] = read a five bit unsigned integer;
8) the codeword length for this entry is [length]+1;
}
==============================================
byte 8: [ X 1 ] [sparse] flag (1 bit)
==> '1' is [ordered] bit and 'X' is [sparse] bit. Is it right?
What is a difference between "1) [sparse] is set" and " 3) [flag] is set" ?