Just had an idea about using convolution:
Language: Avisynth
f = "castlevaniasotn-tas-maria-arandomgametaser.mkv"
DSS2(f, pixel_type="RGB32")
v0 = Method_0.Subtitle("original" , text_color=$FFFFFF)
v1 = Method_1.Subtitle("add left neighbor at 50% intensity", text_color=$FFFFFF)
v2 = Method_2.Subtitle("convolution" , text_color=$FFFFFF)
v3 = Method_3.Subtitle("bilinear resize" , text_color=$FFFFFF)
Interleave(v0, v1, v2, v3)
function Method_0(clip c) {
c
PointResize(Width * 3, Height * 3)
}
function Method_1(clip c) {
c.Layer(c, level=128, x=1)
PointResize(Width * 3, Height * 3)
}
function Method_2(clip c) {
c
GeneralConvolution(0, "
0 1 0
1 0 1
0 1 0")
c.Layer(last, level=128)
PointResize(Width * 3, Height * 3)
}
function Method_3(clip c) {
c
BilinearResize(Width * 3, Height * 3)
}
(Note that all methods except #3 don't modify the size of the picture.)
Result:
http://imgur.com/a/IpX59
It removes the mesh, but keeps the text more readable by strengthening vertical structures. It also works vertically (so there's also a bit of vertical blurring). I don't like how it makes the text a bit darker even when it shouldn't be, but that's for another day.
EDIT: Unfortunately it's not suited for dithering that consists of columns only, which can be seen in the very first post in the bottom left corner.