Showing posts from March, 2021

TCL 40S325 review: input lag, deinterlacing and upscaling using the piLagTesterPRO

This 1080p TV sells for about $220 new as of 2021. It has very good input lag and response time, making it good for gaming. It has moderately good upscaling out of the box, but does significantly better when paired with an OSSC, making it a good choice for retro gaming.

Image quality

This TV doesn't have the best viewing angles, with loss of contrast once you get away from the sweet spot. I didn't notice and color inversions, however, so it's manageable. Just make sure it's mounted around eye height.

Good upscaling is critical for retro gaming. Ideally, all pixels should appear equally sharp and bright (no aliasing), and angled lines should appear smooth, with no jagged, irregular steps. Also important is that the display shows most or all of the pixels it is sent. Often, this is not the case, with some number of pixels cropped from the bottom or top edges. Shockingly, these tests are relevant for modern gaming as well, because even at their native resolution many TVs have aliasing and cropping.

I attempted to adjust the set to minimize cropping and aliasing. It has an option that eliminates all cropping, which also resulted in the least aliasing, which is what I used.

resolution aliasing cropping (side, top)
480p/i mild 0,0
720p near perfect 0,0
1080p perfect 0,0
960p very mild 0,0

480p over sharpening(100=factory default); colored text had hard edges without any blur in the source

Only 480i/p had real visual quality problems. While there wasn't any aliasing, there was a strong over-sharpening effect which (for some images), seemed to be combined with some kind of super-resolution algorithm a bit like a HQ2X; but with less "pleasing" results. Turning down sharpening to zero mostly fixed this, but resulted in a noticeably blurry output that makes good old CRTs look sharp in contrast (see photo above). There's no in-between option that just leaves hard edged pixels. While this is an issue, it is possible to address by using an external upscaler. In fact, the display only has 3 HDMI inputs. Zero analog inputs. So for retro gaming you'll need a converter anyway. Here, I used the OSSC, which is a premium option costing around $140; budget alternatives start at $15. The OSSC fixes the upscaling problem completely by converting 480i to 960p, which looks good on this set with none of the issues seen with straight 480i/p.

Input Lag and refresh rates

I used a piLagTesterPRO to measure input lag. This device sends a frame of video over HDMI and measures how long it takes to display it. This display has a game mode, and with it off input lag averaged 48ms at the top of the screen. Turning game mode on helped. I toggled all the other display quality settings as well, but did not see any further improvements, however to be safe the tests reported below with every "enhancement" set to off.

This TV supports 24hz at 1080p; and it really draws at 24hz with no dropped frames or temporal distortion, so it should be good for movies. Its maximum refresh rate for TV modes is 60hz; if you switch it to computer modes it can accept a 75hz signal at sub-native resolutions. This does not improve lag, however, as the TV continues to draw at 60hz, and just drops all the extra frames.

Input Lag Test Results

I report two kinds of values. 1st response measures how long it takes for the TV to start responding (I use a 5% change in display brightness). This overly optimistic value doesn't tell how long it takes to see anything useful, but matches what other reviewers call input lag. full response is a more realistic measure of lag, and requires the display to reach 80% of full brightness. This combines both input lag and response time, and is closer to what you would actually experience in a game.

Resolution1st (average)full response1st responsefull responsescan out

Deinterlacing 480i is very slow on this set, compared to all the other modes, adding around 32ms of lag over 480p. That is to say, whatever algorithm they use requires 4 frames. And the results aren't that great. Outside of 480i the performance is very good. 480p is only 9MS, and 720p and 1080p are even better, at around 6ms. The response time is equally good overall, at around 6ms. This median value obscures significant variability, however, and depends on how large a transition is required for the pixel. A full black->white transition takes at least 10ms, but that is a significant outlier; for instance going from 16 (dark gray) to 255 (white) just takes 3ms. This is potentially a recipe for ugly motion artifacts, but in practice I didn't see anything objectionable.

This TV supports 960p with the same amount of lag as 720p. This is particularly interesting to retro gamers since that mode is used by the OSSC upscaler to display 480i/p with zero added artifacts or lag. The OSSC can use this mode to display 480i with alternating scan lines and bob deinterlacing, which does a very good job of matching the visual experience of 480i on a CRT.  There's a strange artifact to the OSSC line4x mode on this TV which is actually quite pleasing. For moving images the scan lines are somewhat visible and combine with mild lacing artifacts roughly equivalent to how they would appear on a CRT. But once a static image is shown, the scan lines fade from view, and there's none of the bobbing artifact that BOB deinterlacing is named for. 

This is not to say that OSSC line 4x on this TV looks as good as an actual CRT. There's some loss of vertical resolution, and I find the image to be a bit drab and overly bright, and I haven't found any setting to fix this either on the TV or the OSSC.

Validating piLagTesterPRO results vs RTINGS

While I personally have great confidence in my testing methodology, it's always good to double check your results. In this TV's case the input lag has also been measured by the respected website RTINGS. While they didn't go into the depth I do, they do report values for 1080p in game and out, and also response time. So let's compare. In game mode, they report the input lag at the center of the screen as 12.1ms. I only measure at the top and bottom of the screen, but the average of those two values should give us the center's lag. That value is 14.1ms, 2ms longer than RTING's 12.1ms. On this particular set the input lag doesn't vary much between frames, so I suspect that 2ms difference is not noise, and reflects a true difference in methods. Already we are doing pretty good, differing by only 2ms. But it would be nice to determine the exact cause of the difference.

One possibility is that the piLagTesterPRO could be slow. I think I can rule that out: measuring a CRT I find that input lag at the upper corner is about 1ms - which roughly matches the rise time of the phosphor. At worst the piLagTester is slow by about 0.5ms.

Another option is that RTINGS uses a different threshold for detecting the onset of the screen change. I use a 5% change in signal, calculated automatically. But if you were to hand-analyze the signal coming off the brightness sensor, you can tell when the signal starts to deviate a little sooner than my 5% threshold. But from the perspective of the human eye looking at the screen, that tiny deviation is going to be invisible. Arguably, even my 5% change is going to be hard to see, so it doesn't make any sense IMHO to count anything smaller.

Or, maybe RTINGS's tool is fast by 1-2ms. I'm not going to get worked up about it either way. I think this level of agreement is quite good given the lack of overlap in testing hardware and people involved.

What about response time? That's also pretty tricky, actually even more so, because on this set the response time varies from 10ms to 3ms depending on how big the transition is. I squinted and chose 6ms as being most representative. That matches RTINGS's value amazingly well: they report the 80% response time being about 5.2ms (I'm not sure the 80% they are talking about is the same as mine).  I suspect that this level of agreement between reviews is at least part luck, but it's heartening nonetheless.

Finally, they report the input lag outside game mode as 40.1ms. Here, I have to criticize them (mildly). Outside of game mode the TV does not attempt to match the vsync signal of the input, and instead draws from an internal buffer. This results in a random variability of 0ms to 16ms each time you turn on the set or change inputs. Our results differ because they took a single value and called it good enough, whereas I took a few samples and report the average (48ms). Since it's outside game mode it's not at all important, honestly. But it does explain why our values differ as much as they do.

Conclusion: RTINGS does a good job. Their numbers are almost as trustworthy as mine. Or is that vice versa? ;-)

Results compared to other displays

To allow quick comparison I've summarized the results across all the displays I've personally tested with the piLagTester Pro. Min lag is the time to the first response, measured where the screen starts drawing (typically, the top); real lag is the time to the full response, measured where drawing finishes (usually the screen bottom), i.e. input lag + scan out + response time. Numbers in red denote average values that can vary by up to 8ms between power cycles.

This list is sorted by real lag for each display's native resolution and max refresh rate (usually 1080p60).

computed (ms)
DisplayYear made (TV?)Native Resnative min lagnative real lag480i real lag480p real lag720p real lag1080p real lagnative response timenative scan out
Dell E198FPb20081024p2.720.439.035.05.0012.70
Vizio VO370M20101080p2.523.683.
Dell U2410 (game)20101080p4.
TCL 40S32520211080p6.527.360.629.027.927.76.0014.83
AOC/Envision G19LWK2010900p3.131.239.538.738.437.815.5012.60
Dell E2211H20141080p3.033.634.734.534.133.815.0015.57
Panasonic TH-58PE75U2008720p28.
Dell 1907FPc20081024p3.034.035.934.815.0016.00
Corprit D157 (hdmi)20211080p3.134.534.934.834.633.916.2515.13
Samsung S27C23020141080p2.936.136.636.137.018.2514.97
Vizio E470VL (vga)20111080p22.
Dell U2410 (sRGB)20101080p20.542.862.445.
ACER AT326520121080p19.543.862.745.343.843.88.0016.27
RCA L40FHD4120101080p20.346.665.
Sony 40VL130 (game)20081080p22.847.366.349.047.347.39.0815.43
Polaroid FLM-373B2007720p28.
Philips 42PFL3603D/F720091080p29.
Emprex HD 32022007720p27.050.5126.
LG 42LC2D2006720p28.350.654.650.850.46.3015.95
GPX TDE3245W2016720p28.051.0102.
Sony KDL-46EX40020101080p28.
Toshiba 40L2200U20141080p30.
Vizio VO22L FHDTV10A2008720p28.
Vizio VX20L HDTV2007720p28.
Sharp LC-C3234U2009720p33.064.683.666.664.615.0016.60
Toshiba 46L5200U20131080p55.
Sony 40S20L12007720p48.472.090.172.973.49.6014.00
Samsung LN46C63020121080p54.572.190.790.388.572.310.007.63
Samsung HP-T425420111080p69.775.794.
LG 47LW6500-UA20121080p66.680.7149.7149.081.780.92.2711.83
Vizio E470VL (hdmi)20111080p69.086.0128.

This set is incredibly competitive at its native resolution. I've only tested ONE TV that had lower real lag. There are quite a few computer monitors that are better or in the same league, but of course those are all smaller, and require adapters if you want to play retro games (but then, so does this TV). For 1080p gaming this is an excellent choice. For 480i gaming, there are significant caveats, because of the bad visual quality of the upscaling, and the very slow deinterlacing. 480i is faster than the average on this set, but not in any way a standout. But when paired with an OSSC it becomes excellent, with only 10ms of extra real lag compared to a genuine CRT. Of course, you could pair an OSSC with a computer monitor and get the same (or better) result.


This is an excellent gaming TV. It's cheap, and when paired with the OSSC it's a great retro gamer option. Of course, you could keep a CRT around for absolute perfection in the retro realm, and personally that's my current choice, but if I had to toss my CRT (or replace it when it fails) this would be my current top choice.

If you pick up a used version, be sure to get a remote. It is completely unusable without one. Any roku remote seems to work.

Other models

I tested the 40s325. which is the 40" version. There appears to be at least three versions: based similarities in their names, I suspect that the 43s325 and 49s325 would perform the same just with bigger pixels. However, I've made no efforts to check if their specs exactly match the 40s325so that's only a quick guess. RTINGS guesses that additionally the 32S321, 32S327, and 32S325 ought to perform the same, but since they don't have a (retro) gamer focus that has to be taken with a bit of salt. Also, the 40S425 has the same bug in delayed switching to game mode that this TV does, so there's some chance it would perform the same (it's a 4k TV however, so that's a bit of a leap). RTINGS's somewhat less extensive measurements of input lag show the 'S425 being the same as the 'S325, which is at the least suggestive. That would mean models 43S425, 49S425, 50S425, 55S425, 65S425, and 75S425, probably perform the same as this set. Furthermore, 43S423, 50S423, 55S423, 65S423, and 75S423, just differ in color from those sets, and 43S421, 55S421, and 65S421 are Wal-Mart specific models.

Email me


Email *

Message *