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

Offline SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 90
It works! I found the problem!

 :D ;D :)

I simply have to disable the multi-threading with option -threads 1

So yes, it was related to windows...

Offline arnezami

  • Full Member
  • **
  • Posts: 282
  • Liked: 262
  • Likes Given: 345
It works! I found the problem!

 :D ;D :)

I simply have to disable the multi-threading with option -threads 1

So yes, it was related to windows...
I love you for that!  :) :) :)

I didn't have a clue what was wrong.

Offline saliva_sweet

  • Full Member
  • ****
  • Posts: 555
  • Liked: 424
  • Likes Given: 1337
Was working on iframe 52 today. All I got was a couple of macroblocks (some questionable) and a deep appreciation of the work done by Untribium. But I think it's a small improvement anyway.

Offline moralec

Proof of concept time 8)


That gif looks awsome! (I'm adding it on the wiki).


On other news the table in the wiki is ready, for those that are fixing the headers on the pframes :)
I have difficulty finding stuff in the wiki now. Shouldn't the stuff we are working on be right at the top? Also this pframe pages, how do I find them? I'm really confused atm.

Thanks for the feedback. I'm moving that section up now.

Hey guys,
I just moved the Work in Progress section in the wiki to the beginning of the page (see picture).

There you will find links to both active and archived  pages. For example, as of now we have:
1) A page for the reconstruction of i and p frames using edit8
2) The fixing of p frames headers
3) The reconstruction of i-frames using old ts files - which no one should be using now.

:)

Hope this works. Whenever you have a second, add your progress there.

If you prefer to focus on your work, just post things here and let me know. I can take care of it.

http://spacexlanding.wikispaces.com/home
« Last Edit: 05/20/2014 02:43 PM by moralec »

Offline SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 90
So, it seems all the puzzle pieces are finally getting together, a big congratulation to Arnezami for finding how to handle these P-frames :)

Here the best I could quickly get for the same frames:

% I-Frame 169
08:14:-1:15:-15:1:14:-2:1,09:14:56683,05:21:-1:0:-20:-5:2,06:21:-1:-20:-20:6:5,
07:21:-1:0:0:3:5,08:21:-1:0:0:0:0,09:21:-1:10:15:0:0,10:21:-1:15:15:0:0,11:21:-1:5:10,
12:21:-1:5:3:0:0:-2,13:21:-1:4:4,14:21:-1,28:21:108878,X:126932:80,04:27:-1:0:-4:13:7,
05:27:135412,X:143273:80,X:143386:80,5:28:-2:-30:-30:-10:-10,06:28:144012,2:29:-1

% Frame 170
% 6:1:-1,23:3:9697,40:7:-1,37:8:22779 (strange interlace effect)
6:1:-1,23:3:9697,40:7:-1,42:7:19526,3:8:-1,4:8:19780,13:8:-1,15:8:20531,28:8:-1,30:8:21401,37:8:22779 (effect less visible)

% Frame 171
16:0:-1,31:0:4850,4:2:13866,35:7:-1,42:7:46457,22:8:46996,32:8:50739

% Frame 172
6:20:-1,7:20:84967

% Frame 173
0:7:-1,3:8:21583,17:11:-1,20:11:37003,8:12:-1,32:13:43824,0:19:-1 (too tired to do better :P)

And also a gif animation!
« Last Edit: 05/20/2014 12:01 AM by SwissCheese »

Offline S.Paulissen

  • Full Member
  • ***
  • Posts: 396
  • Boston
  • Liked: 288
  • Likes Given: 441
I've been following this thread and website for some time and have been looking for a way to have a productive first post.  This, however, will not be that productive.  Fantastic work everyone who's working on this project.  I'll keep tooling around with frames but ... holy smokes you guys are good at this.  I don't have a lot to bring to the table.

On frame 52 of raw_edit8.ts I got a few extra blocks in the bottom left with some highly suspect changes.

40:3:-1,6:4:9364,4:5:-1,6:5:11443,7:5:11487,5:6:13496:0:0:0:0:0:-2,0:7:-1,38:11:26080:0:-4:-1:2:0:0,
31:12:28067:3:1:0:0:0:0,34:12:28226:-1:0:0:0:0:0,40:14:34617:-3:0:2:0:0:0,40:16:42426:-1:0:-4:-5:0:0,
33:17:44961:0:-7:0:0:-2:0,7:28:18
« Last Edit: 05/20/2014 01:07 AM by Exclavion »
"An expert is a person who has found out by his own painful experience all the mistakes that one can make in a very narrow field." -Niels Bohr
Poster previously known as Exclavion going by his real name now.

Offline SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 90
OK cool, am I right in thinking there's a whole bunch of extra stuff coming out of the log now? Also some things don't seem to be coming out in "order" as far as frame numbers go.

Quote
[mpeg4 @ 0x60008d3c0] MB pos/size: 0 001:29:08:0 1 dc: 128 128 128 128 - 128 128MB pos/size: 0 006:29:03:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x60009a2a0] , MB_type: 14344, MV: 0 0
[mpeg4 @ 0x6000a36a0] MB pos/size: 0 009:31:00:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x60009d440] MB pos/size: 0 007:30:02:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x60008dde0] MB pos/size: 0 002:29:07:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x600090f80] MB pos/size: 0 003:30:06:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x6000a0500] MB pos/size: 0 008:31:01:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x600094040] MB pos/size: 0 004:28:05:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x6000971e0] MB pos/size: 0 005:29:04:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x60008d3c0] MB pos/size: 0 001:30:08:0 1 dc: 128 128 128 128 - 128 128, MB_type: 14344, MV: 0 0

Is that normal?

I also have a few lines that look like this:

Quote
[mpeg4 @ 0x600090f80] MB pos/size: 0 000:09:20:0 1 dc: 0 0 0 0 - 0 0MB pos/size: 0 000:10:19:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x6000971e0] MB pos/size: 0 000:11:18:0 1 dc: 0 0 0 0 - 0 0, MB_type: 14344, MV: 0 0
[mpeg4 @ 0x6000971e0] , MB_type: 14344, MV: 0 0

There's 2 MB pos/size things on 1 line and a little further down some stuff is missing.

I was getting the same, you have to disable multithreading with option "-threads 1"

Offline mvpel

  • Full Member
  • ****
  • Posts: 1124
  • New Hampshire
  • Liked: 1295
  • Likes Given: 1686
I've been following this thread and website for some time and have been looking for a way to have a productive first post.  This, however, will not be that productive.  Fantastic work everyone who's working on this project.  I'll keep tooling around with frames but ... holy smokes you guys are good at this.  I don't have a lot to bring to the table.

Don't sell yourself short, my friend.  Passion, perseverance, willingness to learn, and a sharp mind is the essence of what some other folks who've been working on this brought to the table as well, and that was plenty. You fixed stuff! That's great! You may also very well have fixed an error that would have carried forward and spread out into a mangled mess in later frames. Jump on the IRC channel, and keep up the good work!
« Last Edit: 05/20/2014 02:31 AM 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 arnezami

  • Full Member
  • **
  • Posts: 282
  • Liked: 262
  • Likes Given: 345
Hi guys,

I think to get started we should begin with the P-frames 169 - 188. That way we can get used to the process and figure out how to deal with certain problems/practicalities. Of course you can play around with any P-frame you want: there is lots of goodies out there now!. ;)

To kick this off I created all the original frames for 169 - 188. We can put these in a separate wiki page and try to make them better individually. From time to time we can combine them to make a video/animated gif.

Good luck!

arnezami

[edit]

Just to be clear: you create an original P-frame by adding "FRAMExxx:0:0:-1" to the mmb for every frame before it. You edit it's mmb by simply adding "FRAMExxx:" to it and of course your mmb commands for that frame.

So for frame 173 (which is FRAME4 in the file) you should do this to get the original:

Quote
FRAME0:0:0:-1=FRAME1:0:0:-1=FRAME2:0:0:-1=FRAME3:0:0:-1


And if you want to fix 173 you should do this:

Quote
FRAME0:0:0:-1=FRAME1:0:0:-1=FRAME2:0:0:-1=FRAME3:0:0:-1=FRAME4:<your mmb commands>
« Last Edit: 05/20/2014 04:25 AM by arnezami »

Offline michaelni

  • Member
  • Posts: 28
  • Liked: 23
  • Likes Given: 0
Nice work on the P-frames guys! The bits (literally :) ) and pieces are finally coming together!
Can someone more knowledgeable than me and has looked into the bitstream have a look at this and tell me whether it's accurate?
http://www.cmlab.csie.ntu.edu.tw/cml/dsp/training/coding/h263/format_p.html
Could be really helpful for bit flipping :)

edit: Also, is it possible to add the bitstream to the online editor?

It seems that that is describing the "6.2.5.2  Video Plane with Short Header" from ISO-IEC-14496-2_2001_MPEG4_Visual.pdf. Also see: "6.3.5.2  Video Plane with Short Header". Not entirely sure.

I'm actually not sure our video uses the "short header". I have mostly been focused on the macroblock/variable stuff. But it would be good to confirm, because there could definitely be problems in these headers.

This is also a little interesting:

Quote
short_video_header:  The short_video_header is an internal flag which is set to 1 when an abbreviated header
format is used for video content. This indicates video data which begins with a short_video_start_marker rather
than a longer start code such as visual_object_ start_code.  The short header format is included herein to provide
forward compatibility with video codecs designed using the earlier video coding specification ITU-T
Recommendation H.263.  All decoders which support video objects shall support both header formats
(short_video_header equal to 0 or 1) for the subset of video tools that is expressible in either form.

short video headers are not used in the file we have

Offline michaelni

  • Member
  • Posts: 28
  • Liked: 23
  • Likes Given: 0
PPs. I've also attached a slightly altered h263dec.c which now logs the frame number too.

merged most of this in github (not the reverse search stuff as i didngt had time to really look at it)

Offline meadows.st

  • Full Member
  • *
  • Posts: 152
  • Vancouver BC, Canada
  • Liked: 88
  • Likes Given: 3768
So, it seems all the puzzle pieces are finally getting together, a big congratulation to Arnezami for finding how to handle these P-frames :)

Here the best I could quickly get for the same frames:

% I-Frame 169
<snip>
% Frame 170
% 6:1:-1,23:3:9697,40:7:-1,37:8:22779 (strange interlace effect)
6:1:-1,23:3:9697,40:7:-1,42:7:19526,3:8:-1,4:8:19780,13:8:-1,15:8:20531,28:8:-1,30:8:21401,37:8:22779 (effect less visible)
<snip>
And also a gif animation!


This is great.  In watching the gif, I saw something interesting related to the "dirt spot" that obscures part of the right leg.  I am referring to the un-numbered spot below and to the left of spot 3 see:


A version with the dirt spots numbered for better reference in conversation

Edit: Added dirt group 14

Due to the flare of the flame in (I think) frame 170, the spot (that I am currently numbering dirt group 15) becomes clearly outlined.  (see my two attached pics).  I do not have the expertise (yet) to see this difference in the hex values of the macroblocks but I suspect it will be there in some way.  Looking at the other dirt spots (bless the dirty bird) I see some of them also flaring out when the flame flares (as it impinges) significantly after frame 170.  I don't know if this will help but it seems that there may be some additional info that could assist in the reconstruction of some of the mb's of the P-Frames.

EDIT: added - I grabbed the second picture below via screen grab from SwissCheese's gif.
« Last Edit: 05/20/2014 05:28 AM by meadows.st »
A little rudder far from the rocks is a lot better than a lot of rudder close to the rocks. L. David Marquet

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
...

Don't sell yourself short!  I took what you had and tweaked it a bit more.

40:3:-1,6:4:9364,4:5:-1,6:5:11443,7:5:11487,5:6:13496:0:0:0:0:0:-2,0:7:-1, 38:11:26080:0:-4:-1:2:0:0,31:12:28067:3:1:0:0:0:0,34:12:28226:-1:0:0:0:0:0, 40:14:34617:-3:0:2:0:0:0,40:16:42426:-1:0:-4:-5:0:0,4:28:76082,5:28:-2, 0:29:81738,1:29:81815,2:29:82246,3:29:83389,4:29:84447,5:29:85968,6:29:86644
« Last Edit: 05/20/2014 06:35 AM by Swatch »
Ex-Rocket Scientist in Training, now Rocket Scientist!
M-F trying to make the world of the future a smaller place through expanding horizons...

Those that messaged me about the bitmask bug on the editor, this is now fixed.

Thanks :)

Offline Marams

  • Member
  • Posts: 4
  • Liked: 2
  • Likes Given: 0
I'm trying to find flipped bits.

The problem I'm having is, it's almost almost impossible to tell if I've found a flipped bit. Just because the next few blocks or rows improve that doesn't mean you found a flipped one. It's very well possible you just found by luck a way to get the alignment of the next macroblocks right, but there's still a subtle propagating error.

The advantage of finding a flipped bit is, you preserve the most information possible in the frame. But it's only possible in regions where the error rate is less then perhaps 1 flipped bit per 1000.

Here the ones with a fairly high confidence (against raw_edit8.ts):

Frame 72: X:4231:01
Frame 112: X:560:01,X:5373:01,X:5986:01,X:8742:01
Frame 209: X:8799:01,X:8802:01

I'm also attaching the growing list of candidates

Offline saliva_sweet

  • Full Member
  • ****
  • Posts: 555
  • Liked: 424
  • Likes Given: 1337
Frame 72: X:4231:01

This is very good. I was about to xor through that macroblock myself. Added it to full mmb and fixed some sea alignment.

PS. The online editor is not showing log data for me.

Offline Untribium

  • Member
  • Posts: 32
  • Switzerland
  • Liked: 32
  • Likes Given: 78
Frame 72: X:4231:01

This is very good. I was about to xor through that macroblock myself. Added it to full mmb and fixed some sea alignment.

PS. The online editor is not showing log data for me.

I agree, great stuff! I'm currently trying to understand the macroblock bitstream representation but it's quite challenging, as pretty much all the values are variable size...However, if you start at the end of a block and start going down the address, you can see changes happening in the chroma2 followed by chroma1, then some bits that I'll have to investigate, then the brightness values from 4 to 1 (which is consistent with the encoding described in the spec pdf posted earlier). I'll keep you updated if I find anything interesting :)

Offline PaulNY

  • Member
  • Posts: 3
  • NY
  • Liked: 1
  • Likes Given: 0
I know we are trying to replace bad mmb with good mmb. So would it be useful to document the XY and POS of good mmb's? I am thinking if we can map out what we know to be good, figuring out what to replace the bad with may be easier.

Offline moralec

Hi guys,

To kick this off I created all the original frames for 169 - 188. We can put these in a separate wiki page and try to make them better individually. From time to time we can combine them to make a video/animated gif.

Hi guys.
I'm on the process of creating 15 new wiki pages, following the sections of the video arnezami posted above. Each page will contain the i-frame and 19 p-frames of that section. Everything will be organized in a table just like the one we where using to record our progress on the iframes. The table will include a field to to add a preview and to paste the mmb code used.  The  page for frames 169 - 188 is ready (http://spacexlanding.wikispaces.com/Frames+169-188). I'll add the rest as we progress other parts of the video.

I have also created a central page (http://spacexlanding.wikispaces.com/Progress+using+multi+frame+MMBs) with the description of the tasks and links to the each of the 15 new pages.

The old page that recorded the progress on iframes it still there. If you are continue working on single iframes, you can continue to post the results there. However, as we move towards fixing p-frames, eventually all modifications will have to be recorded in the new pages.


« Last Edit: 05/20/2014 02:38 PM by moralec »

Offline SwissCheese

  • Full Member
  • *
  • Posts: 164
  • Liked: 249
  • Likes Given: 90
Hi guys,

To kick this off I created all the original frames for 169 - 188. We can put these in a separate wiki page and try to make them better individually. From time to time we can combine them to make a video/animated gif.

Hi guys.
I'm on the process of creating 15 new wiki pages, following the sections of the video arnezami posted above. Each page will contain the i-frame and 19 p-frames of that section. Everything will be organized in a table just like the one we where using to record our progress on the iframes. The table will include a field to to add a preview and to paste the mmb code used.  The  page for frames 169 - 188 is ready (http://spacexlanding.wikispaces.com/Frames+169-188). I'll add the rest as we progress other parts of the video.

I have also created a central page (http://spacexlanding.wikispaces.com/Progress+using+multi+frame+MMBs) with the description of the tasks and links to the each of the 15 new pages.

The old page that recorded the progress on iframes it still there. If you are continue working on single iframes, you can continue to post the results there. However, as we move towards fixing p-frames, eventually all modifications will have to be recorded in the new pages.

Maybe we should rather put the "stand-alone" p-frame, since the final image depends on all previous frames. Or maybe put both? But for the people editing them, having the final result does not really help.

Tags: