Patents by Inventor C. Chou

C. Chou has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20170094293
    Abstract: System and method for improving operational efficiency of a video encoding pipeline used to encode image data.
    Type: Application
    Filed: September 30, 2015
    Publication date: March 30, 2017
    Inventors: Jim C. Chou, Mark P. Rygh, Guy Côté
  • Patent number: 9569816
    Abstract: An image signal processing system may include processing circuitry that may reduce banding artifacts in image data to be depicted on a display. The processing circuitry may receive a first pixel value associated with a first pixel of the image data and detect a first set of pixels located in a first direction along a same row of pixels or a same column of pixels with respect to the first pixel. The first set of pixels is associated with a first band. The processing circuitry may then interpolate a second pixel value based on an average of a first set of pixel values that correspond to the first set of pixels and a distance between the first pixel and a closest pixel in the first band. The processing circuitry may then output the second pixel value for the first pixel.
    Type: Grant
    Filed: April 15, 2015
    Date of Patent: February 14, 2017
    Assignee: Apple Inc.
    Inventors: Jim C. Chou, Guy Cote, Haiyan He
  • Patent number: 9571846
    Abstract: Block processing pipeline methods and apparatus in which reference data are stored to a memory according to tile formats to reduce memory accesses when fetching the data from the memory. When the pipeline stores reference data from a current frame being processed to memory as a reference frame, the reference samples are stored in macroblock sequential order. Each macroblock sample set is stored as a tile. Reference data may be stored in tile formats for luma and chroma. Chroma reference data may be stored in tile formats for chroma 4:2:0, 4:2:2, and/or 4:4:4 formats. A stage of the pipeline may write luma and chroma reference data for macroblocks to memory according to one or more of the macroblock tile formats in a modified knight's order. The stage may delay writing the reference data from the macroblocks until the macroblocks have been fully processed by the pipeline.
    Type: Grant
    Filed: September 27, 2013
    Date of Patent: February 14, 2017
    Assignee: Apple Inc.
    Inventors: Timothy John Millet, Mark P. Rygh, Craig M. Okruhlica, Jim C. Chou, Guy Cote, Gaurav S. Gulati, Joseph J. Cheng, Joseph P. Bratt
  • Publication number: 20170036511
    Abstract: A method for controlling a vehicle cabin climate is provided. The method includes the steps of receiving and aggregating data relating to one or more inputs, wherein at least some of the data is acquired at the vehicle and some of the data is acquired from sources located remotely from the vehicle. The method further includes using a climate control module to determine an optimal cabin climate based on the aggregated data, and controlling one or more climate features according to the optimal cabin climate.
    Type: Application
    Filed: August 6, 2015
    Publication date: February 9, 2017
    Inventors: Seungeun LEE, Michael KOCHEISEN, Calvin C. CHOU, Danny P. JIANG
  • Publication number: 20170010970
    Abstract: The disclosed embodiments relate to a system that generates prefetches for a stream of data accesses with multiple strides. During operation, while a processor is generating the stream of data accesses, the system examines a sequence of strides associated with the stream of data accesses. Next, upon detecting a pattern having a single constant stride in the examined sequence of strides, the system issues prefetch instructions to prefetch a sequence of data cache lines consistent with the single constant stride. Similarly, upon detecting a recurring pattern having two or more different strides in the examined sequence of strides, the system issues prefetch instructions to prefetch a sequence of data cache lines consistent with the recurring pattern having two or more different strides.
    Type: Application
    Filed: July 8, 2015
    Publication date: January 12, 2017
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Patent number: 9535697
    Abstract: The present embodiments provide a system that facilitates lazy register window fills in a processor. During program execution, when the system encounters a restore instruction for a register window, the system determines if the restore instruction causes an underflow condition that requires the register window to be filled from a stack in memory. If so, the system completes the restore instruction by updating state information for the register window to indicate that the restore instruction is complete without actually filling the individual registers that comprise the register window from the stack. During subsequent program execution, the system lazily fills registers in the register window from the stack as the registers are accessed by the program.
    Type: Grant
    Filed: July 1, 2013
    Date of Patent: January 3, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Patent number: 9495731
    Abstract: A method for attenuating banding in image data may involve receiving a stream of input pixels. The method may then include applying a bi-lateral filter to a first portion of the stream of input pixels to generate a first filtered output and applying a high pass filter to a second portion of the stream of input pixels to generate a second filtered output. The method may then determine a local activity and a local intensity associated with the first portion of the stream. The method may then include blending the first filtered output with the first portion of the stream of input pixels based at least in part on the local activity and the local intensity to generate a third filtered output. Afterward, the method may combine the third filtered output with the second filtered output to generate a fourth filtered output that may be output as the image data.
    Type: Grant
    Filed: April 15, 2015
    Date of Patent: November 15, 2016
    Assignee: Apple Inc.
    Inventors: Jim C. Chou, Guy Cote, Haiyan He
  • Publication number: 20160307302
    Abstract: A method for attenuating banding in image data may involve receiving a stream of input pixels. The method may then include applying a bi-lateral filter to a first portion of the stream of input pixels to generate a first filtered output and applying a high pass filter to a second portion of the stream of input pixels to generate a second filtered output. The method may then determine a local activity and a local intensity associated with the first portion of the stream. The method may then include blending the first filtered output with the first portion of the stream of input pixels based at least in part on the local activity and the local intensity to generate a third filtered output. Afterward, the method may combine the third filtered output with the second filtered output to generate a fourth filtered output that may be output as the image data.
    Type: Application
    Filed: April 15, 2015
    Publication date: October 20, 2016
    Inventors: Jim C. Chou, Guy Cote, Haiyan He
  • Publication number: 20160307298
    Abstract: An image signal processing system may include processing circuitry that may reduce banding artifacts in image data to be depicted on a display. The processing circuitry may receive a first pixel value associated with a first pixel of the image data and detect a first set of pixels located in a first direction along a same row of pixels or a same column of pixels with respect to the first pixel. The first set of pixels is associated with a first band. The processing circuitry may then interpolate a second pixel value based on an average of a first set of pixel values that correspond to the first set of pixels and a distance between the first pixel and a closest pixel in the first band. The processing circuitry may then output the second pixel value for the first pixel.
    Type: Application
    Filed: April 15, 2015
    Publication date: October 20, 2016
    Inventors: Jim C. Chou, Guy Cote, Haiyan He
  • Patent number: 9473778
    Abstract: The video encoders described herein may make an initial determination to designate a macroblock as a skip macroblock, but may subsequently reverse that decision based on additional information. For example, an initial skip mode decision may be based on aggregate distortion metrics for the luma component of the macroblock (e.g., SAD, SATD, or SSD), then reversed based on an individual pixel difference metric, an aggregate or individual pixel metric for a chroma component of the macroblock, or on the position of the macroblock within a macroblock row. The final skip mode decision may be based, at least in part, on the maximum difference between any pixel in the macroblock (or in a region of interest within the macroblock) and the corresponding pixel in a reference frame. The initial skip mode decision may be made during an early stage of a pipelined video encoding process and reversed in a later stage.
    Type: Grant
    Filed: September 27, 2013
    Date of Patent: October 18, 2016
    Assignee: Apple Inc.
    Inventors: Jim C. Chou, Craig M. Okruhlica, Guy Cote
  • Patent number: 9442727
    Abstract: The disclosed embodiments relate to a system that selectively filters out redundant software prefetch instructions during execution of a program on a processor. During execution of the program, the system collects information associated with hit rates for individual software prefetch instructions as the individual software prefetch instructions are executed, wherein a software prefetch instruction is redundant if the software prefetch instruction accesses a cache line that has already been fetched from memory. As software prefetch instructions are encountered during execution of the program, the system selectively filters out individual software prefetch instructions that are likely to be redundant based on the collected information, so that likely redundant software prefetch instructions are not executed by the processor.
    Type: Grant
    Filed: October 14, 2013
    Date of Patent: September 13, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Patent number: 9392292
    Abstract: A video encoder may include a context-adaptive binary arithmetic coding (CABAC) encode component that converts each syntax element of a representation of a block of pixels to binary code, serializes it, and codes it mathematically with its probability model, after which the resulting bit stream is output. When the probability of a bin being coded with one of two possible symbols is one-half, the bin may be coded using bypass bin coding mode rather than a more compute-intensive regular bin coding mode. The CABAC encoder may code multiple consecutive bypass bins in a series of cascaded processing units during a single processing cycle (e.g., a regular bin coding cycle). Intermediate outputs of each processing unit may be coupled to inputs of the next processing unit. A resolver unit may accept intermediate outputs of the processing units and generate final output bits for the bypass bins.
    Type: Grant
    Filed: September 27, 2013
    Date of Patent: July 12, 2016
    Assignee: Apple Inc.
    Inventors: Weichun Ku, Jim C. Chou
  • Publication number: 20160196138
    Abstract: A processor includes an execution pipeline configured to execute instructions for threads, wherein the architectural state of a thread includes a set of register windows for the thread. The processor also includes a physical register file (PRF) containing both speculative and architectural versions of registers for each thread. When an instruction that writes to a destination register enters a rename stage, the rename stage allocates an entry for the destination register in the PRF. When an instruction that has written to a speculative version of a destination register enters a commit stage, the commit stage converts the speculative version into an architectural version. It also deallocates an entry for a previous version of the destination register from the PRF. When a register-window-restore instruction that deallocates a register window enters the commit stage, the commit stage deallocates local and output registers for the deallocated register window from the PRF.
    Type: Application
    Filed: March 14, 2016
    Publication date: July 7, 2016
    Applicant: Oracle International Corporation
    Inventor: Yuan C. Chou
  • Patent number: 9367312
    Abstract: A processor includes an execution pipeline configured to execute instructions for threads, wherein the architectural state of a thread includes a set of register windows for the thread. The processor also includes a physical register file (PRF) containing both speculative and architectural versions of registers for each thread. When an instruction that writes to a destination register enters a rename stage, the rename stage allocates an entry for the destination register in the PRF. When an instruction that has written to a speculative version of a destination register enters a commit stage, the commit stage converts the speculative version into an architectural version. It also deallocates an entry for a previous version of the destination register from the PRF. When a register-window-restore instruction that deallocates a register window enters the commit stage, the commit stage deallocates local and output registers for the deallocated register window from the PRF.
    Type: Grant
    Filed: February 26, 2014
    Date of Patent: June 14, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventor: Yuan C. Chou
  • Patent number: 9351003
    Abstract: A video encoder may include a context-adaptive binary arithmetic coding (CABAC) encode component that converts each syntax element of a representation of a block of pixels to binary code, serializes it, and codes it mathematically, after which the resulting bit stream is output. A lookup table in memory and a context cache may store probability values for supported contexts, which may be retrieved from the table or cache for use in coding syntax elements. Depending on the results of a syntax element coding, the probability value for its context may be modified (e.g., increased or decreased) in the cache and, subsequently, in the table. After coding multiple syntax elements, and based on observed access patterns for probability values, a mapping or indexing for the cache or the table may be modified to improve cache performance (e.g., to reduce cache misses or access data for related contexts using fewer accesses).
    Type: Grant
    Filed: September 27, 2013
    Date of Patent: May 24, 2016
    Assignee: Apple Inc.
    Inventors: Guy Cote, Weichun Ku, Jim C. Chou
  • Patent number: 9336558
    Abstract: In the video encoders described herein, blocks of pixels from a video frame may be encoded (e.g., using CAVLC encoding) in a block processing pipeline using wavefront ordering (e.g., in knight's order). Each of the encoded blocks may be written to a particular one of multiple DMA buffers such that the encoded blocks written to each of the buffers represent consecutive blocks of the video frame in scan order. A transcode pipeline may operate in parallel with (or at least overlapping) the operation of the block processing pipeline. The transcode pipeline may read encoded blocks from the buffers in scan order and merge them into a single bit stream (in scan order). A transcoder core of the transcode pipeline may decode the encoded blocks and encode them using a different encoding process (e.g., CABAC). In some cases, the transcoder may be bypassed.
    Type: Grant
    Filed: September 27, 2013
    Date of Patent: May 10, 2016
    Assignee: Apple Inc.
    Inventors: Guy Cote, Timothy John Millet, Joseph J. Cheng, Mark P. Rygh, Jim C. Chou
  • Patent number: 9322781
    Abstract: A method for producing an optically stimulated luminescene (OSL) dosage detection crystal is disclosed, where an Al2O3 is first covered with carbon. The carbon atoms are diffused then in vacuum into the Al2O3 lattices. Then, the oxygen and carbon atoms react with each other in an anneal process under 1 atm. At this time, oxygen and the carbon atoms are enabled to react with each other, and thus C+O result in CO, or C+O2 form CO2, so that oxygen vacancy deficiencies are formed in the Al2O3 crystal. At this time, a uniformly carbon distributed crystal structure is thus simply obtained.
    Type: Grant
    Filed: December 23, 2014
    Date of Patent: April 26, 2016
    Inventor: Mitch M. C. Chou
  • Patent number: 9317399
    Abstract: A method is provided to evaluate tests of computer program code comprising: configuring a computer to produce, in a computer readable storage device, a code filter to indicate one or more respective portions of the computer program code to respectively either omit from or to include in a determination of adequacy of results; and comparing test results with the computer program code with the one or more respective portions filtered using the code filter to respectively either omit the respective portions from or include the respective portions in the determination as indicated by the code filter.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: April 19, 2016
    Assignee: Synopsys, Inc.
    Inventors: Marat Boshernitsan, Scott McPeak, Andreas Kuehlmann, Roger H. Scott, Andy C. Chou, Kit Transue
  • Patent number: 9305325
    Abstract: Methods and apparatus for caching neighbor data in a block processing pipeline that processes blocks in knight's order with quadrow constraints. Stages of the pipeline may maintain two local buffers that contain data from neighbor blocks of a current block. A first buffer contains data from the last C blocks processed at the stage. A second buffer contains data from neighbor blocks on the last row of a previous quadrow. Data for blocks on the bottom row of a quadrow are stored to an external memory at the end of the pipeline. When a block on the top row of a quadrow is input to the pipeline, neighbor data from the bottom row of the previous quadrow is read from the external memory and passed down the pipeline, each stage storing the data in its second buffer and using the neighbor data in the second buffer when processing the block.
    Type: Grant
    Filed: September 25, 2013
    Date of Patent: April 5, 2016
    Assignee: Apple Inc.
    Inventors: Joseph J. Cheng, Guy Cote, Marc A. Schaub, Jim C. Chou
  • Patent number: 9304927
    Abstract: The disclosed embodiments relate to a method for dynamically changing a prefetching configuration in a computer system, wherein the prefetching configuration specifies how to change an ahead distance that specifies how many references ahead to prefetch for each stream. During operation of the computer system, the method keeps track of one or more stream lengths, wherein a stream is a sequence of memory references with a constant stride. Next, the method dynamically changes the prefetching configuration for the computer system based on observed stream lengths in a most-recent window of time.
    Type: Grant
    Filed: August 27, 2012
    Date of Patent: April 5, 2016
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Suryanarayana Murthy Durbhakula, Yuan C. Chou