Você pode querer olhar para o Compact YCoCg Framebuffer . Ele usa um buffer de 2 canais para armazenar a luminância de cada pixel e os dois componentes de croma na metade dos pixels, formando um tabuleiro de xadrez. Ele também usa um filtro de upsampling com reconhecimento de borda no final do quadro para reconstruir os componentes de croma ausentes e converter novamente em RGB.
Você pode estender isso para um único buffer de 3 canais para armazenar a luminância difusa, luminância especular e croma quadriculado (supondo com base no diagrama da sua pergunta que basta armazenar apenas um par de valores de croma).
Você também pode considerar o uso do formato R10G10B10A2, a menos que realmente precise do intervalo do formato de ponto flutuante. É a mesma quantidade de largura de banda, mas oferece muito mais precisão (o R11G11B10F fornece apenas de 5 a 6 bits de manutenção por componente). Além disso, você pode usar os 2 bits de alfa para armazenar algumas bandeiras, como sua bandeira difusa / especular.