1. A method of encoding a data segment with a transform matrix for storage to a memory, the method comprising: inputting a data segment into a non-systematic error correction code (ECC) transform matrix to output a non-systematic ECC encoded data segment, wherein the transform matrix distributes the ECC encoding across the non-systematic ECC encoded data segment; and storing the non-systematic ECC encoded data segment to the memory.