kinchungwong.github.io

Ryan Wong’s page on github.io (kinchungwong.github.io)


About GitHub Pages

See https://pages.github.com/ for instructions on setting up.


Read this first

Google is for personal business. Don’t risk your business on Google. Companies that use Google runs the risk of getting entire company’s communication infrastructure shut down, if any employee (1) specifies a personal email address as a password recovery email (or somehow allows Google to trace the company’s account to that other email address), and (2) that employee did something wrong (and was traced to that personal email) that prompted Google to take action. The result is that a wide net of “connected accounts” (where the “connection” is merely tangential) got shut down as well. The insanity is that apparently Google “crawls” for emails that could be tangentially related, and then proceeds to shut down those accounts. While plenty of concerned Googlers offered to help, the business divisions at Google refused to be contacted. Forward a link to any recruiters or business associates who may contact you. You may lose a job opportunity, but you wouldn’t want to work for them unless they change.
https://news.ycombinator.com/item?id=17115643


About my work


Currently working on

This section contains links to projects owned/maintained by other people or organizations. Please refer to each linked project website for legally-required or contratually-required copyright notices, user agreements, and other legal information.

Note: I am in no way obliged to make good on anything mentioned in this section. I have total freedom to abandon this work or change course at any time.


Binary size analysis and reporting in OpenCV


OpenCV SIMD universal intrinsics


For SIMD contributions in OpenCV 3.4 (or a possible 3.5)


For SIMD contributions in OpenCV 4.0


Proposed coding style enhancement for SIMD moving window in OpenCV 4.0

This proposal allows any image processing algorithms that read from a fixed-size moving-window from the input to be written in a very fluent coding style in C++.

Link to sample code on my Gist

Firstly, v_extract and v_insert will be extended (overloaded) to work on 1D (single-row) and 2D (multi-row) arrays of SIMD vector types.

An example of 1D array of vectors:

template <typename vec_type, int nv>
using v_arr = std::array<vec_type, nv>;

An example of 2D array of vectors:

template <typename vec_type, int nvr, int nvc>
using v_arr2d = std::array<std::array<vec_type, nvc>, nvr>;

The new overloads for v_extract and v_insert will extract and modify a sub-sequence of elements inside the array of vectors. The sub-sequence does not need to be aligned to the vector boundaries inside the array.

Secondly, the helper functions v_extract_around_center and v_insert_around_center apply an offset to the compile-time row/column offsets while calling v_extract and v_insert.


Modernization of existing SIMD code in image processing algorithms in OpenCV 4.0


Skills


Technologies which I know, and which I have neutral feelings about


Technologies I prefer not to work on


Areas I might be prevented from working on


Questions I will ignore