A method for encoding of an input sequence of bits, the method comprising: reordering the input sequence into groups of input bits in accordance with a predetermined reordering schedule; for each group of input bits; determining, in parallel, a context for each of the input bits in the group of input bits and associating a probability with that bit based on its context, wherein the context for each of the input bits in the group is different from the context of each of the other input bits in the group, and the context of each of the input bits in the group is determined independently from the other input bits in the group wherein the probability is the probability that the bit will be a Least Probable Symbol, LPS; assigning each bit in the group of input bits to one of a plurality of N sources based on its associated probability, each of the N sources building up a subsequence of bits assigned to it; entropy encoding the input bits in each of the N subsequences using its own entropy encoder, the plurality of encoders being arranged in parallel with one another, different encoders using different coding schemes, to generate a plurality of N encoded subsequences each being encoded using a different coding scheme; multiplexing the plurality of N encoded subsequences to generate a single bitstream of encoded data. reordering the input sequence into groups of input bits in accordance with a predetermined reordering schedule; for each group of input bits; determining, in parallel, a context for each of the input bits in the group of input bits and associating a probability with that bit based on its context, wherein the context for each of the input bits in the group is different from the context of each of the other input bits in the group, and the context of each of the input bits in the group is determined independently from the other input bits in the group wherein the probability is the probability that the bit will be a Least Probable Symbol, LPS; assigning each bit in the group of input bits to one of a plurality of N sources based on its associated probability, each of the N sources building up a subsequence of bits assigned to it; entropy encoding the input bits in each of the N subsequences using its own entropy encoder, the plurality of encoders being arranged in parallel with one another, different encoders using different coding schemes, to generate a plurality of N encoded subsequences each being encoded using a different coding scheme; multiplexing the plurality of N encoded subsequences to generate a single bitstream of encoded data. determining, in parallel, a context for each of the input bits in the group of input bits and associating a probability with that bit based on its context, wherein the context for each of the input bits in the group is different from the context of each of the other input bits in the group, and the context of each of the input bits in the group is determined independently from the other input bits in the group wherein the probability is the probability that the bit will be a Least Probable Symbol, LPS; assigning each bit in the group of input bits to one of a plurality of N sources based on its associated probability, each of the N sources building up a subsequence of bits assigned to it; entropy encoding the input bits in each of the N subsequences using its own entropy encoder, the plurality of encoders being arranged in parallel with one another, different encoders using different coding schemes, to generate a plurality of N encoded subsequences each being encoded using a different coding scheme; multiplexing the plurality of N encoded subsequences to generate a single bitstream of encoded data.