jPSXdec is a cross-platform PlayStation 1 media decoder/converter.
Get the latest version here.

Monday, September 6, 2010

PlayStation Video Decoders:
The Final Showdown

Updated from the previous comparison with the lastest versions, and three new decoders!

Most importantly, I finally captured what it ACTUALLY looks like on PlayStation hardware (in the dead center).

Those on top get it (more) correct, those on the bottom get it (more) wrong (and ffmpeg and Q-gears are just weird).

Naturally jPSXdec dominates in quality and accuracy. :)

The lineup:See the download for all the jucy (and technical) details.


  1. Well glad you rule them all but could you document a bit more typical errors like "Streams are not mutually exclusive" which I get when trying to extract/convert Resident Evil 1 Intro, it used to work with v0.35 but it doesn't in the latest beta (and I guess it's worth using the latest and greatest quality wise ?)

  2. @Mezmorizingmage Thanks! And thanks again for helping me get the hardware working :D

    @Mitch Good catch with the error. Unfortunately that's a bug on my part. jPSXdec doesn't handle movies with several audio clips very well. This usually happens when there were errors ripping the disc image. You might try ripping the game again using another computer, program, or cd drive. If that doesn't help, a work around would be to save the video separately (-noaud), then save each audio item separately, then combine them together with other programs (e.g. Audacity and VirtualDub). Future versions of jPSXdec will have better handling for these cases.

  3. Correct, the video had indeed 2 audio streams attached to it, so I did exactly as you've just said : I first extracted the video only with the -noaud switch THEN I grabbed the audio separately and that did the trick.

    I was actually pissed at you the other day seeing the program didn't work expectedly but now that I managed to get the work done I gotta admit the ouput video is astonishingly good looking for a 320x240 mdec video.

    Now I only need to find the best way to deblock it. I did try Unblock_jpg.exe but maybe it's just me but the result weren't that impressive to my eyes (actually does it fix anything ?). So for now I'm *trying* to use the avisynth Deblock() function with the help of a strong denoisers like FFT3DFilter or MDegrain2.

    Anyway I'll probably post the youtube link of the filtered video here for discussion.

    Thanks for the awesome tool (even if usability could be worked on :D)

  4. @Mitch Glad things worked out :) Wish I could develop jPSXdec faster--there are so many things I'd like to improve and add.

    I'd be interested in the process you eventually decide upon for cleaning up the videos. I tried a process as well, and it turned out pretty good. Unfortunately it uses a feature of jPSXdec that won't be available until the next release (when a GUI is finally added again).

  5. Ah that's interesting I already processed and uploaded it but your RGB conversion seems interesting. I'm not a programmer so I have no clue about all the technical subtleties, I mostly write avs scripts with my eyes rather than my brain hehe

    Here's the Resident Evil 1 intro (Youtube) :

    It's far from perfect since I actually improved a little bit the quality afterwards... but I got sick of it (it didn't age too well either) and it should be good enough for youtube since that version blurs it quite a lot.

    Btw I also tried BlindPP() but thought it was too destructive. I gave up with the Deblock() functions since it didn't improve image quality whatsoever -actually I couldn't find the right settings- so this is only a lazy FFT3DFilter heavy denoising (probably lost details but oh well...)

    I'll probably try some other new psx fmv now that I'm aware of the RGB32 thing. Good stuff

  6. Ok I also tried restoring FFVIII intro, there's a post about it at qhimm, I don't have the url of the video here since I'm at work but it turned out quite nicely even though it's still a bit too blurry since I'm using a plain denoiser to remove the jpeg blocks instead of an appropriate jpeg deblocker hence the loss of details.

    I know this is bad but like I said I wasn't really convinced by the results of a jpeg deblocking dedicated tool like unblock_jpeg.exe on a single test jpeg frame, maybe I did something wrong I don't know... What do you think about 'unblock' ? Did you get anything interesting out ot it ? I know I didn't even though I'd love to as it's supposed to be the best jpeg deblocker.

    Some people talked about how good Genuine Fractal is but first I don't have the money for this and secondly I'm not sure it's as good as they say, at least on anything else than a still picture.

  7. TBH I haven't experimented with Unblock_jpeg yet. While I'm assuming it's probably a good filter, and it sounds like Genuine Fractal is really good, they unfortunately only focus on spatial information and miss out on the temporal aspect of video. The best filter would also use adjacent video frames to help fill in missing detail. Maybe there's a temporal filter out there that could be used in addition to either of those spatial filters.

    The majority of my research focus so far has been in everything leading up to the filter, so I don't really have anything more to offer than a general direction to look (and what I linked before), sorry.

  8. Try using the ffmpeg command-line

    "ffmpeg -sws_flags +accurate_rnd+bitexact -idct simple -i G_INFO-test-frames-only+cdxa.STR out%d.png"

    And, in case you are wondering, it is indeed a FFmpeg bug, I'll try to get it fixed shortly.

  9. This comment has been removed by a blog administrator.