Convert videos to 60fps (Updated 21 May 2015)

Sections:

Introduction:

Many modern TVs now include an extra frames feature, usually either 120Hz or 240Hz. This just means they take the source video, which is usually between 24-30FPS, and add new, interpolated frames between the original frames that make the motion look much more smooth.

High framerate (HFR at 48fps) was used in The Hobbit and will be used in upcoming films like the Avatar sequels, so why not watch all your movies at higher framerates?

A lot of people don’t realize this, but 99% of TVs made before this feature was introduced are actually capable of displaying 50FPS and 60FPS, and of course most LCD monitors display 60FPS as well.

This tutorial will allow you to convert videos of any framerate to higher framerates; 25FPS becomes 50FPS and 24/30FPS becomes 60FPS by default, or you can specify whichever framerate you want.

This script offers greater quality than any televisions I have seen.

I’m sure many people will want to see how well this script works, so here’s a comparison:
Original File
Converted File

Note: This can now be done in realtime using Universal Media Server!

Purpose:

This post provides instructions on how to easily convert any video to 60FPS, which allows you to take advantage of this feature of modern TVs on your computer monitor or TV without actually buying anything.

Step 1:

The files needed for this step are found in this zip folder (~3MB).

Run and install the file AviSynth.exe.
It is an early version of AviSynth 2.6 that is more stable and faster for multithreading than 2.5 releases.

Download and install MeGUI, run it, let it update all the things it wants to and import all of the presets.

Optional Tip: If you want MeGUI to update to the very latest stuff (at your own risk) you can push ctrl+s, go to the Extra Configuration tab, and in the Auto Update section select “Use development update server”

Close MeGUI and extract the files in the tools folder from our zip file into your MeGUI tools folder, which for most people will be either C:\Program Files (x86)\MeGUI\tools\ or C:\Program Files\MeGUI\tools\.

Step 2:

Download and install MKVToolnix.
When that is installed, run MKVMerge (Start Menu -> All Programs -> MKVToolnix -> mkvmerge GUI).

You will also need codecs installed. If you don’t already have them I recommend K-Lite Mega Codec Pack. If you install K-Lite, make sure to select “Profile 9: Lots of Stuff” during installation.

Step 3:

Start MeGUI again. You should be left with a window that looks similar to this:

step3

Step 4:

Push ctrl+r, or go to Tools -> AVS Script Creator.
Now you should see something like this:

step4

Step 5:

Click the Config button next to Avisynth profile.
It should look like this:

Step 6:

Click the New button down the bottom and type 60FPS in the name box, so it should look like this:

Step 7:

Now for the script that will do the actual 60FPS conversion.
Just copy and paste the following code into the text input area.

Cores=4
SetMemoryMax(512)
SetMTMode(3,Cores)
PluginPath = "C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\"
LoadPlugin(PluginPath+"svpflow1.dll")
LoadPlugin(PluginPath+"svpflow2.dll")
Import(PluginPath+"InterFrame2.avsi")
<input>.ConvertToYV12()
SetMTMode(2)
<deinterlace>
<crop>
<denoise>
<resize>
InterFrame(Cores=Cores)

Important note #1: Make sure the path on the third line is correct.
For example, if you are running 32-bit Windows, you will need to modify the path to “Program Files” instead.

Important note #2: You should change the number “4” in the script (on line 1) to your number of CPU cores. If you don’t know how many cores your CPU has just Google your CPU and you should be able to find the specs somewhere, or 4 should be fine anyway.

Important note #3: If you have a video card, you can improve quality by adding “GPU=true” to the script. However, it may make encoding time slower, so take that into account.
So InterFrame(Cores=Cores) would turn into InterFrame(Cores=Cores, GPU=true)
If you do this, you may also need to go into your MeGUI tools folder (usually C:\Program Files (x86)\MeGUI\tools\x264) and rename the file opencl.dll to opencl.dll.bak. This will let MeGUI use the version of opencl.dll that your video card drivers have installed, instead of the generic one from MeGUI.

Important note #4: This script always outputs either 50FPS or 59.94FPS (60FPS) for compatibility reasons. If you want to always double the framerate instead, so that for example 23.976FPS turns into 47.952FPS (48FPS), you can use the “FrameDouble” parameter.
So InterFrame(Cores=Cores) would turn into InterFrame(Cores=Cores, FrameDouble=true)

So now your window should look similar to this (with different text):

Step 7

Step 8:

Click the Extra Setup tab and make sure “Prefer DSS2 over DirectShowSource” is checked.

Optional tip #1: You might also want to choose your preferred resizer. For aspect-ratio changes (like from 720×576 to 720×480) a neutral filter like Spline36 will be nice. For actual resizing (like from 1920×1080 to 1280×720) a sharp filter like Spline64 will be best. I usually just leave it on Spline36. Make sure to untick the checkbox on the option after you change the default resizer, otherwise it will always be used by default which is often unnecessary.

Optional tip #2: I recommend changing the “MOD value used for resizing” to mod4. This gives the best balance between compatibility (a lot of devices like PS3 don’t have good mod2 support) and aspect ratio accuracy (the higher the MOD value, the more likely the aspect ratio is to be skewed more heavily).

Now it should look something like this:

Step7rev3

Then just click the Update button then the OK button

Step 9:

Now we’re back to the AviSynth script creator window and now that we have our 60FPS AviSynth template made and selected, it’s time to choose which video we want. Just click the button next to Video Input up the top of the window and find your video, then click Open.
A window will pop up with buttons, click the option on the right, usually either “DirectShowSource” or “AviSource”.
A window will pop up to show you the video, you can just close that.
Now you should see something like this:

Step9

Step 10:

Click the Save button. The video preview window might pop up again, you can close it again.

Step 11:

Now is the time when you need to choose the quality of the video and audio.

If you don’t know what to do here, something quick and easy is to just use CRF, which means you let the codec decide on the bitrates itself. So you can click the “Config” button next to the “Encoder settings” dropdown when you have a x264 option selected, then just enter a number between 16-20 in the “Quality” input box. 16 means your video will be almost exactly the same quality as the source, while 20 will look good too while taking up less space. Personally I use 16 for everything because why not? πŸ™‚

So when you have your quality, click Queue in the Video encoding section.

Step 12:

Now your video is ready for conversion.
Now just go to the Queue tab and click Start down the bottom, then wait for it to finish.

Step 13:

The final step is to add your audio and/or subtitles from the original file to the converted file. This process uses muxing, not conversion, so there is no quality loss.
For this we will use the program we installed earlier, MKVMerge.
So run that and drag the converted file into that program, then do the same with the original file. If you can’t drag them on, you can use the add button instead.
Now you have several items in the Tracks, chapters and tags section. You just need to untick the ones you don’t want. Usually you will want to leave them all selected except for the original video track, as I’ve done in the following example:

Finally, set the Output filename down the bottom of the window and click Start muxing.
When that is done, you have your final video!

Final Thoughts:

This might seem like a long process, but actually it is only long once. Since we have now made templates, the process for the videos from now on will be much faster; instead of entering the script each time, now you can just make sure your 60FPS AviSynth script is selected.

This file can now be played just like any other video. I personally watch videos on my TV which is linked up to my computer using the awesome, free program called Universal Media Server, and that handles these 60FPS videos perfectly with no configuration.

Any comments are appreciated. If you can think of an improvement to the script, or to the process, or if you just found it useful and want to say thanks, please do leave a comment. I would love to know that it’s being used.

If you want to donate to help me with server costs and time spent keeping this article updated, you can do so here with my thanks πŸ™‚





FAQ:

  • How can I fix random crashing of vfw4x264.exe?
    This probably means you are encoding a file using an input mode other than DSS2, which can happen if the clip is .m2ts or .dga (blu-ray) or another uncommon format.
    You can fix it by changing the 2 in the second line of the script to either 3, 4, 5 or just removing that line (try them in that order, since the options get progressively slower)
  • The option “Prefer DSS2 over DirectShowSource” is disabled. or
    I get an error like “can’t load avss.dll”.
    This means your computer is missing Haali Media Splitter. You can download it here or as part of a K-Lite Mega Codec Pack and the error should go away after you install it. If you install K-Lite, make sure to select “Profile 9: Lots of Stuff” during installation.
  • The file stops encoding after 99%.
    This usually indicates a codec configuration issue. Try installing/reinstalling K-Lite Mega Codec Pack, and make sure to let it select its preferred defaults (not “quick upgrade”)
  • Can I customize the output framerate to make it 48FPS, 75FPS, 120FPS, or anything else?
    Yes, you can choose any framerate you want. It is best to choose a framerate that is divisible in some way with the original video, but even that is your choice. You just need to add the options “NewNum” and “NewDen”, like this:
    InterFrame(Cores=Cores, NewNum=48000, NewDen=1001)
    NewNum stands for “New Numerator” and NewDen stands for “New Denominator”. In general, with NTSC material the NewDen should be 1001 and the NewNum should be 1000x your desired framerate (so for 48FPS you want 48000 and 1001) while for PAL content you might just want something like NewNum=75,NewDen=1 to output 75FPS content.
  • The output seems choppy, can I make it smoother?
    Yes, by default we output a video that sacrifices a little smoothness in order to reduce errors, but different people’s eyes pick up on different things so it can all be a matter of taste. You can try the Smooth tuning, like this:
    InterFrame(Cores=Cores, Tuning="Smooth")
    Also, using GPU mode produces more accurate results and therefore should appear smoother, though it can be slightly slower overall. You can try it like this:
    InterFrame(Cores=Cores, GPU=true)
    Or try both options at once like this:
    InterFrame(Cores=Cores, Tuning="Smooth", GPU=true)
  • Why isn’t the GPU being used much in GPU mode?
    Only some things are done with the GPU in GPU mode, it’s still mostly done by CPU but helped by GPU.
  • Why is the video still the original framerate after running it through MKVMerge?
    You probably selected the wrong tracks in MKVMerge so you’re getting the original video track instead of the new one; make sure you untick the original video stream before muxing.
  • Why does MeGUI give an error “SVSmoothFPS: unable to load library given in ‘compose’ […svpflow2.dll]
    Try re-installing or updating your video card drivers, and if that doesn’t work then maybe your video card doesn’t support OpenCL so remove GPU=true from your script.
  • Why am I getting the error “SVSmoothFps: unable to load library given in ‘compose'” when I try to run the encoding process, but not when I preview?
    Go into your MeGUI tools folder (usually C:\Program Files (x86)\MeGUI\tools\x264) and rename the file opencl.dll to opencl.dll.bak. This will let MeGUI use the version of opencl.dll that your video card drivers have installed, instead of the generic one from MeGUI.
  • Why am I getting the error “Error message for your reference: Can not read the video stream”?
    MeGUI can’t read from folders or files with certain characters, so try moving the video to a different folder and/or renaming the file.

Thanks:

Widezu69 for providing the original AviSynth script that I used as a base.
Fizick for MVTools, the library that does all the work, and SVP for the modifications to MVTools that make it even better for our purposes.
Everyone on various forums for their feedback, this is really a community effort.

Changelog:

21/05/2015:

  • Updated InterFrame to 2.8.2, which improves speed

16/03/2015:

  • Corrected and improved the instructions and FAQ

05/03/2015:

  • Updated InterFrame to 2.8.0, which improves speed and lowers memory usage
  • Updated conversion script

24/02/2015:

  • Updated the instructions and FAQ

27/09/2014:

  • Updated InterFrame to 2.6.0
  • Added a tip about using framedoubling mode
  • Updated most images to reflect the minor changes to MeGUI
  • Minor improvements to instructions

22/07/2014:

  • Added more items to the FAQ

10/07/2014:

  • Added more items to the FAQ
  • Shortened the changelog to only the latest 3 changes by default

20/05/2014:

  • Updated instructions
  • Added more tips
  • Added to and updated the FAQ
  • Updated the link to MKVToolnix to always point to the latest version

Click here to display the rest of the changelog

50 Comments

  1. The simplicity of this guide is awesome, now if only I could get it to work..
    Each time I try to encode an .mkv file, I’m given this error: http://img803.imageshack.us/img803/9684/screenshot2011120221440.png
    Tried with a different file format (.flv) and there was no error.

    Here’s my config settings:
    Setmemorymax(1024)
    SetMTMode(2,14)
    PluginPath = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\”
    LoadPlugin(PluginPath+”mvtools2.dll”)
    LoadPlugin(PluginPath+”RemoveGrainSSE3.dll”)
    Import(PluginPath+”InterFrame.avsi”)
    .ConvertToYV12()

    InterFrame(FlowPath=PluginPath, GPU=true)

    Just did a clean install of K-Lite Mega Codec Pack and still being given the same error. I hope this can be resolved, I’ve been trying to find a way to do this for ages.

  2. I love solving my own problems.
    After a great deal of trial and error, I discovered a few things:
    1. I could fix this error by putting the input file on the C: drive, instead of H:
    2. The second line generally causes me problems, so I found it easier to go without
    and
    3. I need to purchase much more harddrive space in order to convert all my videos to 60 fps.

    Thanks for this awesome guide, I’ve always loved the absolute smoothness of 60fps videos.

  3. I’m having trouble converting 1080i .tp and .ts files.

  4. @tysja: Any file-specific problems are to do with codecs. If your codecs are installed and configured properly this guide works for every file

  5. whem i do step by step it stuck in step 10 and it appear..
    http://img815.imageshack.us/img815/4368/meguiv.jpg..

    i don’t know what the problem!

  6. i use to success it before but still the same frame as original frame movie.
    http://imageshack.us/photo/my-images/815/meguiv.jpg/
    now stuck at step 10.

  7. I was fiddling with your script yesterday and after reading the MVTools documentation, it seems that changing search=X from 3 to 7 produced less artifacts, however it wasn’t as smooth with 8 block size, so I guess there are tradeoffs.

  8. @magnetite: Like the MVTools documentation states, 3 is the highest quality setting. Other numbers may give better results in specific scenes but 3 is the best on the most scenes.

  9. Okay I used this script to convert around 10 videos, i took a break for a while and didn’t bother converting anything, I came back to make a 60fps video and instead of being in 1.777777777777778 (16:9) ratio its in 1.5. I don’t even know of any format that even uses that really. I’ve tried many different videos and several codecs all getting this weird formatting. I’ve tried applying cropping and resize but nothing fixes it, it’s enough to make me scream.

    So does anyone know of a solution?

  10. @Nick: Might be a MeGUI bug. They recently introduced an update related to that so maybe they broke it.

  11. @subjunk I’ve un-installed and re-installed all the components several times I can not find a fix, also IO’ve searched and scowered the net is there no fix for this?

  12. @Nick: They will probably release an automatic update for it soon

  13. when it said “MSmoothFps: unable to init FlowLib”
    what went wrong?
    thanks!

  14. Hi,
    Thank you so much for this Tutorial and Script! It works without any problems, and it is faaast πŸ™‚ Exactly what I searched for weeks!

    Before I was fiddling around with some proprietary Software and Tools (I don’t want to mention names) and they are anything else than fast compared to yours. The results are nearly the same. The only difference when working with your script is less artifacts as those in the prop. Tools.

    I am using it with VirtualDUB instead of MeGUI, but I installed it too and set anything up (directories etc) as you wrote.
    Is there any possibility to make more use of the GPU on any other function of the MVTools, like the vector estimation functions, or is it not (yet) implemented?

  15. @Xob: I’m glad you like it, thanks for the feedback πŸ™‚ The GPU may be utilised more in the future, but it isn’t easy to do πŸ™‚

  16. Hi, Thank you for this Tutorial and Script, will the original audio work with the converted 60fps fine?
    or the audio has to be speedup to work? i could not see any info regarding that and also i did not see any code regarding audio in the script, thanks again

  17. @Sed: Yes, the original audio will work fine

  18. Hi, after many attempts i got it working, btw i would like to say that is not possible at least for me, to use 14 istances for encoding (8*1,8) because x264 encoder needs too much ram and it crashes (32 bit ram limit i guess), i’ve got it working with 6 threads and my cpu is 100% almost always, i have a core i7 on a laptop.
    Thanks for sharing this, i was trying with virtualdubmod before but it was way slower. it should encode a 2h 1080p movie in about 10 hours using “smooth” tuning + quality “medium” + gpu “true”
    Also i was missing a dll “stlport_vc7146.dll” i’ve downloaded it froma random website, don’t know wich package is related to.

  19. I get scripterror on line 8??? While trying to quene

    Setmemorymax(1024)
    SetMTMode(2,7)
    PluginPath = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\”
    LoadPlugin(PluginPath+”mvtools2.dll”)
    LoadPlugin(PluginPath+”RemoveGrainSSE3.dll”)
    Import(PluginPath+”InterFrame.avsi”)
    LoadPlugin(“C:\Program Files (x86)\Haali\MatroskaSplitter\avss.dll”)
    dss2(“D:\Video\Video.mkv”, fps=23.976).AssumeFPS(24000,1001).ConvertToYV12()
    #deinterlace
    #crop
    #denoise
    #resize
    InterFrame(FlowPath=PluginPath, GPU=true)

  20. @Daniel: What is the error?

  21. Hello!

    This script is marveluos! Though u need fast system if you watch many movies πŸ˜€
    I encoded many 25 FPS movies to 50 Hz and it plays very smooth on 50 Hz on LCD monitor (Samsung P2450H)
    But that can’t be said for 29.97 FPS encoded to 59.94 FPS no matter what refresh rate i use (59/60/50).
    I am sure it should play smooth on 59 Hz but there is still constant stutter.

    GPU is Nvidia GeForce 470.

    Checked 50FPS smoothness again and this 60 FPS video (59.94 if we’re correct) just isn’t the same.
    Something wrong with encoding? Script is quality preset (no GPU load encode), medium preset and 16.0 in encoder settings.

    Also when i encode with GPU help i don’t see any improvement nor higher GPU usage (2%)

    Thanky You!

    As for user @Daniel:

    I had the same queue issue. Renamed the output as the input was in same format. I hope it helps.

  22. @Sssaga: 25 to 50 should be exactly the same as 29.97 to 59.94. My guess is that the 29.97 file has variable framerate

  23. Hi, I get the following error:

    AviSynth script error – unable to load RemoveGrainSSE3.dll
    error 0x7e, line 5

    How do I go about fixing this?

    Thanks

  24. I guess that’s the case, yeah.

    Can we get rid of stutter every 40 seconds with 23.976 FPS coverted to 59.94 FPS? It’s smooth on both 59Hz and 60Hz but i can still notice stutter. Even checked with ”Display stats” in MPC πŸ˜›

    Overall it’s tremendous improvement in experience of watching movies πŸ™‚

    Thank You for your efforts!

  25. @suplee: Is the file RemoveGrainSSE3.dll in the same folder as mvtools2.dll?

    @Sssaga: There is no stutter for me with 23.976 to 59.94. If you could upload an example of what you mean that would be great, preferably with a sample of the original clip as well so I can try to reproduce the error.

  26. Hey, I forgot that step to copy the tools folder.
    It seems to work fine except for some avi files.

    Another question, is there a way to mux into MP4 file type so I can edit the id tag?

  27. @suplee: Sure, just select “MP4” in the “File format” section on the main MeGUI window πŸ™‚

  28. Just noticing that I cannot add the original avi file to mkvmerge to load audio from it. Is this some sort of a codec issue?

  29. Actually, not an avi file. It’s a wmv file type that I cannot load to mkvmerge to get audio.

    For the ones that I successfully muxed through mkvmerge, I cannot edit the ID-tag for some reason. I did rename as mp4 files before muxing in mkvmerge. Any thoughts?

  30. My biggest problem is with 29.97->59.94 at 59/60 Hz so here are the links of:
    – original … http://www.zshare.net/video/99118037f38055e3
    – encoded … http://www.zshare.net/download/99118094e9e465a0

    I cut with Xilisoft (demo; AVS cutter doesnt find any video) so the bitrate is changed (doubled, don’t know why…) but ”smoothness” is the same.

    I tried with other movie with same FPS and it also stutters all the time (constant stutter-just smoother, lol)

  31. @suplee: Yeah, wmv is a hard format to deal with. You can try to use the MeGUI File Indexer or HD Streams Extractor to get the audio out.
    As for MKVMerge, I’m not sure if it can produce valid MP4 files, I have never tried to do it. You may need to use another program for that.

  32. @Sssaga: The problem with that clip is that the original is incorrectly encoded. If you go frame by frame you will see that every 5th frame is a duplicate. The person who encoded it should have removed the duplicate frames to make it 23.976fps.

    You can fix it by using TIVTC functions in your script, so it would be like this:

    Setmemorymax(1024)
    SetMTMode(2,0)
    PluginPath = "C:\Program Files\MeGUI\tools\avisynth_plugin\"
    LoadPlugin(PluginPath+"mvtools2.dll")
    LoadPlugin(PluginPath+"RemoveGrainSSE3.dll")
    LoadPlugin(PluginPath+"TIVTC.dll")
    Import(PluginPath+"InterFrame.avsi")
    <input>.ConvertToYV12()
    tfm()
    TDecimate(mode=1)
    InterFrame(FlowPath=PluginPath)

    And get the extra DLL from http://bengal.missouri.edu/~kes25c/TIVTCv105.zip

  33. That works, BIG thanks!

    Could i be able to let’s say do a rip from DVD/HD to DVDRip/BRRip with this program so that the bitrate would be smaller and it would go down from 4.7 to 1.37 as most DVDRips are.
    What should i change in script to do that? Can it be done?

    Thanks πŸ™‚

  34. Sure, MeGUI is useful for that. It has a bitrate calculator to estimate filesize.
    You should know though that video releases are no longer restriced to filesize. The release groups changed the rules last year, so now they just use quality.
    So I would suggest in Step 11 of this guide, try using Quality: 23 (the default setting) and see if you like that filesize. If it’s too small, lower the quality number (lower = better quality).

  35. What has changed in latest 25/02/2012 script ? Are you using older libflowgpu.dll now?

  36. @dzid_: I changed the SetMTMode values, plus I will be releasing a new version of InterFrame later today

  37. Please help me, it works perfect, but its very slow, 1,5 GB mkv.file 720p >>> 4 HOURS. WTF ??

    my system >
    3GB RAM
    INTEL PENTIUM DUAL CPU; T2390 @ 1,86 GHz 1,87 GHz.
    modell >
    ASUS Notebook M70Sa/M70Sr/X71Sa Series
    grafic > i think 265MB

    I have Splash Pro Ex, but this Effect is better !!

    can i make this faster ??? please help me !

  38. @zero34: In Step 11, in the x264 configuration window, put the Preset slider all the way to the left so it is on “Ultra Fast”.

  39. I’ve already made​​, without “ultra fast” it would be even slower.
    how long does it take with you on a 720p video 1.5GB normal ??

  40. i use PAL not NTSC im living in Vienna, maybe that’s the problem ??

  41. @zero34: 720p 44min video takes me about 30 minutes. It would be faster if I used Ultra Fast slider, but I just use Medium.
    Your CPU is quite slow.

  42. what I could do? I can change Setmemorymax(1024) to 2048, or ?
    and what is right for me at SetMTMode (3) ? i use 4

  43. @zero34: SetMemoryMax doesn’t affect speed, only stability. I think you just need new hardware sorry!

  44. @SubJunk
    Or a new TV, this is my LCD 32LD450.
    Is there currently a receiver whit USB, DVB-S,T and C that can do that ?? I must buy a new TV, unless.
    sorry for my english

  45. my extra setup of prefer dss2 over directshowsource is grayed out i can’t click it
    what should i do ? i already updated every software in the description.

  46. Nevermind i got it… now i just have to figured out my missing plugins such as mvtools2.dll

  47. It doesn’t properly work on HDTV materials ripped in 1080i and 25fps.
    Is this script for progressive input only?…

  48. @Gaspar: This script doesn’t deinterlace, you will need to run it through a deinterlacing script beforehand

  49. hi, thank you for the new version 2, i want to try it but it keeps giving me error, would it be possible to write down the complete exact code for version 2 like you had it for the original one in the guide? i put this and keep giving me error:

    Setmemorymax(1024)
    SetMTMode(2,4)
    PluginPath = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin”
    LoadPlugin = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\mvtools2.dll”)
    LoadPlugin = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\RemoveGrainSSE3.dll”)
    Import = “C:\Program Files (x86)\MeGUI\tools\avisynth_plugin\InterFrame2.avsi”)
    .ConvertToYV12()
    SetMTMode(2)

    InterFrame(FlowPath=PluginPath)

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2023 Spirton

Theme by Anders NorénUp ↑