PDA

View Full Version : New - Open Picture Subtitles Format (OPS)


Kurtnoise
26th October 2004, 11:02
OPS is a lossless picture subtitle format that can use palette and RLE. It supports a number of color spaces with various bit depths. Each frame is coded independently of the others and includes all information needed for decoding it. There can be in-frame metadata and global metadata in a special frame. Picture dimensions, file size, number of colors, time stamps are +/- unrestricted (integer sizes in codecs and color spaces restrict). Even though the coding is simple, the efficiency is comparable to GIF and PNG.

Specs & more : http://ops.corecodec.org/



@unmei : could we have a build of the encoder/decoder ? Just for testing for sure...;)

ukendt
26th October 2004, 19:59
Did the guy annonce some where else?:confused:

Kurtnoise
27th October 2004, 07:25
No...I don't think so.

Liisachan
29th October 2004, 11:20
Interesting...

IDX+SUB is 'safer' than SSA, partly because the subs always show up correctly (Arabic Hebrew Chinese or whatever), and the rendering system doesnt need to have font files. It might be ideal if every sub renderers have all the Unicode glyphs in it, or if every sub renderers support font embedding, but that is probably unrealistic.

Picture subs enable you to 'embed' any cool fonts. (They are not embedded but just pics, tho) That is a forte of SSA->Son2Vobsub->IDX/SUB. But like your doc says, "4 colors are not very inspiring." So, I guess OPS might be very useful, especially in hw support.

unmei
29th October 2004, 21:57
oops, i completly missed this thread *blushes*

here is a test encoder/decoder (ops.corecodec.org/OPScodec1-2004-10-26.rar)
but it is really just to give you something to see. I did not announce it myself because i thought i first wanted to have a codec that supports all the features. This one does not.

You can encode in 32bit RGBA with or without palette and RLE. The other color spaces may or may not bork, more than 8bit/component is not implemented. Also there is a bug that will sometimes cause wrong runlengths when they are rather large or using less than 8bit/component, unfortunately i don't know yet wether it is in the en- or decoder.
You can encode a picture sequence by selecting all pictures in a directory with the "add picture", or add pictures individually. Also the timecodes passed are currently dummies (0xCAFE). The metadata stuff should work.
When you input pictures with a large number of colors, encoding will become extremely slow. You can chose to reduce the number of colors (top of the GUI), but this also is also extremely slow with larger numbers of colors. a decent sized 2000 color picture takes around 2 sec while a 90000 color picture took around 10 minutes!
The input can be windows bitmaps and PNG, but png sometimes mess up the colors. "save picture" outputs bitmaps.

I'm currently working on an analogue for vobsubs, so i can make a Vobsub<->OPS transcoder which then will also use the timecodes.

PS: i know the GUI is ugly and borked, it is not a real app, but only an interface to test the underlying codec object

[edit 2]
Here are two sample encodes so you can just watch w/o the encode
a complete subtitle stream, 500+ frames, still in the nice 3 original colors (1MB) (http://homepage.hispeed.ch/mieru/ops/VHD_with_meta.ops)
a video still with originally 89000 colors reduced to 256 colors (152KB) (http://homepage.hispeed.ch/mieru/ops/mezzo_256color_withMeta.ops)
Use the "frame" menu point to pop a frame list. The first col is a index number, 2nd is offset, 3rd size (bytes), 4th start time (ms) (51966=0xCAFE), 5th stop time (103932=2x0xCAFE). Select one and press view or save.
To see the stored meta info, use the "meta" menu point. In the popup select a key in the left list to see the value. They are edited with a mouse menu.