In Commodore 64 Low Resolution mode, each block of 4 x 8 2:1 aspect ratio pixels can contain four colours from a choice of 16. Only, it's a bit more complicated than that! Fortunately, this article explains how it is supposed to behave very nicely. Paulo's algorithm has to go through eight separate stages to create the finished image.
The main novelty for me in this filter was that in order to avoid having to use a three dimensional list (which would have entailed syntax to boggle the mind) I used a Python new-style class. That meant I could use a one dimensional list and let the class take care of getting and setting the right bit of it when required through method calls.
Here's an example image before:
And after conversion in The GIMP using the filter:
Commodore 64 Low Res Filter
As usual this plug-in, along with ones for the ZX Spectrum, Apple II and MSX1 can be downloaded from here.