00:47 | rton | left the channel | |
02:07 | futarisIRCcloud | joined the channel | |
02:47 | slikdigit | joined the channel | |
03:10 | slikdigit | left the channel | |
03:12 | slikdigit | joined the channel | |
03:20 | slikdigit | left the channel | |
03:20 | slikdigit | joined the channel | |
03:24 | slikdigit_ | joined the channel | |
03:28 | slikdigit | left the channel | |
03:28 | slikdigit_ | changed nick to: slikdigit
| |
05:42 | slikdigit | left the channel | |
05:47 | supragya | joined the channel | |
05:47 | supragya | left the channel | |
06:00 | iti | joined the channel | |
06:01 | iti | left the channel | |
06:04 | Shreesh | joined the channel | |
06:05 | Shreesh | left the channel | |
07:16 | niemand | joined the channel | |
07:26 | futarisIRCcloud | left the channel | |
07:31 | TofuLynx | joined the channel | |
07:45 | supragyaraj | joined the channel | |
07:50 | supragyaraj | left the channel | |
07:56 | se6astian|away | changed nick to: se6astian
| |
08:01 | TofuLynx | left the channel | |
08:30 | TofuLynx | joined the channel | |
08:40 | TofuLynx | Good Morning Everyone! :)
| |
08:44 | niemand | left the channel | |
09:01 | Bertl_zZ | changed nick to: Bertl_oO
| |
09:04 | TofuLynx | left the channel | |
09:11 | TofuLynx | joined the channel | |
09:17 | DrLuke | Morning!
| |
09:54 | futarisIRCcloud | joined the channel | |
11:04 | TofuLynx | left the channel | |
11:21 | TofuLynx | joined the channel | |
12:11 | supragyaraj | joined the channel | |
12:11 | supragyaraj | Hi Bertl_oO, what does oO mean?
| |
12:11 | TofuLynx | what is a interleaved array?, in processing test
| |
12:11 | TofuLynx | Hey supragya!
| |
12:12 | supragyaraj | hey TofuLynx
| |
12:14 | supragyaraj | interleaved means criss crossed, something like raw file given to us... however unsure of the context. Can you point me where you found it?
| |
12:15 | TofuLynx | In the processingTest source files
| |
12:15 | TofuLynx | go to the ProcessingPresenter.cpp
| |
12:15 | TofuLynx | it's the file responsible for the load, debayer and conversion of a image
| |
12:16 | supragyaraj | see line 64 on same file
| |
12:16 | supragyaraj | there RGB file is flattened to a pattern of LCT_RGB
| |
12:17 | supragyaraj | that is interleaving
| |
12:17 | TofuLynx | flattened?
| |
12:17 | TofuLynx | hmm
| |
12:17 | TofuLynx | you mean
| |
12:17 | TofuLynx | putting it in a unidimensional array?
| |
12:17 | supragyaraj | yeah
| |
12:17 | TofuLynx | makes sense
| |
12:18 | supragyaraj | you did it yourself in your code... i dunno why you ask this :)
| |
12:18 | TofuLynx | yeah I didnt know the term xD
| |
12:18 | TofuLynx | hmm
| |
12:18 | TofuLynx | and then SetThumbnail creates a thumbnail from it
| |
12:18 | supragyaraj | i guess so
| |
12:18 | TofuLynx | Ok! Thanks :P
| |
12:19 | supragyaraj | TofuLynx: any knowlege of what IAllocator is?
| |
12:19 | supragyaraj | was going to ask BAndiT once he is online
| |
12:19 | supragyaraj | or where is header related to FileFormat
| |
12:20 | TofuLynx | IAllocator is the StaticAllocator
| |
12:20 | BAndiT1983_ | joined the channel | |
12:20 | TofuLynx | go to memory folder
| |
12:20 | TofuLynx | you can see IAllocator in StaticAllocator.h
| |
12:20 | supragyaraj | BAndiT1983_ hi
| |
12:20 | BAndiT1983_ | IAllocator is an interface for allocators
| |
12:20 | BAndiT1983_ | hi
| |
12:20 | BAndiT1983_ | seen the log, so joined to answer questions
| |
12:21 | BAndiT1983_ | interleaved is RGBRGBRGB....
| |
12:21 | supragyaraj | i was successful in writing a console app
| |
12:21 | supragyaraj | however static linked
| |
12:21 | BAndiT1983_ | very good, what does it do at the moment?
| |
12:21 | TofuLynx | It's not in the guidelines, but I guess everything that starts with I is a Interface
| |
12:21 | BAndiT1983_ | static?
| |
12:21 | BAndiT1983_ | I is also described in the guideline ;) second line
| |
12:21 | supragyaraj | i dunno, used this
| |
12:21 | supragyaraj | g++ -Wall -I Source/OCcore/ -I build/exports -L lib/libOCcore.so interact.cpp Source/OCcore/Image/*.cpp Source/OCcore/Log/*.cpp -pthread -fopenmp
| |
12:21 | BAndiT1983_ | seems like dynamic linking, see .so
| |
12:21 | supragyaraj | i used the so... so is it dynamic?
| |
12:22 | supragyaraj | it does not do much
| |
12:22 | BAndiT1983_ | yep, static files have .a as extension
| |
12:22 | TofuLynx | ah sorry xD
| |
12:22 | supragyaraj | this is snippet of most important lines that rand
| |
12:22 | supragyaraj | OC::DataProvider::ImageProvider prv;
| |
12:22 | supragyaraj | prv.ReadBinaryFile(filename, filelength, fileData);
| |
12:22 | supragyaraj | so these work
| |
12:22 | supragyaraj | std::cout<<"File length: "<<filelength<<std::endl;
| |
12:22 | supragyaraj | std::cout<<"File data(initial bytes): "<<(int)fileData[0]<<" "<<(int)fileData[1]<<" "<<(int)fileData[2]<<std::endl;
| |
12:23 | TofuLynx | hmm
| |
12:23 | TofuLynx | What is an interface?
| |
12:23 | supragyaraj | however these had problems
| |
12:23 | supragyaraj | OC::DataProvider::OCImage ocimg;
| |
12:23 | supragyaraj | OC::DataProvider::OCImage FileFormat fmt;
| |
12:23 | supragyaraj | prv.Load(filename, fmt.DNG, ocimg, NULL);
| |
12:23 | supragyaraj | declaration:
| |
12:23 | supragyaraj | void ImageProvider::Load(std::string fileName, FileFormat format, OCImage& image, IAllocator& allocator)
| |
12:23 | BAndiT1983_ | an interface is a special class which describes the methods inherited classes have to fill in
| |
12:23 | supragyaraj | My question, what is OCImage and IAllocator and how to use them in the code
| |
12:24 | BAndiT1983_ | it has no own implementation usually, but i wouldn't restrict it hard in C++
| |
12:24 | BAndiT1983_ | IAllocator is og no use as it is, there is a class which derives from it and implements the logic
| |
12:24 | BAndiT1983_ | OCImage contains loaded image data
| |
12:24 | BAndiT1983_ | all the stuff is in ProcessingTest
| |
12:25 | supragyaraj | so NULL seems right?
| |
12:25 | BAndiT1983_ | grab a DNG file, adjust the path in ProcessingPresenter and watch the output, maybe go with debugger through the flow
| |
12:25 | BAndiT1983_ | is the last parameter used in Load() at the moment?
| |
12:26 | supragyaraj | this: prv.Load(filename, fmt.DNG, ocimg, NULL);
| |
12:26 | supragyaraj | and where is the header for OCImage?
| |
12:26 | BAndiT1983_ | http://clean-cpp.org/interfaces-done-right/
| |
12:26 | BAndiT1983_ | it should be in OCcore/Images
| |
12:26 | mayank | joined the channel | |
12:27 | supragyaraj | OC::DataProvider::OCImage ocimg; doesn't seem to work for me
| |
12:27 | supragyaraj | hi mayank!
| |
12:27 | mayank | hii
| |
12:28 | TofuLynx | Bandit, OC contains OCBackup, OCLauncher, right?
| |
12:28 | TofuLynx | ProcessingTest is used by what?
| |
12:28 | TofuLynx | Or is it standalone?
| |
12:28 | BAndiT1983_ | OC -> OCcore, OCui, OCLauncher, OCBackup, ProcessingTest
| |
12:29 | BAndiT1983_ | will move old projects to archive folder soon
| |
12:29 | supragyaraj | BAndiT1983_, the problem is that I am unable to instantiate the class OCImage, see above
| |
12:29 | BAndiT1983_ | ProcessingTest is a playground for visual processing
| |
12:29 | BAndiT1983_ | also a test ground for new UI things
| |
12:29 | TofuLynx | hmm so you test and deploy things there?
| |
12:29 | BAndiT1983_ | so it changes sometimes a lot, code aded and removed
| |
12:30 | BAndiT1983_ | usually yes
| |
12:30 | supragyaraj | also where is declaration of FileFormat
| |
12:30 | BAndiT1983_ | which IDE do you use?
| |
12:30 | supragyaraj | atom mostly
| |
12:30 | BAndiT1983_ | can you ctr+click on the name of the structure?
| |
12:31 | BAndiT1983_ | used atom before, but was too slow, switched fully to vscode
| |
12:31 | supragyaraj | sometime it works, other times it shows no definition
| |
12:31 | supragyaraj | and now it showed me it....
| |
12:32 | supragyaraj | got it...
| |
12:33 | supragyaraj | mayank: here for GSoC?
| |
12:33 | futarisIRCcloud | left the channel | |
12:34 | supragyaraj | BAndiT1983_ : why are there two of you on this channel ?
| |
12:35 | BAndiT1983_ | logged in through web chat, other one is the BIP client which logs all the stuff on the apertus channels, so i have the info when i use hexchat
| |
12:35 | BAndiT1983_ | so when i log off it automatically changes to |away
| |
12:35 | supragyaraj | that aids in irc.apertus.org logs?
| |
12:35 | BAndiT1983_ | it's a special setup by apertus guys
| |
12:36 | BAndiT1983_ | logs are done by server
| |
12:36 | supragyaraj | so it's personal thing
| |
12:36 | BAndiT1983_ | it's about getting messages, even private ones, when you are away, at next login you get them
| |
12:37 | BAndiT1983_ | if you join gsoc, then you could also get this, in case there are urgent questions and the mentor is not there
| |
12:37 | TofuLynx | even private ones
| |
12:37 | TofuLynx | hmmmm
| |
12:37 | supragyaraj | nice to have
| |
12:39 | TofuLynx | left the channel | |
12:39 | mayank | left the channel | |
12:42 | TofuLynx | joined the channel | |
12:43 | TofuLynx | Back
| |
12:46 | TofuLynx | Hmm
| |
12:46 | TofuLynx | Bandit
| |
12:46 | BAndiT1983_ | yes?
| |
12:47 | TofuLynx | If it was to be some sort of sequencer, you would have to set the thumbnail in a cycle?
| |
12:47 | TofuLynx | Image sequencer*
| |
12:47 | BAndiT1983_ | thumbnail is only for thumbnail view
| |
12:47 | TofuLynx | Ah
| |
12:47 | TofuLynx | Where is the displayerm
| |
12:47 | TofuLynx | ?
| |
12:47 | BAndiT1983_ | like here -> https://lab.apertus.org/F1460
| |
12:47 | BAndiT1983_ | ?
| |
12:48 | TofuLynx | If I wanted to display a full size of the image
| |
12:48 | TofuLynx | Where and how would it be done?
| |
12:48 | supragyaraj | any DNG files you recommend, BAndiT1983_?
| |
12:49 | BAndiT1983_ | same suggestion like everyday -> ProcessingTest
| |
12:49 | BAndiT1983_ | posted a link to apertus.org yesterday
| |
12:49 | supragyaraj | let me have a look
| |
12:49 | BAndiT1983_ | https://www.apertus.org/axiom-beta-uhd-raw-mode-explained-article-may-2016
| |
12:49 | BAndiT1983_ | at the bottom are 5 dng files and MOV clips
| |
12:50 | BAndiT1983_ | another link from yesterday -> https://nofilmschool.com/2012/08/blackmagic-john-brawley-release-raw-cinema-camera-files-for-download
| |
12:50 | BAndiT1983_ | there you will find sequences
| |
12:50 | TofuLynx | Yeah but I don't remember seeing a displayer of the image on the processing test
| |
12:50 | BAndiT1983_ | could not find bigger collection, but have a link to that somewhere
| |
12:50 | supragyaraj | MLV?
| |
12:50 | BAndiT1983_ | have you tried to adjust path?
| |
12:51 | BAndiT1983_ | https://www.magiclantern.fm/forum/index.php?topic=11899.0
| |
12:51 | supragyaraj | have you tried to adjust path? - me or TofuLynx?
| |
12:51 | BAndiT1983_ | TofuLynx, but if you want to see DNG in ProcessingTest, then you can try that too
| |
12:52 | BAndiT1983_ | you can drag the image, zoom with mousewheel
| |
12:52 | TofuLynx | Uh
| |
12:52 | TofuLynx | I still couldn't put images on the processing test
| |
12:52 | BAndiT1983_ | will test it at evening, if you can't get it to work
| |
12:52 | TofuLynx | Will have to try it later
| |
12:52 | BAndiT1983_ | you have to put the image in the build folder, if i'm not mistaken
| |
12:52 | BAndiT1983_ | next to the executable or use full path
| |
12:54 | supragyaraj | can you explain this?
| |
12:54 | supragyaraj | 2018-02-27 18:23:17,636 FATAL CRASH HANDLED; Application has crashed due to [SIGSEGV] signal
| |
12:54 | supragyaraj | 2018-02-27 18:23:17,637 WARN Aborting application. Reason: Fatal log at [Source/OCcore/Log/easylogging++.h:5621]
| |
12:54 | supragyaraj | Aborted (core dumped)
| |
12:54 | BAndiT1983_ | was a log written in /Logs folder?
| |
12:54 | BAndiT1983_ | but seems like there was memory corruption, you should try to debug
| |
12:55 | BAndiT1983_ | try to use QtCreator, otherwise it's not easy
| |
12:56 | supragyaraj | i dont know how to go about with QtCreator especially with no CMake support on the app i am making
| |
12:57 | BAndiT1983_ | qtcreator is supporting multiple things, not only cmake
| |
12:58 | supragyaraj | seems like problem with static allocator
| |
12:59 | supragyaraj | okay... allocating more memory to Poolallocator worked for me
| |
12:59 | supragyaraj | strange
| |
13:00 | BAndiT1983_ | we should evaluate the lib i've posted yesterday, seems like it follows STL which should be ok
| |
13:00 | BAndiT1983_ | but only the pool allocator part, as the frames have same size, usually
| |
13:01 | supragyaraj | BAndiT1983_ : tell me, does the full system rely heavily on static allocator?
| |
13:01 | supragyaraj | seems like it does
| |
13:01 | BAndiT1983_ | it was planned that the frame data should be stored in pool allocator pages
| |
13:01 | BAndiT1983_ | for performance reasons
| |
13:03 | rton | joined the channel | |
13:09 | supragyaraj | [we should evaluate the lib i've posted yesterday] - don't really remember
| |
13:10 | BAndiT1983_ | https://github.com/mtrebi/memory-allocators#pool-allocator
| |
13:10 | supragyaraj | BAndiT1983_ : trivial thing but seems like I was unnecesarily adding -L .so file... seems like linking is failing if i don't include the CPP files along with .h during compilation
| |
13:10 | supragyaraj | so static linking for now
| |
13:11 | BAndiT1983_ | static linking is something different than adding source folders
| |
13:11 | BAndiT1983_ | static linking is when you add .a library
| |
13:11 | BAndiT1983_ | the code is compiled into there and chunks or whole lib is compiled into your application
| |
13:12 | supragyaraj | what do you say about this
| |
13:12 | supragyaraj | g++ -Wall -I Source/OCcore/ -I build/exports interact.cpp Source/OCcore/Image/*.cpp Source/OCcore/Log/*.cpp Source/OCcore/Memory/*.cpp -pthread -fopenmp
| |
13:13 | BAndiT1983_ | you are grabbing parts of OCcore, hope it's sufficient
| |
13:17 | supragyaraj | okay BAndiT1983_ : i am able to now get RGB data back from OCcore through my console app
| |
13:17 | supragyaraj | for a file that I asked it to process
| |
13:19 | BAndiT1983_ | very good
| |
13:20 | supragyaraj | Now what should i do
| |
13:20 | supragyaraj | with lodePNG perhaps I can save it to PNG...
| |
13:21 | supragyaraj | but not needed I guess
| |
13:21 | supragyaraj | let me check anyhow
| |
13:21 | BAndiT1983_ | you can do it as personal excercise
| |
13:21 | BAndiT1983_ | so you learn the environment better
| |
13:21 | BAndiT1983_ | afterwards you can try to setup basic VS plugin
| |
13:21 | BAndiT1983_ | have you already played around with VS?
| |
13:21 | supragyaraj | no.
| |
13:22 | BAndiT1983_ | tried to create a script?
| |
13:22 | supragyaraj | could not convince myself with VS as of now
| |
13:22 | BAndiT1983_ | you should do it first, before starting the plugin
| |
13:22 | supragyaraj | where should i serve the frames
| |
13:22 | BAndiT1983_ | i will repeat my advice from yesterday: grab a video file, create VS script for frme serving, try to open the container in a video editor
| |
13:23 | supragyaraj | let me try VS for myself
| |
13:23 | supragyaraj | then I can ask some meaningful questions
| |
13:27 | BAndiT1983_ | http://avisynth.nl/index.php/FAQ_frameserving#How_do_I_use_AviSynth_as_a_frameserver.3F
| |
13:27 | BAndiT1983_ | is for the predecessor, but applies more or less to VS also
| |
13:28 | se6astian | BAndiT1983: new qemu commit by medicine: https://github.com/apertus-open-source-cinema/axiom-beta-qemu/pull/10
| |
13:29 | supragyaraj | yeah he corrected checksum, seems like it was wrong earlier
| |
13:29 | BAndiT1983_ | he has also replied in a longer e-mail, very nice from him
| |
13:29 | BAndiT1983_ | could somebody test his changes? TofuLynx, supragyaraj?
| |
13:29 | supragyaraj | I will do it today
| |
13:29 | BAndiT1983_ | thansk
| |
13:29 | BAndiT1983_ | *thanks
| |
13:30 | supragyaraj | after I come back from run :)
| |
13:30 | supragyaraj | he has also replied in a longer e-mail - anything I should know about?
| |
13:32 | BAndiT1983_ | he jsut explained what he has done, if you want to know details, then i can copy the content to you in your private channel
| |
13:32 | BAndiT1983_ | *just
| |
13:33 | supragyaraj | if you could sure, or forward the mail (*email address removed*) :)
| |
13:34 | BAndiT1983_ | done
| |
13:36 | supragyaraj | Thank you BAndiT1983_ !!
| |
13:36 | BAndiT1983_ | no problem
| |
13:43 | TofuLynx | What kind of commit was it? To fix kernel 4.9?
| |
13:44 | supragyaraj | to fix the build system
| |
13:44 | supragyaraj | scripts
| |
13:45 | supragyaraj | see link and diffs above: https://github.com/apertus-open-source-cinema/axiom-beta-qemu/pull/10
| |
13:51 | supragyaraj | left the channel | |
13:53 | supragyaraj | joined the channel | |
13:56 | se6astian | changed nick to: se6astian|away
| |
13:59 | TofuLynx | left the channel | |
14:02 | sebix | joined the channel | |
14:02 | sebix | left the channel | |
14:02 | sebix | joined the channel | |
14:16 | supragyaraj | left the channel | |
14:19 | supragya | joined the channel | |
14:24 | TofuLynx | joined the channel | |
14:25 | supragya | BAndiT1983_: A small correction with the new scriptsby medicineYeh: change ./guest-images/dev/microzed-image-1.3/build.sh to ./guest-images/dev/microzed-image-1.4/build.sh
| |
14:25 | supragya | in README
| |
14:27 | supragya | could have made a PR but too small a fix to be a PR
| |
14:28 | TofuLynx | left the channel | |
14:32 | BAndiT1983_ | supragya: just create a PR, even if small, so it'S documented
| |
14:36 | supragya | sure, as you say
| |
14:36 | supragya | will do in a few hours
| |
14:39 | BAndiT1983_ | no problem, cannot fix it myself, still at work
| |
14:51 | LordVan | joined the channel | |
14:58 | LordVan | left the channel | |
15:03 | TofuLynx | joined the channel | |
15:04 | se6astian|away | changed nick to: se6astian
| |
15:18 | BAndiT1983_ | left the channel | |
15:20 | arpu | left the channel | |
15:50 | supragya | BAndiT1983: i am refraining to add the correction as a PR as the build system still has issues to be solved.
| |
15:51 | supragya | Let MedicineYeh do some magic and then I will add to it later.
| |
15:51 | supragya | off to bed...
| |
15:51 | supragya | left the channel | |
15:53 | slikdigit | joined the channel | |
16:03 | TofuLynx | left the channel | |
16:04 | Rex0r | left the channel | |
16:05 | Rex0r | joined the channel | |
16:14 | TofuLynx | joined the channel | |
16:23 | BAndiT1983|away | changed nick to: BAndiT1983
| |
16:26 | TofuLynx | bandit
| |
16:26 | BAndiT1983 | yes?
| |
16:27 | TofuLynx | a image provider loads the image and then stores it?
| |
16:27 | BAndiT1983 | yes
| |
16:29 | TofuLynx | and then it passes the image data to the image Loader?
| |
16:29 | BAndiT1983 | let me check the code
| |
16:30 | BAndiT1983 | imageprovider loads file content as-is and look, according to extension, which handler should process it further
| |
16:30 | BAndiT1983 | handler = image loader
| |
16:31 | BAndiT1983 | *looks
| |
16:32 | TofuLynx | where is the extension checker?
| |
16:33 | BAndiT1983 | check constructor of image provider, there the loaders are registered
| |
16:33 | TofuLynx | the .insert things?
| |
16:33 | BAndiT1983 | yes, it inserts handlers into a map
| |
16:34 | TofuLynx | and associates the extension to its respective handler
| |
16:34 | BAndiT1983 | finding extension is not done automatically yet, but rather simple to implement
| |
16:34 | BAndiT1983 | yes
| |
16:34 | BAndiT1983 | from line 70 is the search and execution of loader
| |
16:34 | TofuLynx | the "auto" thingy?
| |
16:34 | TofuLynx | auto it
| |
16:35 | TofuLynx | what is auto?
| |
16:35 | BAndiT1983 | yes, it means auto iterator, auto is a new keyword in c++11
| |
16:35 | TofuLynx | will check it
| |
16:35 | BAndiT1983 | it gets the type automatically, using it when want to avoid writing long STL templated types
| |
16:36 | TofuLynx | STL?
| |
16:36 | TofuLynx | it reminds me of python
| |
16:36 | TofuLynx | almost
| |
16:37 | BAndiT1983 | stl -> standard template library, is included in C++ for very long time, has many modules, check it out on google
| |
16:37 | BAndiT1983 | had hard time to get some special things in python going, because they have no type and funny syntax to implement
| |
16:39 | TofuLynx | yeah I sorta dislike python for not having types
| |
16:56 | TofuLynx | it->second.get();
| |
16:56 | TofuLynx | what does this do?
| |
16:57 | BAndiT1983 | it gets the handler from the map
| |
16:57 | BAndiT1983 | look for c++ unordered_map
| |
17:00 | TofuLynx | it's like python's dictionaries?
| |
17:01 | BAndiT1983 | don't know python that much
| |
17:01 | TofuLynx | but I got it
| |
17:07 | TofuLynx | ((data[0] << 8 | data[1]) == 0x4d4d
| |
17:07 | TofuLynx | I dont understand this
| |
17:07 | BAndiT1983 | where is it?
| |
17:09 | TofuLynx | TIFFLoader
| |
17:09 | TofuLynx | I think it's to check if the machine is little or small endian
| |
17:09 | BAndiT1983 | yes
| |
17:10 | TofuLynx | but I dont understand how it works
| |
17:13 | BAndiT1983 | it concatenats first 2 bytes and checks against the letters
| |
17:14 | BAndiT1983 | 4d is M
| |
17:14 | BAndiT1983 | http://www.fileformat.info/format/tiff/corion.htm
| |
17:14 | TofuLynx | Ah!
| |
17:15 | TofuLynx | Understood
| |
17:23 | TofuLynx | CreateTIFFTagMap
| |
17:23 | TofuLynx | this is related to the tiff format too?
| |
17:24 | BAndiT1983 | it gets all the packages in the file
| |
17:25 | BAndiT1983 | seems like it was just used for debugging
| |
17:26 | BAndiT1983 | where is the method residing? don't have an IDE on at the moment
| |
17:26 | TofuLynx | it's on TIFFLoader
| |
17:26 | TofuLynx | ::Load
| |
17:26 | BAndiT1983 | i mean the real method, not the call
| |
17:26 | TofuLynx | ah sorry
| |
17:26 | TofuLynx | hmm
| |
17:26 | BAndiT1983 | but tagnames is not used, so i suppose really debugging
| |
17:27 | BAndiT1983 | *for debugging
| |
17:27 | BAndiT1983 | it's there -> https://github.com/apertus-open-source-cinema/opencine/blob/e48ff3c781da233a025efc5ecaad4c972895c021/Source/OCcore/Image/ImageDefines.h
| |
17:27 | BAndiT1983 | so nothing special, can be thrown out
| |
17:28 | TofuLynx | ok!
| |
17:28 | TofuLynx | is this debugging too? unordered_map<int, std::function<void(TIFFTag&)>> varMap;
| |
17:29 | TofuLynx | nevermind
| |
17:31 | TofuLynx | hmm
| |
17:31 | TofuLynx | tiff is based on tags?
| |
17:33 | TofuLynx | huh
| |
17:33 | TofuLynx | that's why it's called tagged image file format
| |
17:33 | TofuLynx | wow
| |
17:33 | TofuLynx | makes sense xD
| |
17:44 | TofuLynx | / TODO: Replace hardcoded image format value
| |
17:44 | TofuLynx | ImageFormat::Integer12
| |
17:44 | TofuLynx | ImageFormat is, for example, integer12 or integer14, etc?
| |
17:50 | TofuLynx | left the channel | |
17:52 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
17:52 | BAndiT1983|away | changed nick to: BAndiT1983
| |
17:52 | BAndiT1983 | should have called it data format or similar
| |
18:09 | TofuLynx | joined the channel | |
18:10 | TofuLynx | yeah it kinda of confunded me
| |
18:10 | TofuLynx | confused*
| |
18:16 | TofuLynx | As I can see
| |
18:16 | TofuLynx | OCui supports themes and widgets
| |
18:16 | TofuLynx | right?
| |
18:19 | BAndiT1983 | of course
| |
18:19 | BAndiT1983 | OCBackup uses partially also QML
| |
18:20 | BAndiT1983 | for drive and destination lists, also for thumbnail view in the middle
| |
18:20 | BAndiT1983 | faster to implement through declarative language, than writing out in C++
| |
18:20 | TofuLynx | yeah I understand
| |
18:21 | TofuLynx | hmm, I know some applications that automatically use system-based themes
| |
18:21 | TofuLynx | why isn't the case here? It's easier this way?
| |
18:21 | BAndiT1983 | theme is done through QSS, a sort of CSS
| |
18:22 | BAndiT1983 | i prefer dark applications for visual work
| |
18:22 | TofuLynx | Yes, but arent themes easily changeable?
| |
18:22 | BAndiT1983 | yes, they are, just look through OCui, it's not that big
| |
18:23 | TofuLynx | yeah
| |
18:23 | TofuLynx | Hmm
| |
18:23 | BAndiT1983 | but theming is the least problem while writing an application, the solid base is
| |
18:23 | TofuLynx | currentrly, OC Launcher does nothing, right?
| |
18:23 | BAndiT1983 | it has some code in it, don't remember if the JSON file is used at the moment, but i tihnk that the buttons are configured through it
| |
18:25 | BAndiT1983 | looked through code, yes JSON file is used and buttons created according to it, also images bound
| |
18:26 | TofuLynx | yes, but the buttons do something?
| |
18:28 | BAndiT1983 | not yet
| |
18:29 | BAndiT1983 | presenter can be extended rather easily, would connect to some click event in view and react to index, by calling the path from array and starting the process
| |
18:29 | BAndiT1983 | rather simple stuff
| |
18:29 | Kjetil | (tm)
| |
18:30 | BAndiT1983 | ?
| |
18:31 | TofuLynx | OCLauncher is the planned OpenCine launcher, right?
| |
18:32 | BAndiT1983 | yes, as central point to start different modules
| |
18:32 | TofuLynx | Ok!
| |
18:32 | TofuLynx | loved the handwritten OC image xD
| |
18:33 | BAndiT1983 | if you have only Paint sometimes....
| |
18:34 | BAndiT1983 | there are some ideas for logos, also for ones of modules, in the lab
| |
18:34 | BAndiT1983 | people like drawing more than writing software
| |
18:34 | BAndiT1983 | https://lab.apertus.org/T341
| |
18:35 | TofuLynx | Ok :P
| |
18:36 | aombk | left the channel | |
18:36 | TofuLynx | if you need any help with a quick design or something about it, i have some experience on it.
| |
18:36 | TofuLynx | just call me
| |
18:36 | aombk | joined the channel | |
18:39 | TofuLynx | hmm
| |
18:39 | BAndiT1983 | ?
| |
18:39 | TofuLynx | is OC Manager a planned module?
| |
18:40 | BAndiT1983 | it was an old one, first the plan was to have multiple stages in one application, like rawtherapee or darktable, but then people demanded separate ones, so different parts of production could use thm independently
| |
18:41 | BAndiT1983 | OCManager is the predecessor of backup, was meant for previewing and rating clips, export list of clips to PDF and so on
| |
18:41 | BAndiT1983 | you can find old screenshots in apertus wiki or lab
| |
18:44 | TofuLynx | left the channel | |
18:45 | TofuLynx | joined the channel | |
18:48 | TofuLynx | Ok! Understood! so the structure of OC is OCui, for the graphical user interfaces, OC Launcher so that user can choose the program from the OC suite, OCBackup is responsible for transfering images from drives to the computer
| |
18:49 | TofuLynx | And then OCProcess?
| |
18:50 | BAndiT1983 | also old, as the name implies, it was meant for processing: debayering, color grading etc.
| |
18:50 | TofuLynx | What is the sucessor?
| |
18:50 | BAndiT1983 | processingtest at the moment ;)
| |
18:51 | TofuLynx | Yeah but won't it get called OCProcess in the finalized state?
| |
18:52 | BAndiT1983 | no, would search for better name then
| |
18:52 | TofuLynx | Makes sense!
| |
18:52 | TofuLynx | Is there any part of the OC structure I have missed?
| |
18:52 | BAndiT1983 | don't think so
| |
18:53 | TofuLynx | Ok! :)
| |
18:54 | TofuLynx | Just making sure I understand the goals of OpenCine and the planned ways
| |
18:56 | TofuLynx | Have you moved yet?
| |
18:57 | BAndiT1983 | ?
| |
18:57 | TofuLynx | To dubai
| |
18:58 | slikdigit | left the channel | |
18:58 | BAndiT1983 | not moving to dubai, moving to frankfurt main
| |
18:58 | TofuLynx | Ah
| |
18:58 | TofuLynx | Uh I had idea it was to Dubai, dunno why
| |
18:58 | BAndiT1983 | will go to dubai for a couple of weeks, but the new plan is not ready yet, my boss needs more time
| |
18:58 | TofuLynx | Ok! Hope the moving goes nice! :)
| |
18:59 | BAndiT1983 | you can't imagine how much of little stuff one gathers over the years and have to decide what should be thrown away or taken to new apartment
| |
19:01 | sebix | left the channel | |
19:01 | BAndiT1983 | but it allows to free the mind
| |
19:02 | TofuLynx | I bet it requires a lot of patience
| |
19:02 | TofuLynx | But yeah, it will do good :)
| |
19:03 | BAndiT1983 | the heart is bleeding sometimes over some things, but if you don't use it for years then it can be removed
| |
19:03 | BAndiT1983 | not everything is thrown away, some stuff donated or sold
| |
19:06 | TofuLynx | I have stored since my first year at school, when I was 7 years old, the books and memoriables and such of stuff. I don't know why I did it, but I simply stored the manuals. And when I had to toss them off It kinda of made me sad
| |
19:06 | TofuLynx | But it freed a lot of space in my house, so yeah, sometimes we just have to be rational
| |
19:07 | BAndiT1983 | especially when the girlfriend is standing behind you, hopefully without a frying pan
| |
19:07 | BAndiT1983 | now the feminists can attack me :D
| |
19:07 | TofuLynx | Ahahahaha
| |
19:07 | TofuLynx | xD
| |
19:07 | TofuLynx | Good laugh
| |
19:07 | BAndiT1983 | but she really bought the pan last weekend
| |
19:07 | TofuLynx | Get ready... If things get serious... xD
| |
19:08 | BAndiT1983 | my luck was, that my induction cooker is not working for alloy pans, so she has to leave it in her old apartment ;)
| |
19:09 | BAndiT1983 | not alloy, aluminium
| |
19:09 | TofuLynx | Oh xD
| |
19:12 | BAndiT1983 | TofuLynx, have you found some area you would prefer to work on?
| |
19:13 | BAndiT1983 | supragya seems to be interested in VS, lathough he should try it first before jumping into the cold water
| |
19:13 | BAndiT1983 | *although
| |
19:13 | TofuLynx | Are you talking about GSoC?
| |
19:14 | BAndiT1983 | gsoc or generally OC, if you are interested to contribute also outside of gsoc
| |
19:14 | TofuLynx | Ok! I'm very interested in the debayering task!
| |
19:15 | TofuLynx | And generally I would like to help with the OC image processing software
| |
19:16 | BAndiT1983 | what is the latest state, have you tried to display image in processingtest? as it would be the right starting point
| |
19:16 | TofuLynx | Haven't tried yet, I'm still trying to understand how processingtest works
| |
19:17 | TofuLynx | Probably will try this night
| |
19:17 | BAndiT1983 | it's easier to discover through starting and debugging
| |
19:17 | TofuLynx | When I start processing test it's just blank
| |
19:18 | BAndiT1983 | let me try it quick
| |
19:18 | TofuLynx | Did you make any recent commit to the master branch?
| |
19:20 | BAndiT1983 | some weeks ago, have removed some obsolete code
| |
19:20 | BAndiT1983 | but it was working then, let me check, as my version is crashing
| |
19:25 | TofuLynx | Ok! :)
| |
19:36 | BAndiT1983 | ah, it's crashing because of my virtual machine
| |
19:36 | BAndiT1983 | opengl init is failing, have to check if 3d is activated
| |
19:36 | g3gg0-afk | joined the channel | |
19:36 | TofuLynx | It uses 3D?
| |
19:37 | BAndiT1983 | it uses opengl for display, simple fragment shader to merge 3x16bit color layers
| |
19:38 | BAndiT1983 | seems like latest virtualbox release is buggy, will get other guest additions
| |
19:45 | TofuLynx | Ok! :) Will have dinner now
| |
19:48 | BAndiT1983 | have a nice meal
| |
19:48 | BAndiT1983 | found the problem which prevents me from testing, it'S virtualbox itself, vmware was always fine with GL3.3, but switched back to VB for other stuff and forgot about shortcomings
| |
19:51 | g3gg0-afk | left the channel | |
19:52 | g3gg0 | joined the channel | |
19:54 | g3gg0 | hi
| |
19:55 | BAndiT1983 | hi
| |
19:58 | TofuLynx | Back
| |
19:58 | TofuLynx | Hey g3gg0!
| |
19:58 | g3gg0 | wb
| |
19:58 | g3gg0 | heyho
| |
19:58 | BAndiT1983 | converting VB VM to vmware
| |
19:59 | TofuLynx | Oh VB doesn't support openGL?
| |
19:59 | BAndiT1983 | hope it isn't totally broken after transfer
| |
19:59 | BAndiT1983 | it supports just 2.1 and that also not very well, if i wouldn't do stuff for apertus, then i would help out in blender or also drivers for VB, like GL one
| |
20:00 | BAndiT1983 | would like to have passthrough for graphics card
| |
20:05 | TofuLynx | Ah! Ok! Makes sense
| |
20:05 | TofuLynx | So how's it going?
| |
20:06 | BAndiT1983 | have to convert again, with another OVF spec
| |
20:06 | BAndiT1983 | have you a log when it is failing?
| |
20:06 | BAndiT1983 | or have you tried to debug it?
| |
20:09 | TofuLynx | Not yet
| |
20:09 | TofuLynx | Where's the log of processing test?
| |
20:09 | BAndiT1983 | either the output in the console or the logs folder in the build folder
| |
20:12 | TofuLynx | Roger that!
| |
20:16 | illwieckz | left the channel | |
20:29 | illwieckz | joined the channel | |
20:51 | TofuLynx | left the channel | |
20:51 | TofuLynx | joined the channel | |
20:57 | TofuLynx | left the channel | |
21:01 | TofuLynx | joined the channel | |
21:02 | TofuLynx | Ok
| |
21:02 | TofuLynx | 2018-02-27 08:41:23,597 ERROR Failed to load file: test_frame.dng (/home/claudio/Source/OpenCine/Source/OCcore/Image/ImageProvider.cpp, 59)
| |
21:02 | TofuLynx | I have to put the file where?
| |
21:03 | TofuLynx | ok! just placed the file on the same folder as processing test
| |
21:03 | TofuLynx | and a image appeared
| |
21:07 | TofuLynx | so it's working I guess
| |
21:09 | TofuLynx | why is the display image grayish?
| |
21:09 | BAndiT1983 | into build folder
| |
21:09 | TofuLynx | and has some color artifacts on the margins
| |
21:09 | BAndiT1983 | no gamma applied, outer sides are not interpolated
| |
21:09 | BAndiT1983 | is it a color image?
| |
21:09 | TofuLynx | yeah it is
| |
21:10 | BAndiT1983 | alright, just no linearization/gamma, that's why it has some whitish tint
| |
21:11 | TofuLynx | and the thumbnail seems Ok
| |
21:11 | TofuLynx | I chose a bad sample dng xD
| |
21:11 | BAndiT1983 | thumbnail was a test, it looks better because of conversion
| |
21:11 | TofuLynx | it's the zombie one
| |
21:12 | BAndiT1983 | you should get the images from FNG sequence link i'Ve posted before
| |
21:12 | BAndiT1983 | the woman in red jacket
| |
21:14 | BAndiT1983 | *DNG sequence
| |
21:14 | TofuLynx | uh
| |
21:14 | TofuLynx | woman in red jacket?
| |
21:15 | BAndiT1983 | 12:50
| |
21:15 | BAndiT1983 | BAndiT1983_
| |
21:15 | BAndiT1983 | another link from yesterday -> https://nofilmschool.com/2012/08/blackmagic-john-brawley-release-raw-cinema-camera-files-for-download
| |
21:15 | TofuLynx | ah
| |
21:15 | BAndiT1983 | this was posted by me at 12:50 today, according to the log time
| |
21:16 | TofuLynx | ugh
| |
21:16 | TofuLynx | 640mb
| |
21:16 | TofuLynx | the zip
| |
21:17 | TofuLynx | downloading
| |
21:17 | BAndiT1983 | should i send you links to several gigabytes of raw data? ;)
| |
21:17 | TofuLynx | when I am in my university, i have 1gbps connection, but when I get home It's 20mbps :(
| |
21:18 | TofuLynx | xD
| |
21:18 | BAndiT1983 | had 11 of 16mbps for years, last year in june finally got 50mbps
| |
21:18 | TofuLynx | wow
| |
21:18 | TofuLynx | I live in a kinda of rural area, so fiber optic hasnt reached here
| |
21:19 | BAndiT1983 | i live in a very countryside area, it's a wonder with 50mbps
| |
21:19 | TofuLynx | but there's a contract that stipulates that portugal has to get 100% fiber optic coverage before 2020, I think
| |
21:19 | TofuLynx | or 2022, dont know
| |
21:20 | TofuLynx | Yeah I understand that
| |
21:20 | TofuLynx | before I was ADSL, so it was around 7mbps
| |
21:20 | TofuLynx | but then I changed to 4G
| |
21:20 | TofuLynx | so it's better, but flutuactes a lot and isnt stable
| |
21:20 | TofuLynx | some days it's 20mbps, other days it's 40mbps
| |
21:21 | BAndiT1983 | VDSL here, but germany is still beyond most countries in europe
| |
21:21 | BAndiT1983 | ADSL was rather unstable, but VDSL is solid
| |
21:21 | TofuLynx | VDSL?
| |
21:21 | TofuLynx | neverd heard
| |
21:21 | BAndiT1983 | could also get 100mbps, but had no use for such a range
| |
21:21 | BAndiT1983 | https://en.wikipedia.org/wiki/VDSL
| |
21:22 | TofuLynx | wow
| |
21:22 | TofuLynx | Never heard about that
| |
21:22 | TofuLynx | I think we jumped from adsl to fiber optic xD
| |
21:22 | BAndiT1983 | telekom is a monopoly, so getting fiber is not that easy
| |
21:23 | BAndiT1983 | will see how it is in the big city
| |
21:23 | TofuLynx | well the problem here is the inverse, there's a law that stipulates that in rural areas, if a company deploys fiber optic, its obligated to rent it to other companies, to avoid monopolies
| |
21:23 | TofuLynx | but because of that... no company does anything
| |
21:24 | TofuLynx | btw
| |
21:24 | TofuLynx | processingtest seems working!
| |
21:24 | TofuLynx | what do you suggest me to do next?
| |
21:24 | BAndiT1983 | telekom is also providing the cables to other companies, but they still try to push DSL through copper wires
| |
21:25 | BAndiT1983 | germany also decided laws which should enable more broadband, but it's like everywhere a mess on the market
| |
21:25 | TofuLynx | yeah..
| |
21:25 | TofuLynx | also interesting fact
| |
21:25 | TofuLynx | in your country the company is telekom
| |
21:25 | TofuLynx | in mine is Portugal Telecom
| |
21:25 | TofuLynx | xD
| |
21:26 | BAndiT1983 | you remember the thing with image preprocessor which reads only available pixels? you could start with that if oyu like
| |
21:26 | BAndiT1983 | i think that a telecom, telekom or similar company exists in almost every country
| |
21:26 | TofuLynx | BayerFramePreProcessor?
| |
21:26 | BAndiT1983 | were celebrating new years eve in serbia, also there are such companies
| |
21:27 | BAndiT1983 | yes, you can modify this one to enable skip of pixels or write new one
| |
21:27 | TofuLynx | makes sense!
| |
21:27 | TofuLynx | what do you mean skip of pixels? that thing to reduce the resolution to a half or so?
| |
21:28 | BAndiT1983 | yes, the image would be reduced, but no need to de-bayer
| |
21:29 | TofuLynx | just to try to understand?
| |
21:29 | BAndiT1983 | https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/Bayer_pattern_on_sensor_profile.svg/350px-Bayer_pattern_on_sensor_profile.svg.png
| |
21:29 | TofuLynx | yes?
| |
21:30 | BAndiT1983 | i will explain it, don't worry, all credits go to Bertl_oO for the advice long time ago, perfect for quick preview at the moment
| |
21:30 | BAndiT1983 | usually we know the bayer pattern
| |
21:31 | BAndiT1983 | so you would write routine which walks over image data and write the know values to R,G and B arrays
| |
21:32 | BAndiT1983 | if you look at the image i've posted, there are individual layers shown
| |
21:32 | TofuLynx | yeah
| |
21:32 | TofuLynx | but wait, im sort of lost
| |
21:32 | TofuLynx | what are you explaining?
| |
21:32 | BAndiT1983 | look at the blue channel there, simple to explain that
| |
21:33 | TofuLynx | ah ok xD
| |
21:33 | TofuLynx | the image you provided is a BGGR pattern?
| |
21:33 | BAndiT1983 | you read all the blue values, e.g. iterating by +2 and writing to blue array, then skip 1 line and do same read again
| |
21:34 | TofuLynx | I see
| |
21:34 | BAndiT1983 | yes, but the order does not matter, you can take a look at bayer stuff in OC, don't know if it is easily understandable there, but it debayers usual patterns automatically
| |
21:34 | TofuLynx | yeah it is
| |
21:35 | BAndiT1983 | of course there will be a bit of shift in colors, but let's do a practical sample, before assuming
| |
21:35 | BAndiT1983 | when this stuff is done, we can think about sending look up table to the fragment shader and correct the colors
| |
21:35 | illwieckz_ | joined the channel | |
21:35 | BAndiT1983 | found interesting online LUT generator some days ago
| |
21:36 | TofuLynx | fragment shader?
| |
21:36 | BAndiT1983 | also called pixel shader in DirectX
| |
21:37 | BAndiT1983 | opengl calls them pixel shaders
| |
21:37 | TofuLynx | ah
| |
21:37 | BAndiT1983 | sorry, fragmentshaders
| |
21:37 | TofuLynx | changed nick to: TofuLynx_
| |
21:37 | TofuLynx | joined the channel | |
21:37 | anuejn | hey se6astian Bertl and BAndiT1983 : we made another pull request, which fixed lots of stuff :)
| |
21:37 | BAndiT1983 | rroohhh?
| |
21:38 | se6astian | very nice, just read the PR
| |
21:38 | illwieckz | left the channel | |
21:39 | TofuLynx | Can you continue the explanation BAndiT1983? :)
| |
21:39 | anuejn | rroohhh is a friend of mine
| |
21:40 | BAndiT1983 | didn't knew about axiom mini
| |
21:41 | BAndiT1983 | *micro
| |
21:41 | BAndiT1983 | is there some prototype or just preparations?
| |
21:42 | BAndiT1983 | TofuLynx, which info do you need?
| |
21:43 | TofuLynx | Ok basically
| |
21:43 | TofuLynx | You load the image information
| |
21:44 | TofuLynx | Then you extract the information from the pixels to the respective color array
| |
21:44 | TofuLynx | Right?
| |
21:44 | BAndiT1983 | yes
| |
21:44 | BAndiT1983 | you just to skip them in a smart way
| |
21:44 | BAndiT1983 | *have to skip
| |
21:45 | TofuLynx | To skip, it would just increment the step between pixels, instead of 2 it's 4
| |
21:45 | TofuLynx | Right?
| |
21:45 | BAndiT1983 | you read first one then do index += 2 to get 3rd one, next iteration would get 5th one and so on
| |
21:46 | BAndiT1983 | but there are still some things to consider, especially about G channel
| |
21:46 | BAndiT1983 | haven't thought about performance and such, but you shoud do mid of 2 G values
| |
21:47 | BAndiT1983 | i mean in the 2x2 blocks
| |
21:47 | TofuLynx | Hmm
| |
21:47 | BAndiT1983 | think of every 2x2 block as 1 pixel
| |
21:47 | TofuLynx | Is it possible to get to know the image width?
| |
21:47 | BAndiT1983 | of course, it's stored in DNG and is read by the decoder, otherwise it would be hard to process
| |
21:48 | TofuLynx | Ok, what do you think when reading the green channel
| |
21:49 | BAndiT1983 | you would read first G value nad one which is placed imageWidth - 1 further in array
| |
21:49 | TofuLynx | Storing the G0 pixel + G1 pixel and then shifting left 1? It would be just pixel[index+1] + pixel[index +width]
| |
21:49 | BAndiT1983 | then add them together and divide by 2 or multiply by 0.5
| |
21:49 | TofuLynx | Yeah that's what I thought
| |
21:49 | TofuLynx | Shifting right 1*
| |
21:50 | BAndiT1983 | you can also shift if you like
| |
21:50 | BAndiT1983 | why index + 1?
| |
21:51 | TofuLynx | I'm basing on the idea that the whole 2x2 block is a pixel
| |
21:51 | TofuLynx_ | left the channel | |
21:52 | vup[m] | joined the channel | |
21:52 | BAndiT1983 | ah, yes, you can go through it in one step, just have to assign arrays in right order
| |
21:52 | TofuLynx | So I could just put the index at the R in each block (assuming rggb)
| |
21:52 | TofuLynx | Yeah
| |
21:52 | TofuLynx | That's exactly my idea
| |
21:52 | BAndiT1983 | yes, take a look in OCcore, there you have examples for assigning of values to right folders
| |
21:52 | TofuLynx | Folders?
| |
21:53 | BAndiT1983 | sorry, it's late, arrays
| |
21:53 | BAndiT1983 | have done such stuff with 2 thread, for even and odd rows
| |
21:54 | BAndiT1983 | one can split even more, but at some point, after long optimization experiments i'Ve noticed, that i was using debug mode, so i've switched to release one and it processed faster than it read the data from the disk
| |
21:54 | TofuLynx | Why not 4 threads?
| |
21:55 | TofuLynx | 1 for each color pixel
| |
21:55 | TofuLynx | Uh, nevermind
| |
21:55 | TofuLynx | I can't imagine a way about using 2 threads for green0 and green1
| |
21:55 | BAndiT1983 | this would cause race conditions and IO in memory, which would degrade performance
| |
21:56 | BAndiT1983 | you don't need it currently, worry about performance as last step
| |
21:56 | TofuLynx | Yeah
| |
21:56 | BAndiT1983 | first algorithms and solid base, performance just when it's really slow
| |
21:56 | TofuLynx | As you say
| |
21:57 | TofuLynx | Premature optimization is the root of all devil
| |
21:57 | TofuLynx | xD
| |
21:57 | BAndiT1983 | read yesterday an article about premature optimization and it said that at 97%, if one tries to squeeze last 3% out of the compiler, code and machine, it takes more time and effort, than it'S really worth it
| |
21:58 | BAndiT1983 | real life example, people don't care about such performance much, see it everyday at work where we use java, some solutions on the server are very adventurous
| |
21:59 | BAndiT1983 | still wondering that it works somehow
| |
21:59 | TofuLynx | But dont professional filmmakers and such have high standards?
| |
22:00 | BAndiT1983 | don't know, not working in the film industry
| |
22:01 | TofuLynx | I see
| |
22:04 | TofuLynx | What time is it there? 23h?
| |
22:05 | BAndiT1983 | yep
| |
22:07 | TofuLynx_ | joined the channel | |
22:10 | TofuLynx_ | ok the current approach in bayer frame pre processor
| |
22:10 | TofuLynx_ | you separated it in two extraction processes, one for odd rows and other for even rows
| |
22:10 | TofuLynx_ | each one with a dedicated thread
| |
22:12 | BAndiT1983 | maybe there is a simple solution, thinking about the 2x2 blocks
| |
22:12 | BAndiT1983 | but currently the loops are going in linear fashion
| |
22:12 | BAndiT1983 | so it should be fast enough
| |
22:12 | TofuLynx_ | I think i could do a block based extraction, with 3 threads
| |
22:12 | TofuLynx_ | 4 threads*
| |
22:13 | TofuLynx_ | but not sure, due to the race issues and so
| |
22:13 | BAndiT1983 | don't focus on threads, focus on the loop processing
| |
22:13 | TofuLynx_ | Ok sorry
| |
22:13 | TofuLynx_ | hmm
| |
22:13 | BAndiT1983 | think of a clever loop, not how to improve performance, as long there is nothing to profile
| |
22:15 | TofuLynx_ | what about
| |
22:15 | TofuLynx_ | diagonal looping?
| |
22:15 | TofuLynx_ | wait nvm, that doesnt make sense
| |
22:15 | TofuLynx_ | xD
| |
22:16 | TofuLynx_ | hmm
| |
22:16 | TofuLynx_ | what about
| |
22:16 | BAndiT1983 | the loop is rather simple, take rrgb as base first, afterwards we can convert it to dynamical assignment
| |
22:16 | TofuLynx_ | columnIndex+=2
| |
22:16 | BAndiT1983 | you would have just 3 lines of code in the loop
| |
22:16 | TofuLynx_ | and putting dataUL and dataUR at the same time
| |
22:17 | TofuLynx_ | by using + 1 in the dataUR
| |
22:17 | BAndiT1983 | write new one, to learn what it takes to process the data
| |
22:17 | TofuLynx_ | ok!
| |
22:17 | BAndiT1983 | otherwise you will get lose overview
| |
22:17 | BAndiT1983 | first line get red pixel and assigns it to the red array at position 0
| |
22:18 | BAndiT1983 | seond line gets both green values and creates mid value of them, also assignes to green array at position 0
| |
22:18 | BAndiT1983 | blue does same as red
| |
22:18 | BAndiT1983 | next iteration assigns to position 1 in arrays and so on
| |
22:19 | BAndiT1983 | you don't even need row index
| |
22:19 | TofuLynx_ | wait huh
| |
22:20 | BAndiT1983 | just reflecting in what i have implemented in the preprocessor
| |
22:20 | TofuLynx_ | isnt the extracting process the previous step from debayering?
| |
22:21 | BAndiT1983 | but it was probably done for jumps between rows, although an "if" could also do the same
| |
22:21 | BAndiT1983 | yes, and your task would be a preprocessor which avoidds debayering for preview
| |
22:21 | TofuLynx_ | uh?
| |
22:21 | BAndiT1983 | you don't need debayering if you extract all the pixels without the gaps between them
| |
22:22 | BAndiT1983 | it's half the image, but fast to get preview
| |
22:22 | TofuLynx_ | yeah I understand
| |
22:22 | TofuLynx_ | but why do i need to remove the debayering step?
| |
22:22 | TofuLynx_ | dont i just need to modify the extraction step?
| |
22:23 | BAndiT1983 | because you don't need it then, it'S more simpler
| |
22:24 | TofuLynx_ | hmm ok
| |
22:24 | BAndiT1983 | write another one and we will evaluate if it is better to merge the 2
| |
22:24 | BAndiT1983 | but keep it as simple as possible and don't think about optimizations at the moment
| |
22:24 | TofuLynx_ | ok!
| |
22:24 | TofuLynx_ | hmmm
| |
22:25 | TofuLynx_ | so you suggested to do in a single loop
| |
22:25 | TofuLynx_ | the even and odd rows ?
| |
22:25 | BAndiT1983 | yes, you would process every 2x2 block
| |
22:25 | TofuLynx_ | ah!
| |
22:25 | TofuLynx_ | ok
| |
22:30 | TofuLynx_ | i need to add an If that checks if it's at a even row, dont need?
| |
22:30 | BAndiT1983 | not at all
| |
22:30 | TofuLynx_ | how do you jump the odd rows then?
| |
22:31 | BAndiT1983 | it doesn't matter if you process 2x2 blocks
| |
22:31 | BAndiT1983 | you just have to read all pixels without gaps, see the sample image i've posted before
| |
22:31 | BAndiT1983 | just for green values you have to add them and divide by 2
| |
22:31 | TofuLynx_ | uh?
| |
22:31 | TofuLynx_ | but there is a dataUR and a data LL
| |
22:32 | BAndiT1983 | forget my class
| |
22:32 | TofuLynx_ | ah ok!
| |
22:32 | se6astian | off to bed
| |
22:32 | se6astian | good night
| |
22:32 | se6astian | changed nick to: se6astian|away
| |
22:32 | TofuLynx_ | good night!
| |
22:32 | BAndiT1983 | write your own class, otherwise you will lose yourself in details which are not required for your taks
| |
22:32 | TofuLynx_ | hmm
| |
22:32 | BAndiT1983 | there is not dataUL, RL and so on for you at the moment, just assume that we have RGGB
| |
22:33 | TofuLynx_ | so
| |
22:33 | TofuLynx_ | i start with a blank file, is that?
| |
22:33 | BAndiT1983 | why should the file be blank?
| |
22:34 | TofuLynx_ | im not sure if I understood you
| |
22:34 | TofuLynx_ | you said to make my own class
| |
22:34 | BAndiT1983 | create a new class, like BayersDownscaler or something like that
| |
22:34 | TofuLynx_ | oh wait
| |
22:34 | TofuLynx_ | BayerFramePreProcessor::ExtractDownscaled()
| |
22:34 | TofuLynx_ | this?
| |
22:35 | TofuLynx_ | nvm
| |
22:35 | TofuLynx_ | BayerFrameDownscaled::
| |
22:35 | TofuLynx_ | this?
| |
22:36 | BAndiT1983 | not Downscaled, but it should be Downscaler to show that it is an actor
| |
22:36 | TofuLynx_ | ah ok
| |
22:36 | BAndiT1983 | Downscaled suggests that it is a downscaled data container
| |
22:37 | Kjetil | (To scale or not to scale...)
| |
22:37 | TofuLynx_ | and its variables would be
| |
22:38 | TofuLynx_ | the raw image data
| |
22:38 | TofuLynx_ | right?
| |
22:38 | BAndiT1983 | Kjetil, do you have something to contribute?
| |
22:38 | Kjetil | Nah. I'm sorry. I really should go to bed
| |
22:39 | BAndiT1983 | you can copy most of variables from preprocessor, but just ones which are really necessary
| |
22:39 | TofuLynx_ | and functions?
| |
22:39 | TofuLynx_ | like this
| |
22:39 | TofuLynx_ | void Convert12To16Bit() const;
| |
22:39 | TofuLynx_ | void Convert14To16Bit() const;
| |
22:40 | BAndiT1983 | take any you need over to your class, can still be reduced later
| |
22:40 | BAndiT1983 | important is that you inherit from IFrameProcessor, see header of bayerframepreprocessor
| |
22:43 | BAndiT1983 | so, off for today
| |
22:43 | BAndiT1983 | changed nick to: BAndiT1983|away
| |
22:44 | TofuLynx_ | Bye bye!
| |
22:49 | TofuLynx_ | left the channel | |
22:54 | g3gg0 | left the channel | |
22:55 | heheprime | joined the channel | |
22:58 | heheprime | left the channel | |
23:21 | TofuLynx | left the channel | |
23:36 | rton93 | joined the channel | |
23:38 | rton | left the channel |