Exposure to the right results in different TRC than normal exposure

Exposure to the right is advocated by most experts to improve tonality and dynamic range. On the Luminous Landscape a photographer noted that ETTR all the way to the right followed by negative exposure correction in ACR produces a different image than is produced by normal exposure, and that he preferred the latter image.
Luminous Landscape Thread
Most responders to this post postulated that, since ACR is operating on linear data, underexposure by 1 EV followed by a 1 EV boost in ACR would produce the same results.
I had some exposures of a Stouffer step wedge. The first was exposed so that step 1 has a pixel value of 250 when converted with ACR at default settings into aRGB. This is exposed to the right as far as possible. A second exposure placed the same step at 221, and this step was brought back to 250 in ACR, which required an exposure compensation of +1.05 EV.
If you compare the resultant images in Photoshop using the difference blending mode, the differences too dark to make out on the screen, but can be detected with the eye dropper. In this image, normal exposure to the right is on top, and the difference between normal exposure and underexposure followed by a boost of 1 EV in ACR is shown on the bottom.
The different resulting tone response curves are better shown by Imatest plots of the two images. As is evident the TRCs are different, contrary to my expectation. Comments are invited.

The ETTR Myth
ETTR is short for expose to the right. Some folks have promoted it as a replacement for traditional exposure metering. The premise is that you can validate camera metering by simply reading the histogram in the cameras preview window.
Unfortunately, it is based on some basic misunderstandings about digital photographic technology. The first misunderstanding is the premise that each bit level in a digitally encoded image represents an exposure stop. The second misunderstanding is the premise that all digital cameras capture light in a perfectly linear fashion. The third misunderstanding is the premise that the histogram represents the raw image data captured by the camera. I will briefly address each of these.
Any correlation between exposure stops and digital bit levels can only be accidental at best. The total exposure range in a scene or an image is correctly known as the dynamic range. The dynamic range of digital cameras is wider than most folks assumes and usually equal to or better than film or paper. It can be defined in terms of tone density, decibels, or exposure stops. It is a function of the optics and sensor electronics in the camera. The few cases where an accurate range is provided by the vendors, it varies from 8 to 12 f/stops.
The image data is converted from analog measurements by the analog/digital (A/D) circuits early in the capture. This can wind up as an 8-bit, 12-bit, 14-bit, or even 16-bit digital value depending on the camera and its user settings. It is simply a number that has been digitized. Any correlation between bits and exposure levels is pure speculation, end of subject.
Second, the digital capture of light is not strictly linear. It is true that the silicon sensor itself will capture light in a very linear fashion. But this ignores reciprocity at the toe and heel of the extremes, the quantum efficiency of the substrate, and most importantly it ignores the optical filters in front of the sensor. If the color filter array were linear it would be impossible to reconstruct colors. And these are not the only optical filters in your camera. Then, the A/D circuits have gain controls based on the current ISO setting. And some A/D circuits perform some pre-processing based on the illuminant color temperature (white balance) and limited noise reduction based on the ISO setting. The point is that there are many steps in the pipeline that can introduce non-linearity.
Finally, the image in the preview window has been color rendered and re-sampled down to a small size. This is the data shown in the histogram. The camera can capture all colors in the spectrum, but the rendered image is limited to the gamut of an RGB color space. So, in addition to exposure clipping the histogram will include gamut clipping. This is also true for the blinking highlight and shadow tools. This might imply an exposure problem when none exists. There is no practical way to map all the data in a raw image into a histogram that you could use effectively in the preview window.
If you capture an image of a gray scale chart that fits within the dynamic range of the camera, at the right exposure, you can create a linear graph of the raw data. But if you underexpose or overexpose this same image, the graph will not be linear and it is unlikely that software will be able to restore true linearity. End of subject.
If you typically shoot JPG format, the histogram will accurately represent the image data. But clipping can still be from either gamut or exposure limits. If you typically shoot RAW format, the cameras histogram is only an approximation of what the final rendered image might look like. There is a significant amount of latitude provided by the RAW image editor. This is probably why you are shooting RAW in the first place.
So, in closing, I am not saying that histograms are bad. They are part of a wonderful toolkit of digital image processing tools. I am saying ETTR is not a replacement for exposure metering. If you understand what the tone and color range of the scene is, you can evaluate the histogram much better. And if you master traditional photographic metering, you will capture it more accurately more often.
I hope this clears up my previous statements on this subject. And I hope it explains why I think ETTR and linear capture are based more on technical theology than on technical fact.
Cheers, Rags :-)

Similar Messages

  • I am using a different divice than normal and because if security it is asking me questions that I don't know the answers to, so I get them wrong.

    I am using a different divice than normal and because if security it is asking me questions that I don't know the answers to, so I get them wrong.

    Click here for information. If the option to have the answers emailed to you isn't available or doesn't work(the email may take a few hours to arrive), contact the iTunes Store staff via the link in the 'Additional Information' section of that article.
    Nobody on these boards can reset them for you.
    (92406)

  • I cannot type a capital i using the left shift key. also keyboard now putting the cursor in a different place than where i type. Checked speech keys, all fine. Batteries fine.

    i cannot type a capital i using the left shift key. also keyboard now putting the cursor in a different place than where i type while i am typing. Checked speech keys, all fine. Batteries fine. Also used the keyboard check program on the imac, shows key ok.
    wireless mouse will suddenly scroll down horizontally and won't stop. when i am on a webpage it will bounce back to the previous page without my doing so. i have tried adjusting the mouse several times, turning it on and off, and now am using my wacom mouse which also seems to have issues with this computer.  i have only had this a few months and getting very frustrated.

    Can you try a different keyboard to see if the problem persists? Also, you have 90 days of phone support when you buy a mew mac.

  • The table has total different value than what I inserted!

    Hi, I have a table named "cfg2" and the structure of the table is like this.
    Name Null? Typ
    UID NOT NULL VARCHAR2(30)
    S1 VARCHAR2(10)
    S2 VARCHAR2(10)
    UIDFLAG NOT NULL NUMBER(1)
    I inserted "UID" values from 1 to 100 with preparedstatement. The code looks like this.
    String query = "insert into cfg2 values (?,?,?,0)";
    ps = conn.prepareStatement(query);
    for (int i =1; i <=100; i++)
    String ii = String.valueOf(i);
    ps.setString(1, ii);
    ps.setString(2, "blaHi");
    ps.setString(3, "blaHa");
    ps.execute();
    conn.commit();
    The strange thing is that the value of "uid" is different from what I inserted. When I use "select * from cfg2", then it shows exactly the values which I inserted. Like this.
    UID S1 S2 UIDFLAG
    1 blahi blaha 0
    2 blahi blaha 0
    3 blahi blaha 0
    ..... Until the UID is 100.
    But I can't get any special line, using "select ...where uid like '3(for example)'". So I let only the UID values be shown, using "select uid from cfg2", and then the astonisching result came. All the uid values are 77, like this.
    UID
    77
    77
    77 .....
    I deleted the table and established another table with the same structure and tested again. The result was always same. No matter what I insert into "UID", the value which I got was always 77. Does anybody have same or similiar experience? Any help is welcome. Thanks.

    What is your source material? Is it H.264? FCP does not work correctly with that material.
    Click on a source clip in the FCP Browser, and once selected, type Command + 9 to see the item properties for the clip. Either report those properties, or take a screen shot of the item properties, and post that here.
    Next, click anywhere in your timeline, and then type Command + 0 {zero} to see your Sequence Settings. Either report those Sequence Settings, or take a screen shot of the Sequence Settings and post that here.
    MtD

  • Why Data Services Validation doesn't give the right result in XML?

    Hi,
    I am struggling with a dataflow that contains the following:
    - an Excel as source
    - a validation transform that check a specific value in one of the excel columns. If the value is equal, the record goes to the pass path and if not, it goes to fail path
    - a simple query on the pass path with a row_gen that selects all passed records and send it to an XML file (using XML target)
    - a CSV target file on the fail path that gets the failed record from the validation
    The result is unexpected: both files contain the failed records.
    Now, if you modify slightly the dataflow and add another pass path to the validation, which has a CSV file as target, suddenly, the result is what you would expect:
    - The XML file on the 1st pass path (with the query) now contains the successful records
    - The CSV file on the 2nd pass path contains the successful records as well
    - The CSV file on the fail path contains the failed records
    If you create a dataflow that doesn't have an XLM file as a target, this issue doesn't seem to happen. I have made several examples with datastore and with CSV files. Somehow it seems there is something happening wrongly when the only target for a validation path (pass or fail) is an XML file.
    I can send the ATL for both examples above
    Could someone help me understand if I do something wrong OR if there is indeed a bug that should be addressed?
    Thanks a lot!
    Isabelle

    Hi Manoj,
    Thanks for quick reply!
    To answer your questions:
    - in the validation transform what is the value of Action on failure option - send to fail, send to pass or both ?
       send to fail only
    - is delete and recreate option checked for the target xml file ?
      yes
    - how many rows do you see in monitor log for pass and fail ?
       In the 1st dataflow, the monitor show the following where the pass number is 26!
    Path name State Row Count Elapsed time (Sec) Absolute time (Sec)
    DFW_TransformationUsingValidation_5/SpinFormat_1 STOP 28 0.047 0.699
    /DFW_TransformationUsingValidation_5/Validation STOP 28 0.000 0.699
    /DFW_TransformationUsingValidation_5/Split STOP 26 0.000 0.699
    -DFW_TransformationUsingValidation_5/FailValidation_TransformationUsingValidation_5.csv STOP 26 0.000 0.699
    /DFW_TransformationUsingValidation_5/Row_Generation STOP 1 0.000 0.699
    /DFW_TransformationUsingValidation_5/CacheSplit STOP 26 0.000 0.699
    /DFW_TransformationUsingValidation_5/CacheSplitMemoryReader STOP 26 0.000 0.699
    /DFW_TransformationUsingValidation_5/Validation_Pass_1 STOP 26 0.000 0.699
    /DFW_TransformationUsingValidation_5/Query-Nest1: 0 STOP 1 0.047 0.699
    /DFW_TransformationUsingValidation_5/Query-Nest1: 1 STOP 26 0.000 0.699
    /DFW_TransformationUsingValidation_5/Query STOP 1 0.000 0.699
    -DFW_TransformationUsingValidation_5/GUID::'5e0a492d-1452-4e0b-be37-758c2249b7a4' LOAD MESSAGE PassXM STOP 1 0.000 0.699
    In the 2nd dataflow, just by adding another pass path filling a CSV file, the number of pass records is 2:
    DFW_TransformationUsingValidation_5/SpinFormat_1 STOP 28 0.047 0.689
    /DFW_TransformationUsingValidation_5/Validation STOP 28 0.000 0.689
    /DFW_TransformationUsingValidation_5/Split STOP 2 0.000 0.689
    -DFW_TransformationUsingValidation_5/PassValidation_TransformationUsingValidation_5.csv STOP 2 0.000 0.705
    -DFW_TransformationUsingValidation_5/FailValidation_TransformationUsingValidation_5.csv STOP 26 0.000 0.705
    /DFW_TransformationUsingValidation_5/Row_Generation STOP 1 0.000 0.705
    /DFW_TransformationUsingValidation_5/CacheSplit STOP 2 0.000 0.705
    /DFW_TransformationUsingValidation_5/CacheSplitMemoryReader STOP 2 0.000 0.705
    /DFW_TransformationUsingValidation_5/Validation_Pass_1 STOP 2 0.000 0.705
    /DFW_TransformationUsingValidation_5/Query-Nest1: 0 STOP 1 0.047 0.705
    /DFW_TransformationUsingValidation_5/Query-Nest1: 1 STOP 2 0.000 0.705
    /DFW_TransformationUsingValidation_5/Query STOP 1 0.000 0.705
    -DFW_TransformationUsingValidation_5/GUID::'5e0a492d-1452-4e0b-be37-758c2249b7a4' LOAD MESSAGE PassXM STOP 1 0.000 0.705
    Edited by: Isabelle Thore on Oct 8, 2010 6:53 AM
    Edited by: Isabelle Thore on Oct 8, 2010 6:54 AM
    Edited by: Isabelle Thore on Oct 8, 2010 6:55 AM

  • How do you make the title bar display different text than the page title?

    I'm looking for a way for the title bar display of my web page to be different than the text in the actual nav bar created by iWeb. For instance, I'd like the nav bar to just say Home for my main page, but in the title bar in the browser say "blah blah blah."
    I know there has to be a way to do this. iWeb has actually done it on one page already, but I can't figure out how. I think it picked up the title bar text from the first text box in the page. For instance, the page name in the navigation bar is "blahs for today" but the browser title bar when you open that page says "blah blah," which happens to be the first line of text on the page. The page title in iWeb.app, though, is "blahs for today." But if I look at the source code it lists title as "blah blah."
    I'm guessing I might be able to work around by making an invisible text box with the text that I want in the title bar as the very first thing on the page, and hope iWeb makes that the title bar text. I'd rather have a more correct way of doing it.
    Is there a way of doing this in the source code without having to change a lot of stuff?
    Thanks for any help.

    Richard Kirkman1 wrote:
    I think it picked up the title bar text from the first text box in the page. (...) I'm guessing I might be able to work around by making an invisible text box with the text that I want in the title bar...
    Richard ~ The key is the default Title box that iWeb creates for every new page — it's that which you need to edit, not another text box you've created. And to make the text in that Title box invisible, see here.

  • HT4236 There HAS to be a way to get photos that were synced from the computer on to the iPad OFF of the iPad in a different way than having to email each individual photo back to oneself. And you can't delete them either, using up vital storage

    My Ipad2 has photos synced from my main computer on it, taking up vital storage.  I cannot remove them at all, and the folks at the Genius Bar can't help either.  Apparently there is no way to remove them unless they were originally taken by the Ipad2 camera.  And the only way you can get copies of those photos back on to the computer or another device is to individually email EACH photograph.
    There has to be a way to remove these pics to free up the storage.
    I almost was unable to load the new operating system because of the amount of photos on the iPad,which ended up on the iPad as a mistake in the first place during an early syncing when it was first purchased.
    This is a HUGE glitch in the system.  If you know otherwise, please advise!

    How to Transfer Photos from an iPad to a Computer
    http://www.wikihow.com/Transfer-Photos-from-an-iPad-to-a-Computer
    Importing Personal Photos and videos from your iOS device to your computer.
    http://support.apple.com/kb/HT4083
    The links below have instructions for deleting photos.
    iOS and iPod: Syncing photos using iTunes
    http://support.apple.com/kb/HT4236
    iPad Tip: How to Delete Photos from Your iPad in the Photos App
    http://ipadacademy.com/2011/08/ipad-tip-how-to-delete-photos-from-your-ipad-in-t he-photos-app
    Another Way to Quickly Delete Photos from Your iPad (Mac Only)
    http://ipadacademy.com/2011/09/another-way-to-quickly-delete-photos-from-your-ip ad-mac-only
    How to Delete Photos from iPad
    http://www.wondershare.com/apple-idevice/how-to-delete-photos-from-ipad.html
    How to: Batch Delete Photos on the iPad
    http://www.lifeisaprayer.com/blog/2010/how-batch-delete-photos-ipad
    (With iOS 5.1, use 2 fingers)
    How to Delete Photos from iCloud’s Photo Stream
    http://www.cultofmac.com/124235/how-to-delete-photos-from-iclouds-photo-stream/
     Cheers, Tom

  • As Soon As Any Effect Is Applied On The Video Or Sequence The Video Playing Speed Gets Faster Than Normal And Red Screen Also Starts Appearing In Between The Video. Tried Changing The Speed And Duration But Its Not Working.Help Required ASAP.

    The Issue Is Majorly Caused When Any Effect Is Applied On The Video And Rendered The Issue Occurs. And By Closing The Application And Restarting The Application Its Works Fine Again But As Soon As The Effects Are Applied Same Problem Occurs Recursively.

    What is the format of the material you are editing, is it variable frame rate?

  • Distinct Count doesn't return the expected results

    Hi All,
    I was fighting a little trying to implement a Distinct Count measure over an account dimension in my cube. I read a couple of posts relateed to that and I followed the steps posted by the experts.
    I could process the cube but the results I'm getting are not correct. The cube is returning a higher value compared to the correct one calculated directly from the fact table.
    Here are the details:
    Query of my fact table:
    select distinct cxd_account_id,
              contactable_email_flag,
              case when recency_date>current_date-365 then '0-12' else '13-24' end RECENCY_DATE_ROLLUP,
              1 QTY_ACCNT
    from cx_bi_reporting.cxd_contacts
    where cxd_account_id<>-1 and recency_date >current_date-730;
    I have the following dimensions:
         Account (with 3 different hierarchies)
         Contactable Email Flag (Just 3 values, Y, N, Unknown)
         Recency_date (Just dimension members)
    All dimensions are sparse and the cube is a compressed one. I defined "MAXIMUM" as aggregate for Contactable Email flag and Recency date and at the end, SUM over Account.
    I saw that there is a patch to fix an issue when different aggregation rules are implemented in a compressed cube and I asked the DBA folks to apply it. They told me that the patch cannot be applied because we have an advanced version already installed (Patch 11.2.0.1 ).
    These are the details of what we have installed:
          OLAP Analytic Workspace       11.2.0.3.0 VALID
          Oracle OLAP API 11.2.0.3.0 VALID
          OLAP Catalog 11.2.0.3.0 VALID
    Is there any other patch that needs to be applied to fix this issue? Or it's already included in the version we have installed (11.2.0.3.0)?
    Is there something wrong in the definition of my fact table and that's why I'm not getting the right results?
    Any help will be really appreciated!
    Thanks in advance,
    Martín

    Not sure I would have designed the dimensions /cubes as you,  but there is another method you can obtain distinct counts.
    Basically relies on using basic OLAP DML Expression language and can be put in a Calculated Measure, or can create two Calculated measures
    to contain each specific result.  I use this method to calculate distinct counts when I want to calculate averages, etc ...
    IF account_id ne -1 and (recency_date GT today-365) THEN -
    CONVERT(NUMLINES(UNIQUELINES(CHARLIST(Recency_date))) INTEGER)-
    ELSE IF account_id ne -1 and (recency_date GT today-730 and recency_date LE today-365) THEN -  
    CONVERT(NUMLINES(UNIQUELINES(CHARLIST(Recency_date))) INTEGER)-
    ELSE NA
    This exact code may not work in your case, but think you can get the gist of the process involved.
    This assumes the aggregation operators are set to the default (Sum), but may work with how you have them set.
    Regards,
    Michael Cooper

  • NOT IN operator giving the wrong results

    DB version:10gR2
    Why is NOT IN giving the wrong results. Isn't NOT EXISTS operator a flawless alternative to NOT IN?
    create table my_table1 (col1 number);
    insert into my_table1 values (1);
    insert into my_table1 values (2);
    commit;
    create table my_table2 ( col1 number);
    insert into my_table2 values (1);
    commit;
    select * from my_Table1;
           COL1
              1
              2
    select * from my_table2;
           COL2
              1
      --correct result
      SELECT * FROM my_table1 t1 WHERE NOT EXISTS
    (SELECT * FROM my_table2 t2 WHERE t1.col1 = t2.col1)
           COL1
              2
    ---correct result using IN
    SELECT * FROM my_table1 t1 where col1 not in (select col1 FROM my_table2 t2);
           COL1
              2
    Inserting a NULL to my_Table2
    Now the query using NOT IN is returning wrong results.
    insert into my_table2 values (null);
    commit;
    SELECT * FROM my_table1 t1 where col1 not in (select col1 FROM my_table2 t2);
    no rows selected
    Query using NOT EXISTS is still giving the right results.
    SELECT * FROM my_table1 t1 WHERE NOT EXISTS
       (SELECT * FROM my_table2 t2 WHERE t1.col1 = t2.col1);
           COL1
              2

    ScottsTiger wrote:
    can i use NOT EXISTS(with a proper Co-related subquery) as a safe alternative to NOT IN?Depends on your data and what you need to achieve.
    Personally I avoid using NOT EXISTS or NOT IN if I can really help it.
    My preferred method is to outer join the tables together and then remove any resultant rows where a value exists and I didn't want one. ;)

  • Logging Step results to different fields in adatabase

    Hi guys, would be great if you can help me out on this one:
    Imagine if I have 3 string test steps within a sequence, and I want to log the result of each of these steps in a different field (coulmn), what should I do?
    The main difficulty here is how to access the result of the steps individually, i.e, what parameter are they hidden under?
    I have been accessing the parameter: "Logging.StepResult.String", but this gives me result from all three steps at once, and I can only store the 3 results as different record in the same column.
    Thanks in advance!  

    Hi jack@nz,
    Are you using custom database steps in your sequence or process model to pull this information into the database or are you going to Configure»Database Options?  If you are doing the first method, could you send a screenshot of your sequence or the sequence file itself?  If you are doing the second option, are you customizing a schema, and if so, which one?
    Cheers,
    Kelly
    Cheers,
    Kelly R.
    Applications Engineer
    National Instruments

  • T510 Left/Right ear has different sound.

    I just bought a new T 510 and found the computer's right ear sound is lower than the left one. Is this a software or hardware problem? How to fix it?
    Thanks!!

    So you're using the internal speakers, or headphones?
    Also, do you have the balance set properly? Go into the Volume Control and click on the 'Speakers' icon. From there, you should then go to 'Levels' in the properties and select 'Balance'. Make sure the values for Left and Right are equal.
    An interesting thing to note about Lenovo's implementation of the Volume Up/Down keys are weird and push the balance off by 1 sometimes (so you'll sometimes have values of 18/19 and then at the next increment 19/19.)
    If you're talking about the right speaker sounds different from the left one, that may just be a music-related phenomenon or something else entirely.

  • Address Book contact preview shows a different date than what is input in the birthday field.

    When opening the address book and clicking on an entry, the preview pane at the bottom shows a different date than the date that is entered in the birthday field. It shows the day before the actual date that is entered. See images below:
    Thanks!

    Thunderbird numbering is based on the Extended Support Releases, which are provided every seven "regular" cycles (thus after 7 6-week cycles = every 42 weeks) to minimize fallout from new features hitting the releases to frequently. Initially, those release were issued to organizations only which require some kind of internal review or certification of software prior to deployment.
    Currently we are in the "37.0" cycle and 38 beta 1 has just been released (but doesn't have the fix yet). Meaning, the next release after 31.6.0 won't be 31.7.0 but 38.0 already, followed by 38.1.0 up to 38.6.0, the continuing with 45.0, etc.
    Confusing, yes, but that's what they came up with.

  • How can I select and move half of my timeline content  to the right without altering anything?

    I am having trouble selecting a good portion of my timeline (including everything, transitions, music, etc) and moving to the right without having some parts to be shifted to wrong palces. A lot of times the end of certain movies get cut off, so I have to strech the clip again and find the right spot I had before than I end up creating a much bigger mess. I cannot find a way to select all the clips I want to move and have them freezed until I drop the click of the mouse. I am new to this and have been watching tutorials at lynda dot com to keep up with ny learning. Any help would be very much appreciate it. Thanks.

    Select the Track Select Tool (A). Place it over the clip from which you want to move everything.
    For multiple track hold down Shift. Hold down the mouse and drag to the right.
    Quick way is to lasso all the clips you want to move and drag it to the right.

  • Output in different order than in select statement.

    I'm executing the following query. Just wondering if I'm missing something:
    select a.constraint_name, a.table_name, a.r_constraint_name, b.column_name, c.table_name, c.column_name from user_constraints a
    inner join user_cons_columns b on (a.table_name=b.table_name and a.constraint_name=b.constraint_name)
    inner join user_ind_columns c on (a.r_constraint_name=c.index_name)
    where a.r_constraint_name='QUE_PK' and b.position=c.column_position
    order by b.position
    (replace QUE_PK with your own primary key referenced in a foreign key)
    The columns appearing in the resultset are in different order than in the select statement.
    They came as follows: constraint_name, r_constraint_name, table_name, table_name, column_name, column_name. If I aliase one of the column, the result set is ok.
    I'm using version 1.1.0.23 on Ubuntu 6.10 against a 10g r2.

    To double check, you can go to <sqldeveloper>/system/oracle.sqldeveloper.1.1.0 (this may be <user_dir>/system/oracle.sqldeveloper.1.1.0 on your computer) and delete all of the *TableSettings.xml files. That will erase any custom column orders that you may have saved.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Maybe you are looking for