KR20220021628A - System and Methods for Image Media Processing in Social Network - Google Patents

System and Methods for Image Media Processing in Social Network Download PDF

Info

Publication number
KR20220021628A
KR20220021628A KR1020200102417A KR20200102417A KR20220021628A KR 20220021628 A KR20220021628 A KR 20220021628A KR 1020200102417 A KR1020200102417 A KR 1020200102417A KR 20200102417 A KR20200102417 A KR 20200102417A KR 20220021628 A KR20220021628 A KR 20220021628A
Authority
KR
South Korea
Prior art keywords
image
user
data
image data
recipient
Prior art date
Application number
KR1020200102417A
Other languages
Korean (ko)
Inventor
이호익
윤순호
Original Assignee
이호익
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이호익 filed Critical 이호익
Priority to KR1020200102417A priority Critical patent/KR20220021628A/en
Publication of KR20220021628A publication Critical patent/KR20220021628A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/27Server based end-user applications
    • H04N21/274Storing end-user multimedia data in response to end-user request, e.g. network recorder
    • H04N21/2743Video hosting of uploaded data from client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/10Image enhancement or restoration using non-spatial domain filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23103Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Provided are a system, method, and non-transitory computer-readable media configured to create, process, and/or modify images. The method comprises: a step of receiving, by a first computing system, receiver image data associated with an original image captured by a second computing system; a step of generating a first intermediate image based on the receiver image data; a step of distributing and storing the generated first intermediate image in a distributed storage server; and a step of generating a first viewable image for display on the first computing system based on the distributed and stored first intermediate image. According to the present invention, a user can dramatically reduce time which takes to obtain processed image and benefit from ability to upload directly to a social network.

Description

소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 시스템 및 방법 {System and Methods for Image Media Processing in Social Network}System and Methods for Image Media Processing in Social Network

본 기술은 이미지 편집 프로세싱 분야에 관한 것이다. 보다 구체적으로, 본 기술은 소셜 네트워크에서 수신자 측에서 사진이나 영상 등의 미디어를 프로세싱하기 위한 기술을 제공한다.The present technology relates to the field of image editing processing. More specifically, the present technology provides a technology for processing media, such as a photo or video, at a receiver side in a social network.

사람들은 사진을 찍기 위한 다양한 선택지를 가진다. 필름 또는 디지털 형태로 이미지를 캡처하는데 사용되는 전통적인 카메라에 이외에도 스마트폰을 위시한 많은 모바일 장치들도 사진을 찍는 능력을 가진다. 예를 들어, 모바일 장치는 카메라 및 사용자가 모바일 장치 상의 카메라로 사진을 찍을 수 있게 하는 애플리케이션을 포함할 수 있다. 이들 이미지는 저장되고 아무 때나 볼 수 있을 수 있다. 인기가 늘고 있는 소셜 네트워크의 기능의 관점에서, 사진은 사용자의 연결과 많은 다른 방법으로 공유될 수 있다.People have many options for taking pictures. In addition to traditional cameras used to capture images in film or digital form, many mobile devices, including smartphones, also have the ability to take pictures. For example, a mobile device may include a camera and an application that allows a user to take a picture with the camera on the mobile device. These images are saved and can be viewed at any time. In view of the growing popularity of social networks, photos can be shared with users' connections and in many different ways.

이미지를 공유하기 위하여, 사용자는 이미지나 비디오가 공유될 하나 이상의 수신자를 선택할 필요가 있다. 공유되는 이미지는 종종 발신자측에서 프로세싱을 거쳐 전송된다. 즉, 발신자에 의해 이미지 캡처 및/또는 선택에 이어서, 이미지는 발신자에 의해 사용되는 클라이언트 장치에서 프로세싱된다. 예를 들어, 이미지는 발신자에 의해 지정된 수신자와 공유되기 전에 발신자에 의해 편집 또는 변경될 수 있다. 다른 예로서, 이미지는 발신자에 의해 지정된 수신자와 공유되기 전에 발신자에 의해 사용되는 클라이언트 장치에 의해 안정화될 수 있다. 공유되는 이미지는 서버 또는 수신자에 의해 사용되는 클라이언트 장치로 발신되기 전에 프로세싱될 필요가 있다. 따라서, 프로세싱에 필요한 시간 때문에 프로세싱된 이미지의 수신자로의 전송의 지연을 피할 수 없다.In order to share an image, the user needs to select one or more recipients to which the image or video will be shared. Shared images are often sent through processing at the sender side. That is, following image capture and/or selection by the sender, the image is processed at the client device used by the sender. For example, an image may be edited or changed by the sender before being shared with a recipient designated by the sender. As another example, the image may be stabilized by the client device used by the sender before being shared with the recipient designated by the sender. The shared image needs to be processed before being sent to the client device used by the server or recipient. Therefore, delay in transmission of the processed image to the receiver due to the time required for processing cannot be avoided.

소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 시스템 및 방법에 있어서, 모바일 디바이스에 캡처된 원본 이미지와 연관된 수신자 이미지 데이터를 수신하는 단계; 상기 수신자 이미지 데이터에 기반하여 제 1 중간 이미지를 생성하는 단계; 상기 생성된 제 1 중간 이미지를 분산저장서버에 분산저장하는 단계; 및 상기 분산저장된 제 1 중간 이미지에 기반하여 제 1 컴퓨팅 시스템 상에 디스플레이하기 위한 제 1 열람 가능 이미지를 생성하는 단계를 포함할 수 있다.A system and method for processing image media in a social network, comprising: receiving recipient image data associated with an original image captured on a mobile device; generating a first intermediate image based on the receiver image data; Distributing and storing the generated first intermediate image in a distributed storage server; and generating a first viewable image for display on a first computing system based on the distributed and stored first intermediate image.

이미지는 다양한 방법으로 다양한 때에 프로세싱될 수 있다. 일반적으로, 이미지 프로세싱은 입력으로서 사진이나 비디오 프레임과 같은 이미지, 출력으로서 이미지 또는 이미지와 연관된 특징이나 파라미터의 세트를 수반할 수 있다. 이미지는 캡처된 후 열람을 위해 렌더링되기 전에 프로세싱될 수 있다. 사용자는 이미지의 미를 향상시키기 위해 몇몇 이미지 효과를 높이도록 선택할 수 있다. 노출, 색, 색조 및 이미지의 다른 파라미터가 공유되고 사용자의 연결에 의해 열람되기 전 편집될 수 있다. 이로 인해 사용자는 프로세싱 된 이미지를 얻는 데 드는 시간을 획기적으로 줄이고 소셜 네트워크에 바로 업로드 할 수 있는 장점을 얻을 수 있다.Images may be processed in various ways and at various times. In general, image processing may involve an image, such as a picture or video frame, as an input, an image as an output, or a set of features or parameters associated with the image. Images may be captured and then processed before being rendered for viewing. The user can choose to enhance some image effects to enhance the beauty of the image. Exposure, color, hue and other parameters of the image can be shared and edited before being viewed by the user's connection. Due to this, users can dramatically reduce the time required to obtain processed images and benefit from the ability to upload directly to social networks.

도 1은 본 명세서의 일실시예에 따른 이미지를 렌더링 및/또는 프로세싱하도록 구성된 이미지 프로세싱 모듈의 예시를 포함하는 시스템의 예시를 도시한다.
도 2는 본 명세서의 일실시예에 따른 이미지 데이터 변환 모듈의 예시를 도시한다.
도 3은 본 명세서의 일실시예에 따른 수신자측 이미지 프로세싱을 위한 시스템의 예시를 도시한다.
도 4는 본 명세서의 일실시예에 따른 이미지 생성 모듈의 예시를 도시한다.
도 5는 본 명세서의 일실시예에 따른 수신자측에서 이미지를 프로세싱하는 방법의 예시를 도시한다.
도 6은 본 명세서의 일실시예에 따른 수신자측에서 이미지를 프로세싱하는 방법의 예시를 도시한다.
1 shows an example of a system including an example of an image processing module configured to render and/or process an image according to an embodiment of the present disclosure;
2 shows an example of an image data conversion module according to an embodiment of the present specification.
3 shows an example of a system for receiver-side image processing according to an embodiment of the present disclosure.
4 shows an example of an image generating module according to an embodiment of the present specification.
5 shows an example of a method of processing an image at a receiver side according to an embodiment of the present specification.
6 shows an example of a method of processing an image at a receiver side according to an embodiment of the present specification.

소셜 네트워킹 시스템은 사용자가 소셜 네트워킹 시스템과 인터페이스할 수 있게 하는 클라이언트 애플리케이션을 포함할 수 있다. 용어 "클라이언트 애플리케이션"은 본 명세서에서 널리 사용되며 사용자를 위한 클라이언트 장치 상에 표시 또는 디스플레이되는 사용자 인터페이스를 제공하는 임의의 프로그램이나 소프트웨어를 포함할 수 있다. 클라이언트 애플리케이션은 휴대 전화에서 실행되는 모바일 애플리케이션과 갈은 클라이언트 장치에서 실행되는 독립형 애플리케이션을 포함할 수 있다. 클라이언트 애플리케이션은 또한 클라이언트 장치 상의 웹 브라우저를 통해 사용자에 의해 접근가능한 하나 이상의 웹 페이지를 가지는 웹사이트를 포함할 수 있다. 클라이언트 애플리케이션은 클라이언트 장치 상에 사용자에게 디스플레이되기 위한 이미지를 제공할 수 있다. 본 명세서에 서술되는 이미지는 그림, 사진, 그래픽 이미지, 광고 등에 관련될 수 있다. 특정 예에서, 본 명세서에 서술되는 이미지는 또한 비디오와 같은 이미지의 세트에도 동일하게 적용될 수 있다. 본 명세서의 시스템 및 방법의 특징이 소셜 네트워킹 시스템과 관련하여 서술되지만, 특징은 다양한 이미지의 디스플레이를 수반하는 임의의 적절한 네트워크화된 컴퓨터 시스템에도 적용될 수 있음을 유의하여야 한다.The social networking system may include a client application that allows a user to interface with the social networking system. The term “client application” is used broadly herein and may include any program or software that provides a user interface that is displayed or displayed on a client device for a user. Client applications may include mobile applications running on cell phones and standalone applications running on client devices. A client application may also include a website having one or more web pages accessible by a user through a web browser on the client device. The client application may provide an image for display to the user on the client device. The images described herein may relate to drawings, photographs, graphic images, advertisements, and the like. In certain instances, the images described herein are equally applicable to a set of images, such as a video as well. Although features of the systems and methods herein are described in the context of a social networking system, it should be noted that the features may also be applied to any suitable networked computer system involving the display of various images.

도 1은 본 명세서의 일실시예에 따른 이미지를 생성, 프로세싱 및/또는 수정하도록 구성된 이미지 프로세싱 모듈의 예시를 포함하는 시스템(100)의 예시를 도시한다. 도 1에 도시된 바와 같이, 이미지 프로세싱 모듈(102)의 예시는 이미지 데이터 변환 모듈(104) 및 이미지 생성 모듈(106)을 포함할 수 있다.1 shows an example of a system 100 that includes an example of an image processing module configured to generate, process, and/or modify an image in accordance with an embodiment herein. As shown in FIG. 1 , an example of the image processing module 102 may include an image data conversion module 104 and an image generation module 106 .

시스템(100)은 적어도 하나의 데이터 스토어(108)를 포함할 수 있다. 도 1의 예시에서, 적어도 하나의 이미지 스토어(110)는 이미지 데이터 및 원본 이미지, 중간 이미지 및 열람 가능 이미지를 포함하는 이미지를 저장하도록 구성될 수 있다. 이미지는 이미지 데이터로부터 생성될 수 있다. 일부 실시예에서, 이미지 데이터는 일련의 디지털 인코딩된 코히어런트 신호 또는 이미지의 정보를 운반하는 데이터 패킷인 데이터 스트림일 수 있다. 이미지 데이터는 다양한 압축 관련 포맷에 따라 이미지를 압축함으로써 생성될 수 있다. 다양한 압축 기술은 상이한 실시예, 예컨대 무손실 압축(예컨대, FFV1, JPEG 2000 lossless, PNG, QuickTime 등)또는 손실 압축(예컨대, Cinepak, H.261, MPEG-4 Part 2 등)에서 사용될 수 있다.System 100 may include at least one data store 108 . In the example of FIG. 1 , the at least one image store 110 may be configured to store image data and an image including an original image, an intermediate image, and a viewable image. An image may be generated from image data. In some embodiments, the image data may be a data stream, which is a series of digitally encoded coherent signals or data packets carrying information in the image. The image data may be generated by compressing the image according to various compression-related formats. Various compression techniques may be used in different embodiments, eg, lossless compression (eg, FFV1, JPEG 2000 lossless, PNG, QuickTime, etc.) or lossy compression (eg, Cinepak, H.261, MPEG-4 Part 2, etc.).

다양한 실시예에서, 발신자에 의해 캡처된 원본 이미지뿐만 아니라 원본 이미지에 기반하여 프로세싱된 파생 이미지가 데이터 스토어(108)에 저장될 수 있다. 파생 이미지의 적어도 하나의 이미지 파라미터가 원본 이미지와 상이할 수 있다. 예를 들어, 파생 이미지는 원본 이미지와는 상이한 이미지 품질, 해상도 또는 컬러 포맷을 가질 수 있다. 파생 이미지는 코멘트, 주석 또는 특수 효과를 가지는 원본 이미지일 수 있다. 파생 이미지는 중간 이미지 및/또는 열람 가능한 이미지일 수 있다.In various embodiments, the original image captured by the sender as well as a derived image processed based on the original image may be stored in the data store 108 . At least one image parameter of the derived image may be different from the original image. For example, the derived image may have a different image quality, resolution, or color format than the original image. Derived images may be original images with comments, comments, or special effects. The derivative image may be an intermediate image and/or a viewable image.

이미지 데이터 변환 모듈(104)은 이미지 데이터로부터 이미지를 생성하도록 구성될 수 있다. 다양한 실시예에서, 이미지 데이터 변환 모듈(104)에 의해 생성된 이미지는 중간 이미지이다. 즉, 이미지 데이터 변환 모듈(104)에 의해 생성된 이미지는 일부 경우에 수신자에게 디스플레이되지 않는다. 예를 들어, 수신자의 클라이언트 장치는 이미지 데이터로부터 중간 이미지를 생성할 수 있다. 일부 예시에서, 중간 이미지는 열람 가능하지 않을 수 있다. 따라서, 중간 이미지는 발신자의 지시에 따라 프로세싱되어 수신자에게 표시될 수 있는 열람 가능 이미지를 생성할 수 있다. 예를 들어, 발신자는 비디오 클립 녹화 전 수신자를 선택할 수 있다. 비디오 클립이 녹화되는 동안 비디오 클립의 이미지 데이터는 전송되고 수신자에 의해 수신될 수 있다. 이미지 데이터에 기반하여 생성된 중간 이미지는 수신자에 의해 열람되기 위하여 더 프로세싱될 수 있다.The image data conversion module 104 may be configured to generate an image from image data. In various embodiments, the image generated by the image data conversion module 104 is an intermediate image. That is, the image generated by the image data conversion module 104 is not displayed to the recipient in some cases. For example, the recipient's client device may generate an intermediate image from the image data. In some examples, the intermediate image may not be viewable. Thus, the intermediate image can be processed according to the sender's instructions to create a viewable image that can be displayed to the recipient. For example, a sender can select a recipient before recording a video clip. While the video clip is being recorded, the image data of the video clip can be transmitted and received by a recipient. The intermediate image generated based on the image data may be further processed for viewing by the recipient.

이미지 생성 모듈(106)은 수신자에게 표시되기 위해 중간 이미지를 열람 가능 이미지로 프로세싱하도록 구성될 수 있다. 중간 이미지는 발신자의 지시에 따라 프로세싱될 수 있다. 일부 실시예에서, 중간 이미지는 중개자(예컨대, 서버) 또는 수신자(예컨대, 클라이언트 장치)의 보충적 또는 대안적 지시에 따라 프로세싱될 수 있다. 원본 이미지가 예컨대, 발신자에 의해 제공된 지시에 따라 생성되도록 수신자에게 디스플레이되기 위한 열람 가능 이미지가 중간 이미지에 기반하여 생성된다.The image creation module 106 may be configured to process the intermediate image into a viewable image for presentation to a recipient. The intermediate image may be processed according to the sender's instructions. In some embodiments, intermediate images may be processed according to supplemental or alternative instructions of an intermediary (eg, a server) or a recipient (eg, a client device). A viewable image for display to the recipient is generated based on the intermediate image such that the original image is generated, for example, according to instructions provided by the sender.

열람 가능 이미지를 생성하기 위한 중간 이미지 프로세싱은 임의의 타입의 이미지 프로세싱을 수반할 수 있다. 예를 들어, 발신자는 수신자와 공유될 때 수정될 원본 이미지의 하나 이상의 이미지 파라미터(예컨대, 컬러, 노출, 초점, 콘트라스트, 흐림, 해상도 등)를 필요로 할 수 있다. 다른 예로서, 발신자는 원본 이미지에 이미지 또는 사진 필터(예컨대, Amaro, Mayfair, Sierra, Lo-fi, Inkwell, 1977 등)의 적용을 선택할 수 있다. 또 다른 예로서, 중간 이미지는 안정화가 원본 이미지에 수행되어 열람 가능 이미지를 생성하도록 프로세싱될 수 있다. 또 다른 예로서, 녹화된 대로의 원본 비디오 클립은 다양한 이유로 흐릿할 수 있고 프로세싱은 흐림을 개선 또는 수정하기 위해 수행될 수 있다.Intermediate image processing to create a viewable image may involve any type of image processing. For example, the sender may need one or more image parameters (eg, color, exposure, focus, contrast, blur, resolution, etc.) of the original image to be modified when shared with the recipient. As another example, the sender may choose to apply an image or photo filter (eg, Amaro, Mayfair, Sierra, Lo-fi, Inkwell, 1977, etc.) to the original image. As another example, the intermediate image may be processed such that stabilization is performed on the original image to produce a viewable image. As another example, the original video clip as recorded may be blurry for a variety of reasons and processing may be performed to improve or correct the blur.

도 2는 본 명세서의 일실시예에 따른 도 1에 도시된 이미지 데이터 변환 모듈(202)(예컨대, 이미지 데이터 변환 모듈(104))의 예시를 도시한다. 이미지 데이터 변환 모듈(202)의 예시는 이미지 데이터에 기반하여 중간 이미지의 세트를 생성할 수 있다. 이미지 데이터(212)는 데이터 스토어(210)(예컨대, 도 1의 데이터 스토어(108))로부터 획득 또는 수신할 수 있다. 중간 이미지(214)는 이미지 데이터(212)에 기반하여 생성될 수 있고 데이터 스토어(210)에 저장될 수 있다. 다양한 실시예에서, 이미지 데이터 변환 모듈(202)은 이미지 데이터가 수신됨에 따라 실시간 또는 거의 실시간으로 비디오와 연관된 이미지 데이터에 기반하여 중간 이미지의 세트를 생성하도록 구성될 수 있다.FIG. 2 shows an example of the image data conversion module 202 (eg, the image data conversion module 104 ) shown in FIG. 1 according to an embodiment of the present specification. An example of the image data conversion module 202 may generate a set of intermediate images based on the image data. Image data 212 may be obtained or received from data store 210 (eg, data store 108 of FIG. 1 ). The intermediate image 214 may be generated based on the image data 212 and may be stored in the data store 210 . In various embodiments, the image data conversion module 202 may be configured to generate a set of intermediate images based on image data associated with video in real-time or near real-time as the image data is received.

이미지 데이터 변환 모듈(202)은 데이터 수신 모듈(204), 데이터 복호화 모듈(206) 및 데이터-이미지 변환 모듈(208)을 포함할 수 있다. 이미지 데이터는 발신자에 의해 캡처된 원본 이미지의 정보를 포함할 수 있다. 원본 이미지는 이미지 데이터로부터 생성될 수 있다. 일부 실시예에서, 낮은 품질이거나 높은 품질이지만 원본 이미지에 기반한 이미지가 이미지 데이터로부터 생성될 수 있다. 이미지 품질은 선명도, 노이즈, 다이나믹 레인지, 계조 재현, 콘트라스트, 색 정확도, 왜곡, 비네팅, 노출 정확도, 횡색수차, 렌즈 플레어, 색 무아레 및 아티팩트를 포함하는 다양한 인자에 의해 통지될 수 있다.The image data conversion module 202 may include a data receiving module 204 , a data decoding module 206 , and a data-image conversion module 208 . The image data may include information of the original image captured by the sender. The original image may be generated from image data. In some embodiments, an image of low or high quality but based on the original image may be generated from the image data. Image quality can be informed by a variety of factors including sharpness, noise, dynamic range, gradation reproduction, contrast, color accuracy, distortion, vignetting, exposure accuracy, lateral chromatic aberration, lens flare, color moire, and artifacts.

데이터 수신 모듈(204)은 사용자가 발신자에 의해 수신자로 지정될 때 이미지 데이터를 수신하도록 구성될 수 있다. 다양한 실시예에서, 이미지 데이터는 원본 이미지가 캡처됨에 따라 실시간 또는 거의 실시간으로 수신될 수 있다. 이미지 데이터는 수신자 장치와 호환되거나 최적화된 포맷에 따라 원본 이미지로부터 생성될 수 있다. 일부 실시예에서, 수신된 이미지 데이터는 압축되거나 원본 이미지의 이미지 데이터에 대해 다르게 수정될 수 있다.The data receiving module 204 may be configured to receive image data when a user is designated as a recipient by the sender. In various embodiments, image data may be received in real-time or near real-time as the original image is captured. The image data may be generated from the original image according to a format compatible or optimized with the recipient device. In some embodiments, the received image data may be compressed or otherwise modified relative to the image data of the original image.

데이터 복호화 모듈(206)은 수신된 이미지 데이터를 복호화하도록 구성될 수 있다. 이미지 데이터는 암호 키로 암호화될 수 있다. 이미지 데이터는 암호 키를 사용하여 복호화될 수 있는데, 발신자에 의해 제공되거나 서버로부터 획득할 수 있다.The data decoding module 206 may be configured to decode the received image data. Image data may be encrypted with an encryption key. The image data may be decrypted using an encryption key, which may be provided by the sender or obtained from a server.

데이터-이미지 변환 모듈(208)은 데이터 수신 모듈(204)에 의해 수신된 이미지 데이터에 기반하여 중간 이미지의 세트를 생성하도록 구성된다. 일부 실시예에서, 수신된 이미지 데이터가 암호화되었을 때, 데이터-이미지 변환 모듈(208)은 복호화된 이미지 데이터에 수행될 수 있다. 본 명세서에 서술된 바와 같이, 다르게 명시되지 않는 한, 수신된 이미지 데이터는 암호화되지 않는다. 다양한 실시예에서, 데이터-이미지 변환 모듈(208)은 이미지 데이터를 압축 해제하고 이미지의 세트를 생성하도록 구성될 수 있다. 이미지의 세트는 중간 이미지인데, 수신자에게 디스플레이되기 위해 더 프로세싱될 수 있다.The data-to-image conversion module 208 is configured to generate a set of intermediate images based on the image data received by the data receiving module 204 . In some embodiments, when the received image data has been encrypted, the data-to-image conversion module 208 may be performed on the decrypted image data. As described herein, the received image data is not encrypted unless otherwise specified. In various embodiments, the data-to-image conversion module 208 may be configured to decompress image data and generate a set of images. The set of images is an intermediate image, which may be further processed for display to a recipient.

중간 이미지는 픽셀의 위치 및 RGB 값과 같은 픽셀을 서술하는 정보를 포함할 수 있다. 따라서, 중간 이미지는 수신자에게 디스플레이하기 위한 열람 가능 이미지를 생성할 기초를 제공할 수 있다. 열람 가능 이미지는 발신자에 의해 캡처된 원본 이미지에 기반하고 발신자의 지시에 따라 수정될 수 있다. 일부 실시예에서, 중간 이미지는 중개자(예컨대, 서버) 또는 수신자(예컨대, 클라이언트 장치)의 보충적 또는 대안적 지시에 따라 프로세싱될 수 있다. 일부 실시예에서, 중간 이미지는 수신자에게 표시되는 이미지일 수 있다. 데이터-이미지 변환 모듈(208)은 다양한 이미지 또는 비디오 압축 해제 포맷에 따라 이미지 데이터를 압축 해제할 수 있다. 즉, 이미지 데이터의 데이터 스트림은 이미지 또는 비디오 압축 해제 포맷에 의해 정의된 비트스트림 포맷에 따라 디코딩될 수 있다.The intermediate image may contain information describing the pixel, such as the pixel's location and RGB values. Thus, the intermediate image may provide a basis from which to create a viewable image for display to the recipient. The viewable image is based on the original image captured by the sender and may be modified according to the sender's instructions. In some embodiments, intermediate images may be processed according to supplemental or alternative instructions of an intermediary (eg, a server) or a recipient (eg, a client device). In some embodiments, the intermediate image may be an image displayed to the recipient. The data-to-image conversion module 208 may decompress image data according to various image or video decompression formats. That is, a data stream of image data may be decoded according to a bitstream format defined by an image or video decompression format.

도 3은 본 명세서의 일실시예에 따른 수신자측 이미지 프로세싱을 위한 시스템의 예시를 도시한다. 도 3은 본 명세서의 일실시예에 따른 도 1에 도시된 수신자측 이미지 프로세싱을 위한 시스템(300a)(예컨대, 이미지 데이터 변환 모듈(104))의 예시를 도시한다.3 shows an example of a system for receiver-side image processing according to an embodiment of the present disclosure. FIG. 3 shows an example of a system 300a (eg, image data conversion module 104 ) for receiver-side image processing shown in FIG. 1 in accordance with an embodiment of the present disclosure.

도시된 시스템(300a)은 수신자 장치(302), 발신자 장치(304), 서버(306) 및 네트워크(308)를 포함한다. 수신자 장치(302) 및 발신자 장치(304)는 전체적으로 클라이언트 장치로 지칭될 수 있다. 용어 "서버"는 본 명세서에서 널리 사용되며 하나 이상의 서버와 같은 클라이언트 장치에 컨텐츠를 제공하는 컴퓨터 시스템을 포함할 수 있다. 클라이언트 장치(예컨대, 수신자 장치(302) 또는 발신자 장치(304))는 임의의 컴퓨터 시스템을 포함할 수 있다. 다양한 실시예에서, 클라이언트 장치는 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 장치, 휴대 전화 또는 임의의 다른 장치를 포함할 수 있다. 클라이언트 장치는 클라이언트 애플리케이션 및 디스플레이를 포함할 수 있다. 서버(306)는 수신자 장치(302) 및 발신자 장치(304)와 원격일 수 있다. 서버(306)는 인터넷과 같은 네트워크(308)를 통해 클라이언트 장치(예컨대, 수신자 장치(302) 또는 발신자 장치(304))와 통신적으로 연결될 수 있다. 각 수신자 장치(302), 발신자 장치(304) 및 서버(306)는 유선 또는 무선 통신으로 네트워크(308)에 연결될 수 있다.The illustrated system 300a includes a receiver device 302 , an originator device 304 , a server 306 , and a network 308 . Recipient device 302 and sender device 304 may be referred to collectively as a client device. The term “server” is used broadly herein and may include a computer system that provides content to client devices, such as one or more servers. A client device (eg, recipient device 302 or sender device 304 ) may include any computer system. In various embodiments, a client device may include a desktop computer, a laptop computer, a tablet computing device, a mobile phone, or any other device. A client device may include a client application and a display. The server 306 may be remote from the recipient device 302 and the sender device 304 . Server 306 may be communicatively coupled with a client device (eg, recipient device 302 or sender device 304 ) via a network 308 , such as the Internet. Each recipient device 302 , sender device 304 , and server 306 may be coupled to the network 308 by wired or wireless communication.

클라이언트 애플리케이션은 클라이언트 장치(예컨대, 수신자 장치(302) 또는 발신자 장치(304)) 상에서 실행되고 클라이언트 장치의 디스플레이 상에 사용자에게 디스플레이될 수 있다. 클라이언트 애플리케이션은 예를 들어 모바일 애플리케이션과 같은 독립형 애플리케이션일 수 있다. 다른 실시예에서, 클라이언트 애플리케이션은 서버(306) 상에서 실행되고 클라이언트 장치 상에 표시되기 위해 클라이언트 장치와 통신할 수 있다. 예를 들어, 클라이언트 애플리케이션은 웹 브라우저를 통해 사용자에 의해 접근 가능한 하나 이상의 웹 페이지를 가지는 웹사이트를 포함할 수 있다.The client application may run on a client device (eg, recipient device 302 or sender device 304 ) and displayed to a user on a display of the client device. The client application may be a standalone application, for example a mobile application. In another embodiment, a client application may run on the server 306 and communicate with the client device for presentation on the client device. For example, a client application may include a website having one or more web pages accessible by a user through a web browser.

일부 실시예에서, 데이터 스토어(예컨대, 도 1의 데이터 스토어(108) 또는 도 2의 데이터 스토어(210))는 원본 이미지, 이미지 데이터뿐만 아니라 원본 이미지에 기반한 임의의 파생 이미지(예컨대, 중간 이미지, 열람 가능 이미지)를 저장할 수 있다. 이미지 데이터 스토어의 위치는 다양할 수 있다. 예컨대, 이미지 데이터 스토어는 클라이언트 장치(예컨대, 수신자 장치(302) 및/또는 발신자 장치(304)) 내에 위치할 수 있다. 다른 예로서, 이미지 스토어는 발신자 장치(304) 내에 또는 서버(306) 내에 위치한 이미지 프로세싱 모듈(예컨대, 도 1의 이미지 프로세싱 모듈(102)) 내에 위치할 수 있다. 이미지 데이터 스토어도 발신자 장치(304) 내에 또는 서버(306) 내에 위치한 이미지 프로세싱 모듈(예컨대, 도 1의 이미지 프로세싱 모듈(102))로부터 원격으로 위치할 수 있다.In some embodiments, the data store (eg, data store 108 of FIG. 1 or data store 210 of FIG. 2 ) may contain the original image, image data, as well as any derivative images based on the original image (eg, intermediate images; viewable images). The location of the image data store may vary. For example, the image data store may be located within a client device (eg, recipient device 302 and/or sender device 304 ). As another example, the image store may be located within the sender device 304 or within an image processing module located within the server 306 (eg, the image processing module 102 of FIG. 1 ). The image data store may also be located within the originator device 304 or remotely from an image processing module located within the server 306 (eg, the image processing module 102 of FIG. 1 ).

다양한 실시예에서, 발신자 장치(304)는 이미지를 캡처하고 수신자 장치(302)에 호환되거나 최적화된 포맷(예컨대, 압축률, 크기, 이미지 품질 등)으로 제공할 수 있다. 예를 들어, 제한된 연산 능력, 제약된 밴드폭, 네트워크 제한, 데이터 제한 또는 비용, 또는 수신자의 설정과 같은 제약이 수신자 장치의 성능에 영향을 미칠 수 있다. 낮은 성능의 수신자 장치는 휴대 전화 상의 디스플레이를 위해 이미지를 리사이즈(예컨대, 축소)할 프로세싱 능력을 가지지 않을 수도 있다. 나아가, 이들 수신자 장치는 허용 가능한 시간 내에 고품질 이미지 또는 복수의 이미지와 연관된 많은 양의 데이터를 다운로드할 프로세싱 능력을 가지지 않을 수도 있다. 게다가, 이들 수신자 장치는 비트 레이트로 압축된 이미지 데이터를 프로세싱하거나, 데이터 스트림을 디코딩하거나, 발신자의 지시를 프로세싱할 연산 능력을 가지지 않을 수도 있다. 프로세싱 능력의 부족뿐만 아니라 긴 다운로드 및/또는 프로세싱 시간도 일반적으로 수신자 장치 상의 클라이언트 애플리케이션의 속도 및 동작에 불리하게 영향을 미치고, 불만족스러운 사용자 경험을 낳을 수 있다.In various embodiments, the sender device 304 may capture an image and provide it to the recipient device 302 in a format that is compatible or optimized (eg, compression ratio, size, image quality, etc.). For example, constraints such as limited computing power, limited bandwidth, network limitations, data limitations or costs, or settings of the receiver may affect the performance of the receiver device. A low performing recipient device may not have the processing capability to resize (eg, reduce) an image for display on a mobile phone. Furthermore, these recipient devices may not have the processing capability to download high quality images or large amounts of data associated with a plurality of images in an acceptable time. Moreover, these recipient devices may not have the computational capability to process image data compressed to the bit rate, decode the data stream, or process the sender's instructions. Long download and/or processing times as well as lack of processing power can adversely affect the speed and operation of the client application on the recipient device in general, resulting in an unsatisfactory user experience.

수신자 장치에 대한 장치 정보가 발신자 장치로 제공될 수 있다. 장치 정보는 서버에 더 제공될 수 있다. 예를 들어, 도시된 바와 같이, 수신자 장치(302)에 관한 장치 정보(310)가 네트워크(308)를 통해 발신자 장치(304)로 제공될 수 있다. 장치 정보는 캡처 및 발신자로부터 수신자로의 이미지 제공에 영향을 줄 수 있는 장치에 대한 정보를 포함할 수 있다. 예를 들어, 연산 능력, 운영체제, 네트워크 캐리어, 밴드폭 또는 이미지의 포맷에 영향을 줄 수 있는 다른 정보가 수신자로부터 발신자에게 제공될 수 있다. 이미지의 캡처 및 수신자 장치로의 전송에 요구되는 데이터의 양은 다양한 인자, 예컨대 이미지가 압축되는 이미지 품질, 이미지의 크기 등에 따를 수 있다. 더 높은 이미지 품질로의 압축은 더 낮은 이미지 품질로의 압축보다 이미지를 적절히 표현하는데 더 많은 데이터를 요구할 수 있다. 나아가, 더 큰 크기의 이미지의 압축은 더 작은 사이즈의 압축보다 더 많은 데이터를 요구할 수 있다. 이미지 프로세싱 모듈(예컨대, 도 1의 이미지 프로세싱 모듈(102))은 장치 정보(310)를 발신자 장치(304)로 통신할 수 있다.Device information for the recipient device may be provided to the sender device. The device information may further be provided to the server. For example, as shown, device information 310 regarding a recipient device 302 may be provided to an originator device 304 via a network 308 . Device information may include information about the device that may affect the capture and presentation of the image from the sender to the receiver. For example, computing power, operating system, network carrier, bandwidth or other information that may affect the format of the image may be provided from the receiver to the sender. The amount of data required for capture of the image and transmission to the recipient device may depend on various factors, such as the image quality with which the image is compressed, the size of the image, and the like. Compression to a higher image quality may require more data to properly represent the image than compression to a lower image quality. Furthermore, compression of a larger size image may require more data than compression of a smaller size. An image processing module (eg, image processing module 102 of FIG. 1 ) may communicate device information 310 to the originator device 304 .

수신자 장치(302)에 의해 제공된 장치 정보(310)에 기반하여, 발신자 장치(304)는 수신자 장치(302)에 제공되고 프로세싱될 수 있는 이미지 데이터(312)를 생성할 수 있다. 이미지 데이터(312)는 수신자 장치(302)와 호환되거나 최적화되도록 생성된다. 예를 들어, 장치 정보(310)에 기반하여, 발신자 장치(304)는 수신자 장치(302)가 복수의 이미지 포맷을 지원할 수 있다고 결정할 수 있고 따라서 지원되는 이미지 포맷을 선택하여 이미지 데이터(312)를 생성할 수 있다. 이미지 포맷은 수신자에게 최고의 사용자 경험을 제공하도록 선택될 수 있다. 이미지 포맷은 최고의 이미지 품질, 가장 빠른 이미지 전달 속도, 가장 낮은 비용 또는 다른 사용자의 설정이 수신자에게 제공되도록 선택될 수 있다. 예를 들어, 장치 정보(310)에 기반하여, 발신자 장치(304)는 수신자 장치(302)가 한 이미지 포맷만을 지원한다고 결정할 수 있고 이에 의하여 그 이미지 포맷에 기반하여 이미지 데이터(312)를 생성한다.Based on the device information 310 provided by the recipient device 302 , the sender device 304 can generate image data 312 that can be provided to and processed by the recipient device 302 . The image data 312 is generated to be compatible or optimized with the recipient device 302 . For example, based on the device information 310 , the originating device 304 may determine that the recipient device 302 is capable of supporting multiple image formats and thus selects a supported image format to display the image data 312 . can create The image format may be selected to provide the best user experience to the recipient. The image format may be selected so that the best image quality, fastest image delivery speed, lowest cost, or other user settings are provided to the recipient. For example, based on the device information 310 , the originating device 304 may determine that the recipient device 302 supports only one image format, thereby generating image data 312 based on the image format. .

다양한 실시예에서, 이미지 데이터(312)가 발신자 장치(304)에 의해 생성됨에 따라 이미지 데이터(312)가 수신자 장치(302)로 실시간 또는 거의 실시간으로 제공된다. 도시된 예시에서, 이미지 데이터(312)는 발신자 장치(304)로부터 네트워크(308)를 통해 수신자 장치(302)로 제공된다. 추가 실시예에서, 이미지 데이터(312)가 서버(306)로 제공될 수 있다.In various embodiments, image data 312 is provided to recipient device 302 in real-time or near real-time as image data 312 is generated by sender device 304 . In the illustrated example, image data 312 is provided from an originator device 304 to a recipient device 302 over a network 308 . In further embodiments, image data 312 may be provided to server 306 .

수신자 장치(302)에 의해 제공된 장치 정보(310)에 기반하여, 발신자 장치(304)는 수신자 장치(302)가 이미지를 프로세싱할 수 없거나 이미지가 발신자 장치(304)에 의해 프로세싱되는 것이 더 효율적이라고 결정할 수 있다. 이런 경우에, 원본 이미지는 수신자 장치(302) 대신 발신자 장치(304)에 의해 파생 이미지를 생성하도록 프로세싱될 수 있다. 이미지 데이터(312)는 원본 이미지의 파생 이미지에 기반하여 생성될 수 있다. 이미지 데이터(312)는 수신자에게 디스플레이되기 위해 수신자 장치(302)에 제공될 수 있다.Based on the device information 310 provided by the recipient device 302 , the sender device 304 determines that the recipient device 302 is unable to process the image or that it is more efficient for the image to be processed by the sender device 304 . can decide In this case, the original image may be processed by the sender device 304 instead of the recipient device 302 to generate a derivative image. The image data 312 may be generated based on a derivative image of the original image. The image data 312 may be provided to a recipient device 302 for display to the recipient.

클라이언트 애플리케이션은 클라이언트 장치(예컨대, 수신자 장치(302) 또는 발신자 장치(304)) 상에서 실행되고 디스플레이 상에 클라이언트 애플리케이션의 사용자에게 디스플레이될 수 있다. 클라이언트 애플리케이션은 예를 들어 모바일 애플리케이션과 같은 독립형 애플리케이션일 수 있다. 다른 실시예에서, 클라이언트 애플리케이션은 서버(306) 상에서 실행되고 클라이언트 장치 상에 표시되기 위해 클라이언트 장치와 통신할 수 있다. 예를 들어, 클라이언트 애플리케이션은 웹 브라우저를 통해 사용자에 의해 접근 가능한 하나 이상의 웹 페이지를 가지는 웹사이트를 포함할 수 있다.The client application may run on a client device (eg, recipient device 302 or sender device 304 ) and displayed to a user of the client application on a display. The client application may be a standalone application, for example a mobile application. In another embodiment, a client application may run on the server 306 and communicate with the client device for presentation on the client device. For example, a client application may include a website having one or more web pages accessible by a user through a web browser.

일부 실시예에서, 데이터 스토어(예컨대, 도 1의 데이터 스토어(108) 또는 도 2의 데이터 스토어(210))는 원본 이미지, 이미지 데이터뿐만 아니라 원본 이미지에 기반한 임의의 파생 이미지를 저장할 수 있다. 이미지 데이터 스토어의 위치는 다양할 수 있다. 예컨대, 이미지 데이터 스토어는 클라이언트 장치(예컨대, 수신자 장치(302) 및/또는 발신자 장치(304)) 내에 위치할 수 있다. 다른 예로서, 이미지 스토어는 발신자 장치(304) 내에 또는 서버(306) 내에 위치한 이미지 프로세싱 모듈(예컨대, 도 1의 이미지 프로세싱 모듈(102)) 내에 위치할 수 있다. 이미지 데이터 스토어도 발신자 장치(304) 내에 또는 서버(306) 내에 위치한 이미지 프로세싱 모듈(예컨대, 도 1의 이미지 프로세싱 모듈(102))로부터 원격으로 위치할 수 있다.In some embodiments, a data store (eg, data store 108 of FIG. 1 or data store 210 of FIG. 2 ) may store the original image, image data, as well as any derivative images based on the original image. The location of the image data store may vary. For example, the image data store may be located within a client device (eg, recipient device 302 and/or sender device 304 ). As another example, the image store may be located within the sender device 304 or within an image processing module located within the server 306 (eg, the image processing module 102 of FIG. 1 ). The image data store may also be located within the originator device 304 or remotely from an image processing module located within the server 306 (eg, the image processing module 102 of FIG. 1 ).

다양한 실시예에서, 발신자 장치(304)는 이미지를 캡처하고 수신자 장치(302)에 호환되거나 최적화된 포맷(예컨대, 압축률, 크기, 이미지 품질 등)으로 제공할 수 있다. 장치 정보(314)는 수신자 장치(302)에 대한 장치 정보(310)뿐만 아니라 발신자 장치(304)에 대한 장치 정보(312) 양자를 포함한다. 도시된 바와 같이, 장치 정보(314)는 서버(306)로 네트워크(308)을 통해 제공될 수 있다. 장치 정보는 캡처 및 발신자로부터 수신자로의 이미지 제공에 영향을 줄 수 있는 수신자 장치(302) 및 발신자 장치(304)에 대한 정보를 포함할 수 있다. 예를 들어, 연산 능력, 운영체제, 네트워크 캐리어, 밴드폭 또는 이미지의 포맷에 영향을 줄 수 있는 다른 정보가 발신자와 수신자로부터 서버에게 제공될 수 있다. 이미지의 캡처 및 수신자 장치로의 전송에 요구되는 데이터의 양은 다양한 인자, 예컨대 이미지가 압축되는 이미지 품질, 이미지의 크기 등에 따를 수 있다. 더 높은 이미지 품질로의 압축은 더 낮은 이미지 품질로의 압축보다 이미지를 적절히 표현하는데 더 많은 데이터를 요구할 수 있다. 나아가, 더 큰 크기의 이미지의 압축은 더 작은 사이즈의 압축보다 더 많은 데이터를 요구할 수 있다.In various embodiments, the sender device 304 may capture an image and provide it to the recipient device 302 in a format that is compatible or optimized (eg, compression ratio, size, image quality, etc.). Device information 314 includes both device information 310 for recipient device 302 as well as device information 312 for sender device 304 . As shown, device information 314 may be provided to server 306 via network 308 . Device information may include information about the recipient device 302 and the sender device 304 that may affect the capture and presentation of images from the sender to the recipient. For example, computing power, operating system, network carrier, bandwidth or other information that may affect the format of the image may be provided to the server from the sender and receiver. The amount of data required for capture of the image and transmission to the recipient device may depend on various factors, such as the image quality with which the image is compressed, the size of the image, and the like. Compression to a higher image quality may require more data to properly represent the image than compression to a lower image quality. Furthermore, compression of a larger size image may require more data than compression of a smaller size.

수신자 장치(302) 및 발신자 장치(304)의 장치 정보(314)에 기반하여, 서버(306)는 수신자 장치(302)와 호환되거나 최적화되고 발신자 장치(304)에 의해 지원되는 이미지 포맷(316)을 결정할 수 있다. 예를 들어, 장치 정보(314)에 기반하여, 서버(306)는 발신자 장치(304) 및 수신자 장치(302)가 복수의 이미지 포맷을 지원할 수 있다고 결정할 수 있고 복수의 이미지 포맷으로부터 지원되는 이미지 포맷을 선택한다. 이미지 포맷은 수신자에게 최고의 사용자 경험을 제공하도록 선택될 수 있다. 이미지 포맷은 최고의 이미지 품질, 가장 빠른 이미지 전달 속도, 가장 낮은 비용 또는 다른 사용자의 설정이 수신자에게 제공되도록 선택될 수 있다. 예를 들어, 장치 정보(314)에 기반하여, 발신자 장치(304)는 수신자 장치(302)와 발신자 장치(304)가 한 이미지 포맷만을 지원한다고 결정할 수 있다. 서버(306)는 이미지 포맷(316)의 결정을 발신자 장치(304)로 제공할 수 있다. 일부 실시예에서, 서버는 이미지 포맷(316)과 호환되는 코덱의 식별을 제공하고 발신자 장치(304)가 그 이미지 포맷에 기반하여 이미지 데이터(312)를 생성하도록 유도할 수 있다.Based on the receiver device 302 and the device information 314 of the sender device 304 , the server 306 configures an image format 316 that is compatible or optimized with the recipient device 302 and supported by the sender device 304 . can be decided For example, based on the device information 314 , the server 306 may determine that the sender device 304 and the recipient device 302 can support a plurality of image formats and image formats supported from the plurality of image formats. select The image format may be selected to provide the best user experience to the recipient. The image format may be selected so that the best image quality, fastest image delivery speed, lowest cost, or other user settings are provided to the recipient. For example, based on the device information 314 , the calling device 304 may determine that the recipient device 302 and the calling device 304 support only one image format. Server 306 may provide the determination of image format 316 to sender device 304 . In some embodiments, the server may provide identification of a codec compatible with the image format 316 and induce the originating device 304 to generate image data 312 based on the image format.

이미지 포맷(316)의 결정에 따라서, 발신자 장치(304)는 이미지 데이터(318)를 생성할 수 있다. 일부 실시예에서, 이미지 데이터(318)는 서버(306)에 의해 식별된 코덱을 사용함으로써 생성될 수 있다. 이미지 데이터(318)는 수신자 장치(302)로 제공될 수 있다. 다양한 실시예에서, 이미지 데이터(318)가 발신자 장치(304)에 의해 생성됨에 따라 이미지 데이터(318)가 수신자 장치(302)로 실시간 또는 거의 실시간으로 제공된다. 도시된 예시에서, 이미지 데이터(318)는 발신자 장치(304)로부터 네트워크(308)를 통해 수신자 장치(302)로 제공된다. 추가 실시예에서, 이미지 데이터(318)가 서버(306)로 제공될 수 있다.In accordance with the determination of the image format 316 , the originator device 304 may generate image data 318 . In some embodiments, image data 318 may be generated by using a codec identified by server 306 . The image data 318 may be provided to a recipient device 302 . In various embodiments, image data 318 is provided to recipient device 302 in real-time or near real-time as image data 318 is generated by sender device 304 . In the illustrated example, image data 318 is provided from an originator device 304 to a receiver device 302 over a network 308 . In further embodiments, image data 318 may be provided to server 306 .

수신자 장치(302) 및 발신자 장치(304)에 의해 제공된 장치 정보(314)에 기반하여, 서버(306)는 수신자 장치(302)가 이미지를 프로세싱할 수 없거나 이미지가 발신자 장치(304)에 의해 프로세싱되는 것이 더 효율적이라고 결정할 수 있다. 이런 경우에, 원본 이미지는 발신자 장치(304)에 의해 파생 이미지를 생성하도록 프로세싱된다. 이미지 데이터(318)는 원본 이미지의 파생 이미지에 기반하여 생성될 수 있다. 이미지 데이터(318)는 수신자에게 디스플레이되기 위해 수신자 장치(302)에 제공될 수 있다.Based on the device information 314 provided by the recipient device 302 and the sender device 304 , the server 306 indicates that the recipient device 302 is unable to process the image or the image is processed by the sender device 304 . You may decide to be more efficient. In this case, the original image is processed by the originator device 304 to produce a derivative image. The image data 318 may be generated based on a derivative image of the original image. The image data 318 may be provided to a recipient device 302 for display to the recipient.

도 4는 본 명세서의 일실시예에 따른 도 1에 도시된 이미지 생성 모듈(402)(예컨대, 이미지 생성 모듈(106))의 예시를 도시한다. 이미지 생성 모듈(402)의 예시는 수신자에게 디스플레이하기 위한 열람 가능 이미지를 생성할 수 있다. 이미지 생성 모듈(402)은 발신자의 지시에 따라 열람 가능 이미지를 생성하도록 구성될 수 있다. 일부 실시예에서, 중간 이미지는 중개자(예컨대, 서버) 또는 수신자(예컨대, 클라이언트 장치)의 보충적 또는 대안적 지시에 따라 프로세싱될 수 있다. 이미지 생성 모듈(402)은 또한 열람 가능 이미지를 자동으로 생성하도록 구성될 수 있다. 열람 가능 이미지는 중간 이미지에 기반하여 생성될 수 있다. 중간 이미지(410)는 적어도 하나의 데이터 스토어(408)(예컨대, 도 1의 데이터 스토어(108))로부터 획득 또는 수신될 수 있다. 열람 가능 이미지(412)는 중간 이미지(410)에 기반하여 생성될 수 있고 데이터 스토어(408)에 저장될 수 있다. 다양한 실시예에서, 예컨대 이미지 데이터 변환 모듈(예컨대, 도 1에 도시된 이미지 데이터 변환 모듈(104))에 의하여 중간 이미지의 세트가 이미지 데이터로부터 생성됨에 따라 이미지 생성 모듈(402)은 실시간 또는 거의 실시간으로 열람 가능 이미지를 생성하도록 구성된다.4 shows an example of the image generation module 402 (eg, the image generation module 106 ) shown in FIG. 1 according to an embodiment of the present specification. An example of the image generation module 402 may generate a viewable image for display to a recipient. The image generating module 402 may be configured to generate a viewable image according to a sender's instruction. In some embodiments, intermediate images may be processed according to supplemental or alternative instructions of an intermediary (eg, a server) or a recipient (eg, a client device). The image creation module 402 may also be configured to automatically generate a viewable image. The viewable image may be generated based on the intermediate image. The intermediate image 410 may be obtained or received from at least one data store 408 (eg, data store 108 of FIG. 1 ). Viewable image 412 may be generated based on intermediate image 410 and stored in data store 408 . In various embodiments, the image generation module 402 may be configured in real-time or near real-time as a set of intermediate images is generated from the image data, for example by an image data conversion module (eg, the image data conversion module 104 shown in FIG. 1 ). is configured to create a viewable image.

이미지 생성 모듈(402)은 이미지 안정화 모듈(404) 및 이미지 수정 모듈(406)을 포함할 수 있다. 이미지 안정화 모듈(404)은 원본 이미지와 연관된 흐릿함을 감소시키도록 구성될 수 있다. 따라서, 열람 가능 이미지와 연관된 흐릿함은 발신자에 의해 캡처된 원본 이미지와 연관된 흐릿함보다 적다. 일부 실시예에서, 이미지 안정화 모듈(404)은 자동으로 더 적은 흐릿함의 열람 가능 이미지를 생성하도록 구성될 수 있다. 예를 들어, 발신자에 의해 캡처된 원본 이미지가 흐릿하고 원본 흐릿한 이미지의 이미지 데이터가 수신자에게 제공되지만, 발신자는 원본 흐릿한 이미지가 안정화가 필요하다고 명시하지 않을 때 자동 이미지 안정화가 수행될 수 있다. 중간 이미지의 세트가 이미지 데이터로부터 생성될 때, 이미지 생성 모듈(402)은 중간 이미지의 세트에 기반하여 열람 가능 이미지가 원본 흐릿한 이미지보다 적은 흐릿함을 가지도록 열람 가능 이미지를 생성하도록 구성된다. 일부 실시예에서, 이미지 안정화 모듈(404)은 수신자의 장치 설정에 기반하여 더 적은 흐릿함의 열람 가능 이미지를 생성하도록 구성될 수 있다. 일부 실시예에서, 수신자는 원본 이미지의 흐릿함이 기결정된 양을 초과할 때만 이미지 안정화가 수행되도록 제공할 수 있다.The image generation module 402 may include an image stabilization module 404 and an image modification module 406 . The image stabilization module 404 may be configured to reduce blur associated with the original image. Thus, the blur associated with the viewable image is less than the blur associated with the original image captured by the sender. In some embodiments, image stabilization module 404 may be configured to automatically generate less blurry viewable images. For example, automatic image stabilization may be performed when the original image captured by the sender is blurry and image data of the original blurry image is provided to the recipient, but the sender does not specify that the original blurry image requires stabilization. When the set of intermediate images is generated from the image data, the image generation module 402 is configured to generate the viewable image based on the set of intermediate images such that the viewable image has less blurring than the original blurry image. In some embodiments, image stabilization module 404 may be configured to generate less blurry viewable images based on the recipient's device settings. In some embodiments, the recipient may provide that image stabilization is performed only when the blurring of the original image exceeds a predetermined amount.

이미지 수정 모듈(406)은 열람 가능 이미지가 발신자의 지시에 따라 원본 이미지에 기반하여 수정되도록 열람 가능 이미지를 생성하도록 구성된다. 발신자는 수신자와 캡처된 원본 이미지와는 다른 이미지를 공유하기 원할 수 있다. 예를 들어, 원본 이미지는 크롭되거나, 줌되거나, 다른 컬러 포맷으로 수정되거나, 페이드되거나, 색을 넣거나, 발신자의 코멘트, 주석 또는 특수 효과가 첨부될 수 있다. 중간 이미지가 이미지를 수정하는 아무런 지시와 상관 없이 원본 이미지에 기반하여 이미지 데이터로부터 생성될 수 있다. 발신자가 원하고 선택한 임의의 수정이 이미지 수정 모듈(406)에 의하여 중간 이미지(410)에 수행될 수 있다. 일부 실시예에서, 이미지 수정 모듈(406)은 발신자의 코멘트, 주석 또는 다른 특수 효과를 포함하는 열람 가능 이미지를 생성하도록 구성될 수 있다. 일부 실시예에서, 이미지 수정 모듈(406)은 열람 가능 이미지(412)의 적어도 하나의 파라미터가 수정되도록 열람 가능 이미지(412)를 생성하도록 구성될 수 있다. 예를 들어, 발신자는 특정 사진 필터나 효과가 적용된 원본 이미지를 공유하도록 선택할 수 있다.The image modification module 406 is configured to generate the viewable image so that the viewable image is modified based on the original image according to the sender's instruction. The sender may want to share an image with the receiver that is different from the original captured image. For example, the original image may be cropped, zoomed, modified to another color format, faded, colorized, or annotated with comments, annotations, or special effects from the sender. An intermediate image may be generated from the image data based on the original image without any instruction to modify the image. Any modifications desired and selected by the sender may be performed on the intermediate image 410 by the image modification module 406 . In some embodiments, the image modification module 406 may be configured to create a viewable image including the sender's comments, annotations, or other special effects. In some embodiments, the image modification module 406 may be configured to generate the viewable image 412 such that at least one parameter of the viewable image 412 is modified. For example, the sender may choose to share the original image with certain photo filters or effects applied.

도 5는 본 명세서의 일실시예에 따른 수신자측에서 이미지를 프로세싱하는 방법(500)의 예시를 도시한다. 다르게 언급되지 않으면 다양한 실시예의 범위 내에서 유사하거나 대안적인 순서로, 또는 병행하여 수행되는 추가적이거나, 더 적거나, 대안적인 단계가 있을 수 있음을 이해하여야 한다. 블록(502)에서, 이미지 데이터가 수신자가 사용하는 클라이언트 장치에 의해 수신된다. 수신자는 발신자에 의해 지정될 수 있다. 이미지 데이터는 이미지가 캡처됨에 따라 실시간 또는 거의 실시간으로 생성되고 수신자에 의해 수신될 수 있다. 일부 실시예에서, 이미지 데이터는 발신자가 사용하는 클라이언트 장치로부터 수신될 수 있다. 일부 실시예에서, 이미지 데이터는 발신자로부터 이미지 데이터를 수신한 서버로부터 수신될 수 있다. 다양한 실시예에서, 이미지 데이터는 수신자의 클라이언트 장치와 호환되거나 최적화된 포맷으로 생성된다. 블록(504)에서, 중간 이미지의 세트가 이미지 데이터에 기반하여 생성된다. 중간 이미지는 이미지 데이터가 수신됨에 따라 실시간 또는 거의 실시간으로 생성될 수 있다. 블록(506)에서, 열람 가능 이미지가 중간 이미지의 세트로부터 생성된다. 열람 가능 이미지는 수신자에게 디스플레이하기 위한 것이다. 열람 가능 이미지는 원본 이미지가 발신자의 지시에 따라 수정되도록 프로세싱될 수 있다. 열람 가능 이미지는 원본 이미지가 안정화되도록 자동으로 프로세싱될 수 있다. 열람 가능 이미지는 중간 이미지의 세트가 생성됨에 따라 실시간 또는 거의 실시간으로 프로세싱될 수 있다. 보다 자세한 설명과 예시가 본 명세서에 제공된다.5 shows an example of a method 500 of processing an image at a receiver side according to an embodiment of the present disclosure. It is to be understood that there may be additional, fewer, or alternative steps performed in parallel or in a similar or alternative order or in parallel within the scope of the various embodiments, unless otherwise stated. At block 502 , image data is received by a client device used by a recipient. The recipient may be designated by the sender. Image data may be generated and received by a recipient in real-time or near real-time as the image is captured. In some embodiments, the image data may be received from a client device used by the sender. In some embodiments, the image data may be received from a server that has received the image data from the sender. In various embodiments, the image data is generated in a format that is compatible or optimized with the recipient's client device. At block 504 , a set of intermediate images is generated based on the image data. The intermediate image may be generated in real-time or near real-time as the image data is received. At block 506 , a viewable image is generated from the set of intermediate images. The viewable image is for display to a recipient. The viewable image may be processed such that the original image is modified according to the sender's instructions. The viewable image may be automatically processed to stabilize the original image. Viewable images may be processed in real-time or near real-time as sets of intermediate images are generated. A more detailed description and examples are provided herein.

도 6은 본 명세서의 일실시예에 따른 수신자측에서 이미지를 프로세싱하는 방법(600a)의 예시를 도시한다. 다르게 언급되지 않으면 다양한 실시예의 범위 내에서 유사하거나 대안적인 순서로, 또는 병행하여 수행되는 추가적이거나, 더 적거나, 대안적인 단계가 있을 수 있음을 이해하여야 한다. 블록(610)에서, 수신자 장치의 장치 정보는 수신자 장치(602)로부터 발신자 장치(604)로 제공된다. 추가 실시예에서, 장치 정보는 수신자 장치(602)로부터 서버 장치(606)로 제공될 수 있다. 발신자 장치(604)는 수신자 장치(602)로부터 또는 서버 장치(606)로부터 수신자 장치 정보를 수신할 수 있다. 블록(612)에서, 포맷(예컨대, 압축률, 크기, 이미지 품질 등)이 발신자 장치(604)에 의해 수신자 장치 정보에 기반하여 결정된다. 포맷은 수신자 장치와 호환되거나 최적화될 수 있다. 블록(614)에서, 이미지 데이터는 발신자 장치에 의하여 블록(612)에서 결정된 포맷에 기반하여 생성된다. 이미지 데이터는 블록(616)에서 수신자 장치(602)로 제공되고 수신자 장치(602)에 의해 수신된다. 추가적으로 또는 대안적으로, 이미지 데이터는 블록(616')에서 서버 장치(606)로 제공되고 서버 장치(606)에 의해 수신된다. 블록(618)에서, 중간 이미지의 세트가 수신자 장치(602)에 의해 블록(616)에서 수신된 이미지 데이터로부터 생성된다. 블록(620)에서, 열람 가능 이미지가 중간 이미지로부터 수신자 장치(602)에 의해 생성된다. 보다 자세한 설명과 예시가 본 명세서에 제공된다.6 shows an example of a method 600a of processing an image at the receiver side according to an embodiment of the present disclosure. It is to be understood that there may be additional, fewer, or alternative steps performed in parallel or in a similar or alternative order or in parallel within the scope of the various embodiments, unless otherwise stated. At block 610 , device information of the recipient device is provided from the recipient device 602 to the calling device 604 . In further embodiments, the device information may be provided from the recipient device 602 to the server device 606 . The sender device 604 may receive recipient device information from the recipient device 602 or from the server device 606 . At block 612 , a format (eg, compression ratio, size, image quality, etc.) is determined by the originator device 604 based on the recipient device information. The format may be compatible or optimized with the recipient device. At block 614 , image data is generated by the originating device based on the format determined at block 612 . Image data is provided to and received by a recipient device 602 at block 616 . Additionally or alternatively, image data is provided to and received by the server device 606 at block 616'. At block 618 , a set of intermediate images is generated by the recipient device 602 from the image data received at block 616 . At block 620 , a viewable image is generated by the recipient device 602 from the intermediate image. A more detailed description and examples are provided herein.

시스템(700)은 하나 이상의 사용자 장치(710), 하나 이상의 외부 시스템(720), 소셜 네트워킹 시스템(730), 및 네트워크(750)를 포함한다. 일실시예로, 전술한 실시예들과 연계하여 논의된 소셜 네트워킹 서비스, 제공자 및/또는 시스템은 소셜 네트워킹 시스템(730)으로 구현될 수 있다. 예시적인 목적을 위해, 도 7에 의해 도시된 시스템(700)의 실시예는 단일 외부 시스템(720) 및 단일 사용자 장치(710)를 포함한다. 하지만, 다른 실시예로, 시스템(700)은 더 많은 사용자 장치(710) 및/또는 더 많은 외부 시스템(720)을 포함할 수 있다. 특정 실시예로, 소셜 네트워킹 시스템(730)은 소셜 네트워크 제공자에 의해 운영되는 한편, 외부 시스템(720)은, 상이한 엔티티들에 의해 운영될 수 있는 점에서 소셜 네트워킹 시스템(730)으로부터 분리되어 있다. 하지만, 다양한 실시예로, 소셜 네트워킹 시스템(730) 및 외부 시스템(720)은 소셜 네트워킹 시스템(730)의 사용자들 (또는 구성원들)에게 소셜 네트워킹 서비스를 제공하기 위해 함께 동작한다. 이러한 측면에서, 소셜 네트워킹 시스템(730)은, 외부 시스템(720)과 같은 다른 시스템들이 인터넷을 통해 사용자에게 소셜 네트워킹 서비스 및 기능을 제공하는데 사용할 수 있는 플랫폼 또는 백본을 제공한다.System 700 includes one or more user devices 710 , one or more external systems 720 , a social networking system 730 , and a network 750 . In one embodiment, the social networking service, provider, and/or system discussed in connection with the foregoing embodiments may be implemented as a social networking system 730 . For illustrative purposes, the embodiment of system 700 illustrated by FIG. 7 includes a single external system 720 and a single user device 710 . However, in other embodiments, system 700 may include more user devices 710 and/or more external systems 720 . In particular embodiments, social-networking system 730 is operated by a social-networking provider, while external system 720 is separate from social-networking system 730 in that it may be operated by different entities. However, in various embodiments, social-networking system 730 and external system 720 work together to provide social-networking services to users (or members) of social-networking system 730 . In this respect, social networking system 730 provides a platform or backbone that other systems, such as external system 720 , can use to provide social networking services and functionality to users over the Internet.

사용자 장치(710)는 사용자로부터 입력을 수신하고 네트워크(750)를 통해 데이터를 송수신할 수 있는 하나 이상의 컴퓨팅 장치를 포함한다. 일실시예로, 사용자 장치(710)는 예컨대, Microsoft Windows 호환가능한 운영 시스템(OS), Apple OS X, 및/또는 리눅스 배포판을 실행하는 종래의 컴퓨터 시스템이다. 다른 실시예로, 사용자 장치(710)는 가령 스마트폰, 태블릿, PDA(personal digital assistant), 모바일 전화 등과 같은 컴퓨터 기능을 갖는 장치일 수 있다. 사용자 장치(710)는 네트워크(750)를 통해 통신하도록 구성된다. 사용자 장치(710)는 예컨대, 사용자 장치(710)의 사용자가 소셜 네트워킹 시스템(730)과 상호작용할 수 있게 하는 브라우저 애플리케이션과 같은 애플리케이션을 실행할 수 있다. 또 다른 실시예로, 사용자 장치(710)는 iOS 및 ANDROID와 같은 사용자 장치(710)의 네이티브 운영 시스템에 의해 제공되는 API(application programming interface)를 통해 소셜 네트워킹 시스템(730)과 상호작용한다. 사용자 장치(710)는, 유선 및/또는 무선 통신 시스템을 사용하는 로컬 영역 및/또는 광역 네트워크의 임의의 조합을 포함할 수 있는 네트워크(750)를 통해 외부 시스템(720) 및 소셜 네트워킹 시스템(730)과 통신하도록 구성된다.User device 710 includes one or more computing devices capable of receiving input from a user and sending and receiving data over network 750 . In one embodiment, user device 710 is a conventional computer system running, for example, a Microsoft Windows compatible operating system (OS), Apple OS X, and/or a Linux distribution. In another embodiment, the user device 710 may be a device with computer capabilities, such as a smart phone, tablet, personal digital assistant (PDA), mobile phone, or the like. User device 710 is configured to communicate via network 750 . User device 710 may run an application, such as a browser application, that allows a user of user device 710 to interact with social networking system 730 , for example. In another embodiment, the user device 710 interacts with the social networking system 730 through an application programming interface (API) provided by the native operating system of the user device 710 , such as iOS and ANDROID. User device 710 connects to external system 720 and social networking system 730 via network 750 , which may include any combination of local area and/or wide area networks using wired and/or wireless communication systems. ) to communicate with

일실시예로, 사용자 장치(710)는 브라우저 애플리케이션(712)을 사용하여, 외부 시스템(720) 및 소셜 네트워킹 시스템(730)으로부터 수신된 마크업 언어 문서(714)를 프로세싱함으로써 외부 시스템(720) 및/또는 소셜 네트워킹 시스템(730)으로부터의 컨텐츠를 디스플레이할 수 있다. 마크업 언어 문서(714)는 컨텐츠 및 컨텐츠의 포맷 또는 프레젠테이션을 기술하는 하나 이상의 명령어들을 식별한다. 마크업 언어 문서(714)에 포함된 명령어들을 실행함으로써, 브라우저 애플리케이션(712)은 마크업 언어 문서(714)에 의해 기술된 포맷 또는 프레젠테이션을 사용하여 식별된 컨텐츠를 디스플레이한다. 예컨대, 마크업 언어 문서(714)는, 외부 시스템(720) 및 소셜 네트워킹 시스템(730)으로부터 검색된 텍스트 및/또는 이미지 데이터를 포함하는 다수의 프레임들을 갖는 웹 페이지를 생성하고 디스플레이하기 위한 명령어들을 포함한다. 다양한 실시예로, 마크업 언어 문서(714)는 XML(extensible markup language) 데이터, XHTML(extensible hypertext markup language) 데이터, 또는 다른 마크업 언어 데이터를 포함하는 데이터 파일을 포함한다. 추가로, 마크업 언어 문서(714)는 JSON(JavaScript Object Notation) 데이터, 패딩(padding)을 갖는 JSON(JSONP), 및 외부 시스템(720)과 사용자 장치(710) 사이의 데이터 상호교환을 용이하게 하는 자바스크립트 데이터를 포함할 수 있다. 사용자 장치(710)상의 브라우저 애플리케이션(712)은 마크업 언어 문서(714)를 디코딩하기 위해 자바스크립트 컴파일러를 사용할 수 있다.In one embodiment, user device 710 uses browser application 712 to process markup language document 714 received from external system 720 and social networking system 730 to process external system 720 . and/or display content from social networking system 730 . The markup language document 714 identifies the content and one or more instructions that describe the format or presentation of the content. By executing instructions contained in markup language document 714 , browser application 712 displays the identified content using the format or presentation described by markup language document 714 . For example, markup language document 714 includes instructions for creating and displaying a web page having multiple frames containing text and/or image data retrieved from external system 720 and social networking system 730 . do. In various embodiments, markup language document 714 includes a data file containing extensible markup language (XML) data, extensible hypertext markup language (XHTML) data, or other markup language data. Additionally, the markup language document 714 facilitates data interchange between JavaScript Object Notation (JSON) data, JSON with padding (JSONP), and the external system 720 and the user device 710 . It may contain JavaScript data that says The browser application 712 on the user device 710 may use a JavaScript compiler to decode the markup language document 714 .

외부 시스템(720)은, 네트워크(750)를 사용하여 사용자 장치(710)로 통신되는 하나 이상의 웹 페이지들(722a, 722b)을 포함하는 하나 이상의 웹 서버들을 포함한다. 외부 시스템(720)은 소셜 네트워킹 시스템(730)으로부터 분리된다. 예컨대, 외부 시스템(720)은 제 1 도메인과 연관되는 한편, 소셜 네트워킹 시스템(730)은 분리된 소셜 네트워킹 도메인과 연관된다. 외부 시스템(720)에 포함된 웹 페이지들(722a, 722b)은 컨텐츠를 식별하고 식별된 컨텐츠의 포맷 또는 프레젠테이션을 특정하는 명령어들을 포함하는 마크업 언어 문서(714)를 포함한다.External system 720 includes one or more web servers containing one or more web pages 722a , 722b communicated to user device 710 using network 750 . External system 720 is separate from social networking system 730 . For example, external system 720 is associated with a first domain, while social networking system 730 is associated with a separate social networking domain. Web pages 722a, 722b included in external system 720 include a markup language document 714 that identifies the content and includes instructions specifying the format or presentation of the identified content.

소셜 네트워킹 시스템(730)은 다수의 사용자들을 포함하고 소셜 네트워크의 사용자들에게 소셜 네트워크의 다른 사용자들과 통신하거나 상호작용하는 능력을 제공하는 소셜 네트워크를 위한 하나 이상의 컴퓨팅 장치를 포함한다. 일부 예에서, 소셜 네트워크는 그래프 즉, 에지 및 노드를 포함하는 데이터 구조로 표현될 수 있다. 데이터 베이스, 객체, 클래스, 메타 구성요소, 파일, 또는 임의의 다른 데이터 구조를 포함하지만 이에 제한되지 않는 다른 데이터 구조가 또한, 소셜 네트워크를 표현하는데 사용될 수 있다. 소셜 네트워킹 시스템(730)은 오퍼레이터에 의해 관리되고, 유지되거나, 또는 제어될 수 있다. 소셜 네트워킹 시스템(730)의 오퍼레이터는 사람, 자동화된 애플리케이션, 또는 컨텐츠를 관리하고, 정책을 규제하고, 소셜 네트워킹 시스템(730) 내에서 사용 메트릭을 수집하기 위한 일련의 애플리케이션들일 수 있다. 임의의 타입의 오퍼레이터가 사용될 수 있다.Social-networking system 730 includes one or more computing devices for a social network that includes a number of users and provides users of the social network with the ability to communicate or interact with other users of the social network. In some examples, a social network may be represented as a graph, ie, a data structure comprising edges and nodes. Other data structures including, but not limited to, databases, objects, classes, meta-components, files, or any other data structure may also be used to represent the social network. The social networking system 730 may be managed, maintained, or controlled by an operator. An operator of social-networking system 730 may be a person, an automated application, or a set of applications for managing content, regulating policies, and collecting usage metrics within social-networking system 730 . Any type of operator may be used.

사용자들 사이의 연결을 확립 및 관리하고 사용자들 사이의 상호작용을 허용하는 것에 추가로, 소셜 네트워킹 시스템(730)은 사용자들에게 소셜 네트워킹 시스템(730)에 의해 지원되는 다양한 타입의 아이템들에 대해 행위를 수행할 능력을 제공한다. 이러한 아이템들을, 소셜 네트워킹 시스템(730)의 사용자들이 속할 수 있는 그룹들 또는 네트워크들(즉, 사람들, 엔티티들, 및 컨셉들의 소셜 네트워크), 사용자가 관심있을 수 있는 이벤트 또는 캘린더 엔트리들, 사용자가 소셜 네트워킹 시스템(730)을 통해 사용할 수 있는 컴퓨터-기반의 애플리케이션들, 사용자가 소셜 네트워킹 시스템(730)에 의해 제공되거나 소셜 네트워킹 시스템(730)을 통한 서비스를 통해 아이템들을 사거나 팔 수 있도록 하는 거래들, 사용자가 소셜 네트워킹 시스템(730) 내에서 혹은 밖에서 수행할 수 있는 광고와의 상호작용들을 포함할 수 있다. 이들은 사용자가 소셜 네트워킹 시스템(730)에 대해 행동할 수 있는 아이템들의 몇몇 예시에 불과하며, 많은 다른 예들이 가능하다. 사용자는 소셜 네트워킹 시스템(730)에서 또는 소셜 네트워킹 시스템(730)과 분리되거나 네트워크(750)를 통해 소셜 네트워킹 시스템(730)으로 연결된 외부 시스템(720)에서, 표현될 수 있는 어떤 것과도 상호작용할 수 있다.In addition to establishing and managing connections between users and allowing interaction between users, social-networking system 730 provides users with access to various types of items supported by social-networking system 730 . It provides the ability to perform an action. Groups or networks to which users of social-networking system 730 may belong (ie, a social network of people, entities, and concepts), events or calendar entries that the user may be interested in, and Computer-based applications available through social networking system 730 , transactions that allow a user to buy or sell items through services provided by or through social networking system 730 . , interactions with advertisements that the user may perform within or outside of social networking system 730 . These are just a few examples of items on which a user may act on social-networking system 730 , and many other examples are possible. A user may interact with anything that may be represented on the social networking system 730 or on an external system 720 that is separate from the social networking system 730 or connected to the social networking system 730 via a network 750 . there is.

소셜 네트워킹 시스템(730)은 또한, 다양한 엔티티들을 링크할 수 있다. 예컨대, 소셜 네트워킹 시스템(730)은 사용자가 API, 웹 서비스, 또는 다른 통신 채널을 통해 외부 시스템(720) 또는 다른 엔티티들과 상호작용하는 것뿐만 아니라 사용자들 서로와 상호작용할 수 있게 한다. 소셜 네트워킹 시스템(730)은 복수의 에지에 의해 상호연결된 복수의 노드를 포함하는 "소셜 그래프"를 생성하고 관리한다. 소셜 그래프에서의 각각의 노드는 다른 노드에 대해 행동할 수 있거나 및/또는 다른 노드가 행동할 수 있는 엔티티를 표현할 수 있다. 소셜 그래프는 다양한 타입의 노드들을 포함할 수 있다. 노드의 타입의 예들은 사용자들, 비-인간 엔티티들, 컨텐츠 아이템, 웹 페이지, 그룹, 활동, 메시지, 컨셉, 및 소셜 네트워킹 시스템(730)에서 객체에 의해 표현될 수 있는 임의의 다른 것들을 포함한다. 소셜 그래프에서의 2개의 노드 사이의 에지는 2개의 노드 사이의 특정 유형의 연결 또는 연관을 표현할 수 있고, 에지는 노드 연결로부터 또는 노드들 중 하나가 다른 노드에 대해 수행하는 행위로부터 발생할 수 있다. 일부 경우에서, 노드 사이의 에지에는 가중치가 부과될 수 있다. 에지의 가중치는 노드 사이의 연결 또는 연관의 강도와 같은 에지와 연관된 속성을 표현할 수 있다. 상이한 타입의 에지에는 상이한 가중치가 제공될 수 있다. 예컨대, 한 명의 사용자가 다른 사용자를 "좋아요"할 때 생성된 에지에는 하나의 가중치가 부여될 수 있는 한편, 사용자가 다른 사용자를 친구로 삼을 때 생성된 에지에는 상이한 가중치가 부여될 수 있다.Social networking system 730 may also link various entities. For example, social networking system 730 enables users to interact with each other, as well as users interact with external system 720 or other entities via APIs, web services, or other communication channels. The social networking system 730 creates and manages a “social graph” comprising a plurality of nodes interconnected by a plurality of edges. Each node in the social graph may act on and/or represent an entity on which other nodes may act. The social graph may include various types of nodes. Examples of types of nodes include users, non-human entities, content items, web pages, groups, activities, messages, concepts, and any other that may be represented by objects in social networking system 730 . . An edge between two nodes in a social graph may represent a particular type of connection or association between two nodes, and an edge may arise from a node connection or from an action that one of the nodes performs with respect to the other node. In some cases, edges between nodes may be weighted. The weight of an edge may represent a property associated with an edge, such as a connection between nodes or the strength of an association. Different types of edges may be given different weights. For example, edges generated when one user "likes" another user may be given one weight, while edges generated when a user makes another user as friends may be given a different weight.

예로서, 제 1 사용자가 제2 사용자를 친구로 식별할 때, 소셜 그래프에서의 에지는 제 1 사용자를 표현하는 노드와 제2 사용자를 표현하는 제2 노드를 연결하도록 생성된다. 다양한 노드들이 관련되거나 상호작용함에 따라, 소셜 네트워킹 시스템(730)은 관계 또는 상호작용을 반영하기 위하여 다양한 노드들을 연결하는 에지를 변경한다.As an example, when the first user identifies the second user as a friend, an edge in the social graph is created to connect the node representing the first user and the second node representing the second user. As the various nodes relate or interact, social-networking system 730 changes the edges connecting the various nodes to reflect the relationship or interaction.

소셜 네트워킹 시스템(730)은 또한, 소셜 네트워킹 시스템(730)과의 사용자 상호작용을 향상시키는 사용자-생성된 컨텐츠를 포함한다. 사용자-생성된 컨텐츠는, 사용자가 소셜 네트워킹 시스템(730)에 추가, 업로드, 전송 또는 "게시"할 수 있는 모든 것을 포함할 수 있다. 예컨대, 사용자는 사용자 장치(710)로부터 소셜 네트워킹 시스템(730)에 게시물을 통신한다. 게시물은 상태 업데이트 또는 다른 텍스트 데이터, 위치 정보, 사진과 같은 이미지, 비디오, 링크, 음악, 또는 다른 유사한 데이터 및/또는 미디어와 같은 데이터를 포함할 수 있다. 컨텐츠는 또한, 제3자에 의해 소셜 네트워킹 시스템(730)에 추가될 수 있다. 컨텐츠 "아이템"들은 소셜 네트워킹 시스템(730)에서 객체로 표현될 수 있다. 이러한 방식으로, 소셜 네트워킹 시스템(730)의 사용자들은, 다양한 통신 채널을 통해 미디어의 다양한 타입의 텍스트 및 컨텐츠 아이템을 게시함으로써 서로와 통신하도록 장려된다. 이러한 통신은 사용자들 서로간의 상호작용을 증가시키고 사용자가 소셜 네트워킹 시스템(730)과 상호작용하는 빈도를 증가시킨다.Social-networking system 730 also includes user-generated content that enhances user interaction with social-networking system 730 . User-generated content may include anything that a user may add, upload, transmit, or “post” to the social-networking system 730 . For example, a user communicates a post from the user device 710 to the social networking system 730 . Posts may contain data such as status updates or other text data, location information, images such as photos, videos, links, music, or other similar data and/or media. Content may also be added to social networking system 730 by third parties. Content “items” may be represented as objects in social networking system 730 . In this way, users of social-networking system 730 are encouraged to communicate with each other by posting text and content items of various types of media over various communication channels. Such communication increases users' interactions with each other and increases the frequency with which users interact with social networking system 730 .

소셜 네트워킹 시스템(730)은 웹 서버(732), API 요청 서버(734), 사용자 프로필 스토어(736), 연결 스토어(738), 행위 로거(740), 활동 로그(742) 및 인증 서버(744)를 포함한다. 본 발명의 일실시예로, 소셜 네트워킹 시스템(730)은 다양한 애플리케이션을 위해 추가의, 더 적은 수의, 혹은 상이한 컴포넌트들을 포함할 수 있다. 네트워크 인터페이스, 보안 메커니즘, 로드 균형기(load balancer), 장애복구 서버(failover server), 관리 및 네트워크 운영 콘솔 등과 같은 다른 컴포넌트들은 시스템의 세부사항을 불명확하게 만들지 않기 위해 도시되지 않는다.The social networking system 730 includes a web server 732 , an API request server 734 , a user profile store 736 , a connection store 738 , a behavior logger 740 , an activity log 742 , and an authentication server 744 . includes In one embodiment of the present invention, social-networking system 730 may include additional, fewer, or different components for various applications. Other components such as network interfaces, security mechanisms, load balancers, failover servers, management and network operations consoles, etc. are not shown in order not to obscure the details of the system.

사용자 프로필 스토어(736)는, 사용자에 의해 선언되었거나 소셜 네트워킹 시스템(730)에 의해 추론된 경력, 학력, 취미 또는 선호도, 위치 등과 같은 인명적, 인구학적, 및 다른 타입의 기술적 정보를 포함하는 사용자 계정에 관한 정보를 관리한다. 이 정보는 사용자 프로필 스토어(736)에 저장되어서, 각각의 사용자가 고유하게 식별되도록 한다. 소셜 네트워킹 시스템(730)은 또한, 연결 스토어(738)에서의 상이한 사용자들 사이의 하나 이상의 연결을 기술하는 데이터를 저장한다. 연결 정보는 유사하거나 공통되는 경력, 그룹 멤버쉽, 취미, 또는 학력을 갖는 사용자들을 표시할 수 있다. 추가로, 소셜 네트워킹 시스템(730)은 상이한 사용자들 사이의 사용자-정의된 연결을 포함하여, 사용자들이 다른 사용자들과의 그들의 관계를 특정할 수 있도록 한다. 예컨대, 사용자-정의된 연결은 사용자가 사용자의 실제-삶에서의 관계들, 가령 친구들, 동료들, 파트너들 등에 필적하는 다른 사용자들과의 관계를 생성할 수 있도록 한다. 사용자들은 미리 정의된 타입의 연결로부터 선택하거나 필요에 따라 그들 스스로의 연결 타입을 정의할 수 있다. 소셜 네트워킹 시스템(730)에서의 다른 노드들과의 연결, 가령 비-인간 엔티티들, 버켓, 클러스터 센터, 이미지, 관심사, 페이지, 외부 시스템, 컨셉 등이 또한, 연결 스토어(738)에 저장된다.The user profile store 736 is a user profile store that contains demographic, demographic, and other types of descriptive information, such as career, education, hobbies or preferences, location, etc., declared by the user or inferred by the social networking system 730 . Manage account information. This information is stored in the user profile store 736 so that each user is uniquely identified. Social-networking system 730 also stores data describing one or more connections between different users in connection store 738 . Connection information may indicate users with similar or common careers, group memberships, hobbies, or educational backgrounds. Additionally, social-networking system 730 includes user-defined connections between different users, allowing users to specify their relationships with other users. For example, user-defined connections allow a user to create relationships with other users that match the user's real-life relationships, such as friends, colleagues, partners, and the like. Users can choose from predefined types of connections or define their own connection types as needed. Connections with other nodes in social networking system 730 , such as non-human entities, buckets, cluster centers, images, interests, pages, external systems, concepts, etc. are also stored in connection store 738 .

소셜 네트워킹 시스템(730)은 사용자가 상호작용할 수 있는 객체들에 관한 데이터를 관리한다. 이 데이터를 관리하기 위해, 사용자 프로필 스토어(736) 및 연결 스토어(738)는 소셜 네트워킹 시스템(730)에 의해 관리되는 객체들의 대응하는 타입의 인스턴스들을 저장한다. 각각의 객체 타입은 객체의 타입에 적절한 정보는 저장하는데 적합한 정보 필드를 가진다. 예컨대, 사용자 프로필 스토어(736)는 사용자의 계정 및 사용자의 계정과 관련된 정보를 기술하기에 적절한 필드를 갖는 데이터 구조를 포함한다. 특정 타입의 새로운 객체가 생성될 때, 소셜 네트워킹 시스템(730)은 대응하는 타입의 새로운 데이터 구조를 초기화하고, 고유한 객체 식별자를 그것에 할당하며, 필요에 따라 객체에 데이터를 추가한다. 이는 예컨대, 사용자가 소셜 네트워킹 시스템(730)의 사용자가 되고, 소셜 네트워킹 시스템(730)이 사용자 프로필 스토어(736)에 사용자 프로필의 새로운 인스턴스를 생성하며, 고유한 식별자를 사용자 계정에 할당하고, 사용자에 의해 제공된 정보로 사용자 계정의 필드를 채우는 것을 시작할 때에 발생할 수 있다.The social networking system 730 manages data regarding objects with which the user may interact. To manage this data, the user profile store 736 and the connection store 738 store instances of corresponding types of objects managed by the social networking system 730 . Each object type has an information field suitable for storing information appropriate to the type of object. For example, the user profile store 736 includes a data structure having fields suitable for describing the user's account and information related to the user's account. When a new object of a particular type is created, social-networking system 730 initializes a new data structure of the corresponding type, assigns it a unique object identifier, and adds data to the object as needed. This may, for example, result in the user becoming a user of the social networking system 730 , the social networking system 730 creating a new instance of the user profile in the user profile store 736 , assigning a unique identifier to the user account, and the user This can happen when you start filling out the fields of your user account with information provided by .

연결 스토어(738)는 사용자의 다른 사용자들에 대한 연결, 외부 시스템(720)으로의 연결 또는 다른 엔티티들로의 연결을 기술하는데 적절한 데이터 구조를 포함한다. 연결 스토어(738)는 또한, 연결 타입을 사용자의 연결과 연관시킬 수 있고, 연결 타입은 사용자에 관한 정보에 대한 액세스를 규제하기 위해 사용자의 개인정보 설정과 함께 사용될 수 있다. 본 발명의 일실시예로, 사용자 프로필 스토어(736) 및 연결 스토어(738)는 연합된 데이터베이스로 구현될 수 있다.Connection store 738 contains data structures suitable for describing a user's connections to other users, connections to external systems 720, or connections to other entities. Connection store 738 may also associate a connection type with a user's connection, which may be used in conjunction with the user's privacy settings to regulate access to information about the user. In one embodiment of the present invention, the user profile store 736 and the connection store 738 may be implemented as a federated database.

연결 스토어(738), 사용자 프로필 스토어(736) 및 활동 로그(742)에 저장된 데이터는 소셜 네트워킹 시스템(730)이 다양한 객체를 식별하기 위한 노드 및 서로 다른 객체들 사이의 관계를 식별하기 위하여 노드를 연결하는 에지를 사용하는 소셜 그래프를 생성하게 할 수 있다. 예컨대, 제 1 사용자가 소셜 네트워킹 시스템(730)에서 제2 사용자와의 연결을 확립한다면, 사용자 프로필 스토어(736)로부터의 제 1 사용자 및 제2 사용자의 사용자 계정들은 소셜 그래프에서 노드로서 역할을 할 수 있다. 연결 스토어(738)에 의해 저장된 제 1 사용자 및 제2 사용자 사이의 연결은 제 1 사용자 및 제2 사용자와 연관된 노드들 사이의 에지이다. 이 예로 계속하면, 제2 사용자는 이후, 소셜 네트워킹 시스템(730) 내에서 제 1 사용자에게 메시지를 전송할 수 있다. 저장될 수 있는 이 메시지를 전송하는 행위는, 제 1 사용자 및 제2 사용자를 표현하는 소셜 그래프에서의 2개의 노드 사이의 또 다른 에지이다. 추가로, 메시지 자체는 식별될 수 있고, 제 1 사용자 및 제2 사용자를 표현하는 노드들에 연결된 또 다른 노드로서 소셜 그래프에 포함될 수 있다.Data stored in connection store 738 , user profile store 736 , and activity log 742 allows social networking system 730 to identify nodes to identify various objects and relationships between different objects. You can have it create a social graph that uses connecting edges. For example, if a first user establishes a connection with a second user in the social networking system 730 , the user accounts of the first user and the second user from the user profile store 736 will serve as nodes in the social graph. can The connection between the first user and the second user stored by the connection store 738 is an edge between the nodes associated with the first user and the second user. Continuing with this example, the second user may then send a message to the first user within social-networking system 730 . The act of sending this message, which may be stored, is another edge between two nodes in the social graph representing the first user and the second user. Additionally, the message itself may be identified and included in the social graph as another node connected to nodes representing the first user and the second user.

다른 예로, 제 1 사용자는 소셜 네트워킹 시스템(730)에 의해 관리되는 이미지에서 (또는 대안으로, 소셜 네트워킹 시스템(730) 외부의 다른 시스템에 의해 관리되는 이미지)에서 제2 사용자를 태그할 수 있다. 이미지는 그 자체가 소셜 네트워킹 시스템(730)에서 노드로 표현될 수 있다. 이러한 태깅 행위는 제 1 사용자 및 제2 사용자 사이의 에지를 생성할 뿐만 아니라 소셜 그래프에서 또한, 노드가 되는 각각의 사용자들 및 이미지 사이의 에지를 생성할 수 있다. 또 다른 예로, 사용자가 이벤트에 참석하는 것을 확인한다면, 사용자 및 이벤트는 사용자 프로필 스토어(736)로부터 획득되는 노드들이며, 여기서 이벤트의 참석은 활동 로그(742)로부터 검색될 수 있는 노드 사이의 에지이다. 소셜 그래프를 생성하고 관리함으로써, 소셜 네트워킹 시스템(730)은 상이한 타입의 객체 및 상호작용과 그 객체들 사이의 연결을 기술하는 데이터를 포함하고, 소셜적으로 관련된(socially relevant) 정보의 풍부한 소스를 제공한다.As another example, a first user may tag a second user in an image managed by social-networking system 730 (or alternatively, an image managed by another system external to social-networking system 730 ). The image itself may be represented as a node in the social networking system 730 . This tagging action not only creates an edge between the first user and the second user, but can also create an edge between each user and the image that becomes a node in the social graph. As another example, if a user confirms attending an event, then the user and the event are nodes obtained from the user profile store 736 , where attendance at the event is an edge between the nodes that can be retrieved from the activity log 742 . . By creating and managing social graphs, social networking system 730 provides a rich source of socially relevant information, including data describing different types of objects and interactions and connections between those objects. to provide.

웹 서버(732)는 네트워크(750)를 통해 소셜 네트워킹 시스템(730)을 하나 이상의 사용자 장치(710) 및/또는 하나 이상의 외부 시스템(720)으로 링크한다. 웹 서버(732)는, 가령 Java, JavaScript, Flash, XML 등과 같은 다른 웹-연관 컨텐츠뿐만 아니라 웹 페이지들을 서빙한다. 웹 서버(732)는 메일 서버 또는 소셜 네트워킹 시스템(730)과 하나 이상의 사용자 장치(710) 사이의 메시지를 수신하고 라우팅하기 위한 다른 메시징 기능을 포함할 수 있다. 메시지는 인스턴트 메시지, 큐잉된 메시지(예컨대, 이메일), 텍스트 및 SMS 메시지, 또는 임의의 다른 적절한 메시지 포맷일 수 있다.Web server 732 links social networking system 730 via network 750 to one or more user devices 710 and/or one or more external systems 720 . Web server 732 serves web pages as well as other web-related content, such as Java, JavaScript, Flash, XML, and the like. Web server 732 may include a mail server or other messaging function for receiving and routing messages between social networking system 730 and one or more user devices 710 . Messages may be instant messages, queued messages (eg, email), text and SMS messages, or any other suitable message format.

API 요청 서버(734)는, 하나 이상의 API 함수를 호출함으로써 하나 이상의 외부 시스템(720) 및 사용자 장치(710)가 소셜 네트워킹 시스템(730)으로부터 액세스 정보를 호출하도록 한다. API 요청 서버(734)는 또한, API들을 호출함으로써 외부 시스템(720)이 소셜 네트워킹 시스템(730)으로 정보를 전송하도록 할 수 있다. 일실시예로, 외부 시스템(720)은 네트워크(750)를 통해 소셜 네트워킹 시스템(730)으로 API 요청을 전송하고, API 요청 서버(734)는 API 요청을 수신한다. API 요청 서버(734)는, API 요청 서버(734)가 네트워크(750)를 통해 외부 시스템(720)으로 통신하는 적절한 응답을 생성하기 위해 API 요청과 연관된 API를 호출함으로써 그 요청을 프로세싱한다. 예컨대, API 요청에 응답하여, API 요청 서버(734)는 가령 외부 시스템(720)으로 로그된 사용자의 연결과 같은 사용자와 연관된 데이터를 수집하고, 수집된 데이터를 외부 시스템(720)으로 통신한다. 다른 실시예로, 사용자 장치(710)는 외부 시스템(720)과 동일한 방식으로 소셜 네트워킹 시스템(730)과 API들을 통해 통신한다.The API request server 734 allows one or more external systems 720 and user devices 710 to call access information from the social networking system 730 by calling one or more API functions. The API request server 734 may also cause the external system 720 to send information to the social networking system 730 by calling APIs. In one embodiment, external system 720 sends an API request to social networking system 730 over network 750 , and API request server 734 receives the API request. The API request server 734 processes the request by calling the API associated with the API request to generate an appropriate response in which the API request server 734 communicates via the network 750 to the external system 720 . For example, in response to the API request, the API request server 734 collects data associated with the user, such as a logged user's connection to the external system 720 , and communicates the collected data to the external system 720 . In another embodiment, user device 710 communicates via APIs with social networking system 730 in the same manner as external system 720 .

행위 로거(740)는 소셜 네트워킹 시스템(730) 안에서의 및/또는 밖에서의 사용자 행위에 관한 통신을 웹 서버(732)로부터 수신할 수 있다. 행위 로거(740)는 사용자 행위에 관한 정보로 활동 로그(742)를 채워서 소셜 네트워킹 시스템(730)이 소셜 네트워킹 시스템(730) 내에서 및 소셜 네트워킹 시스템(730) 밖에서 그것의 사용자들에 의해 행해진 다양한 행위를 발견할 수 있도록 한다. 특정 사용자가 소셜 네트워킹 시스템(730) 상의 다른 노드에 관해 행한 임의의 행위는, 활동 로그(742) 또는 유사한 데이터베이스 또는 다른 데이터 저장소에 관리되는 정보를 통해 각각의 사용자의 계정과 연관될 수 있다. 식별되고 저장된 소셜 네트워킹 시스템(730) 내에서 사용자에 의해 행해진 행위의 예들은 예컨대, 다른 사용자로의 연결의 추가, 다른 사용자에게 메세지를 전송, 다른 사용자로부터의 메시지를 읽기, 다른 사용자와 연관된 컨텐츠를 열람, 다른 사용자에 의해 게시된 이벤트에 참석, 이미지를 게시, 이미지를 게시하는 것의 시도, 또는 다른 사용자 또는 다른 객체와 상호작용하는 다른 행위들을 포함할 수 있다. 사용자가 소셜 네트워킹 시스템(730) 내에서 행위를 행할 때, 행위는 활동 로그(742)에 기록된다. 일실시예로, 소셜 네트워킹 시스템(730)은 활동 로그(742)를 엔트리들의 데이터베이스로서 관리한다. 행위가 소셜 네트워킹 시스템(730) 내에서 행해질 때, 행위에 대한 엔트리는 활동 로그(742)에 추가된다. 활동 로그(742)는 행위 로그라고 언급될 수 있다.Behavior logger 740 may receive communications from web server 732 regarding user behavior within and/or outside social networking system 730 . The action logger 740 populates the activity log 742 with information about user actions so that the social networking system 730 can perform various actions taken by its users within the social networking system 730 and outside the social networking system 730 . action to be discovered. Any actions that a particular user has taken with respect to other nodes on the social-networking system 730 may be associated with each user's account through information maintained in an activity log 742 or similar database or other data store. Examples of actions taken by a user within the identified and stored social networking system 730 include, for example, adding a connection to another user, sending a message to another user, reading a message from another user, or viewing content associated with another user. viewing, attending events posted by other users, posting images, attempting to post images, or other actions of interacting with other users or other objects. When a user takes an action within the social-networking system 730 , the action is recorded in the activity log 742 . In one embodiment, social-networking system 730 maintains activity log 742 as a database of entries. When an action is taken within the social-networking system 730 , an entry for the action is added to the activity log 742 . The activity log 742 may be referred to as an activity log.

추가로, 사용자 행위는 가령 소셜 네트워킹 시스템(730)으로부터 분리된 외부 시스템(720)과 같이 소셜 네트워킹 시스템(730)의 외부의 엔트리 내에서 발생하는 컨셉 및 행위와 연관될 수 있다. 예컨대, 행위 로거(740)는 웹 서버(732)로부터 외부 시스템(720)과의 사용자 상호작용을 기술하는 데이터를 수신할 수 있다. 이 예에서, 외부 시스템(720)은 소셜 그래프에서의 구조화된 행위 및 객체에 따라 사용자의 상호작용을 보고한다.Additionally, user actions may be associated with concepts and actions occurring within entries external to social networking system 730 , such as external system 720 separate from social networking system 730 . For example, behavior logger 740 may receive data from web server 732 describing a user's interaction with external system 720 . In this example, external system 720 reports the user's interactions according to structured actions and objects in the social graph.

사용자가 외부 시스템(720)과 상호작용하는 행위들의 다른 예들은, 사용자가 외부 시스템(720) 또는 다른 엔티티에 대한 관심을 표현하는 것, 사용자가 외부 시스템(720) 또는 외부 시스템(720) 내의 웹 페이지(722a)를 논의하는 코멘트를 소셜 네트워킹 시스템(730)에 게시하는 것, 사용자가 외부 시스템(720)과 연관된 URL(Uniform Resource Locator) 또는 다른 식별자를 소셜 네트워킹 시스템(730)에 게시하는 것, 사용자가 외부 시스템(720)과 연관된 이벤트에 참석하는 것, 또는 외부 시스템(720)과 관련된 사용자에 의한 임의의 다른 행위를 포함한다. 따라서, 활동 로그(742)는 소셜 네트워킹 시스템(730)의 사용자 및 소셜 네트워킹 시스템(730)으로부터 분리된 외부 시스템(720) 사이의 상호작용을 기술하는 행위들을 포함할 수 있다.Other examples of actions in which the user interacts with the external system 720 include the user expressing an interest in the external system 720 or other entity, the user expressing an interest in the external system 720 or other entity, and the user interacting with the external system 720 or a web within the external system 720 . posting a comment discussing page 722a to social networking system 730 , a user posting to social networking system 730 a Uniform Resource Locator (URL) or other identifier associated with external system 720 ; the user attending an event associated with the external system 720 , or any other action by the user associated with the external system 720 . Accordingly, the activity log 742 may include actions that describe interactions between a user of the social-networking system 730 and an external system 720 that is separate from the social-networking system 730 .

인증 서버(744)는 소셜 네트워킹 시스템(730)의 사용자의 하나 이상의 개인정보 설정을 시행한다. 사용자의 개인정보 설정은 어떻게 사용자와 연관된 특정 정보가 공유될 수 있는지를 결정한다. 개인정보 설정은 사용자와 연관된 특정 정보의 명세(specification) 및 정보가 공유될 수 있는 엔티티 또는 엔티티들의 명세를 포함한다. 정보가 공유될 수 있는 엔티티들의 예들은 다른 사용자들, 애플리케이션, 외부 시스템(720), 또는 정보에 잠재적으로 액세스할 수 있는 임의의 엔티티를 포함할 수 있다. 사용자에 의해 공유될 수 있는 정보는 가령, 프로필 사진, 사용자와 연관된 전화번호, 사용자의 연결, 연결을 추가하기, 사용자의 프로필 정보를 변경하기와 같은 사용자에 의해 행해진 행위 등과 같은 사용자 계정 정보를 포함한다.The authentication server 744 enforces one or more privacy settings of the user of the social-networking system 730 . A user's privacy settings determine how certain information associated with the user may be shared. Privacy settings include a specification of specific information associated with a user and an entity or entities with which the information can be shared. Examples of entities with which information may be shared may include other users, applications, external systems 720 , or any entity with potentially access to information. Information that may be shared by a user includes user account information, such as, for example, a profile picture, a phone number associated with the user, a user's connection, an action taken by the user, such as adding a connection, changing the user's profile information, etc. do.

개인정보 설정 명세가 상이한 레벨의 입상도(granularity)에서 제공될 수 있다. 예컨대, 개인정보 설정은 다른 사용자들과 공유될 특정 정보를 식별할 수 있고; 개인정보 설정은 직장 전화번호 또는 가령, 프로필 사진, 집 전화번호, 및 상태와 같은 관련된 정보의 특정 세트를 식별한다. 대안으로, 개인정보 설정은 사용자와 연관된 모든 정보에 적용될 수 있다. 특정 정보에 액세스할 수 있는 엔티티들의 세트의 명세는 또한, 다양한 레벨의 입상도에서 특정될 수 있다. 정보가 공유될 수 있는 다양한 세트의 엔티티들은 예컨대, 사용자의 모든 친구들, 친구들의 모든 친구들, 모든 애플리케이션, 또는 모든 외부 시스템(720)을 포함할 수 있다. 일실시예는 엔티티들의 세트의 명세가 엔티티들의 목록을 포함할 수 있도록 한다. 예컨대, 사용자는 특정 정보에 액세스하는 것이 허용되는 외부 시스템(720)의 리스트를 제공할 수 있다. 다른 실시예는 명세가, 정보에 액세스하는것이 허용되지 않은 예외들을 함께 갖는 엔티티들의 세트를 포함하도록 한다. 예컨대, 사용자는 모든 외부 시스템(720)이 사용자의 작업 정보에 액세스할 수 있도록 하지만, 작업 정보에 액세스하는 것이 허용되지 않는 외부 시스템(720)의 리스트를 특정할 수 있다. 특정 실시예들은 특정 정보를 액세스하는 것이 허용되지 않는 예외들의 리스트를 "차단 리스트"라고 할 수 있다. 사용자에 의해 특정된 차단 리스트에 속하는 외부 시스템(720)은 개인정보 설정에 특정된 정보를 액세스하는 것으로부터 차단된다. 정보의 명세의 입상도 및 정보가 공유되는 엔티티들의 명세의 입상도의 다양한 조합이 가능하다. 예컨대, 모든 개인 정보는 친구들과 공유될 수 있는 한편, 모든 작업 정보는 친구의 친구들과 공유될 수 있다.Privacy setting specifications may be provided at different levels of granularity. For example, privacy settings may identify specific information to be shared with other users; A privacy setting identifies a work phone number or a specific set of related information, such as a profile picture, home phone number, and status. Alternatively, privacy settings may be applied to all information associated with the user. The specification of the set of entities that can access particular information may also be specified at various levels of granularity. The various sets of entities with which information may be shared may include, for example, all friends of the user, all friends of friends, all applications, or all external systems 720 . One embodiment allows a specification of a set of entities to include a list of entities. For example, a user may provide a list of external systems 720 that are allowed to access certain information. Another embodiment allows the specification to include a set of entities with exceptions that are not allowed to access information. For example, a user may specify a list of external systems 720 that allows all external systems 720 to access the user's job information, but is not allowed to access the job information. Certain embodiments may refer to a "block list" as a list of exceptions for which access to certain information is not permitted. External systems 720 belonging to the block list specified by the user are blocked from accessing the information specified in the privacy settings. Various combinations of granularity of the specification of information and the granularity of the specification of entities with which the information is shared are possible. For example, all personal information may be shared with friends, while all work information may be shared with friends of a friend.

인증 서버(744)는 사용자와 연관된 특정 정보가 사용자의 친구들, 외부 시스템(720), 및/또는 다른 애플리케이션과 엔티티들에 의해 액세스될 수 있는지 여부를 결정하는 로직을 포함한다. 외부 시스템(720)은 가령 사용자의 직장 전화번호와 같은 사용자의 더 개인적이고 민감한 정보에 액세스하기 위해 인증 서버(744)로부터의 인증이 필요할 수 있다. 사용자의 개인정보 설정에 기반하여, 인증 서버(744)는, 다른 사용자, 외부 시스템(720), 애플리케이션, 또는 다른 엔티티가 사용자에 의해 행해진 행위에 관한 정보를 포함하는 사용자와 연관된 정보에 액세스하는 것이 허용되는지 여부를 결정한다.The authentication server 744 includes logic to determine whether certain information associated with the user may be accessed by the user's friends, external systems 720, and/or other applications and entities. External system 720 may require authentication from authentication server 744 to access more personal and sensitive information of the user, such as the user's work phone number, for example. Based on the user's privacy settings, the authentication server 744 may prevent other users, external systems 720, applications, or other entities from accessing information associated with the user, including information regarding actions taken by the user. decide whether it is allowed or not.

소셜 네트워킹 시스템(730)은 이미지 프로세싱 모듈(746)을 포함할 수 있다. 일부 실시예에서, 이미지 프로세싱 모듈(746)은 도 1의 이미지 프로세싱 모듈(102)로 구현될 수 있다. 이미지 프로세싱 모듈(746)은 본 명세서의 다양한 실시예에 따라 이미지를 생성, 프로세싱 및/또는 수정하도록 구성될 수 있다.The social networking system 730 can include an image processing module 746 . In some embodiments, the image processing module 746 may be implemented as the image processing module 102 of FIG. 1 . The image processing module 746 may be configured to generate, process, and/or modify an image in accordance with various embodiments herein.

사용자 장치(710)는 이미지 프로세싱 모듈(746')을 포함할 수 있다. 일부 실시예에서, 이미지 프로세싱 모듈(746')은 도 1의 이미지 프로세싱 모듈(102)로 구현될 수 있다. 이미지 프로세싱 모듈(746')은 본 명세서의 다양한 실시예에 따라 이미지를 생성, 프로세싱 및/또는 수정하도록 구성될 수 있다.User device 710 may include an image processing module 746 ′. In some embodiments, the image processing module 746 ′ may be implemented as the image processing module 102 of FIG. 1 . Image processing module 746 ′ may be configured to create, process, and/or modify images in accordance with various embodiments herein.

본 발명은 커팅부, 제 1 트랜스퍼 및 제 2 트랜스퍼, 콤바인부를 포함할 수 있다.The present invention may include a cutting unit, a first transfer and a second transfer, and a combine unit.

커팅부는 데이터를 분할하여 복수 개의 조각들을 생성하고, 조각들의 각각에 어드레스를 부여할 수 있다. 여기서, 조각들의 어드레스는 복수 개의 문자 및 숫자의 조합으로 이루어질 수 있다.The cutting unit may generate a plurality of pieces by dividing the data, and may assign an address to each of the pieces. Here, the addresses of the pieces may be composed of a combination of a plurality of letters and numbers.

또한, 커팅부는 각각의 어드레스를 고려하여 조합 규칙을 생성할 수 있다. 여기서, 조합 규칙은 복수 개의 데이터 조각들을 각각의 어드레스를 바탕으로 하여 분할되기 이전의 데이터로 조합할 수 있도록 하는 규칙을 의미한다.Also, the cutting unit may generate a combination rule in consideration of each address. Here, the combination rule refers to a rule that allows a plurality of data pieces to be combined into data before being divided based on each address.

제 1 트랜스퍼는 복수 개의 데이터 조각들을 임의의 순서로 전송할 수 있다. 여기서, 복수 개의 데이터 조각들은 각각 부여된 어드레스와 함께 전송될 수 있다.The first transfer may transmit a plurality of data pieces in an arbitrary order. Here, a plurality of data pieces may be transmitted together with an assigned address, respectively.

제 2 트랜스퍼는 제 1 트랜스퍼에 의해 전송된 복수 개의 데이터 조각들에 대응되는 조합 규칙을 전송할 수 있다. 여기서, 제 2 트랜스퍼는 제 1 트랜스퍼에 의한 복수 개의 데이터 조각들의 전송에 대하여 시차를 두고 조합 규칙을 전송하는 것이 바람직할 수 있다. The second transfer may transmit a combination rule corresponding to the plurality of data pieces transmitted by the first transfer. Here, it may be preferable that the second transfer transmits the combination rule with a time difference with respect to the transmission of the plurality of data pieces by the first transfer.

이상 본 명세서에서 설명한 기능적 동작과 본 주제에 관한 실시형태들은 본 명세서에서 개시한 구조들 및 그들의 구조적인 등가물을 포함하여 디지털 전자 회로나 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 혹은 이들 중 하나 이상의 조합에서 구현 가능하다.The functional operations described in this specification and the embodiments related to the present subject matter can be implemented in a digital electronic circuit, computer software, firmware or hardware, including the structures disclosed herein and structural equivalents thereof, or in a combination of one or more thereof Do.

본 명세서에서 기술하는 주제의 실시형태는 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 데이터 처리 장치에 의한 실행을 위하여 또는 그 동작을 제어하기 위하여 유형의 프로그램 매체 상에 인코딩되는 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 유형의 프로그램 매체는 전파형 신호이거나 컴퓨터로 판독 가능한 매체일 수 있다. 전파형 신호는 컴퓨터에 의한 실행을 위하여 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위하여 생성되는 예컨대 기계가 생성한 전기적, 광학적 혹은 전자기 신호와 같은 인공적으로 생성된 신호이다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조합 혹은 이들 중 하나 이상의 조합일 수 있다.Embodiments of the subject matter described herein are one or more computer program products, ie one or more modules directed to computer program instructions encoded on a tangible program medium for execution by or for controlling the operation of a data processing apparatus. can be implemented. A tangible program medium may be a radio wave signal or a computer-readable medium. A radio wave signal is an artificially generated signal, eg a machine-generated electrical, optical or electromagnetic signal, that is generated to encode information for transmission to an appropriate receiver device for execution by a computer. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of materials that affect a machine-readable radio wave signal, or a combination of one or more of these.

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다.A computer program (also known as a program, software, software application, script or code) may be written in any form of any programming language, including compiled or interpreted language or a priori or procedural language, and may be written as a stand-alone program or module; It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment.

컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다.A computer program does not necessarily correspond to a file in a file system. A program may be in a single file provided to the requested program, or in multiple interacting files (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document).

컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터 또는 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.The computer program may be deployed to be executed on one computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.

부가적으로, 본 명세서에서 기술하는 논리 흐름과 구조적인 블록도는 개시된 구조적인 수단의 지원을 받는 대응하는 기능과 단계의 지원을 받는 대응하는 행위 및/또는 특정한 방법을 기술하는 것으로, 대응하는 소프트웨어 구조와 알고리즘과 그 등가물을 구축하는 데에도 사용 가능하다. Additionally, the logic flows and structural block diagrams described herein describe corresponding acts and/or specific methods supported by corresponding functions and steps supported by the disclosed structural means, and corresponding software. It can also be used to build structures and algorithms and their equivalents.

본 명세서에서 기술하는 프로세스와 논리 흐름은 입력 데이터 상에서 동작하고 출력을 생성함으로써 기능을 수행하기 위하여 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의하여 수행 가능하다.The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output.

컴퓨터 프로그램의 실행에 적합한 프로세서는, 예컨대 범용 및 특수 목적의 마이크로프로세서 양자 및 어떤 종류의 디지털 컴퓨터의 어떠한 하나 이상의 프로세서라도 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리나 랜덤 액세스 메모리 혹은 양자로부터 명령어와 데이터를 수신할 것이다. Processors suitable for the execution of computer programs include, for example, both general and special purpose microprocessors and any one or more processors of any kind of digital computer. Typically, the processor will receive instructions and data from read-only memory, random access memory, or both.

컴퓨터의 핵심적인 요소는 명령어와 데이터를 저장하기 위한 하나 이상의 메모리 장치 및 명령을 수행하기 위한 프로세서이다. 또한, 컴퓨터는 일반적으로 예컨대 자기, 자기광학 디스크나 광학 디스크와 같은 데이터를 저장하기 위한 하나 이상의 대량 저장 장치로부터 데이터를 수신하거나 그것으로 데이터를 전송하거나 혹은 그러한 동작 둘 다를 수행하기 위하여 동작가능 하도록 결합되거나 이를 포함할 것이다. 그러나, 컴퓨터는 그러한 장치를 가질 필요가 없다.A key element of a computer is one or more memory devices for storing instructions and data and a processor for executing instructions. In addition, a computer is generally operably coupled to receive data from, or transmit data to, one or more mass storage devices for storing data, such as, for example, magnetic, magneto-optical disks or optical disks, or to perform both such operations. or will include However, the computer need not have such a device.

본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. The present description sets forth the best mode of the invention, and provides examples to illustrate the invention, and to enable any person skilled in the art to make or use the invention. The specification thus prepared does not limit the present invention to the specific terms presented.

따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 요컨대 본 발명이 의도하는 효과를 달성하기 위해 도면에 도시된 모든 기능 블록을 별도로 포함하거나 도면에 도시된 모든 순서를 도시된 순서 그대로 따라야만 하는 것은 아니며, 그렇지 않더라도 얼마든지 청구항에 기재된 본 발명의 기술적 범위에 속할 수 있다는 점을 밝힌다.Accordingly, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art can make modifications, changes, and modifications to the examples without departing from the scope of the present invention. In short, in order to achieve the intended effect of the present invention, it is not necessary to separately include all the functional blocks shown in the drawings or follow all the orders shown in the drawings. indicate that it may be within the scope

Claims (6)

제 1 컴퓨팅 시스템에 의하여, 제2 컴퓨팅 시스템에 의하여 캡처된 원본 이미지와 연관된 수신자 이미지 데이터를 수신하는 단계;
상기 수신자 이미지 데이터에 기반하여 제 1 중간 이미지를 생성하는 단계;
상기 생성된 제 1 중간 이미지를 분산저장서버에 분산저장하는 단계; 및
상기 분산저장된 제 1 중간 이미지에 기반하여 제 1 컴퓨팅 시스템 상에 디스플레이하기 위한 제 1 열람 가능 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
receiving, by the first computing system, recipient image data associated with the original image captured by the second computing system;
generating a first intermediate image based on the receiver image data;
distributing and storing the generated first intermediate image in a distributed storage server; and
and generating a first viewable image for display on a first computing system based on the distributed first intermediate image.
제 1항에 있어서,
상기 제 1 열람 가능 이미지를 모바일 장치 및 피씨에 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
The method of claim 1,
and displaying the first viewable image on a mobile device and a PC.
제 1항에 있어서,
상기 제 1 중간 이미지를 생성하는 방법은
복호화된 이미지 데이터를 생성하기 위하여 수신자 이미지 데이터를 복호화하는 단계; 및
포맷에 기반하여, 제 1 중간 이미지를 생성하기 위하여 복호화된 이미지 데이터를 디코딩하는 단계; 및
상기 제 1중간 이미지에 이미지 필터를 적용하는 단계를 포함하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
The method of claim 1,
The method of generating the first intermediate image is
decoding the receiver image data to generate decoded image data; and
decoding the decoded image data to generate a first intermediate image based on the format; and
and applying an image filter to the first intermediate image.
제 1항에 있어서,
상기 수신자 이미지 데이터에 기반하여 제 1 중간 이미지를 포함하는 중간 이미지의 세트를 생성하는 단계를 더 포함하고,
제 1 중간 이미지에 기반하여 제 1 열람 가능 이미지를 생성하는 단계는 중간 이미지의 세트에 기반하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
The method of claim 1,
generating a set of intermediate images comprising a first intermediate image based on the recipient image data;
and generating the first viewable image based on the first intermediate image is based on the set of intermediate images.
제 4항에 있어서,
상기 중간 이미지의 세트를 저장하는 단계; 및
제 1 컴퓨팅 시스템에, 상기 제 1 열람 가능 이미지를 저장하는 단계를 더 포함하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
5. The method of claim 4,
storing the set of intermediate images; and
The method for processing image media in a social network, further comprising the step of storing, in a first computing system, the first viewable image.
제 1 컴퓨팅 시스템에 의하여, 제2 컴퓨팅 시스템에 의하여 캡처된 원본 이미지와 연관된 수신자 이미지 데이터를 수신하는 단계;
상기 수신자 이미지 데이터에 기반하여 제 1 중간 이미지를 생성하는 단계; 및
상기 제 1 중간 이미지에 기반하여 상기 제 1 컴퓨팅 시스템 상에 디스플레이하기 위한 제 1 열람 가능 이미지를 생성하는 단계를 포함하는 것을 특징으로 하는 소셜 네트워크에서 이미지 미디어를 프로세싱하기 위한 방법.
receiving, by the first computing system, recipient image data associated with the original image captured by the second computing system;
generating a first intermediate image based on the receiver image data; and
and generating a first viewable image for display on the first computing system based on the first intermediate image.
KR1020200102417A 2020-08-14 2020-08-14 System and Methods for Image Media Processing in Social Network KR20220021628A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200102417A KR20220021628A (en) 2020-08-14 2020-08-14 System and Methods for Image Media Processing in Social Network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200102417A KR20220021628A (en) 2020-08-14 2020-08-14 System and Methods for Image Media Processing in Social Network

Publications (1)

Publication Number Publication Date
KR20220021628A true KR20220021628A (en) 2022-02-22

Family

ID=80494370

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200102417A KR20220021628A (en) 2020-08-14 2020-08-14 System and Methods for Image Media Processing in Social Network

Country Status (1)

Country Link
KR (1) KR20220021628A (en)

Similar Documents

Publication Publication Date Title
US10007966B2 (en) Systems and methods for recipient-side image processing
US11206235B1 (en) Systems and methods for surfacing content
US10510165B2 (en) Systems and methods for context based image compression
US9918092B2 (en) Systems and methods for enhanced video encoding
US10321143B1 (en) Systems and methods for increasing resolution of video data
US20190190969A1 (en) Systems and methods for sharing content
US11032596B2 (en) Systems and methods for generating content streams
US10212469B2 (en) Systems and methods for determining quality levels for videos to be uploaded
KR102478802B1 (en) System and method for providing data analysis for video based on layered architecture
EP2988517A1 (en) Systems and methods for recipient-side image processing
KR20220021628A (en) System and Methods for Image Media Processing in Social Network
KR20220023130A (en) System and Methods for Image Media Processing in Social Network
US10477215B2 (en) Systems and methods for variable compression of media content based on media properties
US11252445B1 (en) Systems and methods for providing passthrough adaptive bitrate videos
US11765408B1 (en) Systems and methods for generating and distributing content for consumption surfaces
US11544318B2 (en) Systems and methods for providing image portions for progressive images
US10223472B2 (en) Systems and methods for providing progressive images based on data range requests
US20160057428A1 (en) Systems and methods for blurriness bounding for videos