Author Topic: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread  (Read 943165 times)

Offline Untribium

  • Member
  • Posts: 32
  • Switzerland
  • Liked: 32
  • Likes Given: 78
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1280 on: 06/02/2014 02:17 PM »
1 - Do you think we need better tutorials for using the editor? What would you consider better?
2 - Do you think the online editor should be more intuitive to use? What is not intuitive right now?
3 - Do you need more feedback flipping single bits or changing bitpositions? Do you need to see the actual bits? What kind of feedback apart from the resulting frame?
4 - Do you need to have a better explanation about MPEG4? Do you want to see a concrete example based on the actual video data?
5 - Do you want simpler and more concrete tasks to do? It's now divided into roughly 300 parts. Should we divide it

1 - Maybe...As some people have mentioned before, it's pretty straightforward to use, but I think we need to make it clearer to people that even after we figured out how to fix the frames, there's a ton of trial and error. When I first decided to join the effort, I just took a frame and started working on it. After some time I got some semi-good-looking results and headed back here to post them. However, in the meantime, someone had fixed something like 3 entire frames which had me wondering...Must be black magic, right? :D But it turns out, it's really mostly just about practice. You start to understand what works and what doesn't. At some point you may realize, that to fix a chroma error, you better start from the address of the next block and go backwards, because the chroma is at the end of the block...lots of stuff like this. So I guess we could use some sort of a "tips and tricks" section, maybe even FAQ-style:
Q: "Chroma is off, how do I fix it?"
A: Try this, and that and this...
Just an idea, don't know how well that would actually work :)

3 - Yes, absolutely! Actually seeing the bits could be enormously helpful.
However: When I started trying to correct chroma errors by flipping bits, I got confused by how often flips would change the length of the block, because I was expecting some kind of prefix based encoding i.e. 2 size bits encoding n and then n payload bits. Turns out, they're using variable length coding, which makes a ton of sense, but it also makes it more difficult to actually interpret the bits you're seeing (because they essentially don't have a meaning anymore). So what we need in order to be able to find the flipped bit, is the encoding table (I'm guessing it's some kind of tree...huffman comes to mind :) ). I'm guessing there's one table per frame (maybe only iframe?...), so it would be easy do decode them all once (they shouldn't change, right?) and post them on the wiki, maybe even make them available on the online editor. Again, just an idea :)

I'd note that you guys need to think about the next milestone point, then we should think about another updated video and we'll get that out there like the previous.

We're not going to have Elon tweeting every time, but when we get to the point we've done all we can, we can show the milestones.

When we do get to that "we've done all we can" point, then we should consider an article on site. Heck, we have Elon quotes now! :) I'll need a LOT of help with to translate the technical to something readable by Joe Public, quote some of the team here and use the Elon quotes, etc.

Also, it was suggested to me we could also have a highly technical overview as a press release style write up. I'm cool with all of that, obviously.

PS Per the next milestone video. What we absolutely should do is "where we are" before the ORBCOMM launch, as that launch is probably going to have a good video beamed back. Regardless, this is the historic first, so there's no value lost on this effort if ORBCOMM sends a good video back.

I agree, we need some kind of game plan :) It might be really helpful to declare certain parts as "done", so that people can start fine tuning them (e.g. wronkiew's timestamp fix (looks great btw!)), while the others can focus on the parts that still need a lot of work.
As for the article, we'll definitely need to do a lot of "translating". Maybe a new thread, where people can work on some of the parts could help.

One thing to consider as well is the future of "The Tool". If you're looking for a program to fix your broken video file, a forum that discusses space topics is probably not the place you'd be looking first ;) So I think it would definitely make sense to clean up the code, maybe add some more functionality (I'm thinking about the various scripts posted) and then add the changes to the official FFmpeg release (or a fork) in order to create a really powerful mpeg fixing tool. But that's still pretty far away I guess :)

Offline JohnKiel

  • Member
  • Posts: 15
  • United States
  • Liked: 10
  • Likes Given: 0
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1281 on: 06/02/2014 03:55 PM »
I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=iiQxTySY

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=iiQxTySY');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

EDIT:  Changed script to trim MMB results from spreadsheet.  Script now has new URL on pastebin.
« Last Edit: 06/02/2014 05:27 PM by JohnKiel »

Offline mvpel

  • Full Member
  • ****
  • Posts: 1124
  • New Hampshire
  • Liked: 1295
  • Likes Given: 1686
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1282 on: 06/02/2014 03:59 PM »
PS Per the next milestone video. What we absolutely should do is "where we are" before the ORBCOMM launch, as that launch is probably going to have a good video beamed back. Regardless, this is the historic first, so there's no value lost on this effort if ORBCOMM sends a good video back.

Speaking of which, someone should make sure to remind SpaceX to keep the pizza pan antenna somewhere safe, since they're going to want to display that at the Smithsonian too, decades hence. :D
"Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code." - Eric S. Raymond

Stunning!



Amazing!

I'd note that you guys need to think about the next milestone point, then we should think about another updated video and we'll get that out there like the previous.

We're not going to have Elon tweeting every time, but when we get to the point we've done all we can, we can show the milestones.

When we do get to that "we've done all we can" point, then we should consider an article on site. Heck, we have Elon quotes now! :) I'll need a LOT of help with to translate the technical to something readable by Joe Public, quote some of the team here and use the Elon quotes, etc.

Also, it was suggested to me we could also have a highly technical overview as a press release style write up. I'm cool with all of that, obviously.

Something to keep in mind.

PS Per the next milestone video. What we absolutely should do is "where we are" before the ORBCOMM launch, as that launch is probably going to have a good video beamed back. Regardless, this is the historic first, so there's no value lost on this effort if ORBCOMM sends a good video back.

Latest updates applied to the wiki are automatically added to youtube here https://www.youtube.com/user/spacexlandingrestore

I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=nCG9ZpPp

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=nCG9ZpPp');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

Looks good :)

I'm hoping that a pull request with all this stuff magically appears some point soon ;) If not I'll have a look at integrating this into the editor. I think myroslav might be working on something like this.

Offline JohnKiel

  • Member
  • Posts: 15
  • United States
  • Liked: 10
  • Likes Given: 0
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1285 on: 06/02/2014 05:34 PM »
I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=nCG9ZpPp

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=nCG9ZpPp');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

Looks good :)

I'm hoping that a pull request with all this stuff magically appears some point soon ;) If not I'll have a look at integrating this into the editor. I think myroslav might be working on something like this.

FYI:  I just updated the script on a new URL:
http://pastebin.com/raw.php?i=iiQxTySY

I'll try to do a pull request at some point, but I was hoping for some feedback from others to see if this script is  workable solution first.

Wasn't sure if myroslav was simply stating an idea that others should implement, or it it was a feature he was planning on implementing -- hopefully I'm not reinventing the wheel here.

I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=nCG9ZpPp

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=nCG9ZpPp');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

Looks good :)

I'm hoping that a pull request with all this stuff magically appears some point soon ;) If not I'll have a look at integrating this into the editor. I think myroslav might be working on something like this.

FYI:  I just updated the script on a new URL:
http://pastebin.com/raw.php?i=iiQxTySY

I'll try to do a pull request at some point, but I was hoping for some feedback from others to see if this script is  workable solution first.

Wasn't sure if myroslav was simply stating an idea that others should implement, or it it was a feature he was planning on implementing -- hopefully I'm not reinventing the wheel here.

Yeah I'm not sure either, it should be fairly simple to integrate the concept directly into the editor rather than using a hack to get the data in. If you want to try it and submit a PR then go for it.

I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=nCG9ZpPp

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=nCG9ZpPp');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

Looks good :)

I'm hoping that a pull request with all this stuff magically appears some point soon ;) If not I'll have a look at integrating this into the editor. I think myroslav might be working on something like this.

FYI:  I just updated the script on a new URL:
http://pastebin.com/raw.php?i=iiQxTySY

I'll try to do a pull request at some point, but I was hoping for some feedback from others to see if this script is  workable solution first.

Wasn't sure if myroslav was simply stating an idea that others should implement, or it it was a feature he was planning on implementing -- hopefully I'm not reinventing the wheel here.

Yeah I'm not sure either, it should be fairly simple to integrate the concept directly into the editor rather than using a hack to get the data in. If you want to try it and submit a PR then go for it.

I just spoke to myroslav and he is still intending on working on it, if you want to contribute I'd recommend coming to the IRC channel to talk directly.

Offline lgjy98d

  • Member
  • Posts: 10
  • Liked: 6
  • Likes Given: 0
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1288 on: 06/02/2014 06:14 PM »
I consider pull-request-for-best-mmbs approach to be too complex for majority or video recovery effort participants. Wiki was simple but not simple enough. I've gone 1 step further, introduced Google Spreadsheets. You can compare the original and spreadsheet version of the page about 4th part:
 * http://spacexlanding.wikispaces.com/Frames+Part+4
 * http://spacexlanding.wikispaces.com/Frames+Part+4+Spreadsheet

To unify best MMB storage and facilitate structural data retrieval I'd setup 15 Google Spreadsheets (one per part) and for convenience linked them in Spreadsheet column to Progress table of http://spacexlanding.wikispaces.com/raw_final_fixedMMB.

There is an idea to make Online Editor to pull "Best MMBs" data direcly from Spreadsheet tables, and idea is laid out in more details at: https://github.com/IainCole/SpaceXVideoApp2/pull/1.

Seeing the spreadsheets go up this morning, I decided to take a hack at pulling data into online editor:
http://pastebin.com/raw.php?i=nCG9ZpPp

You can test the script in Chrome if you open a script console in your browser when on http://spacex2.slapbet.org/ and enter:
$.getScript('http://pastebin.com/raw.php?i=nCG9ZpPp');

Once it loads, it should create two buttons at the top of the page that will either load an individual MMB, or all MMBs for the specified frame/part.

Currently, it depends on the index of the row on the sheet, not the frame number in the "Frame Number" column.  Not sure if this will cause issues later.

Looks good :)

I'm hoping that a pull request with all this stuff magically appears some point soon ;) If not I'll have a look at integrating this into the editor. I think myroslav might be working on something like this.

FYI:  I just updated the script on a new URL:
http://pastebin.com/raw.php?i=iiQxTySY

I'll try to do a pull request at some point, but I was hoping for some feedback from others to see if this script is  workable solution first.

Wasn't sure if myroslav was simply stating an idea that others should implement, or it it was a feature he was planning on implementing -- hopefully I'm not reinventing the wheel here.

I've just had limited time in a day to do the pull request, thus I've laid out ideas and did foundation of the data storage only, but having your code the effort becomes a "translation" of jquery into angular :) and I expect to do this later today.

Other "missing" parts of the puzzle that are still in my todo list  are:
* automatic generation of tables that has always up to date images, and
* always up-to date gif animations.

Offline SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 90
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1289 on: 06/02/2014 06:33 PM »
Just recovered i-frame 141 (using offsets from previous version). The image still needs a color tuning (Quialiss! Help! ;) you're the best at this)

Offline princess

  • Member
  • Posts: 65
  • Liked: 106
  • Likes Given: 25
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1290 on: 06/02/2014 07:09 PM »
For Quialiss and the other people tweaking MMB values, here are the changes needed to map the old bit positions to new ones:

I-frame 1: None needed
I-frame 21: None needed
I-frame 41: None needed
I-frame 61: 92728-95672 have been deleted
I-frame 81: None needed

I-frame 101:
  4224-14255: add 272 bits
  14256-26031: add 1744 bits
  26032-53919: add 1824 bits
  53920-151936: add 2480 bits

I-frame 121:
  26304-46711: add 200 bits
  46712-62479: add 624 bits
  62480-173007: add 1968 bits
  173008-253192: add 2920 bits

I-frame 141:
  26304-33463: add 200 bits
  33464-34936: Deleted
  34936-46711: Remove 1271 bits
  46712-62479: Remove 848 bits
  62480-150928: Add 496 bits
 
I-frame 161: None needed
I-frame 181: 108736-163616: Add 1280 bits
I-frame 201: None needed

I-frame 221:
  16000-78287: Add 1008 bits
  78288-95015: Add 1248 bits
  95016-96488: Deleted

I-frame 241: None needed
I-frame 261: None needed

I-frame 281:
  33664-148992: Add 4416 bits
 
I hope this is all correct, it seems to match up with the existing ones that Quialiss found. Hopefully we can have some sexy new I-frames soon!

Offline Swatch

  • Full Member
  • **
  • Posts: 273
  • Official Aerospace Engineer as of June 13th, 2009
  • Cincinnati
    • ProjectApollo/NASSP: Virtual Systems and Flight Simulation of the Apollo Program
  • Liked: 28
  • Likes Given: 16
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1291 on: 06/02/2014 07:46 PM »
...

Speaking of which, someone should make sure to remind SpaceX to keep the pizza pan antenna somewhere safe, since they're going to want to display that at the Smithsonian too, decades hence. :D

Fear not, it is well-preserved.
Ex-Rocket Scientist in Training, now Rocket Scientist!
M-F trying to make the world of the future a smaller place through expanding horizons...

Offline Eer

  • Full Member
  • **
  • Posts: 283
  • Liked: 144
  • Likes Given: 138
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1292 on: 06/02/2014 08:17 PM »
Actually, it should go into a SpaceX HQ hallway display that consists of the pizza antenna, a video display of the reconstructed video, and a poster copy of the NasaSpaceflight article Chris will publish describing Elon's shout out asking for help, and the forum response, process, success and lessons learned. And yes, this seems to be a notable case of crowd sourcing problem solving, collaborative effort with a very organic leadership that has worked very well.

Offline Untribium

  • Member
  • Posts: 32
  • Switzerland
  • Liked: 32
  • Likes Given: 78
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1293 on: 06/02/2014 08:27 PM »
Just recovered i-frame 141 (using offsets from previous version). The image still needs a color tuning (Quialiss! Help! ;) you're the best at this)

Remove 14:21:96672 and add 1:21:94587. Adds some more blocks (around the rocket's Great Black Spot) and fixes some color stuff too. I also have some bitflips color correction:
X:7179:80,X:69235:80
And then there are a ton of flips that seem to work, but I'm suspecting that it's mainly because they make some blocks change their inheritance behavior, so it's not an actual fix.
X:20883:80 seems okay, X:14053:80 is interesting, it fixes the grayish block at 43:3 (by making it 2 bits longer), but messes with some of the stuff at the bottom right...
I'll probably work on it some more, so I won't update the wiki just yet. I'll attach my current version.
« Last Edit: 06/02/2014 08:29 PM by Untribium »

Offline Quialiss

  • Member
  • Posts: 75
  • Liked: 82
  • Likes Given: 29
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1294 on: 06/02/2014 09:25 PM »
For Quialiss and the other people tweaking MMB values, here are the changes needed to map the old bit positions to new ones:

Brilliant, princess!  Oddly enough there was another offset at the end of frame 121, but fortunately the timestamp provides a good reference point so I was able to find the correct value.  The iframe set is now complete again-- Well, except for 1 and 2, but I don't think we're ever going to recover those.



Someone mentioned progress reports... Since the mighty SwissCheese declares me an expert on doing the final pass on the i frames to clean them up, this is the current status of the i frames in relation to what I can do with them if I'm the only one finishing them up.  Definitely wouldn't mind not being the only one finishing them up.  Untribium, have at it! 

1 -
2 -
3 practically perfect (the least satisfying frame ever to say that for)
4 minor issues that should be easy to fix
5 already worked on, still has quite a few issues because this frame is a nightmare.  I might be able to improve it a little further.
6 already worked on, minor issues remaining
7 major issues
8 major issues

9 already worked on, minor issues remaining
10 practically perfect, I could fix up the very bottom a bit.
11 minor issues, and I've tried to work out a few of them with no measurable success, it'll be hard to improve on this one.
12 major issues
13 minor issues remaining, I left this frame halfway cleaned (whoops)
14 major issues
15 major issues


I should be able to fix up at least 7 and 8 tomorrow, which, once all the p frames are polished, will give us the full leg deploy to just before splashdown in amazingly good quality considering what we started with.

12, 13 and 15 all have massive gaps in them where we have no (good) data, which should mean they'll take less time for me to clean up.  And speaking of those frames, is it possible to tell the decoder to completely ignore the blanked out portions of the frame, and show the previous I frame + cumulative effects of the p frames where there isn't data?  Just a thought to improve the final video

Offline arnezami

  • Full Member
  • **
  • Posts: 282
  • Liked: 262
  • Likes Given: 345
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1295 on: 06/02/2014 09:32 PM »
For Quialiss and the other people tweaking MMB values, here are the changes needed to map the old bit positions to new ones:

Brilliant, princess!  Oddly enough there was another offset at the end of frame 121, but fortunately the timestamp provides a good reference point so I was able to find the correct value.  The iframe set is now complete again-- Well, except for 1 and 2, but I don't think we're ever going to recover those.



Someone mentioned progress reports... Since the mighty SwissCheese declares me an expert on doing the final pass on the i frames to clean them up, this is the current status of the i frames in relation to what I can do with them if I'm the only one finishing them up.  Definitely wouldn't mind not being the only one finishing them up.  Untribium, have at it! 

1 -
2 -
3 practically perfect (the least satisfying frame ever to say that for)
4 minor issues that should be easy to fix
5 already worked on, still has quite a few issues because this frame is a nightmare.  I might be able to improve it a little further.
6 already worked on, minor issues remaining
7 major issues
8 major issues

9 already worked on, minor issues remaining
10 practically perfect, I could fix up the very bottom a bit.
11 minor issues, and I've tried to work out a few of them with no measurable success, it'll be hard to improve on this one.
12 major issues
13 minor issues remaining, I left this frame halfway cleaned (whoops)
14 major issues
15 major issues


I should be able to fix up at least 7 and 8 tomorrow, which, once all the p frames are polished, will give us the full leg deploy to just before splashdown in amazingly good quality considering what we started with.

12, 13 and 15 all have massive gaps in them where we have no (good) data, which should mean they'll take less time for me to clean up.  And speaking of those frames, is it possible to tell the decoder to completely ignore the blanked out portions of the frame, and show the previous I frame + cumulative effects of the p frames where there isn't data?  Just a thought to improve the final video

I can try to focus on iframe 14 and 15. Hopefully I will have some time tomorrow.

Offline saliva_sweet

  • Full Member
  • ****
  • Posts: 552
  • Liked: 422
  • Likes Given: 1325
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1296 on: 06/02/2014 09:46 PM »
12, 13 and 15 all have massive gaps in them where we have no (good) data, which should mean they'll take less time for me to clean up.  And speaking of those frames, is it possible to tell the decoder to completely ignore the blanked out portions of the frame, and show the previous I frame + cumulative effects of the p frames where there isn't data?  Just a thought to improve the final video

I have been contemplating this for the past few days. And I'm going to throw this idea out here for feedback. It should be possible to convert I frames to P frames while keeping all data in them. By my reconing what's needed is to add the not_coded bit to every macroblock and convert all mcbpcs from iframe version to pframe version. The rest of macroblock data should convert directly. This would allow using -3 mmb command in iframes. I could probably only do it in the ts file (but it could conceivably be done in ffmpeg, but that's beyond my skill). There are many obvious problems. The iframe would not be tweakable (except dc values) after this and it would throw off existing dc edits. So it would have to be the penultimate pass before final chroma/luma corrections. Just food for thought for you guys.
« Last Edit: 06/02/2014 11:14 PM by saliva_sweet »

Offline princess

  • Member
  • Posts: 65
  • Liked: 106
  • Likes Given: 25
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1297 on: 06/02/2014 10:33 PM »
Does anyone know of a simple tool that can show what fields and values are present in an MPEG4 stream? It would be great to be able to see the fields in the macroblocks, see what their current values are - that way, we could see what effect various bitflips have, and also what patterns are present in the stream.

We had a lot of success in cleaning the TS level because there were several common patterns to the data. The idea is that the transmitting device in the rocket is going to be optimised for weight and power consumption, so therefore it's likely to be some simple ARM SoC paired with some form of DSP video processor. It has tight timing constraints and can't use lots of electric power, so it's likely to just encode in a simple way.

Because of this, there were lots of patterns and similarities to the data - we could look at good areas to find the patterns, and then apply these patterns to the corrupt areas. After many rounds of this, the structure of the TS file begins to emerge, and you can fix a lot of extra stuff.

So my idea is to see what we can do with the same technique at the MPEG4 level. Reading through the MPEG specification is very challenging because of the myriad of options available to an MPEG4 encoder - however, my bet is that the encoder on the rocket won't have been doing anything bizarre, it would just use a simple subset of MPEG4 that can be blasted through a DSP by an ARM core.

So my questions really are:

1. Is there a freely-available MPEG4 stream examination tool?
2. What simple subset of MPEG4 did the rocket's encoder use?

Offline saliva_sweet

  • Full Member
  • ****
  • Posts: 552
  • Liked: 422
  • Likes Given: 1325
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1298 on: 06/02/2014 11:04 PM »
1. Is there a freely-available MPEG4 stream examination tool?
2. What simple subset of MPEG4 did the rocket's encoder use?

1. I don't think such a tool exists at this time. Arnezami has been workong on this, but the current version is a far cry from simple at this point in time I believe.

2. No B frames are used only I and P frames. On the macroblock level it seems to me that in I frames only type 3 macroblocks are used and in P frames (I think, but have not checked) only not coded, type 0 and type 3 macroblocks are used (maybe type 2 also) i.e. no macroblocks with dquant. I believe these are optimizations for live encoding. The constraints these limits impose on the bitstream are small and not much use for making sense of the data.

Offline arnezami

  • Full Member
  • **
  • Posts: 282
  • Liked: 262
  • Likes Given: 345
Re: SpaceX Falcon 9 v1.1 CRS-3 Splashdown Video Repair Task Thread
« Reply #1299 on: 06/02/2014 11:16 PM »
Does anyone know of a simple tool that can show what fields and values are present in an MPEG4 stream? It would be great to be able to see the fields in the macroblocks, see what their current values are - that way, we could see what effect various bitflips have, and also what patterns are present in the stream.

We had a lot of success in cleaning the TS level because there were several common patterns to the data. The idea is that the transmitting device in the rocket is going to be optimised for weight and power consumption, so therefore it's likely to be some simple ARM SoC paired with some form of DSP video processor. It has tight timing constraints and can't use lots of electric power, so it's likely to just encode in a simple way.

Because of this, there were lots of patterns and similarities to the data - we could look at good areas to find the patterns, and then apply these patterns to the corrupt areas. After many rounds of this, the structure of the TS file begins to emerge, and you can fix a lot of extra stuff.

So my idea is to see what we can do with the same technique at the MPEG4 level. Reading through the MPEG specification is very challenging because of the myriad of options available to an MPEG4 encoder - however, my bet is that the encoder on the rocket won't have been doing anything bizarre, it would just use a simple subset of MPEG4 that can be blasted through a DSP by an ARM core.

So my questions really are:

1. Is there a freely-available MPEG4 stream examination tool?
2. What simple subset of MPEG4 did the rocket's encoder use?
I was indeed working on this.

This adaptation to ffmpeg is capable of logging (sub)macroblock data: http://forum.nasaspaceflight.com/index.php?topic=34597.msg1207538#msg1207538

Here you can see the output (bit-by-bit) what the decoder is interpreting: http://forum.nasaspaceflight.com/index.php?topic=34597.msg1207391#msg1207391

There is indeed quite a lot of things in MPEG4 that is not being used by the encoder on the rocket. No B-frames, no slices, no short header, no changes in q-values (I think), only minor ac-prediction. It does use what are called "escape"-codes for the DCT. Most (if not all of this) is logged by this addition to ffmpeg. Only for I-frames though.

If you're interested I can make a list/explanation of the tables from MPEG-4 are used. But maybe first try to play with it so you get a sense of what is going on. Just let me know if you need more info.

I have to say though (I have been looking at this too) that due to the VLC MPEG-4 data is far less predictable than TS-data. It really looks completely random until you see it interpreted as a picture/macroblock.

Regards,

arnezami

« Last Edit: 06/02/2014 11:17 PM by arnezami »

Tags: