The goal should not be getting a high-res JPEG! What you want is a vector graphic of your images which is arbitrarily scalable without losing quality. Converted to PDF, such a vector graphic can be printed by any printing service.
Let us try some basic image processing. We start with your original image from the post you referred to and apply the perspective transformation. Afterwards, crop the image a bit but leave enough white border around:
img = Import["https://i.stack.imgur.com/DOGOB.jpg"];
t = FindGeometricTransform[{{1924.19`, 880.846`}, {154.761`,
1200.69`}, {190.872`, 189.582`}, {1893.24`,
297.914`}}, {{1924.19`, 880.846`}, {175.395`,
1283.22`}, {175.395`, 571.325`}, {1893.24`, 297.914`}},
"Transformation" -> "Perspective"];
persp = ImageTake[
ImagePerspectiveTransformation[img, t[[2]], 1000, DataRange -> Full,
PlotRange -> All], {50, -250}, {100, -15}]

Fixing the lighting
The first thing I wondered while reading over the answers to your last question was why no one fixed the obvious thing in this image: the light. There is a global color gradient of lighting and a very bright spot in the upper left corner. Looking at a 3D plot of the brightness makes this more visible:
ListPlot3D[ImageData[
GaussianFilter[Last[ColorSeparate@ColorConvert[persp, "HSB"]], 5],
"Real", DataReversed -> False][[1 ;; -1 ;; 10, 1 ;; -1 ;; 10]]]

I don't want to take the bright spot into account which does not represent the global lighting very well, but with the other 3 corners, I have places in the image which should be of the same brightness.
What I do is, I take the upper right, lower left and lower right corner in the image and calculate the mean of the brightness in this area:
{ur, ll, lr} = Mean[Flatten@ImageData[ImageTake[Last[
ColorSeparate[ColorConvert[persp, "HSB"]]], #1, #2], "Real"]] & @@@
{{{1, 30}, {-1, -30}}, {{-1, -30}, {1, 30}}, {{-1, -30}, {-1, -30}}}
(* {0.647115, 0.442144, 0.415678} *)
With these 3 corners, we could calculate a plane in 3D space, representing the global behavior of the brightness:
{nx, ny} = ImageDimensions[persp];
sol = First@Block[{x0, x1, y0, y1},
{x0, y0} = {1, 1};
{x1, y1} = {nx, ny};
Solve[Thread[{{x1, y0, 1}, {x0, y1, 1}, {x1, y1, 1}}.{a, b,
c} == {ur, ll, lr}], {a, b, c}]
];
corrFunc = Compile[{{x, _Real, 0}, {y, _Real, 0}, {f, _Real, 0}}, f - #] &[
(a x + b y) /. sol];
Note that corrFunc
takes a pixel-value f
and subtracts the plane height at this point. The plane itself pretty much models the behavior of the lighting:

Let's separate our persp
image into the 3 channels (hue, saturation and brightness) of the HSB colorspace. We will apply the correction (of course) only on the brightness channel, since this is anyway the only thing that matters... if you don't believe me, take a look at the hChan
. With the corrected brightness, we create a perspCorr
image.
{hChan, sChan, bChan} = ColorSeparate[ColorConvert[persp, "HSB"]];
bChanCorr = Image[MapIndexed[corrFunc[#2[[2]], #2[[1]], #1] &,
ImageData[bChan, "Real"], {2}]];
perspCorr =
ColorConvert[ColorCombine[{hChan, sChan, bChanCorr}, "HSB"], "RGB"];

Extracting a mask
The next thing I thought of is whether is possible to kill the background completely. After various tests, it seems the blue channel of the corrected image works if you want to separate background from the colored parts. Finding a good threshold can be done in a Manipulate
:
Manipulate[
Binarize[GaussianFilter[Last[ColorSeparate[perspCorr]], 1], t], {t, 0, 1}]
where I found here that 0.534 is appropriate:
mask = ColorNegate[
Binarize[GaussianFilter[Last[ColorSeparate[perspCorr]], 1], 0.534`]]

We will use this later.
Color smoothing
Color smoothing can be done in various ways. There are many non-linear filters which would do the job, and without giving reasons I (the post is long enough anyway) choose the MeanShiftFilter
here:
mshift = MeanShiftFilter[perspCorr, 4, .03, MaxIterations -> 50];
ImageTake[mshift, {200, 300}, {300, 500}]
This does not help you with the pixelized edges, but it smooths the homogeneous surfaces.

Now, let's use the mask for removing the background completely:
preprocessed =
ImageAdd[ImageMultiply[mask, mshift], ColorNegate[mask]]

Vectorization
With this image, I would leave Mathematica and take a good vectorizer. InkScape does a good job, and will convert this pixel graphic into a scalable vector graphic for you. Without manual adjustment, this will not solve your edge-problem completely.
But since we're already at Mathematica.SE we can surely try to use some functions from this thread as suggested by rm.
bdata = Flatten[
MapIndexed[Flatten[{#2 + .9 RandomReal[{-1, 1}, 2], #1}] &,
Transpose@ImageData[
ImageAdd[ImageMultiply[mask, bChanCorr], ColorNegate[mask]],
"Real", DataReversed -> True], {2}], 1];
ListDensityPlot[bdata[[1 ;; -1 ;; 10]], InterpolationOrder -> 0,
ColorFunction -> "SouthwestColors", BoundaryStyle -> None,
Frame -> False, PlotRangePadding -> 0, AspectRatio -> Automatic]

Note that although the image looks pixelated here, it's not! First, I took only every 10th pixel to speed things up. Second, when you export the graphics as a 5000 pixel image, you get an image which looks from very near like a nice mosaic:

Export
function doesn't produce the highest possible quality image. And if you can work with PNG, at least you won't lose any quality... $\endgroup$