matrix encoding