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

Offline CuddlyRocket

^ Amazing, awesome, astonishing - yes, I'm impressed with the achievement here (and more to come!).

Hopefully, there'll be some appropriate thank you for all this work coming the workers' way. A guided tour or an invite to a launch, perhaps?

Offline Oersted

  • Member
  • Full Member
  • ****
  • Posts: 793
  • Liked: 394
  • Likes Given: 238
Thanks Swisscheese, it looks great.

Offline mvpel

  • Full Member
  • ****
  • Posts: 1116
  • New Hampshire
  • Liked: 1280
  • Likes Given: 1676
One issue seems to be corrupt motion vectors (see the legs), would it be possible to implement something to change the motion vectors values? or at least set them to 0?

I think we'd also want the ability to specify whole swaths of motion vectors to zero out, considering that we know with certainty that almost nothing in the lower half of the frame should be moving in any way at all.
"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

Offline Shanuson

  • Full Member
  • **
  • Posts: 258
  • Liked: 171
  • Likes Given: 411
My tools are more or less my hands and a few python scripts. :D and yes, i was conservative or not concerned about that problem yet. Did you only fix some 4byte TS-headers? or more? And only for some part or the whole stream? If only for one part. could you apply those changes to the Part_X.ts file so we can more easily merge your and my changes together?

In the part9 I uploaded, it was strictly the transport stream headers, since that's what was easily discernable with Wireshark, and I only dealt with that one segment of the stream. Working through the procedure by hand, though, gave me a sense of what the algorithm would need to be to implement it, and extend it to the PES and MPEG headers. I'm currently thinking that breaking out the entire stream into an array of nested C structs will make it easier to manipulate and parse, and apply the known anchor points to the bits.

I recall you mentioning a section where the 188-byte alignment goes out the window at one point - something about AJMartin's 28- or 56-byte frames, perhaps? Do you have the offset where that occurs?

I don't have the position anymore, the only missing 56 byte where i could not decide exactly were it occured are marked by 12 34 56 78 sequence followed by a lot (52) of FFs. But i think it was much earlier in the file, not in part9.
If you want to know, use tsalign on the original raw.ts. Ignore the 2 500000 pos parts mentioned, they look fine in a hex editor. all the other (3 or 4 I think) are parts with 56 byte missing .

Anyways, the splitup rawfile was corrected, so there should not be any 56 byte missing parts, those I filled with FFs

Cheers,
Shanuson

Offline mvpel

  • Full Member
  • ****
  • Posts: 1116
  • New Hampshire
  • Liked: 1280
  • Likes Given: 1676
Hopefully, there'll be some appropriate thank you for all this work coming the workers' way. A guided tour or an invite to a launch, perhaps?

That'd be icing on the delicious cake of a salvaged video, I suspect.  ;D

I'll be in McGregor with my nose pressed to their fence on June 13...  ;)
"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

Offline meadows.st

  • Full Member
  • *
  • Posts: 151
  • Vancouver BC, Canada
  • Liked: 88
  • Likes Given: 3617
^ Amazing, awesome, astonishing - yes, I'm impressed with the achievement here (and more to come!).

Hopefully, there'll be some appropriate thank you for all this work coming the workers' way. A guided tour or an invite to a launch, perhaps?

Given the context, I think attendance at the first land-landing would befit the effort. :)
“A little rudder far from the rocks is a lot better than a lot of rudder close to the rocks.” L. David Marquet

Online Chris Bergin

Hello everyone, latest update of the gif  :) (frames 169-173,175-177,180-181,183-199)

It looks really cool!

Note that many p-frames only need very little correction, some even don't need any.

One issue seems to be corrupt motion vectors (see the legs), would it be possible to implement something to change the motion vectors values? or at least set them to 0?


Ok, that's crazy good!! Wow!

Offline Untribium

  • Member
  • Posts: 32
  • Switzerland
  • Liked: 32
  • Likes Given: 78
Does it make sense to start working on fixing p-frames before their counter bytes and stuff was checked (wiki -> extraction of p-frames)? I was going to start on frames 52 and up, since the iframe looks very promising, so I'm wondering if I should try to fix the headers first...

Also, this gif looks terrific!

Offline saliva_sweet

  • Full Member
  • ****
  • Posts: 508
  • Liked: 380
  • Likes Given: 1251
The new online editor isn't showing bitpositions. Could we get the old one back until it's fixed?

Online SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 80
Does it make sense to start working on fixing p-frames before their counter bytes and stuff was checked (wiki -> extraction of p-frames)? I was going to start on frames 52 and up, since the iframe looks very promising, so I'm wondering if I should try to fix the headers first...

Also, this gif looks terrific!

You can start with this one, the problematic ones are those where not all of the 19 p-frames are detected.

Offline Untribium

  • Member
  • Posts: 32
  • Switzerland
  • Liked: 32
  • Likes Given: 78
Does it make sense to start working on fixing p-frames before their counter bytes and stuff was checked (wiki -> extraction of p-frames)? I was going to start on frames 52 and up, since the iframe looks very promising, so I'm wondering if I should try to fix the headers first...

Also, this gif looks terrific!

You can start with this one, the problematic ones are those where not all of the 19 p-frames are detected.

Oh I see, thanks. Just noticed that some aren't actually on the editor, so I'm guessing these are the ones that need to be fixed first :)

Offline Asmegin

  • Member
  • Posts: 35
  • Canada
  • Liked: 21
  • Likes Given: 3
The new online editor isn't showing bitpositions. Could we get the old one back until it's fixed?

Yeah, I started working on Frameset 92 without the bit positions...let's just say it made things very difficult :D Especially since the P-Frames jump all over the place for this set. They settle down a bit at the end (albeit in the wrong position)...but it's definitely a challenge.


Offline rocketguy101

  • Member
  • Full Member
  • ****
  • Posts: 827
    • Strib's Rocket Page
  • Liked: 201
  • Likes Given: 592
Coming up on the 150,000 view mark for this thread/effort. Noting it as there's a small active team of people really working hard on this, but also a HUGE amount of people watching that work. Always nice to have a large appreciative audience, both inside and outside the space industry.

You'd be astonished how many views are from IP addresses in a place called Hawthorne, California! ;D

I was curious how this thread ranked overall in the history of SpaceX threads (currently as of this writing, reads are >180,000) so I sorted the other SpaceX dedicated threads and only the 100,000+ and Missions sections have threads that exceed 180,000. Currently this thread is the 27th most read SpaceX thread and I think the NSF server (sorry Chris  ;D) will explode when you all get the video restored "even" to the level of SwissCheese's latest gif (which is awesome BTW). see:
I updated http://spacexlanding.wikispaces.com/Frames+169-188 :)

Graphic representation of the historical significance of the work that the video restoration group is doing (see pic).

I have just been watching this thread with total amazement, as I have nothing to add to it -- learning the background of digital video is interesting too!!  I think Chris will have to add a "cheerleading" thread for this effort :)   Keep up the fantastic work folks!!!
David

Online Chris Bergin

Standby folks. Attempting to tweet out the gif, with a link to that post from SwissCheese.

Here it is:
https://twitter.com/NASASpaceflight/statuses/469171624072470528

And get ready for a surprise!!

Offline Shanuson

  • Full Member
  • **
  • Posts: 258
  • Liked: 171
  • Likes Given: 411
Do we have a list of all people who worked on this?

Online moralec

Do we have a list of all people who worked on this?

In different pages of the wiki there are references to those that have contributed with MMB codes. However, in order to make the list comprehensive, we would need to check this thread. Other kind of contributors (online tools, wiki, etc.) would need to be added to the list too.

The new online editor isn't showing bitpositions. Could we get the old one back until it's fixed?

This bug was introduced due to the new format of the log, this is now fixed in the i-frame only editor which is still available here http://spacex.slapbet.org/

Offline mvpel

  • Full Member
  • ****
  • Posts: 1116
  • New Hampshire
  • Liked: 1280
  • Likes Given: 1676
Elon asks who's leading the effort?

Eight Tips for Collaborative Leadership

Quote
Today’s corporation exists in an increasingly complex and ever-shifting ocean of change. As a result, leaders need to rely more than ever on the intelligence and resourcefulness of their staff. Collaboration is not a “nice to have” organizational philosophy. It is an essential ingredient for organizational survival and success.

That's what's been interesting about the effort - each individual has brought their individual talents, experience, knowledge, and skills to bear on different pieces of the problem to the extent that they are able to contribute, and everyone has been learning from everyone else.

Outsized kudos are due, of course, to the people who have set up the framework that allows this collaboration to occur in the first place - Michael Niedermyer for his ffmpeg patches to simplify the work on the frames, Iain Cole for his magnificent online editor, Moralec for his work in maintaining the Wiki page, etc. But are they "leaders" in the traditional sense of the word? They're fellow collaborators.

I think the effort and the fruit that it has borne so far is just a really excellent example of the power of "crowdsourcing" (I think someone will eventually have to add this video repair effort to the Wikipedia page for that term. :D), and a testament to how many people around the world are cheering for Elon and his entire team at SpaceX, and the vision of a multiplanetary human society.

I remember fondly my first Mars Society convention years ago in Boulder, and my work with the California Mars Society around 2000, and it's just magnificent to see how much closer we are to that goal today thanks to the efforts of not only Elon but also countless other people who were inspired - by Ray Bradbury, or Robert Zubrin, or Kim Stanley Robinson, or in any number of other ways - to each work in their own way and in their own capacity towards achieving it.

In a way, this video repair mission is just another example of that same phenomenon. It's great to see it unfold right before our eyes.

Edit: (You can see why I never got into Twitter.  ;) )
« Last Edit: 05/21/2014 07:56 PM by mvpel »
"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

Offline Req

  • Full Member
  • ***
  • Posts: 379
  • Liked: 338
  • Likes Given: 2581
Elon asks who's leading the effort?

Eight Tips for Collaborative Leadership

Quote
Today’s corporation exists in an increasingly complex and ever-shifting ocean of change. As a result, leaders need to rely more than ever on the intelligence and resourcefulness of their staff. Collaboration is not a “nice to have” organizational philosophy. It is an essential ingredient for organizational survival and success.

That's what's been interesting about the effort - each individual has brought their individual talents, experience, knowledge, and skills to bear on different pieces of the problem to the extent that they are able to contribute, and everyone has been learning from everyone else.

Outsized kudos are due, of course, to the people who have set up the framework that allows this collaboration to occur in the first place - Michael Niedermyer for his ffmpeg patches to simplify the work on the frames, Iain Cole for his magnificent online editor, Moralec for his work in maintaining the Wiki page, etc. But are they "leaders" in the traditional sense of the word? They're fellow collaborators.

I think the effort and the fruit that it has borne so far is just a really excellent example of the power of "crowdsourcing" (I think someone will eventually have to add this video repair effort to the Wikipedia page for that term. :D), and a testament to how many people around the world are cheering for Elon and his entire team at SpaceX, and the vision of a multiplanetary human society.

I remember fondly my first Mars Society convention years ago in Boulder, and my work with the California Mars Society around 2000, and it's just magnificent to see how much closer we are to that goal today thanks to the efforts of not only Elon but also countless other people who were inspired - by Ray Bradbury, or Robert Zubrin, or Kim Stanley Robinson, or in any number of other ways - to each work in their own way and in their own capacity towards achieving it.

In a way, this video repair mission is just another example of that same phenomenon. It's great to see it unfold right before our eyes.

He only gets the space of a tweet, why not just have him link to this thread or the wiki page?

Also, having kept up with the thread since the beginning, I think that Arnezami would be on the short list as well.  In fact, if anybody is playing a leadership role, it's probably him.  At least in my opinion.
« Last Edit: 05/21/2014 07:54 PM by Req »

Offline morningdew76

  • Member
  • Posts: 11
  • McLean, VA
  • Liked: 12
  • Likes Given: 7
Looking at the null packets, I noticed some patterns in the bit errors that might be useful for this kind of effort.

Specifically, many (but not all) of the bit-flips come in groups of 3, with one bit flipped, then 13 unaffected, then the next two also flipped.  This is most obvious in a hex-dump of the null packets, which are supposed to be filled with 0xff bytes: patterns such as "7f fc" or "fb ff e7" are common.  But the same bit-flip patterns apply where errors overlay the TS headers, and presumably also when they occur in image data.

Combinations (with XOR) of these 3-bit errors are also seen; mathematically, these error patterns are multiples of the polynomial x^15 + x + 1 over the binary field.  This could be the result of FEC coding applied to a signal with too many errors for successful correction.  I haven't figured it out completely but there are indications that the data may have been coded in 28-byte or 56-byte blocks (not respecting the TS packet boundaries); in particular, errors that don't fit this pattern seem to be found near offsets that are multiples of 28 bytes.

There is still the problem of figuring out if the change helped or not, but this should help to reduce the search space.  In low-error regions, there's a good chance that some of the flaws can be fixed with a single instance of this pattern.

That is brilliant. And something that never occurred to me. It could be incredibly important. Just yesterday (posted here: http://forum.nasaspaceflight.com/index.php?topic=34597.msg1201317#msg1201317) through a lot of trial and error I ended up doing this to frame72: X:11807:80,X:11822:80. We could really use more statistics though. Need to know what is the probability of single flips vs patterned flips. Perhaps a graph showing probability of flipped bit in positions following another flipped bit going up to 28 bytes.

Short time reader, first time poster.

I've done some further work on the bit-flips for frame 72, using the "8003" pattern, with results for two potential upgrades.  This is the basic form that I tried to fit: X:offset:80,X:offset+8:03

X:11807:80,X:11822:80 -> X:11807:80,11815:03
X:11505:80 -> X:11493:80,X:11501:03

In both cases the previously found bits were preserved.. the 8003 pattern was just fitted around them via trial and error.

The other bit inversion for this frame (X:4238:80) did not fit into an 8003 pattern.  Edit: but it did fit the 040018 pattern!  X:4238:80 -> X:4233:04,X:4249:18 Edit2: jumped the gun.

I have not yet tried looking for an inversion of "FB FF E7", but it would take the form of X:offset:04,X:offset+16:18 .  We lucked out with the middle FF block, otherwise this would be three 8-bit inversions.

Now for a few suggestions for the online editor-

First would be a way to increment through 16- or 24-bit inversions with a single click.  This could be handled directly with modifications to the editor, but perhaps there's potential for a new type of inversion syntax- something like X:1234:P1 for 8003, X:1234:P2 for 040018, etc.

Second, and this is probably harder, would be to have the editor calculate the following frame or two on a keyboard arrow hit.  For example- say you are incrementing the bit position for X:1234:80.  When I hit the up arrow in the bit position box, it loads X:1235:80, doing a server round trip for the image for position 1235.  It would be helpful if the editor also cached up the same edit for bit position 1236.

I am but a man, standing on the shoulders of giants.  The work that you collectively have been doing here is nothing short of amazing!
« Last Edit: 05/21/2014 08:30 PM by morningdew76 »

Tags: