[Bug 19015] New: Enhancement: Set only single component for each pixel

https://www.w3.org/Bugs/Public/show_bug.cgi?id=19015

           Summary: Enhancement: Set only single component for each pixel
           Product: HTML WG
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: a11y, a11y_canvas
          Severity: enhancement
          Priority: P5
         Component: HTML5 spec
        AssignedTo: dave.null@w3.org
        ReportedBy: contributor@whatwg.org
         QAContact: public-html-bugzilla@w3.org
                CC: ian@hixie.ch, mike@w3.org,
                    laura.lee.carlson@gmail.com,
                    public-html-wg-issue-tracking@w3.org,
                    public-html@w3.org, public-html-a11y@w3.org


This was was cloned from bug 13096 as part of operation LATER convergence.
Originally filed: 2011-06-30 11:03:00 +0000
Original reporter: j.chetwynd <j.chetwynd@btinternet.com>

================================================================================
 #0   j.chetwynd                                      2011-06-30 11:03:46 +0000 
--------------------------------------------------------------------------------
bug 13085 allows for a single component such as alpha to be set for a whole
image,
this related bug proposes that each component can be independently set.

in data visualisations, where the canvas is large and most pixels need to be
changed at high refresh rates, component arrays can be large to sort, and set.
Allowing a single components to be set per pixel may provide considerable
advantage. see peepo.com for demonstration.

there are also significant advantages to colour separation, when presenting
data.

and furthermore, there are accessibility implications for people not requiring
full colour images, and those using mobile phones, or slower processors.
================================================================================
 #2   Ian 'Hixie' Hickson                             2011-12-01 23:47:22 +0000 
--------------------------------------------------------------------------------
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are
satisfied with this response, please change the state of this bug to CLOSED. If
you have additional information and would like the editor to reconsider, please
reopen this bug. If you would like to escalate the issue to the full HTML
Working Group, please add the TrackerRequest keyword to this bug, and suggest
title and text for the tracker issue; or you may create a tracker issue
yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Accepted
Change Description: no spec change
Rationale: You can do this already using putImageData() and a dirty region.
================================================================================
 #3   j.chetwynd                                      2011-12-02 08:32:57 +0000 
--------------------------------------------------------------------------------
#2 perhaps "Set single component for pixel" and  "each component can be
independently set." are not clear?

as I understand it putImageData() requires alpha and RGB color to be set for
each pixel.

this bug proposes that a single component such as alpha might be set.
and thus not requiring the other three components to be set (again) at the same
time.

the issue is that where only one of the four is being manipulated processing
time could be accelerated, on large full screen images of many megabytes.

apologies if I misunderstand the situation.
================================================================================
 #4   Ian 'Hixie' Hickson                             2011-12-02 17:10:35 +0000 
--------------------------------------------------------------------------------
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are
satisfied with this response, please change the state of this bug to CLOSED. If
you have additional information and would like the editor to reconsider, please
reopen this bug. If you would like to escalate the issue to the full HTML
Working Group, please add the TrackerRequest keyword to this bug, and suggest
title and text for the tracker issue; or you may create a tracker issue
yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Did Not Understand Request
Change Description: no spec change
Rationale: Do you have data showing that setting all four bytes of a pixel at a
time is actually a performance problem? It seems highly unlikely to me that
with modern architectures there would be any practical difference. If anything,
setting one byte out of a 32bit word would seem to likely be more expensive
that setting all 4 bytes. Certainly if you're manipulating more than one pixel
at a time (which I assume in reality you would almost always be, since changing
just one pixel every 20ms would be an imperceptibly slow change to an image)
then it's quicker to just blit the entire image as one solid memory block than
it is to try to just push over the channels that have changed.
================================================================================
 #5   j.chetwynd                                      2011-12-02 19:31:12 +0000 
--------------------------------------------------------------------------------
#4 Ian, 

this bug refers to changing one channel in the limit for every pixel in a large
image say 1920x1080,

as I understand it there are ways of doing this in hardware,
but the current spec doesn't allow only a single channel to be updated.

please make your own research regarding hardware before closing again.
color separation is well known, studied and explored.
================================================================================
 #6   Ian 'Hixie' Hickson                             2011-12-02 20:58:16 +0000 
--------------------------------------------------------------------------------
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are
satisfied with this response, please change the state of this bug to CLOSED. If
you have additional information and would like the editor to reconsider, please
reopen this bug. If you would like to escalate the issue to the full HTML
Working Group, please add the TrackerRequest keyword to this bug, and suggest
title and text for the tracker issue; or you may create a tracker issue
yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Partially Accepted
Change Description: none yet
Rationale: If your request is just to add a feature to manipulate a single
channel in hardware, then I am marking this bug LATER for now, so that we can
examine whether authors actually end up needing this enough to justify the new
feature. I suspect that in practice getImageData/putImageData is plenty fast
enough and would not be noticeably slower than a single-channel mechanism.
================================================================================
 #7   Ian 'Hixie' Hickson                             2012-02-29 00:10:32 +0000 
--------------------------------------------------------------------------------
(still need more data on this)
================================================================================

-- 
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Received on Tuesday, 25 September 2012 21:53:25 UTC