Apparatus for driving a display, the display having a matrix of pixels, said driving comprising digitally processing data in a data array defining a target matrix (X) using non-negative matrix factorization to determine a pair of matrices (F, G), a first matrix of said pair determining a set of features for representing said data, a second matrix of said pair determining weights of said features, such that a product of said first and second matrices approximates said target matrix, the apparatus comprising:
- means for inputting said target matrix data (X);
- means for selecting a row of said one of said first and second matrices and a column of the other of said first and second matrices;
- means for determining a target contribution (R) of said selected row and column to said target matrix;
- means for determining, subject to a non-negativity constraint, updated values for said selected row and column from said target contribution;
- and
- means for repeating said selecting and determining for the other rows and columns of said first and second matrices until all said rows and columns have been updated,
- wherein each said pixel is addressable by a row electrode and a column electrode;
- wherein one of said factor matrices defines row drive signals and the other of said factor matrices defines column drive signals;
- and wherein said driving comprises driving using said row and column drive signals.